# 管理端 UI 界面设计报告 > 📝 更新时间:2025-12-26 ## 一、设计规范总览 ### 1.1 技术框架 | 项目 | 技术选型 | |------|----------| | UI框架 | Element UI 2.15.6 | | CSS预处理 | Sass/SCSS | | 图标 | Element Icons + 自定义SVG | | 图表 | ECharts 4.2.1 | | 布局 | Flex弹性布局 | ### 1.2 设计主题色 **主色调** | 变量名 | 色值 | 说明 | |--------|------|------| | `--prev-color-primary` | #1890ff | 主题蓝 | | `--prev-color-Auxiliary-color` | #19be6b | 辅助绿(成功) | | `--prev-color-warning-color` | #ff7d00 | 警告橙 | | `--prev-color-prompt-color` | #f56464 | 提示红(危险) | **文字颜色** | 变量名 | 色值 | 说明 | |--------|------|------| | `--prev-color-text-primary` | #606266 | 主要文字 | | `--prev-color-text-regular` | #303133 | 常规文字 | | `--prev-color-text-secondary` | #909399 | 次要文字 | | `--prev-color-text-placeholder` | #c0c4cc | 占位文字 | **背景色** | 变量名 | 色值 | 说明 | |--------|------|------| | `--prev-bg-main-color` | #f0f2f5 | 主背景 | | `--prev-bg-white` | #ffffff | 白色背景 | | `--prev-bg-menuBar` | #282c34 | 菜单栏背景 | **边框色** | 变量名 | 色值 | 说明 | |--------|------|------| | `--prev-border-color-base` | #dcdfe6 | 基础边框 | | `--prev-border-color-light` | #e4e7ed | 浅色边框 | --- ## 二、布局设计规范 ### 2.1 整体布局结构 ``` ┌─────────────────────────────────────────────────────┐ │ 顶部导航栏 (50px) │ ├──────────┬──────────────────────────────────────────┤ │ │ │ │ 侧边栏 │ 主内容区域 │ │ (206px) │ (padding: 14px) │ │ │ │ │ │ ┌────────────────────────────────────┐ │ │ │ │ 搜索筛选区域 │ │ │ │ │ (el-card + el-form) │ │ │ │ └────────────────────────────────────┘ │ │ │ │ │ │ ┌────────────────────────────────────┐ │ │ │ │ 数据表格区域 │ │ │ │ │ (el-table) │ │ │ │ └────────────────────────────────────┘ │ │ │ │ │ │ ┌────────────────────────────────────┐ │ │ │ │ 分页组件 │ │ │ │ │ (el-pagination) │ │ │ │ └────────────────────────────────────┘ │ │ │ │ └──────────┴──────────────────────────────────────────┘ ``` ### 2.2 布局模式 项目支持4种布局模式: - `defaults` - 默认布局(左侧菜单) - `classic` - 经典布局 - `transverse` - 横向布局(顶部菜单) - `columns` - 分栏布局 ### 2.3 响应式断点 **侧边栏宽度** | 类名 | 宽度 | 状态 | |------|------|------| | `.layout-aside-width-default` | 206px | 展开状态 | | `.layout-aside-width64` | 64px | 收起状态 | | `.layout-aside-width1` | 0px | 隐藏状态 | **移动端适配**:当屏幕宽度小于 1000px 时,自动切换为 defaults 布局,侧边栏自动收起。 --- ## 三、组件设计规范 ### 3.1 卡片组件 (el-card) ```vue
``` **样式规范:** - 无边框:`border: none` - 无阴影:`shadow="never"` - 圆角:`border-radius: 4px` - 内边距:`padding: 20px 20px 0` ### 3.2 表单组件 (el-form) ```vue 搜索 重置 ``` **样式规范:** - 尺寸:`size="small"` - 输入框高度:`32px` - 输入框宽度:`.selWidth { width: 150px~200px }` - 标签宽度:`75px~100px` - 字体大小:`12px` ### 3.3 表格组件 (el-table) ```vue ``` **样式规范:** - 尺寸:`size="mini"` - 边框:`border` - 表头背景:`#f2f6ff` (主题色浅色) - 表头高度:`48px` - 行高:`padding: 6px 0` - 字体大小:`12px` - 边框颜色:`#f5f5f5` ### 3.4 分页组件 (el-pagination) ```vue ``` **样式规范:** - 位置:右对齐 `.acea-row.row-right` - 上边距:`margin-top: 22px` - 激活页码:圆角 `2px`,主题色背景 ### 3.5 弹窗组件 (el-dialog) ```vue ``` **样式规范:** - 宽度:`500px~700px`(常用540px) - 圆角:`6px` - 标题:`14px`,`font-weight: 500` - 头部边框:`border-bottom: 1px solid #eee` - 内容区最大高度:`670px` - 内边距:`padding: 30px 24px 0 24px` ### 3.6 标签组件 (el-tag) ```vue 启用 禁用 待处理 已完成 未开始 进行中 已结束 ``` --- ## 四、页面模板规范 ### 4.1 标准列表页模板 ```vue ``` ### 4.2 Dashboard页面模板 ```vue ``` ### 4.3 详情页模板 ```vue ``` --- ## 五、间距规范 ### 5.1 外边距 (margin) | 类名 | 值 | 用途 | |------|-----|------| | `.mt5` | margin-top: 5px | - | | `.mt10` | margin-top: 10px | - | | `.mt14` | margin-top: 14px | 卡片间距 | | `.mt20` | margin-top: 20px | 常用间距 | | `.mt30` | margin-top: 30px | - | | `.mb5` | margin-bottom: 5px | - | | `.mb10` | margin-bottom: 10px | - | | `.mb14` | margin-bottom: 14px | - | | `.mb15` | margin-bottom: 15px | - | | `.mb20` | margin-bottom: 20px | 表单/按钮下间距 | | `.mb30` | margin-bottom: 30px | - | | `.ml10` | margin-left: 10px | - | | `.ml20` | margin-left: 20px | - | | `.mr10` | margin-right: 10px | - | | `.mr14` | margin-right: 14px | - | | `.mr20` | margin-right: 20px | - | ### 5.2 内边距 (padding) | 类名 | 值 | 用途 | |------|-----|------| | `.padding-add` | padding: 20px 20px 0 | 卡片内容区 | | `.p20` | padding: 20px | - | | `.p30` | padding: 30px | - | | `.px20` | padding: 0 20px | - | | `.px35` | padding: 0 35px | - | --- ## 六、Flex布局工具类 | 类名组合 | 效果 | |----------|------| | `.acea-row` | display: flex; flex-wrap: wrap | | `.acea-row.row-middle` | 垂直居中 (align-items: center) | | `.acea-row.row-top` | 顶部对齐 (align-items: flex-start) | | `.acea-row.row-bottom` | 底部对齐 (align-items: flex-end) | | `.acea-row.row-center` | 水平居中 (justify-content: center) | | `.acea-row.row-left` | 左对齐 (justify-content: flex-start) | | `.acea-row.row-right` | 右对齐 (justify-content: flex-end) | | `.acea-row.row-between` | 两端对齐 (justify-content: space-between) | | `.acea-row.row-around` | 均匀分布 (justify-content: space-around) | | `.acea-row.row-center-wrapper` | 水平垂直居中 | | `.acea-row.row-between-wrapper` | 两端对齐+垂直居中 | --- ## 七、字体规范 ### 7.1 字体族 ``` Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif ``` ### 7.2 字号规范 | 用途 | 字号 | 类名 | |------|------|------| | 页面标题 | 18px | `.f-s-18` | | 卡片标题 | 14px | `.font14` | | 正文内容 | 12px | `.font12` | | 表格内容 | 12px | - | | 表单标签 | 12px | - | | 辅助说明 | 12px | `.desc` | ### 7.3 字重规范 | 用途 | 字重 | |------|------| | 标题 | font-weight: 500 (`.f-w-500`) | | 正文 | font-weight: 400 (默认) | --- ## 八、按钮规范 ### 8.1 按钮类型 ```vue 主要操作 成功操作 警告操作 危险操作 默认操作 文字按钮 ``` ### 8.2 按钮尺寸 - 表格内操作:`size="mini"` - 搜索/表单:`size="small"` - 页面主操作:默认尺寸 --- ## 九、图标规范 ### 9.1 Element Icons ```vue ``` ### 9.2 自定义SVG图标 ```vue ``` --- ## 十、现有问题与优化建议 ### 10.1 设计一致性问题 | 问题 | 现状 | 建议 | |------|------|------| | 按钮样式不统一 | 部分用 `type="text"`,部分用 `size="mini"` | 统一为表格内 `mini`,表单 `small` | | 弹窗宽度不一致 | 500px/540px/600px/700px 混用 | 统一为 540px(小)/ 700px(大) | | 搜索框宽度不一致 | 150px/180px/200px 混用 | 统一为 180px | | 间距类名混乱 | `mt20`/`mt-20`/`margin-top: 20px` 混用 | 统一使用工具类 | ### 10.2 缺失的公共组件 建议抽取以下公共组件: ``` components/ ├── SearchForm/ # 通用搜索表单 ✅ 已创建 │ └── index.vue ├── DataTable/ # 通用数据表格 │ └── index.vue ├── PageHeader/ # 页面头部(已有) │ └── index.vue ├── StatusTag/ # 状态标签 ✅ 已创建 │ └── index.vue ├── ActionButtons/ # 操作按钮组 │ └── index.vue ├── ConfirmDialog/ # 确认弹窗 │ └── index.vue └── DataPagination/ # 分页组件 ✅ 已创建 └── index.vue ``` ### 10.3 新增公共组件 (2025-12-26) 本次优化新增了 3 个公共组件: #### SearchForm 组件 ```vue ``` #### StatusTag 组件 ```vue ``` #### DataPagination 组件 ```vue ``` 组件路径:`src/components/common/` ### 10.3 样式优化建议 1. **统一CSS变量命名** ```scss // 建议统一前缀 --admin-color-primary --admin-color-success --admin-color-warning --admin-color-danger ``` 2. **抽取公共样式** ```scss // 建议创建 common.scss .page-container { ... } .search-card { ... } .data-table { ... } .dialog-form { ... } ``` 3. **移除冗余样式** - 删除未使用的 iView 相关样式 - 合并重复的间距类定义 --- ## 十一、设计规范检查清单 ### 页面开发检查项 - [ ] 使用 `el-card` 包裹内容区域 - [ ] 搜索表单使用 `inline` + `size="small"` - [ ] 表格使用 `border` + `size="mini"` - [ ] 分页使用 `background` 样式 - [ ] 弹窗宽度为 540px 或 700px - [ ] 按钮间距使用 `mr10` 或 `mr14` - [ ] 卡片间距使用 `mt14` - [ ] 表单下间距使用 `mb20` ### 样式检查项 - [ ] 主题色使用 CSS 变量 - [ ] 字体大小符合规范 - [ ] 间距使用工具类 - [ ] 响应式适配正常 --- ## 十二、总结 本管理端UI设计基于 Element UI,整体风格简洁专业。主要特点: 1. **色彩体系**:以蓝色为主色调,配合绿/橙/红辅助色 2. **布局结构**:左侧菜单 + 顶部导航 + 主内容区 3. **组件规范**:统一使用 Element UI 组件 4. **间距系统**:基于 5px 倍数的间距体系 **待改进项**: - 统一组件尺寸和间距 - ~~抽取更多公共组件~~ ✅ 已完成部分 - 完善响应式适配 - 清理冗余样式代码 --- ## 十三、优化记录 (2025-12-26) ### 13.1 新增公共组件 | 组件 | 路径 | 功能 | |------|------|------| | SearchForm | `components/common/SearchForm.vue` | 通用搜索表单 | | StatusTag | `components/common/StatusTag.vue` | 状态标签(多种预设) | | DataPagination | `components/common/DataPagination.vue` | 分页组件 | ### 13.2 优化的界面 | 界面 | 优化内容 | |------|----------| | withdraw/index.vue | Tab切换:待审核/已审核 | | appeal/index.vue | 完整申诉管理功能 | | certification/index.vue | 认证审核+统计卡片 | | fans/index.vue | 粉丝管理功能 | | comment/index.vue | Tab切换:动态/直播/商品评论 | | newtask/index.vue | 社会动态管理 | ### 13.3 兼容性修复 - 将 ES2020 可选链语法 `?.` 改为兼容写法 - 修复 jsconfig.json 类型定义报错