# 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 小时