From a9ed2b5a1e4370ecf4c0d4f40d515daef0e999df Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 04 八月 2026 16:04:58 +0800
Subject: [PATCH] 1

---
 src/views/reportAnalysis/productionAnalysis/components/center-center.vue |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 50 insertions(+), 4 deletions(-)

diff --git a/src/views/reportAnalysis/productionAnalysis/components/center-center.vue b/src/views/reportAnalysis/productionAnalysis/components/center-center.vue
index a65f4f8..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, inject, watch } 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 { 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%',
@@ -77,6 +95,10 @@
     splitLine: { lineStyle: { color: '#B8C8E0' } },
   },
 ]
+
+const handleDateTypeChange = () => {
+  fetchData()
+}
 
 const lineSeries = ref([
   {
@@ -132,18 +154,27 @@
 }
 
 const fetchData = () => {
-  inputOutputAnalysis()
+  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.outputSum) || 0)
         lineSeries.value[1].data = list.map((d) => Number(d.inputSum) || 0)
+        scheduleChartResize()
       }
     })
     .catch((err) => {
       console.error('鑾峰彇鎶曞叆浜у嚭鍒嗘瀽澶辫触:', err)
     })
+}
+
+const scheduleChartResize = () => {
+  nextTick(() => {
+    ;[0, 150, 400].forEach((ms) => {
+      setTimeout(() => chartRef.value?.resize?.(), ms)
+    })
+  })
 }
 
 const dataDashboardRefreshTick = inject('dataDashboardRefreshTick', null)
@@ -155,6 +186,7 @@
 
 onMounted(() => {
   fetchData()
+  scheduleChartResize()
 })
 </script>
 
@@ -183,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;
@@ -197,4 +237,10 @@
   width: 50px;
   height: 50px;
 }
+
+.filters-row {
+  display: flex;
+  justify-content: flex-end;
+  align-items: center;
+}
 </style>

--
Gitblit v1.9.3