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 @@