fix(w05): 都齐了红条整条收起 —— 开关是案卷真数据 gate_state,不看那句话空不空

2026-08-31 用户:「没有必填字段不需要警告了,还差什么这个红色区域就不要显示」。
病根在一层机制之下:配方把 gate_reason 清成空串时,**空值按列归型不落笔**
(jsonb 合并保旧值)—— 那句话一旦写下就永远清不掉,红条亮过就灭不了。
治法:案卷加开关列 gate_state(tally open/clear,两个值都非空、两个方向都真写),
与发卡条件共用同一句判定(GATE_OPEN_WHEN 一处真源);红条挂 data-class-of=gate_state,
v-clear 整条收起(判断留在样式表);人补齐最后一格保存,quiet 拍照跑 project、
重推件,红条当场消失。空文本 :has(:empty) 兜底保留(首拍还没写过的形)。
107 包内(开关双向 + 一处真源两锚,else 侧变异红过)+ 定向 1109 测;
2.13.0 装库核过(开关/CSS/else=clear)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LKMZDwMbyKzjw6Hembwvet
This commit is contained in:
xcs
2026-08-31 18:05:53 +08:00
co-authored by Claude Fable 5
parent 9412dd7aa8
commit 228739eaca
6 changed files with 42 additions and 5 deletions
@@ -54,7 +54,7 @@ export const manifest: ActivityManifest = {
activityId: ACTIVITY_ID,
name: 'ACT-WORK-05 · 差异评估',
/* 重写不是改 —— 同版重装是 no-op(静默丢失,踩过) */
packageVersion: '2.12.1',
packageVersion: '2.13.0',
category: '需求分析与方案匹配',
sdkVersion: '0.1.0-m5',
checksum: 'dev-checksum-part-substitution-assessment',
@@ -431,6 +431,13 @@ export const manifest: ActivityManifest = {
/* 与 `parts.chip_type.type_id` 同一条身份链路,同一个理由改成 text —— 见该字段的大注释 */
col({ name: 'chip_type_id', type: 'text', label: '本单锁定的芯片类型' }),
col({ name: 'gate_reason', type: 'text', label: '入参未就绪原因(件上摆的就是它)' }),
/*
* **红条的开关是真数据,不是那句话空不空**(2026-08-31 用户:「没有必填要警告了,
* 红色区域就不要显示」):gate_reason 清成空串时按列归型**不落笔**(空值=不写这一列,
* jsonb 合并保旧值)—— 那句话一旦写下就清不掉,红条永远亮着。开关列两个值都非空,
* 两个方向都写得动;件上 data-class-of 投影 v-clear 收红条,判断留在样式表。
*/
col({ name: 'gate_state', type: 'text', label: '入参闸门状态', tally: ['open', 'clear'] }),
col({ name: 'summary', type: 'text', label: '结论摘要' }),
],
},