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