| | |
| | | <DateTypeSwitch v-model="dateType" @change="handleDateTypeChange" /> |
| | | </div> |
| | | <Echarts |
| | | ref="chart" |
| | | ref="chartRef" |
| | | :chartStyle="chartStyle" |
| | | :grid="grid" |
| | | :legend="lineLegend" |
| | |
| | | </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=季度 |
| | | const chartRef = ref(null) |
| | | const chartStyle = { width: '100%', height: '100%' } |
| | | const grid = { |
| | | left: '3%', |
| | |
| | | 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) |
| | |
| | | |
| | | onMounted(() => { |
| | | fetchData() |
| | | scheduleChartResize() |
| | | }) |
| | | </script> |
| | | |
| | |
| | | width: 50px; |
| | | height: 50px; |
| | | } |
| | | |
| | | .filters-row { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | align-items: center; |
| | | } |
| | | </style> |