Эх сурвалжийг харах

docs(issue-52): record icon tone and industry layer semantic sync

ChenJZ 9 цаг өмнө
parent
commit
5fb3222389

+ 12 - 0
.scratch/cockpit-shell-panel-layout/issues/52-untitled.md

@@ -131,6 +131,18 @@ AI 不代劳的原因:`AGENTS.md` 禁止自动 build/dev/浏览器截图;后
 
 **范围自查**:`mapService.js` 与 `markerPlan.js` 带其它在制品改动,本票**未提交**这两个文件(Three 服务自带同值兜底色表,避免触碰他人工作);未改任何后端既有文件。
 
+### 2026-10-22 二次反馈:颜色状态与类型图标语义不同步(已修,`ba5041a`)
+
+维护者确认场景已用同款图标后指出:**颜色状态**与**中间的类型图标**仍未同步。根因是 Three 侧没走主图的两条语义规则:
+
+1. **颜色**:主图给 `planMarker` 显式传**设备状态表**的色键(`deviceVisualForStatus()`:ALARM→`lv1`、WARNING→`lv2`、WORK_ORDER→`lv3`、NORMAL→`lv4`、**OFFLINE→`point-offline`**、认不出→**`point-unknown`**)。我此前没传 `tone`,于是落到 `markerPlan` 的**点位聚合态**默认表——那里 OFFLINE/UNKNOWN 都是 `neutral`,所以离线设备与主图不同色、未知态被画成灰色。
+2. **类型图标**:内层图标按 `industry` 选(gas/water/drainage/manhole)。设备卡常无 `industry`,主图规则是**继承所属点位行业**;服务层已按同一规则落好(`device.industry || point.industry`),但 Three 侧此前没把这条链路当唯一来源。
+3. **母版形状**:无 `pointCode`(未关联设备)应为镂空母版,与主图一致。
+
+修法:新增**唯一裁决点** `deviceMarkerPlan(device)` —— 统一由 `deviceVisualForStatus()` 取 `tone`、按 `industry` 选内层、按 `pointCode` 决定镂空/实心,再交给同一个 `renderMarker`。回归 `t52-device-pick` 逐项锁死:五态 + 未知态色键、四行业内层图标、无行业不造图标、有点位=实心/无点位=镂空。
+
+**验证**:`t52-device-pick`、`t52-facility-relations`、`t52-device-plan`、`t52-device-source`、`t55-detail-usability`、`t55-device-loading`、`t56-real-water-device`、`t23-click-flow`、`t23-sfc-compile`、`t09-point-status` 与整套 12 脚本全部通过。按 AGENTS 未跑 build/dev/browser。
+
 Status: ready-for-human
 Assignee: codex
 Type: task