Преглед на файлове

docs(memory): 记录设施GIS一张图状态色语义统一

Kazerin преди 1 месец
родител
ревизия
bc2e848108
променени са 2 файла, в които са добавени 37 реда и са изтрити 0 реда
  1. 1 0
      memory/index.md
  2. 36 0
      memory/sessions/2026-09-18-facility-gis-colors.md

+ 1 - 0
memory/index.md

@@ -65,3 +65,4 @@ npm run dev       # 默认 http://localhost:80
 - [2026-09-16:监测报警 GIS 接入统一画布(Ticket #4)](sessions/2026-09-16.md)
 - [2026-09-17:供水首页工作台 #58 四项修正收尾(前端呈现 + 后端实时报警根因)](sessions/2026-09-17.md)
 - [2026-09-18:首页 GIS 点位颜色语义统一(仅首页)](sessions/2026-09-18.md)
+- [2026-09-18(续):供水设施 GIS 一张图统一按设施状态着色](sessions/2026-09-18-facility-gis-colors.md)

+ 36 - 0
memory/sessions/2026-09-18-facility-gis-colors.md

@@ -0,0 +1,36 @@
+# 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`,本轮未触碰。