Files
medical-mall/docs/admin/IMPLEMENTATION_ROADMAP.md
2026-02-02 20:07:37 +08:00

457 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 小时