From 291067c13bfe8fb9c876e3764a828dc3ddd22f99 Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期一, 17 十一月 2025 16:50:12 +0800
Subject: [PATCH] 监控优化,代码功能优化
---
代码管理/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/PpWarehouse.vue | 409 +++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 261 insertions(+), 148 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/PpWarehouse.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/PpWarehouse.vue"
index 706d1b3..d5a5847 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/PpWarehouse.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Client/src/views/deviceMonitoring/PpWarehouse.vue"
@@ -1,197 +1,236 @@
<template>
<div id="title">
<div id="bkuang" style="border-top: none">
+ <!-- PP浠撳爢鍨涙満鐘舵�侀潰鏉� -->
<div class="skuang">
<div class="zhuname">PP浠撳爢鍨涙満</div>
+
<div class="zhankuang">
<div class="xname">鍫嗗灈鏈虹姸鎬�:</div>
- <div class="xzhi" :title="data.R_PP_Status">{{ data.R_PP_Status }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Status">{{ ppData.R_PP_Status }}</div>
</div>
<div class="zhankuang">
<div class="xname">鍫嗗灈鏈烘墜鑷姩鐘舵��:</div>
- <div class="xzhi" :title="data.R_PP_AutoStatus">{{ data.R_PP_AutoStatus }}</div>
+ <div class="xzhi" :title="ppData.R_PP_AutoStatus">{{ ppData.R_PP_AutoStatus }}</div>
</div>
<div class="zhankuang">
<div class="xname">姝e湪鎵ц鐨勪换鍔″彿:</div>
- <div class="xzhi" :title="data.R_PP_TaskNum">{{ data.R_PP_TaskNum }}</div>
+ <div class="xzhi" :title="ppData.R_PP_TaskNum">{{ ppData.R_PP_TaskNum }}</div>
</div>
<div class="zhankuang">
<div class="xname">鍫嗗灈鏈哄伐浣滅姸鎬�:</div>
- <div class="xzhi" :title="data.R_PP_WorkStatus">{{ data.R_PP_WorkStatus }}</div>
+ <div class="xzhi" :title="ppData.R_PP_WorkStatus">{{ ppData.R_PP_WorkStatus }}</div>
</div>
<div class="zhankuang">
<div class="xname">浣滀笟绫诲瀷:</div>
- <div class="xzhi" :title="data.R_PP_WorkType">{{ data.R_PP_WorkType }}</div>
+ <div class="xzhi" :title="ppData.R_PP_WorkType">{{ ppData.R_PP_WorkType }}</div>
</div>
<div class="zhankuang">
<div class="xname">鎵樼洏绫诲瀷:</div>
- <div class="xzhi" :title="data.R_PP_TrayType">{{ data.R_PP_TrayType }}</div>
+ <div class="xzhi" :title="ppData.R_PP_TrayType">{{ ppData.R_PP_TrayType }}</div>
</div>
</div>
+
+ <!-- PP鍏宠仈绔欏彴锛堝叆搴�2004+鍑哄簱2005锛� -->
<div class="skuang">
<div class="zhuname">鍏ュ簱2004绔欏彴</div>
<div class="zhankuang">
<div class="xname">璇诲彇绠变綋鐮�(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Boxcode">{{ data.R_PP_Boxcode }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Boxcode">{{ ppData.R_PP_Boxcode || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鎻℃墜淇″彿(璇�):</div>
- <div class="xzhi" :title="data.R_PP_HandShake4">{{ data.R_PP_HandShake4 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_HandShake4">{{ ppData.R_PP_HandShake4 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鏄惁鑱旀満(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Online4">{{ data.R_PP_Online4 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Online4">{{ ppData.R_PP_Online4 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鏄惁绌洪棽(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Free4">{{ data.R_PP_Free4 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Free4">{{ ppData.R_PP_Free4 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鏄惁鏈夎揣(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Goods4">{{ data.R_PP_Goods4 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Goods4">{{ ppData.R_PP_Goods4 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鏄惁鏁呴殰(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Alarm4">{{ data.R_PP_Alarm4 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Alarm4">{{ ppData.R_PP_Alarm4 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">璇锋眰淇″彿(璇�):</div>
- <div class="xzhi" :title="data.R_PP_STB4">{{ data.R_PP_STB4 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_STB4">{{ ppData.R_PP_STB4 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鍝嶅簲淇″彿(璇�):</div>
- <div class="xzhi" :title="data.R_PP_ACK4">{{ data.R_PP_ACK4 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_ACK4">{{ ppData.R_PP_ACK4 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">璇锋眰淇″彿(鍐�):</div>
- <div class="xzhi" :title="data.W_PP_STB4">{{ data.W_PP_STB4 }}</div>
+ <div class="xzhi" :title="ppData.W_PP_STB4">{{ ppData.W_PP_STB4 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鍝嶅簲淇″彿(鍐�):</div>
- <div class="xzhi" :title="data.W_PP_ACK4">{{ data.W_PP_ACK4 }}</div>
+ <div class="xzhi" :title="ppData.W_PP_ACK4">{{ ppData.W_PP_ACK4 || '-' }}</div>
</div>
<div class="zhuname">鍑哄簱2005绔欏彴</div>
<div class="zhankuang">
<div class="xname">鎻℃墜淇″彿(璇�):</div>
- <div class="xzhi" :title="data.R_PP_HandShake5">{{ data.R_PP_HandShake5 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_HandShake5">{{ ppData.R_PP_HandShake5 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鏄惁鑱旀満(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Online5">{{ data.R_PP_Online5 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Online5">{{ ppData.R_PP_Online5 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鏄惁绌洪棽(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Free5">{{ data.R_PP_Free5 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Free5">{{ ppData.R_PP_Free5 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鏄惁鏈夎揣(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Goods5">{{ data.R_PP_Goods5 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Goods5">{{ ppData.R_PP_Goods5 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鏄惁鏁呴殰(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Alarm5">{{ data.R_PP_Alarm5 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Alarm5">{{ ppData.R_PP_Alarm5 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">璇锋眰淇″彿(璇�):</div>
- <div class="xzhi" :title="data.R_PP_STB5">{{ data.R_PP_STB5 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_STB5">{{ ppData.R_PP_STB5 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鍝嶅簲淇″彿(璇�):</div>
- <div class="xzhi" :title="data.R_PP_ACK5">{{ data.R_PP_ACK5 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_ACK5">{{ ppData.R_PP_ACK5 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">璇锋眰淇″彿(鍐�):</div>
- <div class="xzhi" :title="data.W_PP_STB5">{{ data.W_PP_STB5 }}</div>
+ <div class="xzhi" :title="ppData.W_PP_STB5">{{ ppData.W_PP_STB5 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鍝嶅簲淇″彿(鍐�):</div>
- <div class="xzhi" :title="data.W_PP_ACK5">{{ data.W_PP_ACK5 }}</div>
+ <div class="xzhi" :title="ppData.W_PP_ACK5">{{ ppData.W_PP_ACK5 || '-' }}</div>
</div>
</div>
-
+
+ <!-- PP鍏宠仈绔欏彴锛堝嚭搴�2016+鍑哄簱2017锛� -->
<div class="skuang">
<div class="zhuname">鍑哄簱2016绔欏彴</div>
<div class="zhankuang">
<div class="xname">鎻℃墜淇″彿(璇�):</div>
- <div class="xzhi" :title="data.R_PP_HandShake6">{{ data.R_PP_HandShake6 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_HandShake6">{{ ppData.R_PP_HandShake6 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鏄惁鑱旀満(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Online6">{{ data.R_PP_Online6 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Online6">{{ ppData.R_PP_Online6 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鏄惁绌洪棽(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Free6">{{ data.R_PP_Free6 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Free6">{{ ppData.R_PP_Free6 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鏄惁鏈夎揣(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Goods6">{{ data.R_PP_Goods6 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Goods6">{{ ppData.R_PP_Goods6 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鏄惁鏁呴殰(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Alarm6">{{ data.R_PP_Alarm6 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Alarm6">{{ ppData.R_PP_Alarm6 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">璇锋眰淇″彿(璇�):</div>
- <div class="xzhi" :title="data.R_PP_STB6">{{ data.R_PP_STB6 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_STB6">{{ ppData.R_PP_STB6 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鍝嶅簲淇″彿(璇�):</div>
- <div class="xzhi" :title="data.R_PP_ACK6">{{ data.R_PP_ACK6 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_ACK6">{{ ppData.R_PP_ACK6 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">璇锋眰淇″彿(鍐�):</div>
- <div class="xzhi" :title="data.W_PP_STB6">{{ data.W_PP_STB6 }}</div>
+ <div class="xzhi" :title="ppData.W_PP_STB6">{{ ppData.W_PP_STB6 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鍝嶅簲淇″彿(鍐�):</div>
- <div class="xzhi" :title="data.W_PP_ACK6">{{ data.W_PP_ACK6 }}</div>
+ <div class="xzhi" :title="ppData.W_PP_ACK6">{{ ppData.W_PP_ACK6 || '-' }}</div>
</div>
+
<div class="zhuname">鍑哄簱2017绔欏彴</div>
<div class="zhankuang">
<div class="xname">鎻℃墜淇″彿(璇�):</div>
- <div class="xzhi" :title="data.R_PP_HandShake7">{{ data.R_PP_HandShake7 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_HandShake7">{{ ppData.R_PP_HandShake7 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鏄惁鑱旀満(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Online7">{{ data.R_PP_Online7 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Online7">{{ ppData.R_PP_Online7 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鏄惁绌洪棽(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Free7">{{ data.R_PP_Free7 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Free7">{{ ppData.R_PP_Free7 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鏄惁鏈夎揣(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Goods7">{{ data.R_PP_Goods7 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Goods7">{{ ppData.R_PP_Goods7 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鏄惁鏁呴殰(璇�):</div>
- <div class="xzhi" :title="data.R_PP_Alarm7">{{ data.R_PP_Alarm7 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_Alarm7">{{ ppData.R_PP_Alarm7 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">璇锋眰淇″彿(璇�):</div>
- <div class="xzhi" :title="data.R_PP_STB7">{{ data.R_PP_STB7 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_STB7">{{ ppData.R_PP_STB7 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鍝嶅簲淇″彿(璇�):</div>
- <div class="xzhi" :title="data.R_PP_ACK7">{{ data.R_PP_ACK7 }}</div>
+ <div class="xzhi" :title="ppData.R_PP_ACK7">{{ ppData.R_PP_ACK7 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">璇锋眰淇″彿(鍐�):</div>
- <div class="xzhi" :title="data.W_PP_STB7">{{ data.W_PP_STB7 }}</div>
+ <div class="xzhi" :title="ppData.W_PP_STB7">{{ ppData.W_PP_STB7 || '-' }}</div>
</div>
<div class="zhankuang">
<div class="xname">鍝嶅簲淇″彿(鍐�):</div>
- <div class="xzhi" :title="data.W_PP_ACK7">{{ data.W_PP_ACK7 }}</div>
+ <div class="xzhi" :title="ppData.W_PP_ACK7">{{ ppData.W_PP_ACK7 || '-' }}</div>
</div>
</div>
</div>
+
+ <div id="nowcolumn" :class="{ 'abnormal-column': ppData.R_PP_Status !== '姝e父' }">
+ <div>PP鍫嗗灈鏈哄綋鍓嶆墍鍦ㄥ垪:
+ <span :title="ppData.R_PP_Column">{{ ppData.R_PP_Column || '鏈煡' }}</span>
+ </div>
+ </div>
+
+ <div class="column-container" :class="{ 'pp-status-abnormal': ppData.R_PP_Status !== '姝e父' }">
+ <!-- 涓婃柟1-24鍒� -->
+ <div class="column-grid-container">
+ <div
+ v-for="num in 24"
+ :key="num"
+ class="column-grid-item"
+ :class="{ 'active': num == ppData.R_PP_Column }"
+ :title="`鍒楀彿: ${num}`"
+ >
+ {{ num }}
+ </div>
+ </div>
+ <!-- 涓嬫柟25-47鍒� (23涓�) -->
+ <div class="column-grid-container">
+ <div
+ v-for="i in 23"
+ :key="'lower-' + i"
+ class="column-grid-item"
+ :class="{ 'active': (24 + i) == ppData.R_PP_Column }"
+ :title="`鍒楀彿: ${24 + i}`"
+ >
+ {{ 24 + i }}
+ </div>
+ </div>
+ </div>
</div>
</template>
<script>
-import { ref, nextTick } from "vue";
+import { ref, nextTick, watch, onUnmounted } from "vue";
import { useStore } from "vuex";
import { onMounted } from "vue";
@@ -201,18 +240,21 @@
xuan: 0
};
},
- methods: {
- },
setup() {
const store = useStore();
- const data = ref({});
+ const ppData = ref({});
- // 1. 瀹氫箟鏅�氬瓧娈电殑鏄犲皠瑙勫垯
+ // 寤惰繜鏇存柊閰嶇疆
+ const UPDATE_DELAY = 300;
+ let updateTimer = null;
+
+ // PP鏁版嵁鏄犲皠瑙勫垯
const statusMap = {
R_PP_Status: {
- 1: "姝e父",
- 2: "鏁呴殰",
- 3: "鎬ュ仠",
+ 0: "姝e父",
+ 1: "鏁呴殰",
+ 2: "鎬ュ仠",
+ 3: "鏈煡"
},
R_PP_AutoStatus: {
0: "缁翠慨",
@@ -241,123 +283,110 @@
2: "涓墭鐩�(2)",
3: "澶ф墭鐩�(3)",
4: "鐗瑰ぇ鎵樼洏(4)",
+ },
+ R_PP_Column: (val) => val !== undefined ? val : "鏈煡"
+ };
+
+ // PP鐩稿叧甯冨皵瀛楁鍒嗙粍
+ const fieldGroups = {
+ online: {
+ fields: ["R_PP_Online6", "R_PP_Online4", "R_PP_Online5", "R_PP_Online7"],
+ map: { true: "鑱旀満", false: "鑴辨満" }
+ },
+ alarm: {
+ fields: ["R_PP_Alarm6", "R_PP_Alarm4", "R_PP_Alarm5", "R_PP_Alarm7"],
+ map: { true: "鏁呴殰", false: "姝e父" }
+ },
+ free: {
+ fields: ["R_PP_Free6", "R_PP_Free4", "R_PP_Free5", "R_PP_Free7"],
+ map: { true: "绌洪棽", false: "绻佸繖" }
+ },
+ goods: {
+ fields: ["R_PP_Goods6", "R_PP_Goods4", "R_PP_Goods5", "R_PP_Goods7"],
+ map: { true: "鏈夎揣", false: "鏃犺揣" }
+ },
+ signal: {
+ fields: [
+ "R_PP_HandShake4", "R_PP_STB4", "R_PP_ACK4", "W_PP_STB4", "W_PP_ACK4",
+ "R_PP_HandShake5", "R_PP_STB5", "R_PP_ACK5", "W_PP_STB5", "W_PP_ACK5",
+ "R_PP_HandShake6", "R_PP_STB6", "R_PP_ACK6", "W_PP_STB6", "W_PP_ACK6",
+ "R_PP_HandShake7", "R_PP_STB7", "R_PP_ACK7", "W_PP_STB7", "W_PP_ACK7"
+ ],
+ map: { true: "鏄�", false: "鍚�" }
}
};
- const onlines = [
- "R_PP_Online6","R_PP_Online4",
- "R_PP_Online5","R_PP_Online7"
- ]
- const online = {
- true: "鑱旀満",
- false: "鑴辨満"
- };
- const alarms = [
- "R_PP_Alarm6","R_PP_Alarm4",
- "R_PP_Alarm5","R_PP_Alarm7"
- ]
- const alarm = {
- true: "鏁呴殰",
- false: "姝e父"
- };
- const frees = [
- "R_PP_Free6","R_PP_Free4",
- "R_PP_Free5","R_PP_Free7"
- ]
- const free = {
- true: "绌洪棽",
- false: "绻佸繖"
- };
- const goods = [
- "R_PP_Goods6", "R_PP_Goods4",
- "R_PP_Goods5","R_PP_Goods7"
- ]
- const good = {
- true: "鏈夎揣",
- false: "鏃犺揣"
- };
- // 2. 瀹氫箟闇�瑕佸叡鐢ㄦ槧灏勮鍒欑殑瀛楁鍒楄〃鍜屽搴旂殑鏄犲皠瑙勫垯
- const booleanFields = [
- "R_PP_HandShake4", "R_PP_STB4",
- "R_PP_ACK4", "W_PP_STB4",
- "W_PP_ACK4",
- "R_PP_HandShake5", "R_PP_STB5",
- "R_PP_ACK5", "W_PP_STB5",
- "W_PP_ACK5",
- "R_PP_HandShake6", "R_PP_STB6",
- "R_PP_ACK6", "W_PP_STB6",
- "W_PP_ACK6",
- "R_PP_HandShake7", "R_PP_STB7",
- "R_PP_ACK7", "W_PP_STB7",
- "W_PP_ACK7",
- ];
- const booleanMap = {
- true: "鏄�",
- false: "鍚�"
- };
-
- // 澶勭悊鏁版嵁锛屽厛澶勭悊鏅�氭槧灏勶紝鍐嶆壒閲忓鐞嗗叡鐢ㄦ槧灏勭殑瀛楁
- const processData = (rawData) => {
+ // 澶勭悊PP鍘熷鏁版嵁
+ const processPPData = (rawData) => {
if (!rawData) return {};
const processed = { ...rawData };
- // 澶勭悊鏅�氬瓧娈垫槧灏�
+ // 澶勭悊鐘舵�佸瓧娈垫槧灏�
Object.keys(statusMap).forEach(key => {
if (processed.hasOwnProperty(key)) {
- const map = statusMap[key];
- processed[key] = map[processed[key]] || processed[key];
+ const mapper = statusMap[key];
+ processed[key] = typeof mapper === 'function'
+ ? mapper(processed[key])
+ : (mapper[processed[key]] || processed[key]);
}
});
- // 鎵归噺澶勭悊鍏辩敤鏄犲皠瑙勫垯鐨勫瓧娈�
- booleanFields.forEach(key => {
- if (processed.hasOwnProperty(key)) {
- processed[key] = booleanMap[processed[key]] || processed[key];
- }
- });
- onlines.forEach(key => {
- if (processed.hasOwnProperty(key)) {
- processed[key] = online[processed[key]] || processed[key];
- }
- });
- alarms.forEach(key => {
- if (processed.hasOwnProperty(key)) {
- processed[key] = alarm[processed[key]] || processed[key];
- }
- });
- frees.forEach(key => {
- if (processed.hasOwnProperty(key)) {
- processed[key] = free[processed[key]] || processed[key];
- }
- });
- goods.forEach(key => {
- if (processed.hasOwnProperty(key)) {
- processed[key] = good[processed[key]] || processed[key];
- }
+ // 澶勭悊甯冨皵鍨嬪瓧娈垫槧灏�
+ Object.values(fieldGroups).forEach(group => {
+ group.fields.forEach(key => {
+ if (processed.hasOwnProperty(key)) {
+ processed[key] = group.map[processed[key]] || processed[key];
+ }
+ });
});
return processed;
};
- onMounted(() => {
- nextTick(() => {
- setInterval(() => {
- const rawData = store.state.homedata;
- data.value = processData(rawData);
- const xian = document.getElementsByClassName("xzhi");
- for (let i = 0; i < xian.length; i++) {
- if (xian[i].innerHTML === "鏄�") {
- xian[i].style.color = "yellow";
- } else if (xian[i].innerHTML === "鍚�") {
- xian[i].style.color = "red";
+ // 寤惰繜鏇存柊PP鏁版嵁
+ const delayedUpdatePPData = (newRawData) => {
+ if (updateTimer) clearTimeout(updateTimer);
+ updateTimer = setTimeout(() => {
+ if (newRawData && newRawData.R_PP_Status !== undefined) {
+ ppData.value = processPPData(newRawData);
+ nextTick(() => {
+ const valueElements = document.getElementsByClassName("xzhi");
+ for (let i = 0; i < valueElements.length; i++) {
+ if (valueElements[i].innerHTML === "鏄�") {
+ valueElements[i].style.color = "yellow";
+ } else if (valueElements[i].innerHTML === "鍚�") {
+ valueElements[i].style.color = "red";
+ }
}
+ });
+ }
+ }, UPDATE_DELAY);
+ };
+
+ onMounted(() => {
+ const initialData = store.state.homedata;
+ if (initialData && initialData.R_PP_Status !== undefined) {
+ ppData.value = processPPData(initialData);
+ }
+
+ const unwatch = watch(
+ () => store.state.homedata,
+ (newData) => {
+ if (newData && newData.R_PP_Status !== undefined) {
+ delayedUpdatePPData(newData);
}
- });
+ },
+ { deep: true }
+ );
+
+ onUnmounted(() => {
+ unwatch();
+ if (updateTimer) clearTimeout(updateTimer);
});
});
return {
- data,
+ ppData
};
}
};
@@ -499,5 +528,89 @@
background: rgba(255, 255, 255, 0.2);
margin-left: 1.7%;
border-radius: 10px;
+ padding-bottom: 20px;
}
-</style>
+
+/* 鍫嗗灈鏈哄綋鍓嶅垪鏍峰紡 */
+#nowcolumn {
+ width: 100%;
+ height: 70px;
+ float: left;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 1.5cqw;
+ font-weight: bold;
+ color: #00ff4c;
+}
+
+/* 鍫嗗灈鏈虹姸鎬佸紓甯告椂锛屽綋鍓嶅垪鏂囧瓧鍙樹负绾㈣壊 */
+#nowcolumn.abnormal-column {
+ color: red !important;
+}
+#nowcolumn.abnormal-column span {
+ color: red !important;
+}
+
+/* 鍒楀鍣� */
+.column-container {
+ width: 95%;
+ margin: 0 auto;
+ position: relative;
+ clear: both;
+ padding-top: 15px;
+}
+
+/* 钃濊壊鍒嗗壊绾� */
+.column-separator {
+ width: 100%;
+ height: 20px;
+ background-color: #3bc0ed;
+ position: absolute;
+ top: 0; /* 璋冩暣鍒版柟鏍奸《閮ㄥ榻� */
+ left: 0;
+ z-index: 1; /* 纭繚鍦ㄦ柟鏍间笅鏂� */
+ border-radius: 4px 4px 0 0;
+}
+
+.column-grid-container {
+ width: 100%;
+ display: flex;
+ flex-wrap: nowrap; /* 绂佹鎹㈣ */
+ justify-content: space-between; /* 鍧囧寑鍒嗗竷 */
+ align-items: center;
+ gap: 2px; /* 鏂规牸涔嬮棿鐨勯棿璺� */
+ position: relative;
+ z-index: 2;
+ margin-bottom: 10px;
+ padding: 0 2px; /* 閬垮厤杈圭紭鏂规牸璐磋竟 */
+}
+
+/* 鍒楁柟鏍兼牱寮� - 鍏抽敭淇敼 */
+.column-grid-item {
+ flex: 1; /* 鏍稿績锛氭瘡涓柟鏍煎钩鍧囧垎閰嶅墿浣欑┖闂� */
+ min-width: 24px; /* 鏈�灏忓搴︼紙閬垮厤杩囧皬锛� */
+ max-width: 60px; /* 鏈�澶у搴︼紙閬垮厤杩囧ぇ锛� */
+ height: 30px;
+ border: 1px solid #fff;
+ border-radius:8px 8px 0 0;
+ color: white;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: clamp(8px, 1vw, 14px); /* 鑷�傚簲瀛椾綋 */
+ box-sizing: border-box;
+ transition: background-color 0.3s ease;
+}
+
+/* 褰撳墠鍒楅珮浜紙姝e父鐘舵�侊級 */
+.column-grid-item.active {
+ background-color: green;
+ font-weight: bold;
+}
+
+/* 鍫嗗灈鏈虹姸鎬佸紓甯告椂锛屽綋鍓嶅垪楂樹寒涓虹孩鑹� */
+.pp-status-abnormal .column-grid-item.active {
+ background-color: red !important;
+}
+</style>
\ No newline at end of file
--
Gitblit v1.9.3