From 75435383608c681cb4158b22c166bc3a3cd33c96 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 15 五月 2026 13:26:48 +0800
Subject: [PATCH] Merge branch 'dev_NEW_pro' of http://114.132.189.42:9002/r/product-inventory-management into dev_NEW_pro

---
 src/views/reportAnalysis/productionAnalysis/components/right-top.vue |   69 +++++++++++++++++++++++++---------
 1 files changed, 50 insertions(+), 19 deletions(-)

diff --git a/src/views/reportAnalysis/productionAnalysis/components/right-top.vue b/src/views/reportAnalysis/productionAnalysis/components/right-top.vue
index e6717d1..5ec836f 100644
--- a/src/views/reportAnalysis/productionAnalysis/components/right-top.vue
+++ b/src/views/reportAnalysis/productionAnalysis/components/right-top.vue
@@ -2,22 +2,37 @@
   <div>
     <PanelHeader title="宸ュ崟鎵ц鏁堢巼鍒嗘瀽" />
     <div class="main-panel panel-item-customers">
-      <Echarts ref="chart" :chartStyle="chartStyle" :grid="grid" :legend="barLegend" :series="chartSeries"
-        :tooltip="tooltip" :xAxis="xAxis1" :yAxis="yAxis1"
-        :options="{ backgroundColor: 'transparent', textStyle: { color: '#B8C8E0' } }" style="height: 260px" />
+      <div class="filters-row">
+        <DateTypeSwitch v-model="dateType" @change="handleDateTypeChange" />
+      </div>
+      <Echarts
+        ref="chart"
+        :chartStyle="chartStyle"
+        :grid="grid"
+        :legend="barLegend"
+        :series="chartSeries"
+        :tooltip="tooltip"
+        :xAxis="xAxis1"
+        :yAxis="yAxis1"
+        :options="{ backgroundColor: 'transparent', textStyle: { color: '#B8C8E0' } }"
+        style="height: 260px"
+      />
     </div>
   </div>
 </template>
 
 <script setup>
-import { ref, onMounted } from 'vue'
+import { ref, onMounted, inject, watch } from 'vue'
 import { workOrderEfficiencyAnalysis } from '@/api/viewIndex.js'
 import PanelHeader from './PanelHeader.vue'
 import Echarts from '@/components/Echarts/echarts.vue'
+import DateTypeSwitch from './DateTypeSwitch.vue'
+
+const dateType = ref(1) // 1=鍛� 2=鏈� 3=瀛e害
 
 const chartStyle = {
   width: '100%',
-  height: '160%',
+  height: '140%',
 }
 
 const grid = { left: '3%', right: '4%', bottom: '3%', top: '10%', containLabel: true }
@@ -115,25 +130,33 @@
   },
 ]
 
+const handleDateTypeChange = () => {
+  fetchData()
+}
+
 const fetchData = () => {
-  workOrderEfficiencyAnalysis()
+  workOrderEfficiencyAnalysis({ dateType: dateType.value })
     .then((res) => {
-      // 鏍规嵁浣犵殑缁撴瀯锛屾暟鎹洿鎺ュ湪 res.data 涓�
-      if (!res?.data || !Array.isArray(res.data)) return
-
-      const list = res.data
-
-      xAxis1.value[0].data = list.map((item) => item.date)
-
-      chartSeries.value[0].data = list.map((item) => Number(item.startQuantity) || 0)
-
-      chartSeries.value[1].data = list.map((item) => Number(item.finishQuantity) || 0)
-
-      chartSeries.value[2].data = list.map((item) => Number(item.yieldRate) || 0)
+      if (res.code !== 200 || !Array.isArray(res.data)) return
+      const items = res.data
+      xAxis1.value[0].data = items.map((d) => d.date)
+      // 寮�宸�
+      chartSeries.value[0].data = items.map((d) => Number(d.startQuantity) || 0)
+      // 瀹屾垚
+      chartSeries.value[1].data = items.map((d) => Number(d.finishQuantity) || 0)
+      // 鑹搧鐜�
+      chartSeries.value[2].data = items.map((d) => Math.min(100, parseFloat(d.yieldRate) || 0))
     })
     .catch((err) => {
-      console.error('鑾峰彇宸ュ崟鏁堢巼鏁版嵁澶辫触:', err)
+      console.error('鑾峰彇宸ュ崟鎵ц鏁堢巼鍒嗘瀽澶辫触:', err)
     })
+}
+
+const dataDashboardRefreshTick = inject('dataDashboardRefreshTick', null)
+if (dataDashboardRefreshTick) {
+  watch(dataDashboardRefreshTick, () => {
+    fetchData()
+  })
 }
 
 onMounted(() => {
@@ -148,6 +171,14 @@
   gap: 20px;
 }
 
+.filters-row {
+  display: flex;
+  justify-content: flex-end;
+  align-items: center;
+  gap: 12px;
+  margin-bottom: 10px;
+}
+
 .panel-item-customers {
   border: 1px solid #1a58b0;
   padding: 18px;

--
Gitblit v1.9.3