fix(theme): 修 hover 颜色不正确 - 干掉硬编码老蓝 + fallback 双重失效

核心问题 (按影响面排序):

1. Login.vue: login-btn hover 是硬编码 Tailwind blue-800 #1e40af
   跟主色 #007A95 青蓝完全不同色系, hover 突变
   - 改成 var(--brand-primary-deep) (#004858 暗青蓝)

2. 14 个页面写了 :deep(.el-button--primary:hover) { background:
   var(--brand-primary-deep, var(--brand-primary)) } — 第二参数
   fallback 让 hover 退化成主色 (不变深), 视觉上'按钮没反应'
   - 删第二参数, 直接 var(--brand-primary-deep)

3. AdminLayout: 菜单激活背景硬编码 #1890ff (Ant 老蓝),
   跟青蓝主题对比突兀
   - 改成 var(--brand-primary)

4. 17 处 .breadcrumb a:hover / .hint-link:hover / el-button.is-link:hover
   同样 fallback 双重失效问题, 删 fallback

5. 其余硬编码老蓝 (#1890ff / #409eff) 在:
   - OssFileUploader / OssImageUploader / IdCardUploader (upload hover border)
   - Login.vue (modal-btn, accent-color, user-type-item hover)
   - doctor/Account.vue (breadcrumb link, 章节左边竖线)
   - ManagerProjectsAssign.vue (合同链接)
   - PublicityDetail.vue (ann-menu hover)
   全部换成 var(--brand-primary) / var(--brand-primary-deep)

6. 修 PublicityDetail.vue 注释错误:
   原: // 深色用品牌主色 (#1890ff), ...
   正: 二维码 dark 是 #1f2937 (深灰), 不是主色

总计 24 个文件
grep '#1890ff|#409eff|#096dd9|#0050b3|#1e40af|#1d4ed8' 已 0 命中
This commit is contained in:
郭庆泰
2026-08-22 21:22:17 +08:00
parent d9316e87d0
commit 3c23222841
25 changed files with 62 additions and 60 deletions
+4 -2
View File
@@ -495,7 +495,9 @@ a { color: inherit; text-decoration: none; }
font-size: 14px;
line-height: 1.9;
color: rgba(255, 255, 255, 0.85);
max-width: 70%;
max-width: 100%;
padding-bottom: 50px;
}
.hero-cta {
@@ -805,5 +807,5 @@ a { color: inherit; text-decoration: none; }
font-size: 12px;
color: rgba(255, 255, 255, 0.4);
}
</style>
+11 -11
View File
@@ -268,7 +268,7 @@ watch(showQr, async (v) => {
qrUrl.value = await QRCode.toDataURL(shareUrl.value, {
width: 260,
margin: 2,
// 深色用品牌主色 (#1890ff), 让二维码更精致
// 深色用品牌主色 (#1f2937 深灰), 让二维码更精致
color: { dark: '#1f2937', light: '#ffffff' },
errorCorrectionLevel: 'H'
})
@@ -642,7 +642,7 @@ onBeforeUnmount(() => {
padding: 14px;
border-radius: 6px;
margin-bottom: 16px;
border-left: 3px solid var(--brand-primary, #1890ff);
border-left: 3px solid var(--brand-primary);
}
.card-label { font-size: 12px; color: #909399; margin-bottom: 4px; }
.card-value { font-size: 15px; font-weight: 600; color: #1a1a1a; line-height: 1.4; }
@@ -660,13 +660,13 @@ onBeforeUnmount(() => {
margin-bottom: 4px;
transition: all 0.2s;
}
.ann-menu-item:hover { background: #f5f7fa; color: var(--brand-primary, #1890ff); }
.ann-menu-item.active { background: #e6f4ff; color: var(--brand-primary, #1890ff); font-weight: 600; }
.ann-menu-item:hover { background: #f5f7fa; color: var(--brand-primary); }
.ann-menu-item.active { background: #e6f4ff; color: var(--brand-primary); font-weight: 600; }
.ann-menu-item .dot {
width: 6px; height: 6px; border-radius: 50%;
background: #dcdfe6;
}
.ann-menu-item.active .dot { background: var(--brand-primary, #1890ff); }
.ann-menu-item.active .dot { background: var(--brand-primary); }
.ann-menu-empty { color: #c0c4cc; font-size: 13px; padding: 12px 16px; }
.detail-main { min-height: 480px; min-width: 0; }
@@ -756,13 +756,13 @@ onBeforeUnmount(() => {
/* primary: 实色品牌主蓝 (与页面 filter-btn 同风格) */
.action-btn.primary {
background: var(--brand-primary, #1890ff);
background: var(--brand-primary);
color: #fff;
border-color: var(--brand-primary, #1890ff);
border-color: var(--brand-primary);
}
.action-btn.primary:hover:not(:disabled) {
background: var(--brand-primary-deep, #096dd9);
border-color: var(--brand-primary-deep, #096dd9);
background: var(--brand-primary-deep);
border-color: var(--brand-primary-deep);
}
/* 立即报名 / 分享二维码 都是同款 primary (沉稳商务风, 单色) */
@@ -1285,7 +1285,7 @@ a { color: inherit; text-decoration: none; }
.qr-brand {
text-align: center;
font-size: 12px;
color: var(--brand-primary, #1890ff);
color: var(--brand-primary);
letter-spacing: 2px;
margin-top: 10px;
padding-top: 8px;
@@ -1296,7 +1296,7 @@ a { color: inherit; text-decoration: none; }
position: absolute;
width: 14px;
height: 14px;
border: 2px solid var(--brand-primary, #1890ff);
border: 2px solid var(--brand-primary);
}
.qr-corner-tl { top: 0; left: 0; border-right: 0; border-bottom: 0; border-top-left-radius: 12px; }
.qr-corner-tr { top: 0; right: 0; border-left: 0; border-bottom: 0; border-top-right-radius: 12px; }