# 清道夫App UI还原开发计划 > 开发目标:按原型UI样式还原小程序,同时做好小程序适配 > 计划时间:约12-15个工作日 > 基于:UI还原开发文档.md 及用户确认意见 --- ## 一、小程序适配原则(贯穿全程) ### 1.1 样式适配 - **单位**:使用 `rpx` 为主(1px 细边框除外),设计稿基准 750rpx - **选择器**:不使用 `*` 通用选择器,不使用 `::before`/`::after` 在 view 外元素 - **渐变**:使用 `linear-gradient()` 需测试真机兼容性 - **阴影**:小程序 `box-shadow` 支持,但避免过大模糊值 - **边框**:优先使用 `border` 而非 `box-shadow` 模拟边框 - **圆角**:使用 `rpx` 单位,如 `24rpx` 对应 12px ### 1.2 组件适配 - **自定义组件**:所有组件使用 `defineProps`/`defineEmits` 标准写法 - **插槽**:使用 Vue3 具名插槽 `#slotName` - **事件**:使用 `@click` 而非 `onclick`,禁止 `e.stopPropagation()` 滥用 - **图片**:使用 `image` 标签而非 `img`,设置 `mode="aspectFill"` 等 - **列表**:长列表使用 `scroll-view` 或 `uni-list`,避免渲染过多节点 ### 1.3 性能适配 - **包大小**:单包不超过 2MB,总包不超过 20MB - **分包**:已配置 subPackages,保持现状 - **图片资源**:图标使用 uni-icons 字体,避免过多图片资源 - **懒加载**:非首屏组件使用 `v-if` 延迟渲染 - **动画**:避免复杂 CSS 动画,使用简单 `transition` ### 1.4 兼容性 - **基础库**:兼容微信基础库 2.19.0+ - **刘海屏**:使用 `safe-area-inset-bottom` 适配底部安全区 - **深色模式**:暂不适配,保持浅色主题 --- ## 二、开发阶段计划 ### 阶段一:基础样式系统(第1-2天) **目标**:统一颜色、字体、间距、组件基础样式 | 任务 | 文件 | 具体工作 | |------|------|---------| | 1.1 | `src/styles/variables.scss` | 新增渐变变量、统一颜色值与原型一致 | | 1.2 | `src/styles/global.scss` | 修改按钮样式为渐变、表单聚焦效果、列表点击效果 | | 1.3 | `src/styles/tailwind.css` | 确认 WXSS 兼容,补充自定义工具类 | | 1.4 | `src/components/uni-card/uni-card.vue` | 移除边框,使用阴影;调整 padding | | 1.5 | `src/components/common/TopBar.vue` | 确认渐变高度,调整标题样式 | | 1.6 | `src/custom-tab-bar/` | 按原型调整底部导航样式(3Tab,圆形图标背景) | | 1.7 | `src/components/common/EmptyState.vue` | 按原型添加图标+文字样式 | **交付物**:基础样式系统可用,所有页面视觉基调统一 --- ### 阶段二:首页组件重构(第3-5天) **目标**:三个角色首页完全还原原型 | 任务 | 文件 | 具体工作 | |------|------|---------| | 2.1 | `src/components/common/GradientStatCard.vue` | **新增** 渐变统计卡片组件,支持3色渐变配置 | | 2.2 | `src/components/common/QuickEntry.vue` | **新增** 快捷入口组件(图标+文字,支持禁用状态) | | 2.3 | `src/components/home/SalesHome.vue` | 重构:顶部区域、3色渐变统计卡片、快捷入口、任务提醒、最新任务、通知公告、行业知识 | | 2.4 | `src/components/home/DispatchHome.vue` | 重构:顶部区域、统计卡片、快捷操作(4个)、待审核任务 | | 2.5 | `src/components/home/ConstructionHome.vue` | 重构:顶部区域、统计卡片、每日任务入口、快捷功能、当前任务、通知公告 | | 2.6 | 首页API数据联调 | 确认各首页数据接口,补充 mock 数据 | **关键决策**: - 排班页面:作为独立 Tab 保留(现有4Tab),调度端在首页提供快捷入口 - 不同角色 TabBar:使用 custom-tab-bar,根据角色动态渲染不同 Tab 列表 - 禁用功能:保留显示,添加 `opacity-50` 和 `pointer-events-none` **交付物**:三个首页视觉与原型一致,可正常切换角色 --- ### 阶段三:任务/项目卡片组件(第6-8天) **目标**:统一卡片组件,支持状态样式 | 任务 | 文件 | 具体工作 | |------|------|---------| | 3.1 | `src/components/task/TaskCard.vue` | 重构:支持左侧边框状态(应急红)、背景色状态(超时淡红/完成淡绿) | | 3.2 | `src/components/task/SalesTaskCard.vue` | 按销售端原型调整 | | 3.3 | `src/components/task/DispatchTaskCard.vue` | 按调度端原型调整(带操作按钮) | | 3.4 | `src/components/task/ConstructionTaskCard.vue` | 按施工端原型调整 | | 3.5 | `src/components/task/TaskListView.vue` | 调整列表容器样式、空状态 | | 3.6 | `src/components/project/ProjectCard.vue` | 重构:项目卡片样式,支持状态标签 | | 3.7 | `src/components/common/StatusTag.vue` | 补充原型中所有状态的颜色映射 | | 3.8 | `src/components/common/FilterTabs.vue` | 调整样式与原型一致(pill形状) | **交付物**:所有卡片组件可复用,视觉统一 --- ### 阶段四:详情页与表单页(第9-12天) **目标**:任务详情、项目详情、发布任务等页面还原 | 任务 | 文件 | 具体工作 | |------|------|---------| | 4.1 | `src/components/common/Timeline.vue` | **新增** 时间线组件(处理记录) | | 4.2 | `src/components/common/ProgressBar.vue` | **新增** 进度条组件(带步骤点) | | 4.3 | `src/components/common/ServicePointCard.vue` | **新增** 服务点选择卡片 | | 4.4 | `src/components/common/PhotoUploader.vue` | **新增** 拍照上传网格组件(3列) | | 4.5 | `src/subPackages/pages-common/taskDetail.vue` | 重构:详情区块、时间线、操作按钮 | | 4.6 | `src/subPackages/pages-common/projectDetail.vue` | 重构:项目信息展示、联系人列表 | | 4.7 | `src/subPackages/pages-common/publishTask.vue` | 重构:表单布局、联系人动态添加、服务点选择 | | 4.8 | `src/subPackages/pages-common/addProject.vue` | 重构:表单样式统一 | | 4.9 | `src/subPackages/pages-dispatch/publishTask.vue` | 重构:调度端发布任务(类型选择器) | | 4.10 | `src/components/common/Modal.vue` | 调整模态框样式与原型一致 | **交付物**:详情页、表单页视觉还原,交互完整 --- ### 阶段五:施工端特殊页面(第13-14天) **目标**:施工流程、每日任务等特殊页面 | 任务 | 文件 | 具体工作 | |------|------|---------| | 5.1 | `src/components/common/ConstructionFlowBar.vue` | **新增** 施工流程进度条(5步骤) | | 5.2 | `src/components/common/CheckItem.vue` | **新增** 检查项卡片(标题+状态+上传区) | | 5.3 | `src/subPackages/pages-construction/dailyTask.vue` | 重构:流程进度条、检查项列表 | | 5.4 | `src/subPackages/pages-construction/taskDetail.vue` | 重构:施工端任务详情(含流程) | | 5.5 | `src/subPackages/pages-construction/historyTask.vue` | 调整样式 | | 5.6 | `src/subPackages/pages-construction/tomorrowTask.vue` | 调整样式 | **交付物**:施工端页面完整,流程可视化 --- ### 阶段六:收尾与优化(第15天) | 任务 | 文件 | 具体工作 | |------|------|---------| | 6.1 | 全局检查 | 检查所有页面的样式一致性 | | 6.2 | 图标统一 | 检查所有 FontAwesome 映射到 uni-icons | | 6.3 | 真机测试 | 微信小程序真机预览,检查样式兼容性 | | 6.4 | 性能检查 | 检查包大小、渲染性能 | | 6.5 | 代码清理 | 删除无用样式、注释 | **交付物**:可交付的完整UI还原版本 --- ## 三、每日开发节奏 ``` Day 1: 基础样式系统(variables + global + uni-card + TopBar) Day 2: custom-tab-bar + EmptyState + 基础组件调整 Day 3: GradientStatCard + QuickEntry(新增组件) Day 4: SalesHome 重构 Day 5: DispatchHome + ConstructionHome 重构 Day 6: TaskCard 系列重构 + StatusTag 补充 Day 7: ProjectCard + FilterTabs 调整 Day 8: TaskListView + 卡片组件收尾 Day 9: Timeline + ProgressBar + ServicePointCard(新增) Day 10: PhotoUploader + taskDetail 重构 Day 11: projectDetail + publishTask 重构 Day 12: addProject + dispatch/publishTask + Modal 调整 Day 13: ConstructionFlowBar + CheckItem(新增) Day 14: dailyTask + construction/taskDetail 重构 Day 15: 全局检查 + 真机测试 + 收尾 ``` --- ## 四、风险与应对 | 风险 | 影响 | 应对 | |------|------|------| | uni-icons 图标不全 | 部分原型图标无法还原 | 使用最接近替代,或自定义图标字体 | | 小程序渐变兼容 | 部分真机渐变显示异常 | 准备纯色回退方案 | | 分包大小超限 | 无法编译 | 监控包大小,必要时进一步拆分 | | 角色切换 TabBar | 小程序限制动态 TabBar | 使用 custom-tab-bar,通过条件渲染解决 | | 复杂动画性能 | 卡顿 | 简化动画,使用 transform 和 opacity | --- ## 五、开发规范 Checklist 每个文件开发时需检查: - [ ] 不使用 `*` 选择器 - [ ] 不使用 `::before`/`::after` 在 button/image 上 - [ ] 使用 `rpx` 单位(1px 边框除外) - [ ] 使用 `uni-icons` 而非 FontAwesome - [ ] 颜色使用变量,不硬编码 - [ ] 组件使用 `defineProps`/`defineEmits` - [ ] 长列表使用 `scroll-view` - [ ] 图片使用 `image` 标签 - [ ] 按钮使用 `view` 或 `button` 并处理样式 - [ ] 添加 `scoped` 样式隔离 --- *计划生成时间:2026-07-09* *基于:UI还原开发文档.md*