# 硬编码颜色全局修复报告 ## 📋 问题描述 **用户反馈**: 存储配置页面的"当前使用"标签仍然显示为蓝色,未被紫色主题覆盖。 **根本原因**: - 多个页面存在硬编码颜色值(`color="blue"`、`#1677FF`、`#52C41A` 等) - 组件直接使用旧的 Ant Design 默认颜色 - 缺少统一的颜色管理系统 - Tag 组件未配置主题 Token --- ## 🔍 全局代码扫描 扫描命令: ```bash grep -rn "color=\"blue\"|#1677FF|#52C41A|#FF4D4F" src/**/*.tsx ``` **发现问题文件**: 1. ✅ `src/pages/Storage/index.tsx` - 3 处硬编码 2. ✅ `src/pages/Analytics/index.tsx` - 2 处硬编码 3. ✅ `src/pages/Upload/index.tsx` - 2 处硬编码 --- ## ✅ 解决方案 ### 1. 创建颜色常量文件 **新建文件**: `src/theme/colors.ts` **内容结构**: ```typescript // 主色系 - 深紫色系 export const PRIMARY_COLORS = { PRIMARY: '#5B21B6', PRIMARY_HOVER: '#6D28D9', PRIMARY_LIGHT: '#7C3AED', PRIMARY_LIGHTER: '#8B5CF6', PRIMARY_DARK: '#4C1D95', } // 功能色系 export const FUNCTIONAL_COLORS = { SUCCESS: '#10B981', WARNING: '#F59E0B', ERROR: '#EF4444', INFO: '#7C3AED', } // Tag 颜色 export const TAG_COLORS = { PRIMARY: 'purple', SUCCESS: 'green', WARNING: 'orange', ERROR: 'red', } ``` **优势**: - ✅ 统一管理所有颜色 - ✅ 易于维护和更新 - ✅ TypeScript 类型安全 - ✅ 避免魔法数字 - ✅ 支持主题切换 --- ### 2. 修复 Storage 页面 **文件**: `src/pages/Storage/index.tsx` **修改内容**: #### 修改前: ```tsx {source.isActive && 当前使用} ``` #### 修改后: ```tsx import { FUNCTIONAL_COLORS, TAG_COLORS } from '../../theme/colors'; {source.isActive && 当前使用} ``` **修复项**: - ✅ Tag 标签从蓝色改为紫色 - ✅ 成功图标从 `#52C41A` 改为 `#10B981` - ✅ 错误图标从 `#FF4D4F` 改为 `#EF4444` --- ### 3. 修复 Analytics 页面 **文件**: `src/pages/Analytics/index.tsx` **修改内容**: #### 修改前: ```tsx ``` #### 修改后: ```tsx import { FUNCTIONAL_COLORS, PRIMARY_COLORS } from '../../theme/colors'; ``` **修复项**: - ✅ 本月上传数值从旧绿色改为新绿色 - ✅ 本月下载数值从蓝色改为深紫色 --- ### 4. 修复 Upload 页面 **文件**: `src/pages/Upload/index.tsx` **修改内容**: #### 修改前: ```tsx ``` #### 修改后: ```tsx import { FUNCTIONAL_COLORS, PRIMARY_COLORS } from '../../theme/colors'; ``` **修复项**: - ✅ 上传图标从中紫色改为深紫色(#5B21B6) - ✅ 成功图标从旧绿色改为新绿色 --- ### 5. 添加 Tag 组件主题配置 **文件**: `src/theme/tokens.ts` **新增内容**: ```typescript componentTokens = { // ... 其他组件配置 Tag: { defaultBg: '#F5F3FF', // 淡紫色背景 defaultColor: '#5B21B6', // 深紫色文字 }, } ``` **效果**: - ✅ Tag 组件默认使用紫色主题 - ✅ 与整体设计风格统一 --- ## 📊 修复统计 ### 文件修改统计 | 文件 | 修改行数 | 硬编码修复数 | 新增导入 | |------|---------|-------------|---------| | `colors.ts` | +120 | - | 新建文件 | | `Storage/index.tsx` | ~10 | 3 处 | 1 行 | | `Analytics/index.tsx` | ~6 | 2 处 | 1 行 | | `Upload/index.tsx` | ~8 | 2 处 | 1 行 | | `tokens.ts` | +5 | - | - | | **总计** | **~149** | **7 处** | **3 行** | ### 颜色映射表 | 旧颜色 | 新颜色 | 用途 | 修复数量 | |--------|--------|------|---------| | `color="blue"` | `color="purple"` | Tag 标签 | 1 处 | | `#1677FF` | `#5B21B6` | 主色/统计数值 | 1 处 | | `#52C41A` | `#10B981` | 成功色/图标 | 3 处 | | `#FF4D4F` | `#EF4444` | 错误色/图标 | 1 处 | | `#7C3AED` | `#5B21B6` | 上传图标 | 1 处 | --- ## 🎨 颜色常量系统 ### 文件结构 ``` src/theme/ ├── colors.ts # 颜色常量(新建) ├── tokens.ts # 主题 Token 配置 └── index.ts # 主题导出 ``` ### 使用示例 ```typescript // 导入颜色常量 import { FUNCTIONAL_COLORS, PRIMARY_COLORS, TAG_COLORS } from '@/theme/colors'; // 按钮颜色