Przeglądaj źródła

分级数据修改

dedsudiyu 6 dni temu
rodzic
commit
f0c42ee9bb
1 zmienionych plików z 10 dodań i 9 usunięć
  1. 10 9
      src/components/LabStats/SafetyLevel.vue

+ 10 - 9
src/components/LabStats/SafetyLevel.vue

@@ -32,24 +32,26 @@ export default {
       try {
         const res = await getSafetyLevelStats()
         const { departments, levelCfg } = res.data
+        const levelKeys = ['level1', 'level2', 'level3', 'level4']
+        const xData = departments.map(d => {
+          const total = levelCfg.reduce((sum, _, i) => sum + (d[levelKeys[i]] || 0), 0)
+          return d.name + '\n(' + total + ')'
+        })
         if (this.chart) {
           this.chart.setOption({
             legend: { data: levelCfg.map(l => l.name) },
-            xAxis: { data: departments.map(d => d.name) },
+            xAxis: { data: xData },
             series: levelCfg.map((l, i) => ({ name: l.name, data: departments.map(d => d['level' + (i + 1)]) }))
           })
         } else {
-          this.$nextTick(() => this.initChart(res.data))
+          this.$nextTick(() => this.initChart(departments, levelCfg, xData))
         }
       } catch (e) {
         console.error('SafetyLevel:', e)
       }
     },
-    initChart(data) {
+    initChart(departments, levelCfg, xData) {
       this.chart = echarts.init(this.$refs.chart)
-      const { departments, levelCfg } = data
-      const names = departments.map(d => d.name)
-      const totals = departments.map(d => d.total)
       const levelKeys = ['level1', 'level2', 'level3', 'level4']
 
       const option = {
@@ -70,12 +72,11 @@ export default {
         grid: { left: 40, right: 10, top: 35, bottom: 50 },
         xAxis: {
           type: 'category',
-          data: names,
+          data: xData,
           axisLabel: {
             color: '#7eacc8',
             fontSize: 10,
-            interval: 0,
-            formatter: (v, idx) => v + '\n(' + totals[idx] + ')'
+            interval: 0
           },
           axisLine: { lineStyle: { color: 'rgba(72,180,255,0.2)' } },
           axisTick: { show: false }