From 339111ff4fe09368d5c1ff998d67575e53f912c1 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期二, 04 三月 2025 17:44:41 +0800
Subject: [PATCH] 1、车间看板页面调整鼠标悬浮框样式 2、车间看板页面增加定时任务定时刷新后台接口

---
 src/views/mdc/base/WorkshopSignage.vue |   64 +++++++++++++++++++++++++------
 1 files changed, 51 insertions(+), 13 deletions(-)

diff --git a/src/views/mdc/base/WorkshopSignage.vue b/src/views/mdc/base/WorkshopSignage.vue
index 6db29b2..83acb27 100644
--- a/src/views/mdc/base/WorkshopSignage.vue
+++ b/src/views/mdc/base/WorkshopSignage.vue
@@ -5,7 +5,7 @@
       <div class="left-col">
         <div class="col-content">
           <div class="content-title">{{workshopDetails.workshopName}}#璁惧鎯呭喌</div>
-          <workshop-device-overview :currentProductionId="currentProductionId"
+          <workshop-device-overview ref="workshopDeviceOverviewRef" :currentProductionId="currentProductionId"
                                     :equipmentStatusList="equipmentStatusList" :toDecimal2NoZero="toDecimal2NoZero"/>
         </div>
         <div class="col-content">
@@ -15,22 +15,25 @@
         </div>
         <div class="col-content">
           <div class="content-title">璁惧鍛ㄥ埄鐢ㄧ巼瓒嬪娍</div>
-          <week-utilization-rate-trend :currentProductionId="currentProductionId" :toDecimal2NoZero="toDecimal2NoZero"/>
+          <week-utilization-rate-trend ref="weekRateTrendRef" :currentProductionId="currentProductionId"
+                                       :toDecimal2NoZero="toDecimal2NoZero"/>
         </div>
         <div class="col-content">
           <div class="content-title">璁惧鏃ュ埄鐢ㄧ巼瓒嬪娍</div>
-          <day-utilization-rate-trend :currentProductionId="currentProductionId" :toDecimal2NoZero="toDecimal2NoZero"/>
+          <day-utilization-rate-trend ref="dayRateTrendRef" :currentProductionId="currentProductionId"
+                                      :toDecimal2NoZero="toDecimal2NoZero"/>
         </div>
         <div class="col-content">
           <div class="content-title">璁惧鎶ヨ淇℃伅</div>
-          <device-alarm-info/>
+          <device-alarm-info ref="deviceAlarmInfoRef" :currentProductionId="currentProductionId"/>
         </div>
       </div>
 
       <!--鍙充晶鎷栨嫿鍖哄煙-->
       <div class="right-col">
-        <device-drag-layout :currentProductionId="currentProductionId" :equipmentStatusList="equipmentStatusList"
-                            :getImgView="getImgView"/>
+        <device-drag-layout ref="deviceDragLayoutRef" :currentProductionId="currentProductionId"
+                            :equipmentStatusList="equipmentStatusList"
+                            :getImgView="getImgView" @handleTimeIntervalForShortOpen="handleTimeIntervalForShortOpen"/>
       </div>
     </div>
   </div>
@@ -54,7 +57,7 @@
       MonthUtilizationRateTrend,
       DayUtilizationRateTrend,
       WeekUtilizationRateTrend,
-      WorkshopDeviceOverview,
+      WorkshopDeviceOverview
     },
     data() {
       return {
@@ -82,20 +85,37 @@
             statusImage: require('@/assets/WorskhopSignage/stateImg_gray.gif')
           }
         ],
-        deviceList: [],
-        isShowGuideline: false,
-        guidelineXTop: 0,
-        guidelineYLeft: 0,
-        isSwitchChecked: false,
-        isHasResizeOrDragDevice: false
+        timeIntervalForShortTime: null,
+        timeIntervalForLongTime: null
       }
     },
     created() {
       if (!this.$route.params.productionId) return
+      // 鍦ㄦ澶勮幏鍙栬矾鐢卞弬鏁版槸涓轰簡浼犻�掑弬鏁扮粰瀛愮粍浠讹紝鑻ユ斁鍦╩ounted涓垯鏃犳硶浼犻�掔粰瀛愮粍浠�
       this.currentProductionId = this.$route.params.productionId
     },
     mounted() {
+      if (!this.$route.params.productionId) return
+      // 鍦╩ounted涓璋冪敤姝ゆ柟娉曟槸涓轰簡鑾峰彇dom鍏冪礌
       this.getWorkshopDetailsByApi()
+
+      this.timeIntervalForShortTime = setInterval(() => {
+        this.$refs.workshopDeviceOverviewRef.getDeviceStatusCountByApi()
+        this.$refs.deviceAlarmInfoRef.getDeviceAlarmInfoByApi()
+        this.$refs.deviceDragLayoutRef.getDeviceListByApi()
+      }, 1000 * 60)
+
+      this.timeIntervalForLongTime = setInterval(() => {
+        this.$refs.weekRateTrendRef.getChartDataByApi()
+        this.$refs.dayRateTrendRef.getChartDataByApi()
+      }, 1000 * 60 * 60)
+    },
+    beforeDestroy() {
+      if (this.timeIntervalForShortTime || this.timeIntervalForLongTime) {
+        clearInterval(this.timeIntervalForShortTime)
+        clearInterval(this.timeIntervalForLongTime)
+        this.timeIntervalForShortTime = this.timeIntervalForLongTime = null
+      }
     },
     methods: {
       // 閫氳繃杞﹂棿Id璋冪敤鎺ュ彛鑾峰彇杞﹂棿璇︾粏淇℃伅
@@ -109,6 +129,24 @@
         })
       },
 
+      /**
+       * 鎺у埗鐭湡瀹氭椂浠诲姟寮�鍚笌鍏抽棴
+       * @param checked 鍙充笅瑙掑姛鑳絪witch寮�鍏崇姸鎬�
+       */
+      handleTimeIntervalForShortOpen(checked) {
+        if (checked) {
+          clearInterval(this.timeIntervalForShortTime)
+          this.timeIntervalForShortTime = null
+          console.log('鏆傚仠璁℃椂鍣�', this.timeIntervalForShortTime)
+        } else {
+          this.timeIntervalForShortTime = setInterval(() => {
+            this.$refs.workshopDeviceOverviewRef.getDeviceStatusCountByApi()
+            this.$refs.deviceAlarmInfoRef.getDeviceAlarmInfoByApi()
+            this.$refs.deviceDragLayoutRef.getDeviceListByApi()
+          }, 1000 * 60)
+        }
+      },
+
       // 淇濈暀涓や綅灏忔暟
       toDecimal2NoZero(x) {
         const f = Math.round(x * 100) / 100

--
Gitblit v1.9.3