# Comet Design Handoff - Change: refine-weapp-ui-style - Phase: design - Mode: compact - Context hash: bbe42d93a97ebb0ffa5302bc664d4661a79296002655beac09f928dae98a735d Generated-by: comet-handoff.sh OpenSpec remains the canonical capability spec. This handoff is a deterministic, source-traceable context pack, not an agent-authored summary. ## openspec/changes/refine-weapp-ui-style/proposal.md - Source: openspec/changes/refine-weapp-ui-style/proposal.md - Lines: 1-33 - SHA256: 8c62125e0b59049e0afc2ed1a0e36d236ea2b8bfee096e987ee01300810510cc ```md ## Why 当前清道夫小程序功能已基本跑通,但整体视觉表现偏单调:页面以白底灰字为主,缺少层次感和品牌色运用;卡片、按钮、状态标签的圆角与阴影不统一;部分页面与 V21-SOP 原型在氛围上差距较大。为了让用户在使用时感到更专业、更流畅,需要借鉴原型做一次全站样式与微交互的体验优化,在不动业务逻辑和胶囊安全布局的前提下提升视觉品质。 ## What Changes - 统一全站卡片风格:统一使用 `bg-white rounded-xl shadow-sm`,与原型保持一致。 - 优化首页头部视觉:销售/施工端首页顶部改为蓝色渐变背景,强化品牌感。 - 提升统计卡片表现力:首页统计卡片改用渐变色彩,突出关键数据。 - 统一状态标签与按钮:状态标签使用原型色值(蓝/绿/橙/红),主按钮使用 `rounded-xl` 大圆角。 - 任务卡片增强识别:应急任务增加左侧红色边框,已完成/超时等状态增加背景色区分。 - 排班日历优化:日历容器使用卡片化包裹,日期选中样式与原型对齐。 - 我的页头部改版:使用深蓝渐变头部,信息层级更清晰。 - 增加按压/点击反馈:卡片、按钮增加 `active:scale-95` 或背景色变深的交互反馈。 - 规范字体与间距:统一 section 标题、描述文字、辅助文字的字号与色阶。 ## Capabilities ### New Capabilities - `ui-style-system`: 全站样式系统统一与视觉层级优化。 - `home-page-styling`: 首页(销售/调度/施工三端)头部、统计卡片、快捷入口样式优化。 - `task-card-styling`: 任务列表筛选标签与任务卡片样式增强。 - `schedule-calendar-styling`: 排班页日历与排班卡片样式优化。 - `profile-page-styling`: 我的页头部与功能列表样式改版。 ### Modified Capabilities - (无) ## Impact - 影响范围:小程序前端所有页面组件,主要涉及 `src/components/` 下的 home、task、dispatch、my 等组件,以及 `src/components/common/` 中的通用卡片、按钮、状态标签样式。 - 不涉及后端接口、业务状态机、路由结构和胶囊安全区计算逻辑。 - 需要确保 `npm run build:mp-weixin` 构建通过,WXSS 无转义选择器错误。 ``` ## openspec/changes/refine-weapp-ui-style/design.md - Source: openspec/changes/refine-weapp-ui-style/design.md - Lines: 1-61 - SHA256: 93748fff2ce20c74966e9dd98d9c86559fb5a6f021dd87277ae9b843b095acfa ```md ## Context 清道夫 App 前端基于 uni-app + Vue 3 + TypeScript + Tailwind CSS 构建,当前已按销售/调度/施工三端完成角色化首页、任务列表、任务详情、排班、我的等核心功能。V21-SOP 原型提供了完整的视觉参考:卡片化布局、蓝色渐变头部、渐变统计卡片、统一的状态色与圆角规范。本次 change 是一次纯样式层面的体验打磨,目标是让小程序在视觉上更接近原型质感,同时保持现有业务逻辑和胶囊安全布局不变。 ## Goals / Non-Goals **Goals:** - 统一全站卡片、按钮、标签、输入框的圆角、阴影与色阶。 - 优化首页头部与统计卡片,增强数据可视化表现力。 - 提升任务卡片状态识别度(紧急、已完成、超时等)。 - 优化排班日历与我的页视觉层次。 - 增加合理的点击/按压反馈,让交互更流畅。 **Non-Goals:** - 不修改业务逻辑、状态机、API 接口或路由结构。 - 不调整胶囊安全区计算与相关布局。 - 不新增页面或功能模块。 - 不改动后端代码。 ## Decisions 1. **颜色系统沿用 Tailwind 语义色 + 项目自定义色**: - 主色保持 `primary`(项目已配置为 blue-500 #3b82f6)。 - 渐变统计卡片使用内联 `linear-gradient` 实现,避免扩展 Tailwind 配置。 - 状态标签使用 `bg-*-50 text-*-500` 的轻量标签风格,与原型一致。 2. **卡片统一为 `rounded-xl shadow-sm bg-white`**: - 原型中 12px 圆角和微阴影是核心视觉语言,统一替换当前大小不一的 `rounded-lg`/`rounded-2xl` 和缺失阴影的容器。 3. **首页头部渐变背景**: - 销售/施工端首页顶部区域改为 `bg-gradient-to-r from-blue-500 to-blue-600`,文字反白,营造品牌氛围。 - 调度端控制台保持简洁专业感,但统一卡片与统计样式。 4. **按钮统一为 `rounded-xl` 大圆角**: - 底部主操作按钮、表单确认按钮使用 `rounded-xl`,与原型一致。 - 顶部小操作按钮保持 `rounded-lg` 以节省空间。 5. **点击反馈**: - 卡片和列表项使用 `active:scale-95` 或 `active:bg-gray-50`。 - 按钮使用 `active:opacity-80` 或 `active:bg-*-600`。 - 使用 Tailwind 的 `transition` 类保证过渡自然。 6. **避免 WXSS 转义问题**: - 不使用 Tailwind 小数类(如 `w-1.5`)、任意值类(如 `max-h-[80vh]`)或 last:/hover: 变体。 - 需要特殊尺寸时使用内联 style。 ## Risks / Trade-offs - [Risk] 全站样式改动范围广,可能引入局部视觉回归 → Mitigation: 按页面模块分任务实施,每个任务后构建检查;最终在微信开发者工具中逐页预览。 - [Risk] 渐变背景与自定义导航栏/状态栏高度配合不当 → Mitigation: 渐变区域仍使用 StatusBar + TopBar 结构,仅在 TopBar 内部使用渐变背景类,不改动高度计算。 - [Risk] 部分uni-app组件(如 uni-card)自带样式,可能与 Tailwind 类冲突 → Mitigation: 通过组件 props 或外层容器覆盖,必要时改用自定义 view 卡片。 - [Risk] 状态标签颜色过多导致视觉嘈杂 → Mitigation: 严格限制为蓝/绿/橙/红四色,与原型一致。 ## Migration Plan 无需迁移。本次为前端样式优化,构建完成后直接部署小程序即可。 ## Open Questions - 是否需要同步调整登录页/启动页样式以匹配新的视觉系统?(本次不做,待后续确认) - 原型中部分图标为 Font Awesome,项目使用 uni-icons,是否需要在关键位置引入 Font Awesome 图标以提升一致性?(本次优先使用现有 uni-icons 映射) ``` ## openspec/changes/refine-weapp-ui-style/tasks.md - Source: openspec/changes/refine-weapp-ui-style/tasks.md - Lines: 1-45 - SHA256: f34c373417d2bd726d5811d9133677baac192871b40b45557ff69c2c2b40ddf0 ```md ## 1. 全局样式系统准备 - [ ] 1.1 检查项目 Tailwind 配置,确认 `primary` 色值与 `rounded-xl`、`shadow-sm` 等工具类可用 - [ ] 1.2 确认 `app-container`、卡片、按钮等全局类名规范,避免 WXSS 转义问题 ## 2. 通用组件样式优化 - [ ] 2.1 优化 `StatusBar` + `TopBar` 渐变背景支持(可选渐变/白色模式) - [ ] 2.2 统一 `uni-card` 或自定义卡片容器为 `bg-white rounded-xl shadow-sm` - [ ] 2.3 优化 `StatusTag` 状态标签配色(蓝/绿/橙/红) - [ ] 2.4 为常用按钮添加 `active:` 按压反馈 - [ ] 2.5 为卡片/列表项添加 `active:scale-95` 或 `active:bg-gray-50` 反馈 ## 3. 首页样式优化 - [ ] 3.1 销售端 `SalesHome.vue`:顶部改为渐变背景,统计卡片改为渐变,快捷入口统一图标容器 - [ ] 3.2 调度端 `DispatchHome.vue`:统计卡片与快捷操作统一卡片/图标样式 - [ ] 3.3 施工端 `ConstructionHome.vue`:顶部改为渐变背景,统计卡片样式统一 ## 4. 任务页样式优化 - [ ] 4.1 `TaskListView.vue`:筛选标签改为 `rounded-full`,选中态使用 `bg-primary text-white` - [ ] 4.2 `SalesTaskCard.vue`:增加应急红色左边框、已完成浅绿背景、点击反馈 - [ ] 4.3 `DispatchTaskCard.vue`:增加应急红色左边框、状态背景区分、点击反馈 - [ ] 4.4 `ConstructionTaskCard.vue`:增加应急红色左边框、状态背景区分、点击反馈 ## 5. 排班页样式优化 - [ ] 5.1 `ScheduleView.vue`:日历区域使用 `bg-white rounded-xl shadow-sm` 卡片包裹 - [ ] 5.2 `ScheduleView.vue`:日期选中态改为蓝色填充白字,今天改为浅蓝背景蓝字 - [ ] 5.3 `ScheduleView.vue`:排班列表项增加月计划/应急图标背景色区分与点击反馈 - [ ] 5.4 `ScheduleView.vue`:新增/编辑弹窗按钮使用 `rounded-xl`,字段间距统一 ## 6. 我的页样式优化 - [ ] 6.1 `ProfileView.vue`:顶部改为深蓝渐变头部,头像与用户信息反白显示 - [ ] 6.2 `ProfileView.vue`:功能入口列表改为统一卡片,列表项增加点击反馈 - [ ] 6.3 `ProfileView.vue`:退出登录按钮使用 `rounded-xl` 大圆角 ## 7. 验证与收尾 - [ ] 7.1 运行 `npm run type-check` 确认无 TypeScript 错误 - [ ] 7.2 运行 `npm run build:mp-weixin` 确认构建通过且 WXSS 无转义选择器 - [ ] 7.3 在微信开发者工具中预览主要页面,确认视觉层次与交互反馈正常 - [ ] 7.4 提交所有改动并合并到 master ``` ## openspec/changes/refine-weapp-ui-style/specs/home-page-styling/spec.md - Source: openspec/changes/refine-weapp-ui-style/specs/home-page-styling/spec.md - Lines: 1-38 - SHA256: 831c8c44b0255960dcb28248bbac5767666d6387e980c00a45e4083e17f79c5b ```md ## ADDED Requirements ### Requirement: 销售端首页样式优化 系统 SHALL 优化销售端首页的头部、统计卡片、快捷入口与通知列表样式。 #### Scenario: 渐变头部 - **WHEN** 用户打开销售端首页 - **THEN** 顶部导航区域使用蓝色渐变背景,欢迎语与用户名白色显示 #### Scenario: 渐变统计卡片 - **WHEN** 用户查看本月项目、待确认、进行中统计 - **THEN** 三个统计卡片使用渐变背景,数字突出显示 #### Scenario: 快捷入口统一 - **WHEN** 用户查看快捷功能区域 - **THEN** 快捷入口图标容器统一为圆形浅色背景,文字大小一致 ### Requirement: 调度端首页样式优化 系统 SHALL 优化调度端首页的统计卡片与快捷操作区域样式。 #### Scenario: 今日任务统计卡片 - **WHEN** 用户查看调度端首页统计 - **THEN** 统计卡片使用统一卡片风格,图标与数值对齐 #### Scenario: 快捷操作入口 - **WHEN** 用户查看排班管理、任务列表、车辆管理、可视化入口 - **THEN** 四个快捷入口使用统一圆形图标与标签文字 ### Requirement: 施工端首页样式优化 系统 SHALL 优化施工端首页的头部、任务统计与快捷操作样式。 #### Scenario: 渐变头部 - **WHEN** 用户打开施工端首页 - **THEN** 顶部区域使用与销售端一致的蓝色渐变头部 #### Scenario: 工作统计卡片 - **WHEN** 用户查看已完成、进行中、明日任务统计 - **THEN** 统计卡片视觉清晰,数据突出 ``` ## openspec/changes/refine-weapp-ui-style/specs/profile-page-styling/spec.md - Source: openspec/changes/refine-weapp-ui-style/specs/profile-page-styling/spec.md - Lines: 1-30 - SHA256: 9c91ccc38ffb0128b659d4e74dbe2a56c9deb6bd148d8ac0c987e37d0ba45922 ```md ## ADDED Requirements ### Requirement: 我的页头部样式改版 系统 SHALL 将我的页顶部改为深蓝渐变背景,突出用户信息。 #### Scenario: 渐变头部 - **WHEN** 用户进入我的页 - **THEN** 顶部显示 `bg-gradient-to-br from-blue-900 to-blue-800` 渐变 #### Scenario: 用户信息展示 - **WHEN** 用户查看我的页头部 - **THEN** 头像、姓名、角色/部门信息反白显示,层级清晰 ### Requirement: 我的页功能列表样式优化 系统 SHALL 优化我的页功能入口列表的卡片与列表项样式。 #### Scenario: 功能入口卡片 - **WHEN** 用户查看设置、帮助、关于等功能入口 - **THEN** 列表项统一为 `bg-white rounded-xl shadow-sm` 卡片,带右侧箭头 #### Scenario: 列表项点击反馈 - **WHEN** 用户点击某个功能入口 - **THEN** 列表项在按压时有背景色变化反馈 ### Requirement: 退出登录按钮样式 系统 SHALL 保持退出登录按钮醒目且与原型一致。 #### Scenario: 退出按钮 - **WHEN** 用户查看退出登录按钮 - **THEN** 按钮使用红色背景、白色文字、`rounded-xl` 大圆角 ``` ## openspec/changes/refine-weapp-ui-style/specs/schedule-calendar-styling/spec.md - Source: openspec/changes/refine-weapp-ui-style/specs/schedule-calendar-styling/spec.md - Lines: 1-34 - SHA256: b426acbff56b0d9ffbde1fcc99b44f4d0fad58737974b333482f74ab35d32206 ```md ## ADDED Requirements ### Requirement: 排班日历卡片化 系统 SHALL 将排班页日历区域包裹在统一卡片容器内。 #### Scenario: 日历容器 - **WHEN** 用户进入排班页 - **THEN** 星期标题与日期网格被 `bg-white rounded-xl shadow-sm` 卡片包裹 ### Requirement: 排班日期选中样式 系统 SHALL 优化日期选中状态下的视觉表现。 #### Scenario: 选中日期 - **WHEN** 用户点击某个日期 - **THEN** 选中日期使用蓝色填充背景,数字为白色 #### Scenario: 今天日期 - **WHEN** 日期为今天且未被选中 - **THEN** 日期显示浅蓝背景与蓝色文字 ### Requirement: 排班卡片样式优化 系统 SHALL 优化排班列表中卡片的视觉表现。 #### Scenario: 月计划排班卡片 - **WHEN** 排班类型为 month_plan - **THEN** 卡片左侧图标使用蓝色背景与图标 #### Scenario: 应急排班卡片 - **WHEN** 排班类型为 emergency - **THEN** 卡片左侧图标使用红色背景与图标 #### Scenario: 排班卡片点击反馈 - **WHEN** 用户点击排班卡片 - **THEN** 卡片打开详情弹窗,并在按压时有视觉反馈 ``` ## openspec/changes/refine-weapp-ui-style/specs/task-card-styling/spec.md - Source: openspec/changes/refine-weapp-ui-style/specs/task-card-styling/spec.md - Lines: 1-31 - SHA256: 4d0cbfe51e39512b369460ad81588eee403e36c8189dc840cb8eb58b59eb7021 ```md ## ADDED Requirements ### Requirement: 任务筛选标签样式优化 系统 SHALL 统一任务页顶部筛选标签的样式。 #### Scenario: 筛选标签常态 - **WHEN** 用户查看任务页筛选标签 - **THEN** 未选中标签使用浅灰背景与深灰文字,`rounded-full` 圆角 #### Scenario: 筛选标签选中 - **WHEN** 用户选中某个筛选标签 - **THEN** 选中标签使用 `bg-primary text-white`,与未选中状态形成对比 ### Requirement: 任务卡片样式增强 系统 SHALL 增强任务卡片的视觉识别与层次感。 #### Scenario: 应急任务标识 - **WHEN** 任务类型为 emergency - **THEN** 卡片左侧显示红色边框,标题或状态标签突出紧急感 #### Scenario: 已完成任务背景 - **WHEN** 任务状态为 completed - **THEN** 卡片背景使用浅绿色,状态标签使用绿色 #### Scenario: 进行中任务背景 - **WHEN** 任务状态为 scheduled/departed/arrived/constructing - **THEN** 卡片保持白色背景,状态标签使用蓝色 #### Scenario: 卡片点击反馈 - **WHEN** 用户点击任务卡片 - **THEN** 卡片在按压时有轻微缩小或背景变化反馈 ``` ## openspec/changes/refine-weapp-ui-style/specs/ui-style-system/spec.md - Source: openspec/changes/refine-weapp-ui-style/specs/ui-style-system/spec.md - Lines: 1-85 - SHA256: 2f27aa46a2b9b1b32827efeca9aa439f35eef22d077558f18429dff031cd6288 [TRUNCATED] ```md ## ADDED Requirements ### Requirement: 全站卡片风格统一 系统 SHALL 统一使用 `bg-white rounded-xl shadow-sm` 作为内容卡片基础样式。 #### Scenario: 首页卡片视觉一致 - **WHEN** 用户打开销售/调度/施工任意角色首页 - **THEN** 统计卡片、快捷入口卡片、通知卡片等均使用统一圆角与微阴影 #### Scenario: 列表容器卡片化 - **WHEN** 页面包含任务列表、排班列表或通知列表 - **THEN** 列表外层容器使用统一卡片样式,列表项保持清晰分隔 ### Requirement: 首页头部视觉优化 系统 SHALL 在销售端与施工端首页顶部使用蓝色渐变背景,并反白显示欢迎语与用户名。 #### Scenario: 销售端首页头部 - **WHEN** 用户进入销售端首页 - **THEN** 顶部区域显示 `bg-gradient-to-r from-blue-500 to-blue-600` 渐变背景,文字为白色 #### Scenario: 施工端首页头部 - **WHEN** 用户进入施工端首页 - **THEN** 顶部区域显示与销售端一致的蓝色渐变头部 ### Requirement: 统计卡片增强表现力 系统 SHALL 在首页关键统计区域使用渐变色彩卡片,突出数据指标。 #### Scenario: 销售端统计卡片 - **WHEN** 用户查看销售端首页统计数据 - **THEN** 三个统计卡片分别使用蓝紫、粉紫、青蓝渐变背景,数字反白显示 #### Scenario: 调度端统计卡片 - **WHEN** 用户查看调度端首页统计数据 - **THEN** 统计卡片使用统一视觉风格,数据清晰可辨 ### Requirement: 状态标签与按钮风格统一 系统 SHALL 统一状态标签和主按钮的圆角、颜色与字号。 #### Scenario: 状态标签识别 - **WHEN** 任务列表或详情中展示状态标签 - **THEN** 标签使用 `rounded` 小圆角,`bg-*-50 text-*-500` 配色,文字清晰 #### Scenario: 主按钮圆角 - **WHEN** 页面底部或弹窗中出现主操作按钮 - **THEN** 按钮使用 `rounded-xl` 大圆角,`bg-primary text-white` 样式 ### Requirement: 任务卡片增强状态识别 系统 SHALL 在任务卡片中通过左侧边框或背景色增强不同状态的视觉识别。 #### Scenario: 应急任务卡片 - **WHEN** 任务为应急类型 - **THEN** 卡片左侧显示红色边框 `border-l-4 border-red-500` #### Scenario: 已完成任务卡片 - **WHEN** 任务状态为已完成 - **THEN** 卡片背景使用浅绿色 `bg-green-50` ### Requirement: 排班日历样式优化 系统 SHALL 将排班日历容器卡片化,并优化日期选中样式。 #### Scenario: 日历容器 - **WHEN** 用户进入排班页 - **THEN** 日历整体被 `bg-white rounded-xl shadow-sm` 卡片包裹 #### Scenario: 日期选中 - **WHEN** 用户点击某个日期 - **THEN** 选中日期使用蓝色填充背景,白色数字,未选中日期保持灰色或黑色 ### Requirement: 我的页头部改版 系统 SHALL 将我的页顶部改为深蓝渐变背景,并清晰展示用户信息。 #### Scenario: 我的页头部 - **WHEN** 用户进入我的页 - **THEN** 顶部显示 `bg-gradient-to-br from-blue-900 to-blue-800` 渐变,头像、姓名、部门信息反白显示 ### Requirement: 增加点击与按压反馈 系统 SHALL 在可点击的卡片、按钮、列表项上增加视觉反馈。 #### Scenario: 卡片点击反馈 - **WHEN** 用户点击卡片或列表项 ``` Full source: openspec/changes/refine-weapp-ui-style/specs/ui-style-system/spec.md