From 0a251e40e30e7c8a96d71b3b9b6c459d4dfa4b22 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 08 七月 2026 23:04:45 +0800
Subject: [PATCH] 暂存

---
 src/views/reportAnalysis/productionAnalysis/components/center-center.vue |   75 ++++++++++++++++++++++++++++++++-----
 1 files changed, 64 insertions(+), 11 deletions(-)

diff --git a/src/views/reportAnalysis/productionAnalysis/components/center-center.vue b/src/views/reportAnalysis/productionAnalysis/components/center-center.vue
index cd6a6b5..c56a4f8 100644
--- a/src/views/reportAnalysis/productionAnalysis/components/center-center.vue
+++ b/src/views/reportAnalysis/productionAnalysis/components/center-center.vue
@@ -2,7 +2,7 @@
   <div>
     <!-- 璁惧缁熻 -->
     <div class="equipment-stats">
-      <div class="equipment-header">
+      <div class="equipment-header clickable" @click="handleNavigate">
         <img
           src="@/assets/BI/shujutongjiicon@2x.png"
           alt="鍥炬爣"
@@ -10,8 +10,12 @@
         />
         <span class="equipment-title">鎶曞叆浜у嚭鍒嗘瀽</span>
       </div>
+
+      <div class="filters-row">
+        <DateTypeSwitch v-model="dateType" @change="handleDateTypeChange" />
+      </div>
       <Echarts
-        ref="chart"
+        ref="chartRef"
         :chartStyle="chartStyle"
         :grid="grid"
         :legend="lineLegend"
@@ -27,11 +31,25 @@
 </template>
 
 <script setup>
-import { ref, onMounted } from 'vue'
+import { ref, onMounted, inject, watch, nextTick } from 'vue'
+import { useRouter } from 'vue-router'
 import * as echarts from 'echarts'
 import Echarts from '@/components/Echarts/echarts.vue'
-import { productInOutAnalysis } from '@/api/viewIndex.js'
+import { inputOutputAnalysis } from '@/api/viewIndex.js'
+import DateTypeSwitch from "@/views/reportAnalysis/productionAnalysis/components/DateTypeSwitch.vue";
+import { getProductionRoute } from '../productionNavigation.js'
 
+const router = useRouter()
+
+const handleNavigate = () => {
+  const path = getProductionRoute('鎶曞叆浜у嚭鍒嗘瀽')
+  if (path) {
+    router.push(path)
+  }
+}
+
+const dateType = ref(3) // 1=鍛� 2=鏈� 3=瀛e害
+const chartRef = ref(null)
 const chartStyle = { width: '100%', height: '100%' }
 const grid = {
   left: '3%',
@@ -50,8 +68,8 @@
   itemHeight: 12,
   textStyle: { color: '#B8C8E0', fontSize: 14 },
   data: [
-    { name: '鍑哄簱', itemStyle: { color: 'rgba(11, 137, 254, 1)' } },
-    { name: '鍏ュ簱', itemStyle: { color: 'rgba(11, 249, 254, 1)' } },
+    { name: '浜у嚭', itemStyle: { color: 'rgba(11, 137, 254, 1)' } },
+    { name: '鎶曞叆', itemStyle: { color: 'rgba(11, 249, 254, 1)' } },
   ],
 }
 
@@ -78,9 +96,13 @@
   },
 ]
 
+const handleDateTypeChange = () => {
+  fetchData()
+}
+
 const lineSeries = ref([
   {
-    name: '鍑哄簱',
+    name: '浜у嚭',
     type: 'line',
     smooth: false,
     showSymbol: true,
@@ -98,7 +120,7 @@
     emphasis: { focus: 'series' },
   },
   {
-    name: '鍏ュ簱',
+    name: '鎶曞叆',
     type: 'line',
     smooth: false,
     showSymbol: true,
@@ -132,13 +154,14 @@
 }
 
 const fetchData = () => {
-  productInOutAnalysis({ type: 1 })
+  inputOutputAnalysis({ type: dateType.value })
     .then((res) => {
       if (res.code === 200 && Array.isArray(res.data)) {
         const list = res.data
         xAxis1.value[0].data = list.map((d) => d.date)
-        lineSeries.value[0].data = list.map((d) => Number(d.outCount) || 0)
-        lineSeries.value[1].data = list.map((d) => Number(d.inCount) || 0)
+        lineSeries.value[0].data = list.map((d) => Number(d.outputSum) || 0)
+        lineSeries.value[1].data = list.map((d) => Number(d.inputSum) || 0)
+        scheduleChartResize()
       }
     })
     .catch((err) => {
@@ -146,8 +169,24 @@
     })
 }
 
+const scheduleChartResize = () => {
+  nextTick(() => {
+    ;[0, 150, 400].forEach((ms) => {
+      setTimeout(() => chartRef.value?.resize?.(), ms)
+    })
+  })
+}
+
+const dataDashboardRefreshTick = inject('dataDashboardRefreshTick', null)
+if (dataDashboardRefreshTick) {
+  watch(dataDashboardRefreshTick, () => {
+    fetchData()
+  })
+}
+
 onMounted(() => {
   fetchData()
+  scheduleChartResize()
 })
 </script>
 
@@ -176,6 +215,14 @@
   padding-bottom: 2px;
 }
 
+.equipment-header.clickable {
+  cursor: pointer;
+}
+
+.equipment-header.clickable:hover .equipment-title {
+  opacity: 0.85;
+}
+
 .equipment-title {
   font-weight: 500;
   font-size: 18px;
@@ -190,4 +237,10 @@
   width: 50px;
   height: 50px;
 }
+
+.filters-row {
+  display: flex;
+  justify-content: flex-end;
+  align-items: center;
+}
 </style>

--
Gitblit v1.9.3