From 4ad874adf9806bccb83eb49fea0e27633de215e7 Mon Sep 17 00:00:00 2001 From: jacobxu666 Date: Fri, 26 Jun 2026 02:50:21 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=85=A8=E9=A1=B9=E7=9B=AE=20UI/UX?= =?UTF-8?q?=20=E6=A0=87=E5=87=86=E5=8C=96=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - P0: uni.scss 全局 Token 修正(字体SourceHanSerifCN、色彩#111/#333/#666/#999/#eeeeee、删除600字重) - P0: 分包6页面色彩迁移(#4A90D9→#3c9cff、#E74C3C→#e53935、圆角统一24rpx) - P1: qrcode页面全量SCSS迁移(12个硬编码色值替换、emoji图标替换、圆角统一) - P1: index页面价格色修正(#f9ae3d→#e53935、按钮主色统一、硬编码字号对齐) - P2: 10个页面字号/圆角/字体统一(notice-list/scenic/login/profile/faq/card-bind等) - P3: 全局 font-weight:600 替换为500/700(5处),删除semibold变量和工具类 - 新增 -size-title: 38rpx Token - 构建验证通过 Co-Authored-By: Claude --- src/components/design-button.vue | 2 +- src/components/section-label.vue | 2 +- src/packages/user/pages/card/activate.vue | 14 ++-- src/packages/user/pages/card/bind.vue | 10 +-- src/packages/user/pages/card/buy.vue | 20 +++--- src/packages/user/pages/card/detail.vue | 10 +-- src/packages/user/pages/card/list.vue | 3 +- src/packages/user/pages/card/qrcode.vue | 12 ++-- src/pages/card-bind/card-bind.vue | 12 ++-- src/pages/card-buy/card-buy.vue | 8 +-- src/pages/faq/faq.vue | 4 +- src/pages/index/index.vue | 40 ++++++------ src/pages/login/agreement.vue | 2 +- src/pages/login/login.vue | 12 ++-- src/pages/login/privacy.vue | 2 +- src/pages/notice-list/notice-list.vue | 16 ++--- src/pages/order/order-detail.vue | 2 +- src/pages/order/order-list.vue | 4 +- src/pages/profile/index.vue | 6 +- src/pages/qrcode/index.vue | 79 +++++++++++++---------- src/pages/scenic-detail/scenic-detail.vue | 11 ++-- src/pages/scenic-list/scenic-list.vue | 25 +++---- src/styles/_tokens.scss | 1 - src/styles/_utilities.scss | 1 - src/uni.scss | 22 +++---- 25 files changed, 167 insertions(+), 153 deletions(-) diff --git a/src/components/design-button.vue b/src/components/design-button.vue index 39960d4..c75e501 100644 --- a/src/components/design-button.vue +++ b/src/components/design-button.vue @@ -45,7 +45,7 @@ function handleTap(event: any) { justify-content: center; border-radius: $radius-base; font-family: $font-family-body; - font-weight: $font-weight-semibold; + font-weight: $font-weight-medium; transition: all $transition-fast; position: relative; overflow: hidden; diff --git a/src/components/section-label.vue b/src/components/section-label.vue index 82c2ebe..4e56c9b 100644 --- a/src/components/section-label.vue +++ b/src/components/section-label.vue @@ -35,7 +35,7 @@ withDefaults(defineProps<{ &__text { font-family: $font-family-mono; font-size: $font-size-xs; - font-weight: $font-weight-semibold; + font-weight: $font-weight-medium; color: $color-accent; letter-spacing: 0.1em; } diff --git a/src/packages/user/pages/card/activate.vue b/src/packages/user/pages/card/activate.vue index 3a77e01..4597792 100644 --- a/src/packages/user/pages/card/activate.vue +++ b/src/packages/user/pages/card/activate.vue @@ -89,17 +89,17 @@ async function handleActivate() { } - diff --git a/src/packages/user/pages/card/bind.vue b/src/packages/user/pages/card/bind.vue index 8b23504..d221d21 100644 --- a/src/packages/user/pages/card/bind.vue +++ b/src/packages/user/pages/card/bind.vue @@ -50,16 +50,16 @@ async function handleBind() { } - diff --git a/src/packages/user/pages/card/buy.vue b/src/packages/user/pages/card/buy.vue index 87fccd1..318cb4f 100644 --- a/src/packages/user/pages/card/buy.vue +++ b/src/packages/user/pages/card/buy.vue @@ -84,23 +84,23 @@ async function handlePay() { } - diff --git a/src/packages/user/pages/card/detail.vue b/src/packages/user/pages/card/detail.vue index e72d2ea..50fa189 100644 --- a/src/packages/user/pages/card/detail.vue +++ b/src/packages/user/pages/card/detail.vue @@ -108,12 +108,12 @@ function handleBuy() { diff --git a/src/pages/card-bind/card-bind.vue b/src/pages/card-bind/card-bind.vue index b0950a5..1c543f5 100644 --- a/src/pages/card-bind/card-bind.vue +++ b/src/pages/card-bind/card-bind.vue @@ -268,7 +268,7 @@ function handleCancel() { diff --git a/src/pages/scenic-detail/scenic-detail.vue b/src/pages/scenic-detail/scenic-detail.vue index 6b145cd..4373d37 100644 --- a/src/pages/scenic-detail/scenic-detail.vue +++ b/src/pages/scenic-detail/scenic-detail.vue @@ -224,6 +224,7 @@ $icon-crown: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' w .page { min-height: 100vh; background: $color-background; + font-family: 'SourceHanSerifCN', '思源宋体', serif; } /* ====== 图标基础 ====== */ @@ -245,7 +246,7 @@ $icon-crown: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' w /* ====== 字体层级 ====== */ .text-title { - font-size: 36rpx; + font-size: 38rpx; font-weight: $font-weight-bold; color: #111111; line-height: 48rpx; @@ -445,7 +446,7 @@ $icon-crown: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' w text { font-size: 22rpx; color: #fff; - font-weight: $font-weight-semibold; + font-weight: 500; } &.super { @@ -485,7 +486,7 @@ $icon-crown: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' w .member-text { font-size: 24rpx; color: #f9ae3d; - font-weight: $font-weight-semibold; + font-weight: 500; } .remaining-text { @@ -508,7 +509,7 @@ $icon-crown: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' w text { font-size: 28rpx; color: #fff; - font-weight: $font-weight-semibold; + font-weight: 500; } &:active { @@ -543,7 +544,7 @@ $icon-crown: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' w &.active text { color: $uv-primary; - font-weight: $font-weight-semibold; + font-weight: 500; } &:active { diff --git a/src/pages/scenic-list/scenic-list.vue b/src/pages/scenic-list/scenic-list.vue index 38ccd51..be81a8a 100644 --- a/src/pages/scenic-list/scenic-list.vue +++ b/src/pages/scenic-list/scenic-list.vue @@ -411,6 +411,7 @@ function onCardClick(scenic: ScenicItem) { min-height: 100vh; background: $color-background; position: relative; + font-family: 'SourceHanSerifCN', '思源宋体', serif; } /* ====== 固定导航栏 ====== */ @@ -458,7 +459,7 @@ function onCardClick(scenic: ScenicItem) { flex: 1; text-align: center; font-size: $font-size-lg; - font-weight: $font-weight-semibold; + font-weight: 500; color: $color-foreground; } @@ -723,11 +724,11 @@ function onCardClick(scenic: ScenicItem) { text { font-size: $font-size-xs; color: #fff; - font-weight: $font-weight-semibold; + font-weight: 500; } - &.level-5A { background: #EF4444; } - &.level-4A { background: #F59E0B; } + &.level-5A { background: #e53935; } + &.level-4A { background: #f9ae3d; } &.level-3A, &.level-2A { background: $uv-success; } } @@ -747,7 +748,7 @@ function onCardClick(scenic: ScenicItem) { .scenic-name { font-size: $font-size-lg; - font-weight: $font-weight-semibold; + font-weight: 500; color: $color-foreground; flex: 1; margin-right: $spacing-2; @@ -764,20 +765,20 @@ function onCardClick(scenic: ScenicItem) { .price-symbol { font-size: $font-size-sm; - color: $uv-warning; - font-weight: $font-weight-semibold; + color: #e53935; + font-weight: 500; } .price-value { font-size: $font-size-xl; - color: $uv-warning; + color: #e53935; font-weight: $font-weight-bold; } .price-free { font-size: $font-size-base; color: $uv-success; - font-weight: $font-weight-semibold; + font-weight: 500; } /* 营业时间 + 营业状态 同行 */ @@ -948,7 +949,7 @@ function onCardClick(scenic: ScenicItem) { .popup-title { font-size: $font-size-lg; - font-weight: $font-weight-semibold; + font-weight: 500; color: $color-foreground; } @@ -995,7 +996,7 @@ function onCardClick(scenic: ScenicItem) { &.active text { color: $uv-primary; - font-weight: $font-weight-semibold; + font-weight: 500; } } @@ -1019,7 +1020,7 @@ function onCardClick(scenic: ScenicItem) { text { font-size: $font-size-lg; - font-weight: $font-weight-semibold; + font-weight: 500; color: #fff; letter-spacing: 2rpx; } diff --git a/src/styles/_tokens.scss b/src/styles/_tokens.scss index edb4e5f..21880c7 100644 --- a/src/styles/_tokens.scss +++ b/src/styles/_tokens.scss @@ -43,7 +43,6 @@ $font-size-display: 72rpx; $font-weight-normal: 400; $font-weight-medium: 500; -$font-weight-semibold: 600; $font-weight-bold: 700; $line-height-tight: 1.2; diff --git a/src/styles/_utilities.scss b/src/styles/_utilities.scss index c8dbe72..42ff622 100644 --- a/src/styles/_utilities.scss +++ b/src/styles/_utilities.scss @@ -18,7 +18,6 @@ .font-normal { font-weight: $font-weight-normal; } .font-medium { font-weight: $font-weight-medium; } -.font-semibold { font-weight: $font-weight-semibold; } .font-bold { font-weight: $font-weight-bold; } // === TEXT COLOR === diff --git a/src/uni.scss b/src/uni.scss index 26431f4..21cd962 100644 --- a/src/uni.scss +++ b/src/uni.scss @@ -14,9 +14,9 @@ $uv-primary-disabled: #9acafc; $uv-primary-light: #ecf5ff; // Error -$uv-error: #f56c6c; -$uv-error-dark: #e45656; -$uv-error-disabled: #f7b2b2; +$uv-error: #e53935; +$uv-error-dark: #d42d2a; +$uv-error-disabled: #f4a9a7; $uv-error-light: #fef0f0; // Warning @@ -46,13 +46,13 @@ $color-warning: $uv-warning; $color-error: $uv-error; // Typography & Neutrals -$uv-main-color: #303133; -$uv-content-color: #606266; -$uv-tips-color: #909193; -$uv-light-color: #c0c4cc; +$uv-main-color: #111111; +$uv-content-color: #333333; +$uv-tips-color: #666666; +$uv-light-color: #dadbde; $uv-disabled-color: #c8c9cc; $uv-bg-color: #f3f4f6; -$uv-border-color: #dadbde; +$uv-border-color: #eeeeee; // Aliases (backward compat) $color-background: $uv-bg-color; @@ -68,8 +68,8 @@ $gradient-accent: linear-gradient(135deg, #{$uv-primary}, #{$uv-primary-dark}); // === TYPOGRAPHY === -$font-family-display: 'Noto Serif SC', 'STSong', 'SimSun', serif; -$font-family-body: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'HarmonyOS Sans SC', 'Microsoft YaHei', sans-serif; +$font-family-display: 'SourceHanSerifCN', '思源宋体', serif; +$font-family-body: 'SourceHanSerifCN', '思源宋体', -apple-system, 'PingFang SC', sans-serif; $font-family-mono: 'Menlo', 'Monaco', 'Courier New', monospace; $font-size-xs: 20rpx; @@ -77,13 +77,13 @@ $font-size-sm: 24rpx; $font-size-base: 28rpx; $font-size-lg: 32rpx; $font-size-xl: 36rpx; +$font-size-title: 38rpx; $font-size-2xl: 44rpx; $font-size-3xl: 56rpx; $font-size-display: 72rpx; $font-weight-normal: 400; $font-weight-medium: 500; -$font-weight-semibold: 600; $font-weight-bold: 700; $line-height-tight: 1.2;