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