Files
iAOP/templates/ti-cl4/dashboard
bot_dev1 7a2e45e7c4 feat: 全站 Ant Design Pro 风格重构 + 登录守卫与角色门户(issue #131/#134)
- 新增 web/shared:pro.css(AntD 5 设计系统,旧 CSS 变量统一映射 AntD 色板)、
  session.js(后端优先+本地账号降级双轨会话,IAOP_AUTH 兼容层)、
  pro-header.js(全站统一 Pro 导航条:logo/页题/用户角色 Tag/退出)
- 门户 web/index.html:未登录跳登录页(next 回跳),登录后按角色过滤
  可见模块(readonly→驾驶舱/助手/移动端;engineer→+配置台;admin→全部)
- 登录页 auth/login.html 重写为 Ant Design Pro 风格,本地降级模式自动
  播种演示账号(admin/engineer/viewer),保留 OIDC SSO 双轨入口
- user_store.js 新增 verify() + seedDefaults() 默认账号播种
- 六模块页统一接入 pro.css + 统一导航条 + 登录守卫(PRD 8.2)
- 驾驶舱主题 dark→light(Ant Design 5 色板):renderer.py THEME_TOKENS、
  ti-cl4/resin 模板 theme、告警三级配色对齐 AntD(P0 #ff4d4f/P1 #faad14/
  P2 #1677ff),渲染计划已重编(build_plans.py)
- 验证:core/cockpit 86 单测通过;JS 语法检查通过;静态冒烟全 200
2026-08-05 14:17:37 +08:00
..

海绵钛驾驶舱布局资产 + 校验器(Issue #55 / PRD 5.5)

父 Issue「⑤ Ti 行业布局模板(四状态流程视图)· 0.5d」

把海绵钛车间驾驶舱布局落为对齐 iAOP-cockpit-layout-v1 的资产 + 可校验的纯标准库 校验器(无 node/前端构建环境,零运行时依赖)。

资产:cockpit.ti.yaml

四状态工艺流程(PRD 4.2 海绵钛:氯化 → 精制 → 还原 → 蒸馏):

  • process_view 主视图(首屏立即加载),stages 声明四状态覆盖;
  • trend 实时趋势(氯化炉温度 CLF-01.TEMP / 氯气流量 CLF-01.CL2);
  • kpi_card KPI(TiCl₄纯度 RF-01.PURITY / 杂质 RF-01.IMP / 电耗 E-01.KWH / 蒸汽 ST-01.STEAM);
  • alarm_panel 告警面板 + nl_query NL 查询入口。

所有 bind 的 point_id 对齐 templates/ti-cl4/point-dict/point_dict.default.csv。

校验器:layout_validator.py

LayoutValidator(layout_yaml, point_dict_csv).validate() → LayoutReport,校验:

  1. widget 类型合法:在 iAOP-cockpit-layout-v1 允许集合内(process_view/trend/kpi_card/alarm_panel/nl_query);
  2. 12 列网格不越界:0 ≤ x、x + w ≤ 12、y ≥ 0、w/h > 0;
  3. bind point_id 在点位字典内:防模板漂移(trend/kpi_card 的 bind 必须命中点字典);
  4. 四状态覆盖完整:process_view 的 stages 必须覆盖氯化/精制/还原/蒸馏,order 单调递增、id 唯一。

零依赖 YAML 子集解析(复制 impurity-forecast 的 _parse_yaml_subset,无 pyyaml)。

测试

python -m unittest discover -s templates/ti-cl4/dashboard/tests -p "test_*.py" -v

覆盖正常 + 边界 + 错误(18 用例):真实资产端到端通过、非法类型、网格越界/负坐标/零宽、 bind 漂移、缺 process_view、缺必需状态、order 非单调、stage 重复、$schema 头、CSV 加载、空布局。