# 🖥️ UI 规范 — 管理端(Case-Database-Frontend-admin) > 管理端设计规范。AI 在 `Case-Database-Frontend-admin/` 中新建页面或组件时参考本文档。 > 核心原则:**桌面优先、功能完整、Element Plus 标准优先** --- ## 1. 设计系统 | 项目 | 选型 | |---|---| | UI 组件库 | Element Plus(优先使用标准组件,不自定义重复造轮子) | | CSS 方案 | Tailwind CSS(辅助布局,不覆盖 Element Plus 样式) | | 图标 | Element Plus Icons(`@element-plus/icons-vue`) | | 字体 | 系统字体栈 | | 布局框架 | 侧边导航 + 顶部栏 + 内容区(标准后台布局) | --- ## 2. 色彩系统 ```css :root { /* 主色(Element Plus 默认蓝) */ --el-color-primary: #409EFF; /* 管理端背景层级 */ --admin-bg-sidebar: #001529; /* 深色侧边栏 */ --admin-bg-header: #FFFFFF; /* 白色顶栏 */ --admin-bg-content: #F0F2F5; /* 内容区浅灰 */ --admin-bg-card: #FFFFFF; /* 卡片/表格白 */ /* 状态色 */ --status-active: #52C41A; /* 启用/正常 */ --status-inactive: #D9D9D9; /* 停用/禁用 */ --status-pending: #FAAD14; /* 待处理 */ --status-danger: #FF4D4F; /* 危险/错误 */ } ``` Element Plus 主题色配置(`src/styles/element-vars.scss`): ```scss @forward 'element-plus/theme-chalk/src/common/var.scss' with ( $colors: ( 'primary': ('base': #409EFF), ) ); ``` --- ## 3. 布局规范 ### 整体框架 ``` ┌─────────────────────────────────────────────────────────┐ │ 顶栏(60px 固定):Logo + 面包屑 + 用户信息 + 通知 │ ├──────────────┬──────────────────────────────────────────┤ │ │ 内容区(padding: 16px) │ │ 侧边栏 │ ┌──────────────────────────────────────┐ │ │ (220px) │ │ 页面标题 + 操作按钮(顶部工具栏) │ │ │ │ ├──────────────────────────────────────┤ │ │ 折叠后 │ │ 主内容(表格/表单/卡片) │ │ │ → 64px │ │ │ │ │ │ └──────────────────────────────────────┘ │ └──────────────┴──────────────────────────────────────────┘ ``` ### 响应式 管理端以桌面端为主,但需支持: - `≥ 1280px`:完整布局(侧边栏展开) - `1024px ~ 1279px`:侧边栏折叠(64px 图标模式) - `< 1024px`:侧边栏收起为抽屉(移动端兜底) --- ## 4. Element Plus 组件使用规范 ### 数据表格(el-table) ```vue ``` ### 搜索表单 ```vue 搜索 重置 ``` ### 弹窗表单 ```vue ``` 规则: - 弹窗宽度:简单表单 500px,复杂表单 700-900px - 弹窗关闭时必须调用 `formRef.value?.resetFields()` - 提交按钮加 `:loading` 防重复提交 --- ## 5. 页面标准结构 每个管理端页面遵循以下结构: ```vue ``` --- ## 6. 间距规范 | 场景 | 间距 | |---|---| | 内容区内边距 | `p-4`(16px) | | 卡片间距 | `mb-4`(16px) | | 表单项间距 | Element Plus 默认(`el-form` 管理) | | 操作按钮间距 | `ml-2`(8px,同行按钮) | --- ## 7. 状态规范 | 状态 | 实现方式 | |---|---| | 加载中 | `v-loading="loading"`(`el-table`、`el-card`) | | 空状态 | `el-empty`(有描述、有图) | | 错误状态 | `el-result` type="error"(提供重试按钮) | | 操作成功 | `ElMessage.success('操作成功')` | | 操作失败 | `ElMessage.error(error.message)` | | 危险操作确认 | `el-popconfirm`(行内)/ `ElMessageBox.confirm`(批量) | --- *最后更新: 2026-02-26*