# 🖥️ 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
{{ row.status === 1 ? '启用' : '停用' }}
编辑
删除
```
### 搜索表单
```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*