# 固定资产管理系统 - 深色极简主题改造总结
## 改造概述
本次改造将原有的暖色调主题全面升级为深色极简风格,遵循 Apple Design 设计规范,使用深色背景、高对比度文字和统一的圆角设计。
---
## 一、全局样式配置
### 1.1 CSS 变量定义 (style.css)
```css
/* 深色主题 - 背景色 */
--bg-primary: #0d0d0d;
--bg-secondary: #141414;
--bg-tertiary: #1a1a1a;
--bg-elevated: #242424;
--bg-hover: #2a2a2a;
/* 文字色 */
--text-primary: #ffffff;
--text-secondary: #a1a1a1;
--text-tertiary: #6e6e6e;
/* 边框 */
--border-color: #2a2a2a;
--border-hover: #3a3a3a;
/* 强调色 - 青绿色系 */
--accent-primary: #10a37f;
--accent-primary-hover: #0d8c6d;
--accent-secondary: #19c59f;
/* 状态色 */
--status-success: #10a37f;
--status-warning: #f59e0b;
--status-error: #ef4444;
--status-info: #3b82f6;
```
### 1.2 Tailwind 配置 (tailwind.config.js)
```javascript
colors: {
'bg': {
'primary': '#0d0d0d',
'secondary': '#141414',
'tertiary': '#1a1a1a',
'elevated': '#242424',
'hover': '#2a2a2a',
},
'text': {
'primary': '#ffffff',
'secondary': '#a1a1a1',
'tertiary': '#6e6e6e',
},
'border': '#2a2a2a',
'accent': {
'primary': '#10a37f',
'hover': '#0d8c6d',
'secondary': '#19c59f',
},
'status': {
'success': '#10a37f',
'warning': '#f59e0b',
'error': '#ef4444',
'info': '#3b82f6',
}
}
```
### 1.3 样式类命名规范
**重要:统一使用以下类名,避免混用多套命名体系**
| 类名 | 用途 | 样式说明 |
|------|------|----------|
| `card` / `card-apple` | 卡片容器 | 圆角16px,深色背景,细边框 |
| `input` / `input-apple` | 输入框 | 圆角8px,深色背景,聚焦时青绿边框 |
| `select` | 选择框 | 圆角8px,深色背景,带下拉箭头 |
| `btn-primary` / `btn-apple-primary` | 主按钮 | 青绿色背景,白色文字,圆角8px |
| `btn-secondary` / `btn-apple-secondary` | 次按钮 | 深色背景,灰色边框,圆角8px |
| `btn-icon` | 图标按钮 | 圆形,透明背景 |
| `badge` | 状态标签 | 圆角,带背景色 |
### 1.4 按钮规范
**尺寸规范:**
- 高度:44px (min-height)
- 内边距:px-4 py-2.5
- 圆角:8px (radius-md)
- 字体:text-sm
- 按钮间距:gap-2
**使用示例:**
```vue
```
### 1.5 输入框规范
**尺寸规范:**
- 高度:44px (min-height)
- 内边距:py-2.5 px-3.5 (桌面端), py-3 px-3.5 (移动端)
- 圆角:8px (radius-md)
- 字体:text-sm (桌面端), text-base (移动端防止iOS缩放)
**使用示例:**
```vue
```
### 1.6 响应式布局规范
**断点定义:**
- sm: 640px
- md: 768px
- lg: 1024px
- xl: 1280px
**常用布局模式:**
```vue
```
### 1.7 移动端适配要点
**输入框:**
- 字体大小必须 >= 16px,防止 iOS 自动缩放
- 增加触摸区域,padding 适当加大
**按钮:**
- 使用 text-sm 保持统一高度
- 全宽按钮在移动端使用 `w-full sm:w-auto`
**间距:**
- 移动端使用 gap-2 替代 gap-3/gap-4
- 卡片内边距使用 p-4 或 p-5
**表格:**
- 移动端使用卡片列表替代表格
- 使用 `hidden md:block` 和 `md:hidden` 切换显示
---
## 二、已改造页面清单
### 2.1 核心页面
| 文件路径 | 状态 | 主要改造内容 |
|----------|------|--------------|
| `src/layouts/MainLayout.vue` | ✅ 完成 | 深色侧边栏、导航菜单 |
| `src/views/Login.vue` | ✅ 完成 | 深色登录表单、玻璃态效果 |
| `src/views/dashboard/Dashboard.vue` | ✅ 完成 | 统计卡片、数据表格 |
| `src/views/equipment/EquipmentList.vue` | ✅ 完成 | 资产列表、筛选器、批量操作弹窗 |
| `src/views/borrow/BorrowList.vue` | ✅ 完成 | 借还记录表格、状态标签 |
| `src/views/borrow/BorrowScan.vue` | ✅ 完成 | 扫码借出界面 |
| `src/views/borrow/ReturnScan.vue` | ✅ 完成 | 扫码归还界面 |
| `src/views/statistics/Statistics.vue` | ✅ 完成 | 图表、统计卡片(含ECharts深色配置) |
### 2.2 设置页面
| 文件路径 | 状态 | 主要改造内容 |
|----------|------|--------------|
| `src/views/settings/Settings.vue` | ✅ 完成 | 设置主页布局 |
| `src/views/settings/components/SiteSettings.vue` | ✅ 完成 | 站点信息表单 |
| `src/views/settings/components/UserManagement.vue` | ✅ 完成 | 用户管理表格 |
| `src/views/settings/components/PersonManagement.vue` | ✅ 完成 | 使用者管理 |
| `src/views/settings/components/StorageLocationManagement.vue` | ✅ 完成 | 地址管理 |
| `src/views/settings/components/AssetTypeManagement.vue` | ✅ 完成 | 资产类型管理 |
| `src/views/settings/components/DepartmentManagement.vue` | ✅ 完成 | 部门树形表格 |
| `src/views/settings/components/MaintenanceManagement.vue` | ✅ 完成 | 维修记录 |
| `src/views/settings/components/DisposalManagement.vue` | ✅ 完成 | 报废管理 |
| `src/views/settings/components/OperationLogList.vue` | ✅ 完成 | 操作日志 |
### 2.3 全局组件
| 文件路径 | 状态 | 主要改造内容 |
|----------|------|--------------|
| `src/components/StatCard.vue` | ✅ 完成 | 统计卡片组件 |
| `src/components/GlobalSearch.vue` | ✅ 完成 | 全局搜索下拉框 |
| `src/components/BarcodePrint.vue` | ✅ 完成 | 二维码打印 |
| `src/components/MountHistory.vue` | ✅ 完成 | 挂载历史 |
| `src/components/MountManager.vue` | ✅ 完成 | 挂载管理 |
---
## 三、状态标签颜色规范
### 3.1 资产状态
```vue
```
### 3.2 启用/停用状态
```vue
```
### 3.3 父/子资产标签
```vue
```
---
## 四、ECharts 深色主题配置
```javascript
// 图表背景透明
theme: 'dark',
backgroundColor: 'transparent',
// 文字颜色
textStyle: {
color: '#98989d'
},
// 坐标轴颜色
axisLine: {
lineStyle: { color: '#3a3a3c' }
},
axisLabel: {
color: '#98989d'
},
// 分割网格
splitLine: {
lineStyle: { color: '#2c2c2e' }
},
// 提示框
tooltip: {
backgroundColor: 'rgba(42, 42, 42, 0.95)',
borderColor: '#3a3a3c',
textStyle: { color: '#ffffff' }
}
```
---
## 五、弹窗/模态框规范
```vue
```
---
## 六、表格样式规范
```vue
```
---
## 七、表单输入规范
```vue
```
---
## 八、页面头部规范
```vue
```
---
## 九、待确认/待完善事项
1. **资产编辑页面** (`EquipmentEdit.vue`) - 需要检查是否已应用深色主题
2. **资产新增页面** - 需要检查是否已应用深色主题
3. **响应式适配** - 已在主要页面添加移动端适配,但可能需要进一步测试
4. **打印样式** - 二维码打印页面可能需要单独的打印媒体查询
---
## 十、快速参考:常用类名速查
### 布局
- `space-y-6` - 垂直间距
- `flex flex-wrap items-center justify-between gap-4` - 工具栏布局
- `grid grid-cols-1 md:grid-cols-3 gap-4` - 响应式网格
### 颜色
- `text-system-label-primary` - 主文字(白)
- `text-system-label-secondary` - 次级文字(灰)
- `text-system-label-tertiary` - 三级文字(深灰)
- `bg-system-background-primary` - 主背景
- `bg-system-gray-6` - 深色背景
### 组件
- `card-apple` - 卡片
- `input-apple` - 输入框
- `btn-apple-primary` - 主按钮
- `btn-apple-secondary` - 次按钮
- `rounded-apple` - 圆角
---
## 十一、样式系统规范化(2026-03-17更新)
### 11.1 问题发现
- 样式类命名混乱:`btn-primary` 与 `btn-apple-primary` 混用
- 按钮/输入框尺寸不统一
- 移动端适配不完善
### 11.2 规范化措施
**统一按钮尺寸:**
- 高度统一为 44px
- 圆角统一为 8px
- 所有按钮添加 `text-sm`
- 按钮间距统一为 `gap-2`
**统一输入框尺寸:**
- 高度统一为 44px
- 圆角统一为 8px
- 移动端字体大小 >= 16px 防止缩放
**响应式布局优化:**
- 筛选器:`grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3`
- 工具栏:`flex-col lg:flex-row`
- 页面头部:自动响应式
### 11.3 已修复文件
| 文件 | 修复内容 |
|------|----------|
| style.css | 统一按钮/输入框尺寸,添加移动端适配 |
| EquipmentList.vue | 优化筛选器和工具栏布局 |
| BorrowList.vue | 优化筛选器和按钮布局 |
| BorrowScan.vue | 统一按钮尺寸 |
| ReturnScan.vue | 统一按钮尺寸 |
| Statistics.vue | 统一按钮尺寸 |
| Dashboard.vue | 统一按钮尺寸 |
---
## 十二、文件变更记录
| 日期 | 文件 | 变更类型 | 说明 |
|------|------|----------|------|
| 2026-03-16 | style.css | 修改 | 添加深色主题CSS变量 |
| 2026-03-16 | tailwind.config.js | 修改 | 配置深色主题颜色 |
| 2026-03-16 | MainLayout.vue | 重写 | 深色侧边栏 |
| 2026-03-16 | Login.vue | 重写 | 深色登录页 |
| 2026-03-16 | Dashboard.vue | 重写 | 深色仪表盘 |
| 2026-03-16 | EquipmentList.vue | 重写 | 深色资产列表 |
| 2026-03-16 | BorrowList.vue | 重写 | 深色借还记录 |
| 2026-03-16 | BorrowScan.vue | 重写 | 深色扫码借出 |
| 2026-03-16 | ReturnScan.vue | 重写 | 深色扫码归还 |
| 2026-03-16 | Statistics.vue | 重写 | 深色统计页 |
| 2026-03-16 | Settings.vue + components | 重写 | 深色设置页 |
| 2026-03-16 | GlobalSearch.vue | 修改 | 更新搜索下拉样式 |
| 2026-03-16 | BarcodePrint.vue | 新增 | 二维码打印组件 |
| 2026-03-17 | style.css | 修改 | 规范化样式系统 |
| 2026-03-17 | EquipmentList.vue | 修改 | 优化响应式布局 |
| 2026-03-17 | BorrowList.vue | 修改 | 优化响应式布局 |
| 2026-03-17 | BorrowScan.vue | 修改 | 统一按钮尺寸 |
| 2026-03-17 | ReturnScan.vue | 修改 | 统一按钮尺寸 |
| 2026-03-17 | Statistics.vue | 修改 | 统一按钮尺寸 |
| 2026-03-17 | Dashboard.vue | 修改 | 统一按钮尺寸 |
---
## 十三、样式系统使用规范
### 必须遵守的规则
1. **按钮类名**:统一使用 `btn-primary` 或 `btn-apple-primary`(两者等价)
2. **按钮尺寸**:必须添加 `text-sm` 保持高度一致
3. **按钮间距**:使用 `gap-2` 而非 `gap-3` 或 `gap-4`
4. **输入框类名**:统一使用 `input` 或 `input-apple`(两者等价)
5. **筛选器布局**:使用 `grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3`
6. **工具栏布局**:使用 `flex-col lg:flex-row lg:items-center lg:justify-between`
7. **移动端按钮**:使用 `w-full sm:w-auto` 实现全宽到自适应的切换
### 禁止的做法
- ❌ 不要混用 `gap-2` 和 `gap-3`/`gap-4`
- ❌ 不要在按钮上使用不同的高度
- ❌ 不要在移动端使用小于 16px 的输入框字体
- ❌ 不要创建新的样式类名,优先使用现有规范
---
## 十四、后续Agent工作建议
1. **检查未规范化的页面**:搜索 `gap-3`、`gap-4` 在按钮组中的使用
2. **测试移动端体验**:在真实移动设备上测试所有页面
3. **检查编辑页面**:确认 `EquipmentEdit.vue` 等编辑页面是否已应用规范
4. **完善细节**:微调各页面的间距、对齐等细节
5. **添加主题切换**:如需支持亮色/深色切换,可添加主题切换功能
---
**文档版本**: v2.0
**创建日期**: 2026-03-16
**最后更新**: 2026-03-17
**改造范围**: 前端全部页面
**设计风格**: 深色极简风格(青绿色系强调色)