From 03790f338ed62174def6b67776280e3dace05b7e Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 30 六月 2026 13:37:45 +0800
Subject: [PATCH] 中兴实强 1.智能驾驶舱大屏数据展示修改

---
 src/views/reportAnalysis/dataDashboard/components/basic/center-top.vue |  171 ++++++++++-----------------------------------------------
 1 files changed, 30 insertions(+), 141 deletions(-)

diff --git a/src/views/reportAnalysis/dataDashboard/components/basic/center-top.vue b/src/views/reportAnalysis/dataDashboard/components/basic/center-top.vue
index 8a58783..c27dcb7 100644
--- a/src/views/reportAnalysis/dataDashboard/components/basic/center-top.vue
+++ b/src/views/reportAnalysis/dataDashboard/components/basic/center-top.vue
@@ -40,36 +40,6 @@
       </div>
     </div>
 
-    <!-- 璁惧缁熻 -->
-    <div class="equipment-stats">
-      <div class="equipment-header">
-        <img
-          src="@/assets/BI/shujutongjiicon@2x.png"
-          alt="鍥炬爣"
-          class="equipment-icon"
-        />
-        <span class="equipment-title">璁惧缁熻</span>
-      </div>
-      <div class="equipment-items">
-        <div class="equipment-item">
-          <span class="equipment-value">{{ equipmentNum }}</span>
-          <span class="equipment-label">璁惧鎬绘暟</span>
-        </div>
-        <div class="equipment-item">
-          <span class="equipment-value">{{ equipmentRepair }}</span>
-          <span class="equipment-label">寰呯淮淇澶�</span>
-        </div>
-        <div class="equipment-item">
-          <span class="equipment-value">{{ equipmentMaintain }}</span>
-          <span class="equipment-label">寰呬繚鍏昏澶�</span>
-        </div>
-        <div class="equipment-item">
-          <span class="equipment-value">{{ totalMeasuring }}</span>
-          <span class="equipment-label">璁¢噺鍣ㄥ叿鎬绘暟</span>
-        </div>
-      </div>
-    </div>
-
     <!-- 浜嬩欢鍚嶇О -->
     <div class="event-info">
       <div class="event-header">
@@ -110,12 +80,8 @@
 </template>
 
 <script setup>
-import { ref, onMounted, onBeforeUnmount, nextTick } from 'vue'
+import { ref, onMounted, onBeforeUnmount, nextTick, inject, watch } from 'vue'
 import { homeTodos, summaryStatistics } from '@/api/viewIndex.js'
-import { getLedgerPage } from '@/api/equipmentManagement/ledger.js'
-import { getRepairPage } from '@/api/equipmentManagement/repair.js'
-import { getUpkeepPage } from '@/api/equipmentManagement/upkeep.js'
-import { measuringInstrumentListPage } from '@/api/equipmentManagement/measurementEquipment.js'
 
 // 缁熻鏁版嵁
 const totalStaff = ref(0)
@@ -125,10 +91,6 @@
 const staffYoY = ref(0)
 const customersYoY = ref(0)
 const suppliersYoY = ref(0)
-const equipmentNum = ref(0)
-const equipmentRepair = ref(0)
-const equipmentMaintain = ref(0)
-const totalMeasuring = ref(0)
 
 // 寰呭姙浜嬮」
 const todoList = ref([])
@@ -155,28 +117,23 @@
   })
 }
 
-// 鑾峰彇璁惧鐩稿叧鏁伴噺
-const getLedgerNum = () => {
-  const params = {
-    pageNum: -1,
-    pageSize: -1,
+const destroyTodoListScroll = () => {
+  const todoListEl = refTodoList.value
+  if (todoListEl) {
+    if (todoListEl._animationFrame) {
+      cancelAnimationFrame(todoListEl._animationFrame)
+      todoListEl._animationFrame = null
+    }
+    if (todoListEl._pauseTimer) {
+      clearInterval(todoListEl._pauseTimer)
+      todoListEl._pauseTimer = null
+    }
   }
-  getLedgerPage(params).then((res) => {
-    equipmentNum.value = res.data.total
-  })
-  getRepairPage({ ...params, status: 0 }).then((res) => {
-    equipmentRepair.value = res.data.total
-  })
-  getUpkeepPage({ ...params, status: 0 }).then((res) => {
-    equipmentMaintain.value = res.data.total
-  })
-  measuringInstrumentListPage(params).then((res) => {
-    totalMeasuring.value = res.data.total
-  })
 }
 
 // 鍒濆鍖栧緟鍔炰簨椤瑰垪琛ㄦ粴鍔ㄥ姛鑳�
 const initTodoListScroll = () => {
+  destroyTodoListScroll()
   const todoListEl = refTodoList.value
   // 寮哄埗鍚敤婊氬姩锛屼笉妫�鏌ヤ换浣曟潯浠�
   if (todoListEl) {
@@ -259,6 +216,7 @@
 
 // 寰呭姙浜嬮」
 const todoInfoS = () => {
+  destroyTodoListScroll()
   homeTodos().then((res) => {
     todoList.value = res.data
     // 鍦ㄨ幏鍙栧埌寰呭姙浜嬮」鏁版嵁鍚庯紝鍒濆鍖栨粴鍔ㄥ姛鑳�
@@ -268,25 +226,24 @@
   })
 }
 
-onMounted(() => {
+const refreshCenterTopData = () => {
   getNum()
-  getLedgerNum()
   todoInfoS()
+}
+
+const dataDashboardRefreshTick = inject('dataDashboardRefreshTick', null)
+if (dataDashboardRefreshTick) {
+  watch(dataDashboardRefreshTick, () => {
+    refreshCenterTopData()
+  })
+}
+
+onMounted(() => {
+  refreshCenterTopData()
 })
 
 onBeforeUnmount(() => {
-  // 娓呯悊寰呭姙浜嬮」鍒楄〃鐨勫姩鐢诲拰瀹氭椂鍣�
-  const todoListEl = refTodoList.value
-  if (todoListEl) {
-    if (todoListEl._animationFrame) {
-      cancelAnimationFrame(todoListEl._animationFrame)
-      todoListEl._animationFrame = null
-    }
-    if (todoListEl._pauseTimer) {
-      clearInterval(todoListEl._pauseTimer)
-      todoListEl._pauseTimer = null
-    }
-  }
+  destroyTodoListScroll()
 })
 </script>
 
@@ -367,82 +324,14 @@
   color: #ff5252;
 }
 
-.equipment-stats {
-  border: 1px solid #1a58b0;
-  padding: 18px;
-  height: 240px;
-  padding-top: 0px;
-}
-
-.equipment-header {
-  font-weight: 500;
-  font-size: 21px;
-  display: flex;
-  border-bottom: 1px solid;
-  border-image: linear-gradient(
-      270deg,
-      rgba(0, 126, 255, 0) 0%,
-      rgba(0, 126, 255, 0.4549) 35%,
-      #007eff 78%,
-      #007eff 100%
-    )
-    1;
-  padding-bottom: 2px;
-}
-
-.equipment-title {
-  font-weight: 500;
-  font-size: 18px;
-  background: linear-gradient(360deg, #056dff 0%, #43e8fc 100%);
-  -webkit-background-clip: text;
-  -webkit-text-fill-color: transparent;
-  background-clip: text;
-  line-height: 50px;
-}
-
-.equipment-icon {
-  width: 50px;
-  height: 50px;
-}
-
-.equipment-items {
-  display: flex;
-  justify-content: space-around;
-  gap: 30px;
-}
-
-.equipment-item {
-  text-align: center;
-}
-
-.equipment-value {
-  display: block;
-  font-weight: 500;
-  font-size: 40px;
-  color: #ffffff;
-  width: 120px;
-  height: 110px;
-  line-height: 110px;
-  background-image: url('@/assets/BI/shujutongji@2x.png');
-  background-size: 100% 100%;
-  background-position: center;
-  background-repeat: no-repeat;
-  margin-bottom: 8px;
-}
-
-.equipment-label {
-  font-weight: 500;
-  font-size: 16px;
-  color: #fffffe;
-}
-
 .event-info {
   background-image: url('@/assets/BI/shijianmingchengbeijing@2x.png');
   background-size: 100% 100%;
   background-position: center;
   background-repeat: no-repeat;
   padding: 20px;
-  height: 186px;
+  padding-top: 10px;
+  height: 426px;
 }
 
 .event-header {
@@ -466,7 +355,7 @@
   list-style: none;
   padding: 0;
   margin: 0;
-  height: 120px; /* 鎸夌敤鎴疯姹傝皟鏁撮珮搴� */
+  height: 360px; /* 鎸夌敤鎴疯姹傝皟鏁撮珮搴� */
   overflow: hidden;
   font-size: 15px;
 }

--
Gitblit v1.9.3