From 672400898397dd453d11e8fbacd92c448c4633a0 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 11 六月 2026 22:04:01 +0800
Subject: [PATCH] Merge branch 'dev_pro_河南鹤壁' of http://114.132.189.42:9002/r/product-inventory-management into dev_pro_河南鹤壁

---
 src/views/reportAnalysis/productionAnalysis/components/right-top.vue     |    4 +-
 .env.development                                                         |    2 
 .env.lmtx                                                                |   10 +++++
 src/components/Echarts/echarts.vue                                       |    4 ++
 multiple/config.json                                                     |    9 ++++
 src/views/reportAnalysis/PSIDataAnalysis/components/center-bottom.vue    |    2 
 src/views/productionManagement/productionTraceability/index.vue          |   28 ++++++++++++-
 src/views/reportAnalysis/dataDashboard/components/basic/right-top.vue    |    2 
 src/views/reportAnalysis/dataDashboard/components/basic/right-bottom.vue |    2 
 src/views/reportAnalysis/productionAnalysis/components/right-bottom.vue  |    2 
 src/views/reportAnalysis/productionAnalysis/components/center-center.vue |   33 +++++++++++++++-
 11 files changed, 85 insertions(+), 13 deletions(-)

diff --git a/.env.development b/.env.development
index 28b8042..e71d4f2 100644
--- a/.env.development
+++ b/.env.development
@@ -7,4 +7,4 @@
 # 涓皬浼佷笟鏁板瓧鍖栬浆鍨嬩簩绾у椁愬寘/寮�鍙戠幆澧�
 VITE_APP_BASE_API = '/dev-api'
 
-VITE_BASE_API = http://1.15.17.182:9048
+VITE_BASE_API = 'http://localhost:9003'
diff --git a/.env.lmtx b/.env.lmtx
new file mode 100644
index 0000000..d6a8dcc
--- /dev/null
+++ b/.env.lmtx
@@ -0,0 +1,10 @@
+# 椤甸潰鏍囬
+VITE_APP_TITLE = 缁跨編鑺傝兘绠$悊绯荤粺
+
+# 寮�鍙戠幆澧冮厤缃�
+VITE_APP_ENV = 'development'
+
+# 涓皬浼佷笟鏁板瓧鍖栬浆鍨嬩簩绾у椁愬寘/寮�鍙戠幆澧�
+VITE_APP_BASE_API = '/dev-api'
+
+VITE_BASE_API = 'http://localhost:9004'
diff --git a/multiple/config.json b/multiple/config.json
index 9fc6c4d..d8da98b 100644
--- a/multiple/config.json
+++ b/multiple/config.json
@@ -114,6 +114,15 @@
     "logo": "logo/XCDQLogo.png",
     "favicon": "favicon/XCDQfavicon.ico"
   },
+  "LMJN": {
+    "env": {
+      "VITE_APP_TITLE": "缁跨編鑺傝兘绠$悊绯荤粺",
+      "VITE_BASE_API": "http://192.168.1.23:9001",
+      "VITE_JAVA_API": "http://192.168.1.23:9000"
+    },
+    "logo": "logo/Logo.png",
+    "favicon": "favicon/favicon.ico"
+  },
   "logo": "/src/assets/logo/logo.png",
   "favicon": "/public/favicon.ico"
 }
\ No newline at end of file
diff --git a/src/components/Echarts/echarts.vue b/src/components/Echarts/echarts.vue
index 54a6c39..626f60d 100644
--- a/src/components/Echarts/echarts.vue
+++ b/src/components/Echarts/echarts.vue
@@ -203,6 +203,10 @@
   clearInitTimer()
 })
 
+defineExpose({
+  resize: windowResizeListener,
+})
+
 // Watch all reactive props that affect the chart
 watch(
   () => [props.xAxis, props.yAxis, props.series, props.legend, props.tooltip, props.visualMap],
diff --git a/src/views/productionManagement/productionTraceability/index.vue b/src/views/productionManagement/productionTraceability/index.vue
index d8b8f98..845c8d9 100644
--- a/src/views/productionManagement/productionTraceability/index.vue
+++ b/src/views/productionManagement/productionTraceability/index.vue
@@ -240,9 +240,9 @@
               <el-descriptions-item label="瑙勬牸鍨嬪彿">{{ record.model || '-' }}</el-descriptions-item>
               <el-descriptions-item label="鏁伴噺">{{ record.quantity || 0 }} {{ record.unit || '-' }}</el-descriptions-item>
               <el-descriptions-item label="妫�娴嬪崟浣�">{{ record.checkCompany || '-' }}</el-descriptions-item>
-              <el-descriptions-item label="妫�娴嬬粨鏋�">
-                <el-tag :type="record.checkResult === '鍚堟牸' ? 'success' : 'danger'">
-                  {{ record.checkResult || '寰呮娴�' }}
+              <el-descriptions-item label="鍚堟牸鐜�">
+                <el-tag :type="getPassRateTagType(record)">
+                  {{ getPassRateDisplay(record) }}
                 </el-tag>
               </el-descriptions-item>
             </el-descriptions>
@@ -360,6 +360,28 @@
     return "#67c23a";
   };
 
+  const getPassRate = (record) => {
+    const qualified = Number(record.qualifiedQuantity) || 0;
+    const unqualified = Number(record.unqualifiedQuantity) || 0;
+    const total = qualified + unqualified;
+    if (total === 0) return null;
+    return Number(((qualified / total) * 100).toFixed(2));
+  };
+
+  const getPassRateDisplay = (record) => {
+    const rate = getPassRate(record);
+    if (rate === null) return '鈥�';
+    return `${rate}%`;
+  };
+
+  const getPassRateTagType = (record) => {
+    const rate = getPassRate(record);
+    if (rate === null) return 'info';
+    if (rate >= 100) return 'success';
+    if (rate >= 75) return 'primary';
+    return 'danger';
+  };
+
   // 妯℃嫙鎼滅储鏂规硶
   const handleNpsNoSearch = async query => {
     npsNoLoading.value = true;
diff --git a/src/views/reportAnalysis/PSIDataAnalysis/components/center-bottom.vue b/src/views/reportAnalysis/PSIDataAnalysis/components/center-bottom.vue
index f4e49b6..e5a1781 100644
--- a/src/views/reportAnalysis/PSIDataAnalysis/components/center-bottom.vue
+++ b/src/views/reportAnalysis/PSIDataAnalysis/components/center-bottom.vue
@@ -30,7 +30,7 @@
 import ProductTypeSwitch from './ProductTypeSwitch.vue'
 import { productInOutAnalysis } from '@/api/viewIndex.js'
 
-const productType = ref(1) // 1=鍘熸潗鏂� 2=鍗婃垚鍝� 3=鎴愬搧
+const productType = ref(2) // 1=鍘熸潗鏂� 3=鍗婃垚鍝� 2=鎴愬搧
 
 const chartStyle = { width: '100%', height: '130%' }
 
diff --git a/src/views/reportAnalysis/dataDashboard/components/basic/right-bottom.vue b/src/views/reportAnalysis/dataDashboard/components/basic/right-bottom.vue
index 6fcd80f..bcdba84 100644
--- a/src/views/reportAnalysis/dataDashboard/components/basic/right-bottom.vue
+++ b/src/views/reportAnalysis/dataDashboard/components/basic/right-bottom.vue
@@ -33,7 +33,7 @@
   height: '100%',
 }
 
-const dateType = ref(1) // 1=鍛� 2=鏈� 3=瀛e害
+const dateType = ref(3) // 1=鍛� 2=鏈� 3=瀛e害
 
 // 椋炴満鍥炬爣 SVG path锛堜笌 right-top 涓�鑷达級
 const aircraft =
diff --git a/src/views/reportAnalysis/dataDashboard/components/basic/right-top.vue b/src/views/reportAnalysis/dataDashboard/components/basic/right-top.vue
index 96e4548..399354e 100644
--- a/src/views/reportAnalysis/dataDashboard/components/basic/right-top.vue
+++ b/src/views/reportAnalysis/dataDashboard/components/basic/right-top.vue
@@ -32,7 +32,7 @@
   height: '100%',
 }
 
-const radio1 = ref(1)
+const radio1 = ref(3)
 
 // 椋炴満鍥炬爣 SVG path
 const aircraft =
diff --git a/src/views/reportAnalysis/productionAnalysis/components/center-center.vue b/src/views/reportAnalysis/productionAnalysis/components/center-center.vue
index a65f4f8..7221b47 100644
--- a/src/views/reportAnalysis/productionAnalysis/components/center-center.vue
+++ b/src/views/reportAnalysis/productionAnalysis/components/center-center.vue
@@ -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,14 @@
 </template>
 
 <script setup>
-import { ref, onMounted, inject, watch } from 'vue'
+import { ref, onMounted, inject, watch, nextTick } from 'vue'
 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";
 
+const dateType = ref(3) // 1=鍛� 2=鏈� 3=瀛e害
+const chartRef = ref(null)
 const chartStyle = { width: '100%', height: '100%' }
 const grid = {
   left: '3%',
@@ -77,6 +84,10 @@
     splitLine: { lineStyle: { color: '#B8C8E0' } },
   },
 ]
+
+const handleDateTypeChange = () => {
+  fetchData()
+}
 
 const lineSeries = ref([
   {
@@ -132,18 +143,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 +175,7 @@
 
 onMounted(() => {
   fetchData()
+  scheduleChartResize()
 })
 </script>
 
@@ -197,4 +218,10 @@
   width: 50px;
   height: 50px;
 }
+
+.filters-row {
+  display: flex;
+  justify-content: flex-end;
+  align-items: center;
+}
 </style>
diff --git a/src/views/reportAnalysis/productionAnalysis/components/right-bottom.vue b/src/views/reportAnalysis/productionAnalysis/components/right-bottom.vue
index 62356e7..c3d3db3 100644
--- a/src/views/reportAnalysis/productionAnalysis/components/right-bottom.vue
+++ b/src/views/reportAnalysis/productionAnalysis/components/right-bottom.vue
@@ -28,7 +28,7 @@
 import DateTypeSwitch from './DateTypeSwitch.vue'
 import Echarts from '@/components/Echarts/echarts.vue'
 
-const dateType = ref(1)
+const dateType = ref(3)
 
 const chartStyle = {
   width: '100%',
diff --git a/src/views/reportAnalysis/productionAnalysis/components/right-top.vue b/src/views/reportAnalysis/productionAnalysis/components/right-top.vue
index 5ec836f..5ac7035 100644
--- a/src/views/reportAnalysis/productionAnalysis/components/right-top.vue
+++ b/src/views/reportAnalysis/productionAnalysis/components/right-top.vue
@@ -28,7 +28,7 @@
 import Echarts from '@/components/Echarts/echarts.vue'
 import DateTypeSwitch from './DateTypeSwitch.vue'
 
-const dateType = ref(1) // 1=鍛� 2=鏈� 3=瀛e害
+const dateType = ref(3) // 1=鍛� 2=鏈� 3=瀛e害
 
 const chartStyle = {
   width: '100%',
@@ -135,7 +135,7 @@
 }
 
 const fetchData = () => {
-  workOrderEfficiencyAnalysis({ dateType: dateType.value })
+  workOrderEfficiencyAnalysis({ type: dateType.value })
     .then((res) => {
       if (res.code !== 200 || !Array.isArray(res.data)) return
       const items = res.data

--
Gitblit v1.9.3