# 清道夫 App 角色功能差异分析文档

> 对比基准：当前代码（`src/` 目录） vs 原型文件 `D:\work\绿水青山\清道夫系统原型_完整版_V21_SOP.html`
> 生成时间：2026-06-23

---

## 一、总体结论

当前项目已实现**登录角色切换 + 首页组件级切换**的框架，但各角色的**页面内容、功能入口、展示字段、操作流程**与原型相比仍有明显差距。主要表现为：

1. **首页信息结构不完整**：销售端缺「客户管理/合同管理」入口、缺「行业知识」模块；调度端缺「待审核任务列表」、统计项与原型不符。
2. **任务列表字段单一**：当前统一使用 `TaskCard`，只有项目名、地址、时间、车辆、人员；原型中三端展示字段差异很大（销售端看进度/班组/验收，调度端看申请人/施工类型，施工端看 8 步 SOP 流程）。
3. **任务详情操作未按角色拆分**：当前 `pages-common/taskDetail.vue` 是通用版，字段固定；调度端/施工端已有独立分包详情页，但与原型比字段和流程仍不完整。
4. **我的页面角色字段未细化**：当前统一显示「用户名/昵称/角色/手机号」，原型中销售/调度显示「部门/职位/电话/工号/邮箱/入职日期」，施工端显示「班组/职位/电话/工号」。
5. **部分原型页面尚未实现**：如销售端「项目库→新增项目」的完整字段、调度端「可视化/在岗人员/可用车辆/应急待命」、施工端「历史任务/明日任务」的列表字段等。

---

## 二、通用差异

| 差异点 | 当前实现 | 原型要求 | 影响范围 |
|--------|----------|----------|----------|
| 角色切换后首页 | 已按角色渲染 `SalesHome/DispatchHome/ConstructionHome` | 同上，但内容与原型差距大 | 全部 |
| tabBar | 已接入原生 tabBar（首页/任务/我的） | 一致 | 全部 |
| 页面跳转路径 | 已统一为分包路径 | 基本一致 | 全部 |
| 状态色 | 已按原型统一语义色 | 一致 | 全部 |
| 任务数据模型 | `Task` 字段较少，缺 `address/serviceType/team/vehicleNo/staffName/faultLocation` 等 | 字段更丰富 | 全部 |
| 底部导航 | 原生 tabBar 已实现 | 一致 | 全部 |

---

## 三、销售端差异

### 3.1 首页（`src/components/home/SalesHome.vue`）

| 模块 | 当前实现 | 原型要求 | 差异等级 |
|------|----------|----------|----------|
| 顶部欢迎语 | 「下午好 / 张销售」 | 「您好，欢迎回来 / 张销售」 | 低 |
| 快捷入口 | 项目库、任务、提醒、公告（4 个） | 项目库、客户管理（禁用）、合同管理（禁用）（3 个） | **中** |
| 数据统计 | 本月项目、待确认、进行中 | 与原型一致，但缺「任务提醒」入口按钮 | **中** |
| 任务提醒 | 入口在快捷入口里 | 应在统计卡片下方单独按钮「任务提醒 (2)」 | 低 |
| 通知公告 | 已实现 | 一致 | 无 |
| 行业知识 | **未实现** | 原型有「行业知识」模块，展示文章列表 | **高** |
| 跳转路径 | 项目库→`/pages-common/projectList` | 一致 | 无 |

### 3.2 任务列表（`src/components/task/TaskListView.vue`，role=sales）

| 字段/功能 | 当前实现 | 原型要求 | 差异等级 |
|-----------|----------|----------|----------|
| 筛选标签 | 全部/待确认/待排班/待出车/施工中/已完成 | 原型为：全部/调度中/施工中/已完成/应急 | **中** |
| 列表形式 | uni-list + 侧滑（催办/取消） | 卡片式，展示状态标签 + 紧急程度 + 时间 | **中** |
| 卡片字段 | 项目名、地址、状态 | 项目名、紧急程度、施工班组、位置、验收方式、底部进度条 | **高** |
| 发布按钮 | 销售端任务页**无发布按钮** | 原型任务页右上角有「发布」按钮 | **高** |
| 空状态 | 已实现 | 一致 | 无 |

### 3.3 任务详情（`src/subPackages/pages-common/taskDetail.vue`）

| 字段/功能 | 当前实现 | 原型要求 | 差异等级 |
|-----------|----------|----------|----------|
| 展示字段 | 地址、客户、电话、时间、车辆、人员 | 项目信息、施工信息、故障信息、施工要求、甲方确认人等 | **高** |
| 操作按钮 | 确认出车/到达现场/开始施工/完成任务/催单/取消 | 销售端原型：取消任务 + 催单；完成态可查看验收单/再次预约 | **高** |
| 进度展示 | 时间轴 7 步 | 原型为 4 步进度条（发布/调度确认/施工中/完成） | **中** |
| 地图 | 已集成 | 一致 | 无 |
| 签名 | 已集成 | 一致 | 无 |

### 3.4 我的页面（`src/components/my/ProfileView.vue`）

| 字段/功能 | 当前实现 | 原型要求 | 差异等级 |
|-----------|----------|----------|----------|
| 信息卡 | 用户名/昵称/角色/手机号 | 部门、职位、电话 | **中** |
| 基本信息页 | 当前为通用 `pages-common/basicInfo.vue` | 销售端原型：姓名/部门/职位/工号/电话/邮箱/入职日期 | **高** |
| 消息通知 | 入口统一走公告 | 原型有独立「消息通知」页，分全部/任务通知/系统消息 | **高** |
| 任务提醒 | 已有 `pages-sales/taskReminder.vue` | 一致 | 无 |

### 3.5 项目库（`src/subPackages/pages-common/projectList.vue`）

| 字段/功能 | 当前实现 | 原型要求 | 差异等级 |
|-----------|----------|----------|----------|
| 筛选标签 | 需确认 | 全部/包年/单次/季度/月付 | **中** |
| 项目卡片字段 | 需确认 | 项目名称、合作类型、设施类型、地址、服务点数、联系人 | **中** |
| 新增项目 | 已有 `addProject.vue` | 原型字段更完整（省市区、联系人、服务点、合同金额等） | **中** |
| 项目详情 | 已有 `projectDetail.vue` | 原型有地图定位、项目介绍、位置联系人、费用信息、服务点与服务项 | **中** |

---

## 四、调度端差异

### 4.1 首页（`src/components/home/DispatchHome.vue`）

| 模块 | 当前实现 | 原型要求 | 差异等级 |
|------|----------|----------|----------|
| 顶部欢迎语 | 「调度中心 / 控制台」 | 「您好，欢迎回来 / 调度中心」 | 低 |
| 统计卡片标题 | 「今日概览」 | 「今日任务统计」 | 低 |
| 统计项 | 今日任务、待排班、应急中 | 与原型一致 | 无 |
| 快捷操作 | 排班、任务、车辆、数据（4 个） | 排班管理、任务列表、车辆管理、可视化（4 个） | 低 |
| 待审核任务列表 | **未实现** | 原型首页下方有「待审核任务」模块，展示 2 条待审核任务卡片 | **高** |
| 通知公告 | 已实现 | 一致 | 无 |
| 跳转路径 | 排班→`/pages-dispatch/schedule` 等 | 一致 | 无 |

### 4.2 任务列表（`src/components/task/TaskListView.vue`，role=dispatch）

| 字段/功能 | 当前实现 | 原型要求 | 差异等级 |
|-----------|----------|----------|----------|
| 筛选标签 | 全部/待确认/待排班/待出车/施工中/已完成 | 原型：全部/待审核/待排班/进行中/已完成/已驳回 | **中** |
| 列表形式 | 统一 `TaskCard` | 卡片式，左侧带状态色条 | **中** |
| 卡片字段 | 项目名、地址、时间、车辆、人员 | 任务名称、位置、施工类型、时间、申请人、状态备注 | **高** |
| 新增任务 | tabBar 页无入口，但调度端有 `publishTask.vue` | 任务页右上角有「新增」按钮 | **高** |
| 操作 | 点击跳转详情 | 点击跳转详情 | 无 |

### 4.3 任务详情（`src/subPackages/pages-dispatch/taskDetail.vue`）

| 字段/功能 | 当前实现 | 原型要求 | 差异等级 |
|-----------|----------|----------|----------|
| 基本信息 | 任务名称、项目、类型、创建时间、负责人、车辆、班组、排班日期 | 任务名称、故障位置、施工类型、服务时间、申请人、项目信息、故障详情、施工信息 | **高** |
| 审核操作 | 待审核状态：确认/驳回；确认后显示安排班组车辆 | 与原型基本一致 | 无 |
| 已驳回状态 | 显示固定文案 | 原型显示具体驳回原因 | **中** |
| 排班操作 | 已实现班组+车辆选择 | 一致 | 无 |

### 4.4 我的页面（`src/components/my/ProfileView.vue`）

| 字段/功能 | 当前实现 | 原型要求 | 差异等级 |
|-----------|----------|----------|----------|
| 信息卡 | 用户名/昵称/角色/手机号 | 部门、职位、电话 | **中** |
| 基本信息页 | 通用版 | 调度端原型：姓名/部门/职位/工号/电话/邮箱/入职日期 | **高** |
| 帮助中心 | 通用 `pages-common/helpCenter.vue` | 调度端帮助中心问题应围绕审核/排班/资源状态 | **中** |
| 消息通知 | 入口统一走公告 | 原型有独立通知页 | **高** |

### 4.5 排班与资源页面

| 页面 | 当前实现 | 原型要求 | 差异等级 |
|------|----------|----------|----------|
| 排班管理 (`schedule.vue`) | 已有基础页面 | 原型有日历、资源状态卡片（在岗人员/可用车辆/应急待命）、当日排班列表 | **中** |
| 在岗人员 (`onDutyStaff.vue`) | 已有 | 原型展示人员、班组、技能等级、资质标签 | **中** |
| 可用车辆 (`availableVehicles.vue`) | 已有 | 原型展示车辆类型、尺寸、载重、驾驶员 | **中** |
| 应急待命 (`emergencyStandby.vue`) | 已有 | 原型展示应急热线、待命班组、车辆、联系按钮 | **中** |
| 可视化 (`visualization.vue`) | 已有 | 原型为数据可视化大屏，需确认当前实现程度 | **中** |
| 车辆列表 (`vehicleList.vue`) | 已有 | 原型有车俩管理列表 | 低 |

---

## 五、施工端差异

### 5.1 首页（`src/components/home/ConstructionHome.vue`）

| 模块 | 当前实现 | 原型要求 | 差异等级 |
|------|----------|----------|----------|
| 顶部信息 | 「工程一班 / 张师傅」 | 一致 | 无 |
| 统计卡片 | 已完成、进行中、明日任务 | 历史完成、当前任务、明日任务（语义一致） | 低 |
| 每日任务入口 | 已实现 | 一致 | 无 |
| 快捷功能 | 我的任务、车辆检查、历史任务、帮助中心 | 原型：我的任务、车辆检查、帮助中心（3 个） | 低 |
| 通知公告 | 已实现 | 一致 | 无 |
| 当前任务预览 | **未实现** | 原型首页下方有「当前任务」预览卡片 | **中** |

### 5.2 任务列表（`src/components/task/TaskListView.vue`，role=construction）

| 字段/功能 | 当前实现 | 原型要求 | 差异等级 |
|-----------|----------|----------|----------|
| 筛选标签 | 全部/待出车/已出车/施工中/已完成 | 原型：全部/待确认/待出车/已出车/施工中/待验收 | **中** |
| 列表形式 | 统一 `TaskCard` | 卡片式，展示项目名、加急/包年标签、服务类型、服务时间、地址、当前步骤流程 | **高** |
| 流程展示 | **未实现** | 原型每个卡片下方有 7 步流程（确认/出车/到达/施工/完成/清洗/验收） | **高** |
| 操作 | 点击跳转详情 | 点击跳转详情 | 无 |

### 5.3 任务详情（`src/subPackages/pages-construction/taskDetail.vue`）

| 字段/功能 | 当前实现 | 原型要求 | 差异等级 |
|-----------|----------|----------|----------|
| 施工流程 | 顶部 5 步流程 | 原型为 8 步（确认/出车/到达/勘验/施工/完成/清洗/验收） | **高** |
| 操作按钮 | 待确认时确认/反馈/拒绝；待出车时出发；已出车到达现场；已到达开始施工；施工中完成施工 | 与原型基本一致，但缺「勘验」步骤和「清洗」步骤 | **高** |
| 任务信息 | 任务类型、紧急程度、负责人、车辆、班组、计划日期、创建时间 | 原型有项目信息、施工信息、故障信息、施工要求、甲方确认人等大量字段 | **高** |
| 出车准备/现场踏勘/施工流程记录 | **未实现** | 原型 SOP 新增：车辆点检、出发时间、到达时间、踏勘一致性、客户同意、7 步上传记录 | **高** |
| 任务日志 | 当前为简单时间轴 | 原型有时间、操作人、动作 | 低 |

### 5.4 我的页面（`src/components/my/ProfileView.vue`）

| 字段/功能 | 当前实现 | 原型要求 | 差异等级 |
|-----------|----------|----------|----------|
| 信息卡 | 用户名/昵称/角色/手机号 | 班组、职位、电话 | **中** |
| 基本信息页 | 通用版 | 施工端原型：姓名/工号/班组/联系电话（可编辑保存） | **高** |
| 帮助中心 | 通用版 | 施工端帮助中心问题应围绕确认任务/每日检查/施工流程/联系调度 | **中** |
| 消息通知 | 入口统一走公告 | 原型有独立通知页，分全部/任务/系统 | **高** |

### 5.5 每日任务与其他页面

| 页面 | 当前实现 | 原型要求 | 差异等级 |
|------|----------|----------|----------|
| 每日任务 (`dailyTask.vue`) | 已实现车辆检查 + 今日任务列表 | 原型有车辆检查、设备检查、三大系统检查、备注、提交按钮 | **中** |
| 历史任务 (`historyTask.vue`) | 已有 | 原型展示项目名-服务类型、状态、地址、完成时间 | 低 |
| 明日任务 (`tomorrowTask.vue`) | 已有 | 原型展示项目名-服务类型、状态、地址、计划时间 | 低 |

---

## 六、数据模型差异

当前 `src/types/index.ts` 中 `Task` 接口字段不足，导致三端任务卡片和详情无法展示原型要求的字段。需要扩展的字段：

| 字段 | 用途 | 涉及端 |
|------|------|--------|
| `address` | 任务地址 | 全部 |
| `serviceType` | 施工类型（疏通/清淤/排查） | 全部 |
| `facilityType` | 施工设施（PVC/油污管/化粪池等） | 全部 |
| `serviceMode` | 服务方式（应急/月计划） | 销售/调度 |
| `faultLocation` | 故障位置 | 全部 |
| `faultDesc` | 故障描述 | 全部 |
| `vehicleNo` / `vehicle` | 车牌号/建议出车 | 全部 |
| `staffName` / `team` | 负责人/班组 | 全部 |
| `assignee` | 负责人 | 全部 |
| `coopType` | 合作类型（包年/单次等） | 销售/调度 |
| `acceptType` | 验收方式 | 销售/调度 |
| `urgent` | 紧急程度 | 全部 |
| `applicant` / `applicantName` | 申请人 | 调度 |
| `applyTime` | 申请时间 | 调度 |
| `rejectReason` | 驳回原因 | 调度 |
| `serviceTime` / `scheduleTime` | 服务时间 | 全部 |
| `serviceDate` / `scheduledDate` | 服务日期 | 全部 |
| `customerName` / `customerPhone` | 客户信息 | 全部 |
| `partyAContacts` | 甲方联系人 | 调度/施工 |
| `location` | 经纬度 | 全部 |

---

## 七、实施优先级建议

### P0（核心差异，优先完成）

1. **按角色改造首页内容**：补齐销售端「行业知识」、调度端「待审核任务」、施工端「当前任务预览」。
2. **按角色改造任务列表字段**：销售端展示进度条/班组/验收；调度端展示申请人/施工类型；施工端展示 7 步 SOP 流程。
3. **按角色改造我的页面**：销售/调度显示部门/职位/工号/邮箱/入职日期；施工端显示班组/职位/工号。
4. **扩展 Task 数据模型**：补充 `address/serviceType/facilityType/acceptType/applicant` 等字段。

### P1（重要差异，次之）

5. **按角色改造任务详情与操作**：销售端只看信息+催单/取消；调度端审核+排班；施工端 8 步 SOP 流程。
6. **调整筛选标签**：销售端用「调度中/施工中/已完成/应急」；调度端用「待审核/待排班/进行中/已完成/已驳回」；施工端用「待确认/待出车/已出车/施工中/待验收」。
7. **销售端任务页增加「发布」按钮**，调度端任务页增加「新增」按钮。

### P2（体验优化，可后续）

8. 完善项目库新增项目字段、项目详情字段。
9. 完善施工端每日任务（设备检查、三大系统检查、提交）。
10. 完善各端帮助中心文案和消息通知页。
11. 增加车辆/人员/应急待命详情字段。

---

## 八、关键文件清单

| 文件路径 | 改造内容 |
|----------|----------|
| `src/components/home/SalesHome.vue` | 首页内容 |
| `src/components/home/DispatchHome.vue` | 首页内容 |
| `src/components/home/ConstructionHome.vue` | 首页内容 |
| `src/components/task/TaskListView.vue` | 任务列表筛选与展示 |
| `src/components/task/TaskCard.vue` / 新增角色卡片 | 任务卡片字段 |
| `src/components/my/ProfileView.vue` | 我的页面角色字段 |
| `src/types/index.ts` | 扩展 Task/User 类型 |
| `src/stores/task.ts` | 补充统计 getter |
| `src/subPackages/pages-common/taskDetail.vue` | 销售端任务详情 |
| `src/subPackages/pages-dispatch/taskDetail.vue` | 调度端任务详情 |
| `src/subPackages/pages-construction/taskDetail.vue` | 施工端任务详情 |
| `src/subPackages/pages-construction/dailyTask.vue` | 每日任务检查项 |

---

*文档生成完毕，后续改造将按此文档逐项执行。*
