-
Data Governance Dev authored
合并两轮迭代的修改: 1) 违规原因细化(来自「细化所有目前显示的分析对象的错误信息」) - 21 个 IND validator + step4/5/6 的 reason 加上: · 标准来源编号(GB/T 2260 / GB 11643-1999 / 工信部 / GB 32100-2015 等) · 常见错因 ①②③(末位错填 / 出生日期段 / 地址码舍 0 等) · 建议核对原始证件 / 用脚本批量重算 - reason 字符串内含 \n 换行符(前后端一起生效) 2) 异常值字符位高亮(用户截图反馈「异常值要指出哪里错了」) - standards/base.py:ValidationResult 新增 bad_positions 字段 - 11 个 validator populate bad_positions: · IND-001/002/003/004/005/006 按字段类型填具体错位 · IND-016 银行卡 Luhn 错:暴力枚举找出「单字符修正」位 - web/core/step_impl/step7_standards.py:_build_value_highlighted · 区间合并(重叠/相邻)+ HTML escape → <mark class='bad-pos'>... - web/static/index.html: · .bad-pos CSS(淡红 + 红字 + 下划线 + cursor:help) · kind='code' 渲染分支 v-html='row.value_highlighted' 3) tooltip 多行修复(用户截图反馈「[a] [b] [c] 三个子检查挤在一行」) - 上一轮 .el-popper { white-space: pre-line !important } 看着对实际不生效 · Element Plus 2.x show-overflow-tooltip 内部 normalize 文本,外层 CSS 救不回来 - 本轮改用自渲染路线:放弃 show-overflow-tooltip,用 <el-tooltip> + #content 槽 · escapeTooltipHtml():HTML escape + \n → <br> · cell 内 text-overflow: ellipsis 保持单行布局 · 没 \n 的列无感升级 4) IND-003 / IND-004 合并步骤 TypeError 修复(用户截图反馈「有报错」) - 报错:TypeError: 'NoneType' object is not iterable - 根因:_merge_violations_by_tuple 里的死循环 for p in (r.get('value_highlighted') and []) · 当 value_highlighted 为 None/空串时短路返回 None, for p in None 抛错 · IND-003-b / IND-004-b 不填 bad_positions 时必触发 - 修复:直接删这段死代码(loop 里只有 pass,真正 fallback 在下面) 5) 其他 - docs/WORKLOG.md:四段工作记录(细化 / 高亮 / tooltip / 合并 bug) - scripts/reformat_reasons.py:AST-based 批量加 \n 工具,留作下轮兜底 未提交产物(生成报告 + tmp 脚本,不入库): - data_dictionary/standard_fields_violations_report.md - scripts/_tmp_build_violations_md.py 踩坑见 WORKLOG: - .el-tooltip__popper vs .el-popper(Element Plus 2.14.3 选择器) - and [] 短路求值返回 None(应为 or [] 或干脆删除) - show-overflow-tooltip 不可控,normalize 文本外层 CSS 救不回来1bb3ca98