2026-09-18-facility-gis-colors.md 2.6 KB

2026-09-18(续):供水设施 GIS 一张图统一按设施状态着色

目标

把供水设施 GIS 一张图的点位颜色从“按设施类型”改为“按设施状态”,与已验收的首页全域态势共用同一套状态色语义。

结论与变更

  • 提交 c0bcedb:状态语义提取到共享色板 src/utils/gisMapColors.js
    • 新增 facilityStatusMeta 与 getFacilityStatusMeta(type, status) / getFacilityStatusIcon(type, status)。
    • 水源地 0 正常(绿)/1 异常(红);水厂 0 正常(绿)/1 停产(红);泵站 0 正常(绿)/1 故障停运(红)/2 检修中(蓝);用水户 0 正常(绿)/1 欠费(黄)/2 停用(红)。
    • 状态缺失或未知按“正常”处理,不臆造异常;管网 0 不参与状态映射,返回 null 图标。
  • src/utils/waterHomeModel.js 删除本地重复的 HOME_FACILITY_STATUS_META,改为复用共享函数,首页与设施一张图只有一处状态定义。
  • facility/gis.vue:点位按状态取色取图标;图例改为“设施状态图例”(正常/异常类/检修中/欠费)+ 管网仅管线说明;搜索结果列表加状态色点与状态标签(管网回退显示设施类型);详情抽屉增加设施业务状态标签。
  • 删除已无生产引用的 facilityPointIcons / getFacilityPointIcon(旧按类型图标),避免两套设施颜色定义并存。

关键决策

  • 设施状态色沿用设备五态语义,不新造色板;红色同时承载异常/停产/故障停运/停用,蓝色承载检修中,黄色承载欠费。
  • 管网保持现状:只画管线、不加图标,也不显示状态标签。
  • 状态定义收敛到共享色板,设施状态语义变更只需改一处。

验证结果

  • TDD:先加红测试(getFacilityStatusMeta 缺失、设施页仍用类型图标),实现后转绿。
  • 前端全量 node --test tests/*.test.mjs 161/161 通过;vite build --logLevel error 通过。

审查备注

  • 两轴审查由主线程完成(子代理连续两次因上游 503 不可用):Spec 全部满足;Standards 无硬违规,另有两条判断项已在提交前修复(管网被误标为“正常”、旧类型图标函数成为死代码)。
  • 后端 WaterSupplyGisMapServiceImpl 已在 GeoJSON properties 中输出 status,前端无需额外接口改动。

后续行动

  • 待人工验收设施一张图各状态颜色与图例;通过后按需推送(当前仅本地提交)。
  • #50(供水报警与设备 service 收敛)另有并行会话在推进,其共享服务已移至 com.zksy.base.service.impl,本轮未触碰。