-
Data Governance Dev authored
T4 任务(task_id=16,GJ_DWRYBD 表,39 字段全是大写 YWBH/FCRS/...)跑完查询, 前端表格所有单元格都显示 (NULL),但备注列能正确显示「fcrs: 100到200之间」。 根因(列名大小写不匹配): - 后端 db_adapter._rows_as_dicts 全局把列名归一为小写 (normalize_column_name line 188) - row dict 的 key 全是小写(ywbh / fcrs / ...) - 后端 _evaluate_row 用 cf.field_key = f.field_key.lower() 访问, 所以规则匹配正常(备注列能正确显示就是证据) - 但前端 resultFields.key 用了 f.field_key 原值(大写 FCRS) - ResultTable 里 row[col.key] → row['FCRS'] → undefined → (NULL) 两处表现是同一个根因: - 单元格全 (NULL):row[col.key] 大写找不到 - 错误 tooltip 永远 fallback「该字段不合法」: 原版 errTip 用 col.cn(大写)找 row.issues[].field(小写), 永远匹配不上 改动: DataQualityView.vue resultFields 里: key: (f.field_key || '').toLowerCase() // 跟 row dict 小写对齐 cn: f.field_key // 表头显示保留原大小写 ResultTable.vue errTip: 直接用 col.key(小写)找 row.issues[].field(小写), 去掉 col.cn 那一跳 教训:「DB 列名大小写 × 字段名大小写 × 后端归一化策略」是反复出现的坑。 db_adapter 全局归一为小写是契约,前端落 key 时必须主动 .toLowerCase()。b581e91a