gongchunyi
2026-07-08 0a251e40e30e7c8a96d71b3b9b6c459d4dfa4b22
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="图标"
@@ -15,7 +15,7 @@
        <DateTypeSwitch v-model="dateType" @change="handleDateTypeChange" />
      </div>
      <Echarts
        ref="chart"
        ref="chartRef"
        :chartStyle="chartStyle"
        :grid="grid"
        :legend="lineLegend"
@@ -31,13 +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=季度
const chartRef = ref(null)
const chartStyle = { width: '100%', height: '100%' }
const grid = {
  left: '3%',
@@ -149,11 +161,20 @@
        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)
@@ -165,6 +186,7 @@
onMounted(() => {
  fetchData()
  scheduleChartResize()
})
</script>
@@ -193,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;
@@ -207,4 +237,10 @@
  width: 50px;
  height: 50px;
}
.filters-row {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
</style>