把 alarm_panel 组件的展示语义外置为模板配置资产,使「切换行业模板零改前端代码」
(PRD 5.5 验收口径)覆盖到告警面板:
- core/cockpit/alarm_config.py:AlarmPanelConfig 配置点
- severityColors(P0/P1/P2 三级 fg/bg/icon/border,覆盖主题默认告警色;
P0 fg 即驾驶舱红色告警 PRD 5.3 ③ 场景A)
- rulesSource / thresholdsSource(asset 资产路径 或 inline 内联规则,
阈值/规则外置 JSON,PRD line 152/171)
- showSop(PRD 场景A LLM 报警解释 + 值班长确认是否展开 SOP)
- requireAck / ackTimeoutS(高利害人工确认,PRD line 333;超时升级)
- muteLower / groupBy / sortBy / maxItems(静默下限 + 大屏展示策略)
- validate_alarm_config(聚合全部字段级错误,沿用 #50 风格)
- load_alarm_config(校验失败抛 AlarmConfigError 携带错误清单)
- render_alarm_panel_props(编译为 alarm_panel 组件 props,#51 渲染层合并即可)
- filter_alarms_by_mute(验证 muteLower 配置点真实驱动展示策略)
- core/cockpit/__init__.py:导出 #52 告警面板配置 API(#50/#51 合入后合并导出)
- templates/ti-cl4/dashboard/alarm_panel.ti.yaml:氯化车间/海绵钛告警面板配置资产
- core/cockpit/scripts/verify_alarm_config.py:验收脚本(4 能力点,exit 0)
- core/cockpit/tests/test_alarm_config.py:28 用例(校验/加载/渲染/过滤/负例)
- core/cockpit/README.md:模块说明与用法
零运行时依赖(仅标准库);与 #50/#51 解耦,不 import 未合入分支。
测试:python -m unittest discover -s tests -p test_alarm_config.py(28 OK)
59 lines
1.7 KiB
Python
59 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""配置化驾驶舱内核模块(iAOP-Core / cockpit)—— 对齐 PRD 5.5「⑤ 配置化驾驶舱」。
|
||
|
||
当前对外暴露 issue #52「报警看板配置化(阈值/规则外置)」的能力:把告警面板的
|
||
展示语义(严重度配色 / 规则源 / SOP / 确认 / 分组排序)外置为模板配置资产。
|
||
|
||
布局 JSON Schema(#50)与渲染层(#51)在其各自 feature 分支上推进;合入 main
|
||
后,本 ``__init__`` 会合并它们的导出(``CockpitLayout`` / ``validate_layout`` /
|
||
``RenderPlan`` 等)。当前只导出 #52 的告警面板配置 API,保证 #52 在 main 上
|
||
可独立运行、可独立测试。
|
||
"""
|
||
from __future__ import annotations
|
||
|
||
from .alarm_config import ( # noqa: F401
|
||
ALARM_CONFIG_SCHEMA_ID,
|
||
ALARM_CONFIG_SCHEMA_VERSION,
|
||
DEFAULT_ACK_TIMEOUT_S,
|
||
DEFAULT_MAX_ITEMS,
|
||
DEFAULT_MUTE_LOWER,
|
||
MAX_ALLOWED_ITEMS,
|
||
SEVERITY_RANK,
|
||
VALID_GROUP_BY,
|
||
VALID_SEVERITIES,
|
||
VALID_SORT_BY,
|
||
VALID_SOURCE_KINDS,
|
||
AlarmConfigError,
|
||
AlarmConfigValidationResult,
|
||
AlarmPanelConfig,
|
||
AlarmRulesSource,
|
||
SeverityColor,
|
||
filter_alarms_by_mute,
|
||
load_alarm_config,
|
||
render_alarm_panel_props,
|
||
validate_alarm_config,
|
||
)
|
||
|
||
__all__ = [
|
||
"ALARM_CONFIG_SCHEMA_ID",
|
||
"ALARM_CONFIG_SCHEMA_VERSION",
|
||
"DEFAULT_ACK_TIMEOUT_S",
|
||
"DEFAULT_MAX_ITEMS",
|
||
"DEFAULT_MUTE_LOWER",
|
||
"MAX_ALLOWED_ITEMS",
|
||
"SEVERITY_RANK",
|
||
"VALID_GROUP_BY",
|
||
"VALID_SEVERITIES",
|
||
"VALID_SORT_BY",
|
||
"VALID_SOURCE_KINDS",
|
||
"AlarmConfigError",
|
||
"AlarmConfigValidationResult",
|
||
"AlarmPanelConfig",
|
||
"AlarmRulesSource",
|
||
"SeverityColor",
|
||
"filter_alarms_by_mute",
|
||
"load_alarm_config",
|
||
"render_alarm_panel_props",
|
||
"validate_alarm_config",
|
||
]
|