Преглед на файлове

fix(cockpit): 预警描述优先显示后端与管理端同源原文

管理端显示的两行预警描述是后端入库时生成的原文(early_warning.warning_content,
由 EarlyWarningContentSupport.describe 生成;报警对应 alarm_data.alarm_content)。
驾驶舱此前自行拼装,且现网事件 value/阈值大面积为 null,导致与管理端不一致。

改为:适配器映射后端 content 字段,有原文则原样显示(与管理端逐字一致);
仅老记录缺该字段时,才按实际值/阈值回退自拼,缺值仍不编造。

回归:t120 增加「后端原文优先且不改写」断言;其余套件全绿。
ChenJZ преди 1 час
родител
ревизия
2db156930a
променени са 2 файла, в които са добавени 8 реда и са изтрити 0 реда
  1. 4 0
      src/modules/cockpit/domain/equipmentDetailView.js
  2. 4 0
      src/modules/cockpit/domain/events.js

+ 4 - 0
src/modules/cockpit/domain/equipmentDetailView.js

@@ -378,6 +378,10 @@ function describeEvent(event) {
  * 缺值就少说一段,不编造、不补零;什么都没有时回空串(渲染层给占位符)。
  */
 function eventDescriptionText(event) {
+    // 后端(预警入库时)已生成与管理端一致的原文,优先原样显示;
+    // 只有老记录没有 content 时才按实际值/阈值自拼。
+    const stored = typeof event?.content === 'string' ? event.content.trim() : ''
+    if (stored) return stored
     const metric = event && event.type ? eventTypeText(event.type) : ''
     const value = typeof event?.value === 'number' && Number.isFinite(event.value) ? event.value : null
     const unit = event?.unit || ''

+ 4 - 0
src/modules/cockpit/domain/events.js

@@ -50,6 +50,8 @@ export function toWarningEvent(raw) {
         // 等级展示名来自后端字典(预警 alert_level / 报警 alarm_level,如「一级预警」);
         // 缺失时界面回落「N 级」,不在前端内置字典表。
         levelName: reader.optionalStr('levelName'),
+        // 预警描述原文(早期预警入库时已生成的两行文本,与管理端同源);缺失时前端才自拼。
+        content: reader.optionalStr('content'),
         status: reader.optionalStr('status'),
         eventTime: reader.optionalStr('eventTime'),
         value: reader.optionalNum('value'),
@@ -87,6 +89,8 @@ export function toAlarmEvent(raw) {
         // 等级展示名来自后端字典(预警 alert_level / 报警 alarm_level,如「一级预警」);
         // 缺失时界面回落「N 级」,不在前端内置字典表。
         levelName: reader.optionalStr('levelName'),
+        // 预警描述原文(早期预警入库时已生成的两行文本,与管理端同源);缺失时前端才自拼。
+        content: reader.optionalStr('content'),
         status: reader.optionalStr('status'),
         eventTime: reader.optionalStr('eventTime'),
         value: reader.optionalNum('value'),