# CRMEB 风格设计系统实现路线图

## 📋 概述

本文档是实现 CRMEB 风格设计系统的完整路线图，包含详细的步骤、优先级和检查清单。

---

## 📊 项目进度概览

```
完成度: ████████░░ 80%

✅ 已完成 (80%)
  ✓ uni.scss 设计变量系统 (150+ 变量)
  ✓ 样式规范文档 (STYLE_SPECIFICATION.md)
  ✓ 页面结构规范文档 (PAGE_STRUCTURE_SPECIFICATION.md)
  ✓ 组件规范文档 (COMPONENT_SPECIFICATION.md)
  ✓ AdminLayout 多布局支持代码 (待集成)
  ✓ 列表页、表单页、详情页模板代码 (待实现)

🔄 进行中 (0%)
  - 基础组件库开发 (Button, Input, Select, 等)
  - 容器组件开发 (Card, Modal, Drawer, 等)
  - 数据展示组件 (Table, List, 等)

⏳ 待开始 (20%)
  - 表单组件开发
  - 反馈组件开发
  - 导航组件开发
  - 页面模板集成
  - 测试和优化
```

---

## 🎯 实现阶段

### 第 1 阶段: 基础组件库 (1-2 周)

**目标**: 实现所有基础交互组件

#### 1.1 基础输入组件

| 组件       | 状态 | 优先级 | 估时 | 说明                     |
| ---------- | ---- | ------ | ---- | ------------------------ |
| Button     | ❌   | P0     | 2h   | 按钮，支持多种类型和尺寸 |
| Input      | ❌   | P0     | 3h   | 文本输入框，支持验证     |
| Textarea   | ❌   | P1     | 2h   | 多行文本输入             |
| Select     | ❌   | P0     | 4h   | 下拉选择器               |
| Checkbox   | ❌   | P1     | 2h   | 复选框                   |
| Radio      | ❌   | P1     | 2h   | 单选按钮                 |
| Toggle     | ❌   | P1     | 2h   | 开关切换                 |
| DatePicker | ❌   | P2     | 4h   | 日期选择器               |

#### 1.2 检查清单

- [ ] 创建 `components/basic/` 目录
- [ ] 实现 Button 组件
  - [ ] 支持 4 种类型 (primary/default/danger/success)
  - [ ] 支持 3 种尺寸 (sm/md/lg)
  - [ ] 支持禁用和加载状态
  - [ ] 编写单元测试
  - [ ] 编写文档
- [ ] 实现 Input 组件
  - [ ] 支持 4 种类型 (text/password/number/email)
  - [ ] 支持 clearable 清空
  - [ ] 支持错误状态显示
  - [ ] 编写单元测试
- [ ] 实现 Select 组件
  - [ ] 支持单选
  - [ ] 支持搜索
  - [ ] 支持多选（可选）
- [ ] 实现其他基础组件

---

### 第 2 阶段: 容器组件库 (1 周)

**目标**: 实现所有布局和容器组件

#### 2.1 容器组件

| 组件       | 状态 | 优先级 | 估时 | 说明       |
| ---------- | ---- | ------ | ---- | ---------- |
| Card       | ❌   | P0     | 2h   | 卡片容器   |
| Modal      | ❌   | P0     | 3h   | 模态框     |
| Drawer     | ❌   | P1     | 3h   | 抽屉侧边栏 |
| Collapse   | ❌   | P1     | 3h   | 折叠面板   |
| Tabs       | ❌   | P1     | 3h   | 选项卡     |
| Pagination | ❌   | P0     | 2h   | 分页器     |

#### 2.2 检查清单

- [ ] 创建 `components/container/` 目录
- [ ] 实现 Card 组件
  - [ ] 支持 header/body/footer 插槽
  - [ ] 支持 3 种阴影等级
  - [ ] 编写文档
- [ ] 实现 Modal 组件
  - [ ] 支持确认和取消按钮
  - [ ] 支持点击外部关闭
  - [ ] 支持背景点击事件
- [ ] 实现 Pagination 组件
  - [ ] 支持前后翻页
  - [ ] 支持跳页输入
  - [ ] 支持页码显示

---

### 第 3 阶段: 表单组件库 (1 周)

**目标**: 实现完整的表单系统

#### 3.1 表单组件

| 组件       | 状态 | 优先级 | 估时 | 说明         |
| ---------- | ---- | ------ | ---- | ------------ |
| Form       | ❌   | P0     | 2h   | 表单容器     |
| FormItem   | ❌   | P0     | 2h   | 表单项       |
| FormGroup  | ❌   | P1     | 2h   | 表单组       |
| Validator  | ❌   | P0     | 4h   | 表单验证器   |
| Upload     | ❌   | P1     | 5h   | 文件上传     |
| RichEditor | ❌   | P2     | 6h   | 富文本编辑器 |

#### 3.2 检查清单

- [ ] 创建 `components/form/` 目录
- [ ] 实现 Form 和 FormItem 组件
  - [ ] 支持表单验证
  - [ ] 支持错误显示
  - [ ] 支持动态字段
- [ ] 实现 Validator 验证器
  - [ ] 支持内置验证规则 (required/email/url/等)
  - [ ] 支持自定义验证
  - [ ] 支持异步验证
- [ ] 实现 Upload 组件
  - [ ] 支持单文件上传
  - [ ] 支持多文件上传
  - [ ] 显示上传进度

---

### 第 4 阶段: 数据展示组件库 (1.5 周)

**目标**: 实现所有数据展示组件

#### 4.1 数据展示组件

| 组件     | 状态 | 优先级 | 估时 | 说明     |
| -------- | ---- | ------ | ---- | -------- |
| Table    | ❌   | P0     | 6h   | 数据表格 |
| List     | ❌   | P0     | 3h   | 列表     |
| Tree     | ❌   | P1     | 5h   | 树形列表 |
| Tag      | ❌   | P1     | 2h   | 标签     |
| Badge    | ❌   | P1     | 1h   | 徽章     |
| Avatar   | ❌   | P2     | 1h   | 头像     |
| Progress | ❌   | P2     | 2h   | 进度条   |

#### 4.2 检查清单

- [ ] 创建 `components/data/` 目录
- [ ] 实现 Table 组件
  - [ ] 支持列配置
  - [ ] 支持排序
  - [ ] 支持筛选
  - [ ] 支持行选择
  - [ ] 支持虚拟滚动（可选）
  - [ ] 支持自定义单元格模板
- [ ] 实现 List 组件
  - [ ] 支持列表项模板
  - [ ] 支持虚拟滚动
  - [ ] 支持无限滚动加载
- [ ] 实现 Tree 组件
  - [ ] 支持树形展开/折叠
  - [ ] 支持节点选择
  - [ ] 支持搜索过滤

---

### 第 5 阶段: 反馈和导航组件 (1 周)

**目标**: 实现反馈和导航相关组件

#### 5.1 反馈组件

| 组件    | 状态 | 优先级 | 估时 | 说明         |
| ------- | ---- | ------ | ---- | ------------ |
| Message | ❌   | P0     | 2h   | 消息提示     |
| Alert   | ❌   | P0     | 2h   | 警告框       |
| Tooltip | ❌   | P1     | 2h   | 提示框       |
| Loading | ❌   | P0     | 2h   | 加载中指示器 |
| Empty   | ❌   | P1     | 1h   | 空状态       |
| Error   | ❌   | P1     | 1h   | 错误状态     |

#### 5.2 导航组件

| 组件       | 状态 | 优先级 | 估时 | 说明   |
| ---------- | ---- | ------ | ---- | ------ |
| Breadcrumb | ❌   | P1     | 2h   | 面包屑 |
| Menu       | ❌   | P1     | 3h   | 菜单   |
| Navbar     | ❌   | P2     | 3h   | 导航栏 |
| Sidebar    | ❌   | P2     | 4h   | 侧边栏 |

#### 5.3 检查清单

- [ ] 创建 `components/feedback/` 目录
- [ ] 创建 `components/navigation/` 目录
- [ ] 实现 Message 组件
  - [ ] 支持 info/success/warning/error 四种类型
  - [ ] 支持自动关闭
  - [ ] 支持手动关闭
  - [ ] 支持队列显示
- [ ] 实现 Loading 组件
  - [ ] 支持全屏加载
  - [ ] 支持局部加载
  - [ ] 支持自定义文案
- [ ] 实现 Breadcrumb 组件
  - [ ] 支持链接导航
  - [ ] 支持当前页高亮

---

### 第 6 阶段: 页面模板和集成 (1.5 周)

**目标**: 将组件集成到页面模板中

#### 6.1 页面模板

| 页面类型      | 状态 | 优先级 | 任务               |
| ------------- | ---- | ------ | ------------------ |
| ListPage      | ❌   | P0     | 创建列表页面模板   |
| FormPage      | ❌   | P0     | 创建表单页面模板   |
| DetailPage    | ❌   | P0     | 创建详情页面模板   |
| DashboardPage | ❌   | P1     | 创建仪表板页面模板 |

#### 6.2 检查清单

- [ ] 创建 `pages/templates/` 目录
- [ ] 实现 ListPage 模板
  - [ ] 集成搜索表单
  - [ ] 集成数据表格
  - [ ] 集成分页器
  - [ ] 集成批量操作
- [ ] 实现 FormPage 模板
  - [ ] 集成表单验证
  - [ ] 集成动态字段
  - [ ] 集成文件上传
  - [ ] 实现新增/编辑模式切换
- [ ] 实现 DetailPage 模板
  - [ ] 显示详情卡片
  - [ ] 显示操作日志
  - [ ] 实现编辑/删除按钮
- [ ] 迁移现有页面到新模板
  - [ ] system-info.uvue
  - [ ] 其他管理页面

---

### 第 7 阶段: AdminLayout 多布局支持 (1 周)

**目标**: 增强 AdminLayout 支持 CRMEB 的 4 种布局模式

#### 7.1 任务列表

| 任务                 | 状态 | 优先级 | 说明             |
| -------------------- | ---- | ------ | ---------------- |
| 增强 AdminLayout     | ❌   | P0     | 添加布局模式支持 |
| 创建 LayoutProvider  | ❌   | P0     | 布局状态管理     |
| 创建 LayoutSwitcher  | ❌   | P1     | 布局切换组件     |
| 创建 Defaults 布局   | ❌   | P0     | 默认布局实现     |
| 创建 Classic 布局    | ❌   | P1     | 经典布局实现     |
| 创建 Transverse 布局 | ❌   | P1     | 横向布局实现     |
| 创建 Columns 布局    | ❌   | P1     | 多栏布局实现     |

#### 7.2 检查清单

- [ ] 分析 CRMEB 的 4 种布局模式
- [ ] 设计 LayoutProvider 状态结构
- [ ] 增强 AdminLayout.uvue
  - [ ] 添加 layoutMode prop
  - [ ] 实现条件渲染 (v-if)
  - [ ] 实现样式切换
- [ ] 实现 4 种布局模式
  - [ ] Defaults: 经典导航栏 + 左侧菜单
  - [ ] Classic: 混合导航栏 + 顶部菜单
  - [ ] Transverse: 顶部菜单 + 无侧边栏
  - [ ] Columns: 三栏布局
- [ ] 创建布局切换界面
- [ ] 测试所有布局模式

---

### 第 8 阶段: 样式规范化 (2 周)

**目标**: 规范化现有页面的样式

#### 8.1 任务列表

| 任务             | 状态 | 优先级 | 说明                         |
| ---------------- | ---- | ------ | ---------------------------- |
| 审查现有页面     | ❌   | P0     | 列举所有管理页面             |
| 迁移到新设计系统 | ❌   | P0     | 替换硬编码样式为变量         |
| 迁移到新组件     | ❌   | P0     | 替换原生 input 为 Input 组件 |
| 规范化布局       | ❌   | P0     | 统一页面结构                 |
| 优化响应式       | ❌   | P1     | 改进移动端体验               |

#### 8.2 检查清单

- [ ] 列举所有 admin 页面
- [ ] 为每个页面制定迁移计划
- [ ] 逐页迁移
  - [ ] 替换颜色为 $color-\* 变量
  - [ ] 替换间距为 $space-\* 变量
  - [ ] 替换原生组件为自定义组件
  - [ ] 添加响应式样式
  - [ ] 测试功能完整性
- [ ] 定期审查和优化

---

## 📈 时间表

### 周次规划

| 周     | 阶段        | 主要任务                       | 交付物             |
| ------ | ----------- | ------------------------------ | ------------------ |
| W1     | 基础组件    | Button, Input, Select          | 3 个组件 + 文档    |
| W2     | 基础组件    | Checkbox, Radio, Toggle        | 3 个组件           |
| W3     | 容器组件    | Card, Modal, Pagination        | 3 个组件           |
| W4     | 表单组件    | Form, FormItem, Validator      | 表单系统           |
| W5     | 数据展示    | Table, List, Tree              | 3 个组件           |
| W6     | 反馈导航    | Message, Alert, Breadcrumb     | 反馈系统           |
| W7     | 页面模板    | ListPage, FormPage, DetailPage | 3 个页面模板       |
| W8     | AdminLayout | 多布局支持                     | 增强的 AdminLayout |
| W9-W10 | 样式规范化  | 迁移现有页面                   | 规范化的所有页面   |

---

## ✅ 验收标准

### 组件验收

每个组件必须满足以下条件：

- [ ] 功能完整（所有 Props 和 Events 工作正常）
- [ ] 样式正确（使用 uni.scss 变量，响应式设计）
- [ ] 文档完整（API 文档，使用示例，截图）
- [ ] 单元测试通过（测试所有状态和边界情况）
- [ ] 代码审查通过（代码质量检查）
- [ ] 无浏览器兼容性问题
- [ ] 无控制台错误和警告

### 页面验收

每个页面必须满足以下条件：

- [ ] 使用新设计系统（uni.scss 变量）
- [ ] 使用新组件（不含原生 HTML 元素）
- [ ] 样式一致（遵循设计规范）
- [ ] 响应式设计（移动/平板/桌面适配）
- [ ] 功能完整（原有功能保留）
- [ ] 无样式回退（不使用硬编码值）
- [ ] 文档更新（页面结构说明）

### 项目验收

整个项目必须满足以下条件：

- [ ] 所有 30+ 个组件已实现并通过验收
- [ ] 所有 admin 页面已迁移到新设计系统
- [ ] 设计系统文档完整
- [ ] AdminLayout 支持 4 种布局模式
- [ ] 无未解决的 Bug
- [ ] 性能指标符合要求（首屏加载 < 3s）

---

## 🚦 优先级说明

| 级别 | 说明                   | 完成期限 |
| ---- | ---------------------- | -------- |
| P0   | 必须完成，影响核心功能 | 本周     |
| P1   | 应该完成，提升用户体验 | 本月     |
| P2   | 可以完成，增加高级功能 | 下个月   |

---

## 📞 问题跟踪

在实现过程中遇到的问题：

### 已解决

- [x] 系统信息页面侧边栏不显示 → 修复文件编码和菜单结构
- [x] 设计变量系统缺失 → 创建 uni.scss 包含 150+ 变量

### 未解决

- [ ] 虚拟滚动性能优化（Table/List 大数据）
- [ ] 富文本编辑器集成方案
- [ ] PDF 导出功能

---

## 📚 参考资源

- CRMEB 官方文档: https://crmeb.net/
- Uni-App-X 文档: https://uniapp.dcloud.net.cn/
- Element UI 组件库: https://element.eleme.cn/
- Ant Design: https://ant.design/

---

## 📝 文档维护

本文档的维护计划：

- 每周更新进度（周五）
- 每完成一个阶段更新检查清单
- 每发现问题添加到"问题跟踪"
- 每个月审查整体进度和调整计划

---

## 🎉 成功标志

当以下条件全部满足时，项目被认为成功：

1. ✅ 所有 30+ 个组件已实现并文档完整
2. ✅ 所有 admin 页面都使用新设计系统
3. ✅ AdminLayout 支持 4 种布局模式
4. ✅ 设计系统文档维护在 docs/ 目录
5. ✅ 无未解决的关键 Bug
6. ✅ 用户反馈满意度 > 90%

---

**文档版本**: 1.0  
**创建日期**: 2026-01-31  
**最后更新**: 2026-01-31  
**维护者**: AI Assistant

---

## 快速开始

选择一个 P0 优先级的组件（如 Button），按照以下步骤开始实现：

1. 在 `components/basic/` 创建 `Button.uvue`
2. 按照 COMPONENT_SPECIFICATION.md 编写代码
3. 编写单元测试
4. 编写文档
5. 提交审查

预计用时: 2 小时
