From 2b5cae1a0a81c27386042f20a7b30d0c8d1ecd51 Mon Sep 17 00:00:00 2001 From: xcbyy <2578898740@qq.com> Date: Fri, 23 Oct 2026 11:36:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(ui):=20=E7=AC=AC=E4=BA=8C=E6=89=B9?= =?UTF-8?q?=E9=AB=98=E7=BA=A7=E6=84=9F=E5=8D=87=E7=BA=A7=EF=BC=88=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8/=E8=AE=A2=E5=8D=95/=E4=B8=AA=E4=BA=BA=E4=B8=AD?= =?UTF-8?q?=E5=BF=83/=E7=99=BB=E5=BD=95=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 活动大厅:玻璃搜索与筛选、活动卡渐变/左侧状态线、进度条与价格排版、错峰入场 - 组局详情:分层 Hero、玻璃信息卡、底部操作栏玻璃化、按钮胶囊化 - 订单列表:状态卡层级、票据风格核销码、按钮与空状态统一 - 个人中心:资料卡玻璃化、资产数字字体、菜单卡统一 - 登录页:品牌光晕、主按钮渐变高光、协议区对比度 - HBuilderX 编译成功并生成预览二维码;119 套件/777 用例全绿 --- pwuniapp/pages/activity/detail.vue | 145 ++++++++++++++++++++++ pwuniapp/pages/activity/list.vue | 189 ++++++++++++++++++++++++++++- pwuniapp/pages/auth/login.vue | 94 ++++++++++++++ pwuniapp/pages/order/list.vue | 169 +++++++++++++++++++++++++- pwuniapp/pages/user/index.vue | 119 ++++++++++++++++++ 5 files changed, 714 insertions(+), 2 deletions(-) diff --git a/pwuniapp/pages/activity/detail.vue b/pwuniapp/pages/activity/detail.vue index 4f65617..6da619a 100644 --- a/pwuniapp/pages/activity/detail.vue +++ b/pwuniapp/pages/activity/detail.vue @@ -2500,4 +2500,149 @@ const handleJoin = () => { } } } +/* ===== Premium visual layer: 组局详情 ===== */ +.detail-container { + background: + radial-gradient(110% 42% at 50% -6%, rgba(99, 102, 241, 0.18), transparent 62%), + var(--surface-0); + + .hero-card { + background: + radial-gradient(circle at 88% 8%, rgba(217, 164, 65, 0.12), transparent 46%), + linear-gradient(145deg, #1B2340 0%, #111827 58%, #0D1424 100%); + border-color: rgba(129, 140, 248, 0.22); + box-shadow: + inset 0 1rpx 0 rgba(255, 255, 255, 0.06), + 0 18rpx 44rpx rgba(0, 0, 0, 0.28); + animation: detailSectionEnter 0.45s var(--ease-out) both; + + .badge-row .game-tag, + .badge-row .mode-tag, + .badge-row .status-tag { + backdrop-filter: blur(8px); + } + + .hero-title { + font-size: 38rpx; + line-height: 1.4; + letter-spacing: 0.3rpx; + } + + .hero-price { + font-family: var(--font-num, monospace); + } + } + + .section-card { + background: linear-gradient(180deg, rgba(22, 31, 51, 0.82) 0%, rgba(15, 22, 38, 0.9) 100%); + border-color: var(--hairline); + box-shadow: 0 12rpx 30rpx rgba(0, 0, 0, 0.16); + animation: detailSectionEnter 0.5s var(--ease-out) both; + + .sec-header .sec-title { + letter-spacing: 0.2rpx; + } + + .info-row { + border-bottom-color: rgba(255, 255, 255, 0.045); + } + } + + .creator-box { + .creator-name { + font-size: 30rpx; + font-weight: 700; + } + + .host-badge { + background: rgba(217, 164, 65, 0.1); + border: 1rpx solid rgba(217, 164, 65, 0.28); + color: #F1C878; + } + + .btn-chat { + border-radius: 999rpx; + background: rgba(255, 255, 255, 0.04); + border-color: var(--hairline); + color: #CBD5E1; + } + } + + .bottom-bar { + background: rgba(10, 15, 29, 0.9); + backdrop-filter: blur(20px); + border-top: 1rpx solid rgba(255, 255, 255, 0.07); + box-shadow: 0 -14rpx 36rpx rgba(0, 0, 0, 0.28); + + .btn-join, + .btn-host-secondary, + .btn-host-danger, + .btn-leave, + .ticket-link { + border-radius: 999rpx; + transition: transform var(--motion-fast, 120ms) var(--ease-out, ease-out); + } + + .btn-join { + background: linear-gradient(135deg, #10B981 0%, #059669 100%); + box-shadow: 0 10rpx 24rpx rgba(16, 185, 129, 0.28); + } + + .btn-join:active, + .btn-host-secondary:active, + .btn-host-danger:active, + .btn-leave:active { + transform: scale(0.98); + } + } +} + +.detail-container.theme-warm { + background: + radial-gradient(100% 40% at 50% -6%, rgba(234, 88, 12, 0.08), transparent 62%), + #FDFBF7; + + .hero-card { + background: + radial-gradient(circle at 88% 8%, rgba(234, 88, 12, 0.06), transparent 46%), + linear-gradient(145deg, #FFFFFF 0%, #FFFBF5 100%); + border-color: #F0ECE4; + box-shadow: 0 16rpx 38rpx rgba(28, 25, 23, 0.06); + + .hero-title { + color: #1C1917; + } + } + + .section-card { + background: #FFFFFF; + border-color: #F0ECE4; + box-shadow: 0 12rpx 28rpx rgba(28, 25, 23, 0.05); + } + + .creator-box { + .btn-chat { + background: #F8F5F0; + border-color: #F0ECE4; + color: #57534E; + } + } + + .bottom-bar { + background: rgba(255, 255, 255, 0.92); + border-top-color: #F0ECE4; + box-shadow: 0 -12rpx 30rpx rgba(28, 25, 23, 0.07); + } +} + +@keyframes detailSectionEnter { + from { + opacity: 0; + transform: translateY(14rpx); + } + to { + opacity: 1; + transform: translateY(0); + } +} diff --git a/pwuniapp/pages/activity/list.vue b/pwuniapp/pages/activity/list.vue index ea51082..d0fd5aa 100644 --- a/pwuniapp/pages/activity/list.vue +++ b/pwuniapp/pages/activity/list.vue @@ -91,10 +91,11 @@ @@ -974,4 +975,190 @@ const createActivity = () => { } } } +/* ===== Premium visual layer: 活动大厅 ===== */ +.activity-container { + background: + radial-gradient(110% 46% at 50% -6%, rgba(99, 102, 241, 0.16), transparent 62%), + var(--surface-0); + + .header-search { + background: rgba(7, 11, 20, 0.88); + backdrop-filter: blur(18px); + padding-bottom: 22rpx; + + .search-box { + height: 84rpx; + background: rgba(22, 31, 51, 0.9); + border-color: rgba(255, 255, 255, 0.1); + box-shadow: + inset 0 1rpx 0 rgba(255, 255, 255, 0.06), + 0 10rpx 28rpx rgba(0, 0, 0, 0.18); + } + } + + .tab-header { + background: rgba(15, 22, 38, 0.78); + border-color: var(--hairline); + box-shadow: inset 0 1rpx 0 rgba(255, 255, 255, 0.05); + + .tab-item.active { + background: rgba(99, 102, 241, 0.16); + box-shadow: inset 0 0 0 1rpx rgba(129, 140, 248, 0.24); + } + } + + .category-capsule-bar .capsule-item { + background: rgba(22, 31, 51, 0.82); + border-color: var(--hairline); + color: #A7B3CB; + + &.active { + background: rgba(99, 102, 241, 0.18); + border-color: rgba(129, 140, 248, 0.42); + } + } + + .tips-bar { + background: rgba(99, 102, 241, 0.06); + border-color: rgba(129, 140, 248, 0.16); + } + + .activity-list .activity-card { + position: relative; + overflow: hidden; + background: linear-gradient(180deg, rgba(22, 31, 51, 0.96) 0%, rgba(13, 20, 36, 0.98) 100%); + border: 1rpx solid var(--hairline); + border-radius: 26rpx; + box-shadow: 0 12rpx 30rpx rgba(0, 0, 0, 0.22); + animation: activityCardEnter 0.5s var(--ease-out) both; + + &::before { + content: ''; + position: absolute; + left: 0; + top: 26rpx; + bottom: 26rpx; + width: 4rpx; + border-radius: 4rpx; + background: linear-gradient(180deg, #818CF8, #6366F1); + opacity: 0.7; + } + + .card-header .game-tag { + background: rgba(255, 255, 255, 0.06); + border: 1rpx solid rgba(255, 255, 255, 0.07); + } + + .activity-title { + font-size: 31rpx; + line-height: 1.45; + letter-spacing: 0.2rpx; + } + + .meta-row .meta-item { + color: #94A3B8; + } + + .progress-track { + height: 8rpx; + background: rgba(255, 255, 255, 0.06); + } + + .progress-fill { + background: linear-gradient(90deg, #6EE7B7, #10B981); + box-shadow: none; + } + + .progress-count { + color: #6EE7B7; + } + + .card-footer { + border-top-color: rgba(255, 255, 255, 0.05); + } + + .fee-amount { + font-family: var(--font-num, monospace); + letter-spacing: 0.2rpx; + } + } + + .empty-tip { + background: rgba(255, 255, 255, 0.02); + border: 1rpx dashed rgba(255, 255, 255, 0.09); + border-radius: 24rpx; + padding: 72rpx 28rpx; + } +} + +.activity-container.theme-warm { + background: + radial-gradient(100% 44% at 50% -6%, rgba(234, 88, 12, 0.08), transparent 62%), + #FDFBF7; + + .header-search { + background: rgba(253, 251, 247, 0.92); + + .search-box { + background: #FFFFFF; + border-color: #EEEAE3; + box-shadow: 0 10rpx 26rpx rgba(28, 25, 23, 0.05); + } + } + + .tab-header { + background: #FFFFFF; + border-color: #F0ECE4; + + .tab-item.active { + background: #FFF7ED; + box-shadow: inset 0 0 0 1rpx #FED7AA; + } + } + + .category-capsule-bar .capsule-item { + background: #FFFFFF; + border-color: #F0ECE4; + color: #78716C; + + &.active { + background: #FFF7ED; + border-color: #FED7AA; + color: #C2410C; + } + } + + .activity-list .activity-card { + background: #FFFFFF; + border-color: #F0ECE4; + box-shadow: 0 12rpx 28rpx rgba(28, 25, 23, 0.05); + + .activity-title { + color: #1C1917; + } + + .meta-row .meta-item { + color: #78716C; + } + + .card-footer { + border-top-color: #F5F2EC; + } + + .creator-name { + color: #78716C; + } + } +} + +@keyframes activityCardEnter { + from { + opacity: 0; + transform: translateY(16rpx) scale(0.99); + } + to { + opacity: 1; + transform: translateY(0) scale(1); + } +} diff --git a/pwuniapp/pages/auth/login.vue b/pwuniapp/pages/auth/login.vue index dfef240..aeac561 100644 --- a/pwuniapp/pages/auth/login.vue +++ b/pwuniapp/pages/auth/login.vue @@ -473,4 +473,98 @@ const openPrivacyAgreement = () => { } } } +/* ===== Premium visual layer: 登录 ===== */ +.auth-login-page { + background: + radial-gradient(80% 42% at 50% 4%, rgba(99, 102, 241, 0.18), transparent 62%), + radial-gradient(70% 36% at 80% 28%, rgba(217, 164, 65, 0.06), transparent 70%), + var(--surface-0); + animation: loginFadeIn 0.5s var(--ease-out) both; + + .brand-logo-wrap { + position: relative; + padding: 6rpx; + border-radius: 40rpx; + background: linear-gradient(145deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.02)); + box-shadow: + 0 20rpx 48rpx rgba(99, 102, 241, 0.28), + 0 0 0 1rpx rgba(255, 255, 255, 0.08); + } + + .brand-app-name { + letter-spacing: 1rpx; + } + + .brand-slogan { + color: #8B98B5; + letter-spacing: 0.4rpx; + } + + .btn-wechat-primary { + height: 96rpx; + border-radius: 48rpx; + background: linear-gradient(135deg, #10B981 0%, #059669 55%, #047857 100%); + box-shadow: + 0 18rpx 38rpx rgba(16, 185, 129, 0.28), + inset 0 1rpx 0 rgba(255, 255, 255, 0.28); + transition: transform var(--motion-fast, 120ms) var(--ease-out, ease-out); + } + + .btn-wechat-primary:active { + transform: scale(0.98); + } + + .auth-guarantee-tip { + color: #6B7894; + letter-spacing: 0.2rpx; + } + + .protocol-section .checkbox { + border-color: #4B5874; + } + + .protocol-section .protocol-text { + color: #7C89A6; + } + + .protocol-section .protocol-link { + color: #34D399; + } +} + +.auth-login-page.theme-warm { + background: + radial-gradient(80% 42% at 50% 4%, rgba(234, 88, 12, 0.08), transparent 62%), + #FDFBF7; + + .brand-logo-wrap { + background: linear-gradient(145deg, #FFFFFF, #FFF3E6); + box-shadow: + 0 20rpx 42rpx rgba(234, 88, 12, 0.14), + 0 0 0 1rpx #F0ECE4; + } + + .brand-slogan { + color: #A8A29E; + } + + .auth-guarantee-tip { + color: #A8A29E; + } + + .protocol-section .protocol-text { + color: #78716C; + } +} + +@keyframes loginFadeIn { + from { + opacity: 0; + transform: translateY(12rpx); + } + to { + opacity: 1; + transform: translateY(0); + } +} diff --git a/pwuniapp/pages/order/list.vue b/pwuniapp/pages/order/list.vue index 783e932..63d2b06 100644 --- a/pwuniapp/pages/order/list.vue +++ b/pwuniapp/pages/order/list.vue @@ -33,9 +33,10 @@ @@ -1845,4 +1846,170 @@ const submitReview = async () => { transform: translateY(0); } } +/* ===== Premium visual layer: 我的订单 ===== */ +.order-list-container { + background: + radial-gradient(110% 44% at 50% -6%, rgba(99, 102, 241, 0.15), transparent 62%), + var(--surface-0); + + .tab-header { + background: rgba(15, 22, 38, 0.8); + border-color: var(--hairline); + box-shadow: inset 0 1rpx 0 rgba(255, 255, 255, 0.05); + + .tab-item.active { + background: rgba(99, 102, 241, 0.16); + box-shadow: inset 0 0 0 1rpx rgba(129, 140, 248, 0.22); + } + } + + .orders-wrap .order-card { + position: relative; + overflow: hidden; + background: linear-gradient(180deg, rgba(22, 31, 51, 0.96) 0%, rgba(13, 20, 36, 0.98) 100%); + border: 1rpx solid var(--hairline); + border-radius: 26rpx; + box-shadow: 0 12rpx 30rpx rgba(0, 0, 0, 0.22); + animation: orderCardEnter 0.5s var(--ease-out) both; + + &::before { + content: ''; + position: absolute; + left: 0; + top: 24rpx; + bottom: 24rpx; + width: 4rpx; + border-radius: 4rpx; + background: linear-gradient(180deg, #818CF8, #6366F1); + opacity: 0.65; + } + + .order-head { + border-bottom-color: rgba(255, 255, 255, 0.045); + + .order-sn { + color: #7C89A6; + letter-spacing: 0.3rpx; + } + } + + .status-pill { + padding: 5rpx 16rpx; + border-radius: 999rpx; + letter-spacing: 0.2rpx; + } + + .expert-block { + .expert-avatar { + border: 2rpx solid rgba(255, 255, 255, 0.12); + } + + .expert-name { + font-size: 30rpx; + letter-spacing: 0.2rpx; + } + + .amount-val { + font-family: var(--font-num, monospace); + font-size: 36rpx; + } + } + + .verify-code-row { + background: + linear-gradient(90deg, rgba(217, 164, 65, 0.08), rgba(217, 164, 65, 0.03)); + border: 1rpx dashed rgba(217, 164, 65, 0.35); + border-radius: 14rpx; + + .verify-tag { + background: rgba(217, 164, 65, 0.14); + color: #F1C878; + } + + .verify-num { + color: #F1C878; + font-family: var(--font-num, monospace); + letter-spacing: 4rpx; + } + } + + .order-actions { + border-top-color: rgba(255, 255, 255, 0.045); + + .action-btn { + height: 64rpx; + line-height: 62rpx; + border-radius: 999rpx; + transition: transform var(--motion-fast, 120ms) var(--ease-out, ease-out); + } + + .action-btn:active { + transform: scale(0.97); + } + } + } + + .load-more-tip { + color: #6B7894; + } +} + +.order-list-container.theme-warm { + background: + radial-gradient(100% 42% at 50% -6%, rgba(234, 88, 12, 0.08), transparent 62%), + #FDFBF7; + + .tab-header { + background: #FFFFFF; + border-color: #F0ECE4; + + .tab-item.active { + background: #FFF7ED; + box-shadow: inset 0 0 0 1rpx #FED7AA; + } + } + + .orders-wrap .order-card { + background: #FFFFFF; + border-color: #F0ECE4; + box-shadow: 0 12rpx 28rpx rgba(28, 25, 23, 0.05); + + .order-head { + border-bottom-color: #F5F2EC; + + .order-sn { + color: #A8A29E; + } + } + + .verify-code-row { + background: #FFFBF2; + border-color: #F3D9A4; + + .verify-tag { + background: #FEF3C7; + color: #B45309; + } + + .verify-num { + color: #B45309; + } + } + + .order-actions { + border-top-color: #F5F2EC; + } + } +} + +@keyframes orderCardEnter { + from { + opacity: 0; + transform: translateY(14rpx) scale(0.99); + } + to { + opacity: 1; + transform: translateY(0) scale(1); + } +} diff --git a/pwuniapp/pages/user/index.vue b/pwuniapp/pages/user/index.vue index 67104ed..178f5b9 100644 --- a/pwuniapp/pages/user/index.vue +++ b/pwuniapp/pages/user/index.vue @@ -3091,6 +3091,125 @@ const navTo = (url) => { -webkit-transform: rotate(360deg); } } +/* ===== Premium visual layer: 个人中心 ===== */ +.user-container { + background: + radial-gradient(110% 40% at 50% -4%, rgba(99, 102, 241, 0.16), transparent 62%), + var(--surface-0); + + .profile-card { + padding: 24rpx; + border-radius: 28rpx; + background: linear-gradient(145deg, rgba(24, 34, 58, 0.9) 0%, rgba(13, 20, 36, 0.92) 100%); + border: 1rpx solid var(--hairline); + box-shadow: + inset 0 1rpx 0 rgba(255, 255, 255, 0.05), + 0 14rpx 34rpx rgba(0, 0, 0, 0.2); + + .user-avatar { + border-width: 3rpx; + box-shadow: 0 0 0 6rpx rgba(99, 102, 241, 0.1); + } + + .user-info .name-row .user-name { + font-size: 34rpx; + font-weight: 800; + letter-spacing: 0.3rpx; + } + + .vip-badge { + background: linear-gradient(135deg, rgba(217, 164, 65, 0.18), rgba(217, 164, 65, 0.08)); + border: 1rpx solid rgba(217, 164, 65, 0.3); + color: #F1C878; + } + + .user-uid { + color: #7C89A6; + letter-spacing: 0.2rpx; + } + } + + .wallet-card { + background: linear-gradient(180deg, rgba(22, 31, 51, 0.88) 0%, rgba(15, 22, 38, 0.92) 100%); + border-color: var(--hairline); + box-shadow: 0 14rpx 32rpx rgba(0, 0, 0, 0.18); + + .wallet-title { + font-size: 28rpx; + letter-spacing: 0.2rpx; + } + + .asset-val { + font-family: var(--font-num, monospace); + font-size: 44rpx; + letter-spacing: 0.2rpx; + } + + .asset-btn { + border-radius: 999rpx; + font-weight: 600; + } + } + + .menu-grid-card, + .list-menu-card { + background: rgba(15, 22, 38, 0.78); + border-color: var(--hairline); + box-shadow: + inset 0 1rpx 0 rgba(255, 255, 255, 0.04), + 0 12rpx 28rpx rgba(0, 0, 0, 0.14); + } + + .menu-grid-card .menu-item { + .menu-icon { + border-radius: 22rpx; + } + + .menu-title { + font-size: 25rpx; + font-weight: 600; + } + + .menu-desc { + color: #7C89A6; + } + } +} + +.user-container.theme-warm { + background: + radial-gradient(100% 38% at 50% -4%, rgba(234, 88, 12, 0.07), transparent 62%), + #FDFBF7; + + .profile-card { + background: linear-gradient(145deg, #FFFFFF 0%, #FFFBF5 100%); + border-color: #F0ECE4; + box-shadow: 0 14rpx 32rpx rgba(28, 25, 23, 0.06); + + .vip-badge { + background: #FFF7ED; + border-color: #FED7AA; + color: #C2410C; + } + } + + .wallet-card { + background: #FFFFFF; + border-color: #F0ECE4; + box-shadow: 0 12rpx 28rpx rgba(28, 25, 23, 0.05); + } + + .menu-grid-card, + .list-menu-card { + background: #FFFFFF; + border-color: #F0ECE4; + box-shadow: 0 12rpx 28rpx rgba(28, 25, 23, 0.05); + } + + .menu-grid-card .menu-item .menu-desc { + color: #A8A29E; + } +}