From b9ddfb52754e9da4c09cb03eec9660df3af9f813 Mon Sep 17 00:00:00 2001 From: yexb <553699424@qq.com> Date: Thu, 21 May 2026 14:07:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(data-tools):=20=E6=96=B0=E5=A2=9E=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E7=B1=BB=E5=9E=8B=E9=80=89=E6=8B=A9=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E6=95=B0=E6=8D=AE=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在补数任务面板中添加入库类型单选按钮组,支持 MySQL 和 InfluxDB - 更新 AddData 接口定义,添加 StorageType 相关类型和选项接口 - 修改补数 API 请求逻辑,根据入库类型动态调整接口路径前缀 - 重构台账设备表单,统一使用装置网络参数作为 MAC 和 NDID 的单一数据源 - 优化台账线路表单,仅当存在 ID 时才设置 lineId 字段,避免空值传递 - 添加入库类型列表获取接口和相关数据处理逻辑 - 更新台账字典代码常量,新增终端型号字典码 - 优化台账树节点添加逻辑,增加前置条件验证和禁用原因提示 - 添加 InfluxDB 配置文件到额外资源目录 - 更新稳定数据分析视图,优化台账树数据结构处理和样式布局 - 完善 API 调试契约检查,确保设备和线路数据映射正确性 - 优化趋势查询性能,禁用全局加载状态提升用户体验 --- frontend/src/styles/var.scss | 4 + frontend/src/utils/phaseColors.ts | 39 ++ .../SteadyIndicatorFloatingPanel.vue | 3 +- .../components/SteadyLedgerTree.vue | 152 +++-- .../components/SteadyTrendChartPanel.vue | 360 +++++++++- .../components/SteadyTrendDataTableDialog.vue | 199 ++++++ .../components/SteadyTrendToolbar.vue | 19 +- .../components/SteadyTrendWorkbench.vue | 62 +- .../contracts/check-axis-range-contract.mjs | 36 + .../check-chart-display-contract.mjs | 329 +++++++++ .../contracts/check-data-table-contract.mjs | 96 +++ .../check-ledger-panel-layout-contract.mjs | 64 ++ .../contracts/check-selection-contract.mjs | 13 +- .../contracts/check-visible-contract.mjs | 33 +- .../src/views/steady/steadyDataView/index.vue | 12 +- .../steadyDataView/utils/selectionRules.ts | 30 +- .../steadyDataView/utils/trendOptions.ts | 625 +++++++++++++++++- .../steadyDataView/utils/trendPayload.ts | 6 +- .../steady/steadyDataView/utils/trendTable.ts | 223 +++++++ .../contracts/check-axis-range-contract.mjs | 53 ++ .../contracts/check-line-width-contract.mjs | 32 + frontend/src/views/tools/waveform/index.vue | 238 +++++-- .../src/views/tools/waveform/utils/theme.ts | 14 +- 23 files changed, 2462 insertions(+), 180 deletions(-) create mode 100644 frontend/src/utils/phaseColors.ts create mode 100644 frontend/src/views/steady/steadyDataView/components/SteadyTrendDataTableDialog.vue create mode 100644 frontend/src/views/steady/steadyDataView/contracts/check-axis-range-contract.mjs create mode 100644 frontend/src/views/steady/steadyDataView/contracts/check-chart-display-contract.mjs create mode 100644 frontend/src/views/steady/steadyDataView/contracts/check-data-table-contract.mjs create mode 100644 frontend/src/views/steady/steadyDataView/contracts/check-ledger-panel-layout-contract.mjs create mode 100644 frontend/src/views/steady/steadyDataView/utils/trendTable.ts create mode 100644 frontend/src/views/tools/waveform/contracts/check-axis-range-contract.mjs create mode 100644 frontend/src/views/tools/waveform/contracts/check-line-width-contract.mjs diff --git a/frontend/src/styles/var.scss b/frontend/src/styles/var.scss index 26c36f3..c1669a9 100644 --- a/frontend/src/styles/var.scss +++ b/frontend/src/styles/var.scss @@ -6,6 +6,10 @@ $primary-color: var(--el-color-primary); --cn-color-phase-a: #daa520; --cn-color-phase-b: #2e8b57; --cn-color-phase-c: #a52a2a; + --cn-color-phase-t: #000000; + --cn-color-phase-ab: #daa520; + --cn-color-phase-bc: #2e8b57; + --cn-color-phase-ca: #a52a2a; /* 波形状态与常用业务颜色 */ --cn-color-run: #20b2aa; diff --git a/frontend/src/utils/phaseColors.ts b/frontend/src/utils/phaseColors.ts new file mode 100644 index 0000000..e00a790 --- /dev/null +++ b/frontend/src/utils/phaseColors.ts @@ -0,0 +1,39 @@ +export const readThemeColor = (name: string, fallback: string) => { + if (typeof window === 'undefined') return fallback + + const value = getComputedStyle(document.documentElement).getPropertyValue(name).trim() + + return value || fallback +} + +export const phaseColorFallbackMap: Record = { + A: '#daa520', + B: '#2e8b57', + C: '#a52a2a', + T: '#000000', + AB: '#daa520', + BC: '#2e8b57', + CA: '#a52a2a' +} + +const phaseColorVariableMap: Record = { + A: '--cn-color-phase-a', + B: '--cn-color-phase-b', + C: '--cn-color-phase-c', + T: '--cn-color-phase-t', + AB: '--cn-color-phase-ab', + BC: '--cn-color-phase-bc', + CA: '--cn-color-phase-ca' +} + +export const resolvePhaseThemeColor = (phase: string) => { + const normalizedPhase = String(phase || '') + .trim() + .toUpperCase() + const variableName = phaseColorVariableMap[normalizedPhase] + const fallback = phaseColorFallbackMap[normalizedPhase] + + return variableName && fallback ? readThemeColor(variableName, fallback) : '' +} + +export const getDefaultPhaseThemeColors = () => ['A', 'B', 'C'].map(resolvePhaseThemeColor) diff --git a/frontend/src/views/steady/steadyDataView/components/SteadyIndicatorFloatingPanel.vue b/frontend/src/views/steady/steadyDataView/components/SteadyIndicatorFloatingPanel.vue index 0414b3f..db6be74 100644 --- a/frontend/src/views/steady/steadyDataView/components/SteadyIndicatorFloatingPanel.vue +++ b/frontend/src/views/steady/steadyDataView/components/SteadyIndicatorFloatingPanel.vue @@ -2,6 +2,7 @@