绿水青山 · 移动端审查报告

全量页面与逻辑盘点 · 2026-07-13 · 共 50+ 页面 / API / Store / Utils

2 类

严重:假数据 / 假操作

10 项

结构性缺陷

3 批

P0 / P1 / P2 修复计划

~2.5 天

预估总工作量

一、严重:整块假数据演示会露馅

P0
1

调度端发布任务是假的

项目/车辆下拉写死数组,"提交"只 toast 不调 createTask,照片未上传

pages-dispatch/publishTask.vue:173-223

2

排班日历失效 + 新增排班未实现

日期字段用错(scheduleDate vs 后端 workDate),日历圆点全空;新增仅 toast"开发中"

pages-dispatch/schedule.vue:143-226

3

数据看板图表写死

饼图/趋势图为固定数组,与上方真实统计数字互相矛盾

pages-dispatch/visualization.vue:145-160

4

车辆 / 人员 / 应急待命全走 mock

vehicle / personnel store 直接展开 mock 数组,loading 用 setTimeout 假装;真实接口在 api/staff.ts 已存在但没接

stores/vehicle.ts stores/personnel.ts vehicleList / availableVehicles / emergencyStandby / onDutyStaff.vue

5

通知详情点进去必显示"公告不存在"

写死假公告,id 字符串 'n1' 与列表传入的数字不匹配;且与 pages-common 版重复

pages-dispatch/noticeDetail.vue pages-construction/noticeDetail.vue

6

任务处理记录时间线是假数据

固定 3 条(销售-李明/调度-王调度/施工-张师傅),未调任务日志接口

pages-common/taskDetail.vue:109-131

7

首页统计数字写死

三个 Home 的 notificationCount、tomorrowCount 为固定值;统计卡未接 dashboard 接口

SalesHome / DispatchHome / ConstructionHome.vue stores/task.ts:31

8

销售端 6 个子页面全是写死数组

知识库 / 消息 / 任务提醒均为硬编码数据,确认/拒绝按钮只 toast 不调接口

pages-sales/*(6 个文件)

二、严重:假操作点了以为成功实际没生效

P0
1

修改密码完全没调接口

仅本地校验后 toast 成功;api/auth.ts 也无 changePassword 接口(需后端补)

pages-common/changePassword.vue:85

2

应急任务列表大概率是空的

筛选字段 t.type==='emergency' 与任务实际字段(taskType/urgencyLevel)不符

pages-dispatch/emergencyTeam.vue:83

3

施工端问题反馈只 toast 不上报

onReject 误用 updateTask 改状态,应使用已有的 cancelTask 接口

pages-construction/taskDetail.vue:591-636

4

车辆检查只写本地 storage

出车前检查未提交后端,刷新/换设备即丢失

pages-construction/dailyTask.vue:194-221

5

多处"标记已读 / 删除"只改本地数组

noticeList、messageList 的滑动操作未调后端接口

noticeList.vue:110 messageList.vue

三、结构性缺陷

P1 / P2

storage 传参反模式

knowledge / message / notice 详情页用 setStorageSync 传整对象,无 id 入参兜底,刷新/分享即空白

列表无分页加载更多

任务/客户/合同/通知只拉首屏 10 条;搜索筛选为前端内存过滤,数据多了就漏

tab 索引错位

task.vue dispatch 端 setSelected(2)、schedule.vue setSelected(1),与 pages.json 实际索引相反,高亮错位

返回不刷新

contract.vue / customer.vue 用 onMounted 而非 onShow,编辑后返回列表数据陈旧

mock 残留会崩

mock/index.ts 仍被 5 个 store 引用;mockProjects 用旧字段 type:'包年'(后端为 cooperationType:'annual'),切真实后端会崩

request.ts 缺陷

错误 toast 无静默开关(权限 toast bug 根源);401 不清 roleInfo;无 token 刷新;BASE_URL 硬编码 localhost

死代码

dispatch/construction 下重复的 notification/noticeList/noticeDetail;stores/schedule.ts 未使用

占位页面

paymentRecord / followUpList 整页空态;合同付款记录、客户关联项目为占位文案

一次性拉 1000 条

contractForm.vue:268 拉 1000 条客户、addProject.vue:600 拉 1000 条合同,客户多时会卡

其他零散

taskNo 前端用 Date.now() 生成(应后端生成);地理位置占位仅 toast;checklist 3 项与点检 12 项不一致

四、解决方案(按优先级分批)

P0 演示前必修 — 消灭假数据 / 假操作 约 1 ~ 1.5 天 · 前端为主 + 后端 3~4 个小接口
  1. 1. 调度端发布任务接真实接口:项目/车辆下拉 + createTask + 照片上传
  2. 2. 排班页字段修正为 workDate;新增排班接 createSchedule
  3. 3. 删除 noticeDetail 死代码文件(列表本就跳 pages-common 版);统一 id 数字传参
  4. 4. 车辆/人员/应急页面 store 接 api/vehicle.ts、api/staff.ts(接口已存在,纯前端)
  5. 5. 后端补缺口接口:修改密码、任务反馈、消息已读、付款/跟进记录——或演示版先隐藏入口
  6. 6. visualization 图表接 dashboard 接口
P1 交互正确性 约半天
  1. 7. tab 索引修正(task/schedule 互换);列表页统一 onShow 刷新 + 触底加载 + 搜索传后端
  2. 8. 详情页统一改为 onLoad(options.id) + 接口拉取,废弃 storage 传参
  3. 9. request.ts 加 silent 选项;401 清全 store;BASE_URL 走环境变量
P2 清理与规范化 约半天
  1. 10. 删除 mock 引用(5 个 store)、重复子包页面、未用 store;统一类型定义(SimpleOption 重复、API 返回值无类型)
建议顺序:先做 P0 的 1-4(纯前端、风险低、演示收益最大),后端缺口接口并行补;P1/P2 随后跟进。

青道夫管道疏通管理平台 · 移动端审查报告 | 外围架构已固定,本报告聚焦内部完善项