From 78689c3fab03143d803712ab9d7c02072cecc67b Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期一, 23 六月 2025 16:52:38 +0800
Subject: [PATCH] 1、解决班组设备利用率以及配送小组利用率图表页面查询区域班组无法随中变化而变化问题 2、解决查询区域班组项与配送小组列表与勾选不一致问题

---
 src/views/mdc/base/GroupUtilizationRateChart.vue |  442 +++++++++++++++++++++++++++---------------------------
 1 files changed, 221 insertions(+), 221 deletions(-)

diff --git a/src/views/mdc/base/GroupUtilizationRateChart.vue b/src/views/mdc/base/GroupUtilizationRateChart.vue
index a7f005b..269eb21 100644
--- a/src/views/mdc/base/GroupUtilizationRateChart.vue
+++ b/src/views/mdc/base/GroupUtilizationRateChart.vue
@@ -5,7 +5,7 @@
         <a-row :gutter="24">
           <a-col :md="3" :sm="3">
             <a-form-item label="涓績">
-              <a-select v-model="queryParam.productionId" placeholder="璇烽�夋嫨涓績">
+              <a-select v-model="queryParam.productionId" placeholder="璇烽�夋嫨涓績" @change="handleCenterSelectChange">
                 <a-select-option v-for="item in centerList" :key="item.key">
                   {{ item.title }}
                 </a-select-option>
@@ -44,21 +44,9 @@
             </a-form-item>
           </a-col>
 
-
-          <!--          <a-col :md="5" :sm="5">-->
-          <!--            <a-form-item label="鐝">-->
-          <!--              <a-select v-model="queryParam.workTime" placeholder="璇烽�夋嫨鐝" mode="multiple" :maxTagCount="2">-->
-          <!--                <a-select-option key="123">涓�鐝�</a-select-option>-->
-          <!--                <a-select-option key="234">浜岀彮</a-select-option>-->
-          <!--                <a-select-option key="345">涓夌彮</a-select-option>-->
-          <!--              </a-select>-->
-          <!--            </a-form-item>-->
-          <!--          </a-col>-->
-
           <a-col :md="2" :sm="2">
             <a-space>
               <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button>
-              <!--              <a-button type="primary" @click="searchReset" icon="reload">閲嶇疆</a-button>-->
             </a-space>
           </a-col>
         </a-row>
@@ -70,225 +58,237 @@
 </template>
 
 <script>
-import mdcApi from '@api/mdc'
-import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import mdcApi from '@api/mdc'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
 
-export default {
-  name: 'GroupUtilizationRateChart',
-  components: {},
-  mixins: [JeecgListMixin],
-  data() {
-    return {
-      disableMixinCreated: true,
-      queryParam: {},
-      productionIds: [],//鐝粍
-      centerList: [],
-      groupList: [],
-      equipmentTypeList: [],
-      shiftList: []
-    }
-  },
-  mounted() {
-    window.addEventListener('resize', this.handleWindowResize)
-    this.handleWindowResize()
-    this.getCenterListByApi()
-    this.getEquipmentTypeListApi()
-    this.getShiftListByApi()
-  },
-  methods: {
-    // 鑾峰彇鏁版嵁
-    loadData() {
-      this.chartContainer = this.$echarts.init(document.getElementById('chart-container'))
-      this.initChart({})
-      this.chartContainer.showLoading({
-        text: '鏁版嵁鍔犺浇涓� ...',
-        color: '#0696e1', // 鍔犺浇鍔ㄧ敾棰滆壊
-        textColor: '#0696e1'
-      })
-      const that = this
-
-      mdcApi.getGroupChartDataApi(this.queryParam)
-        .then(res => {
-          if (res.success) {
-            if (!res.result.dataList || (res.result.dataList && res.result.dataList.length === 0)) {
-              that.$notification.warning({
-                message: '娑堟伅',
-                description: '鏆傛棤鏁版嵁'
-              })
-            }
-            that.initChart(res.result)
-          }
-        })
+  export default {
+    name: 'GroupUtilizationRateChart',
+    components: {},
+    mixins: [JeecgListMixin],
+    data() {
+      return {
+        disableMixinCreated: true,
+        queryParam: {},
+        productionIds: [],//鐝粍
+        centerList: [],
+        groupList: [],
+        equipmentTypeList: [],
+        shiftList: []
+      }
     },
+    mounted() {
+      window.addEventListener('resize', this.handleWindowResize)
+      this.handleWindowResize()
+      this.getCenterListByApi()
+      this.getEquipmentTypeListApi()
+      this.getShiftListByApi()
+    },
+    methods: {
+      // 鑾峰彇鏁版嵁
+      loadData() {
+        this.chartContainer = this.$echarts.init(document.getElementById('chart-container'))
+        this.initChart({})
+        this.chartContainer.showLoading({
+          text: '鏁版嵁鍔犺浇涓� ...',
+          color: '#0696e1', // 鍔犺浇鍔ㄧ敾棰滆壊
+          textColor: '#0696e1'
+        })
+        const that = this
 
-    /**
-     * 鍒濆鍖栧浘琛�
-     * @param dataList 鍥捐〃鏁版嵁婧�
-     * @param dateList 鏃ユ湡鍒楄〃
-     * @param shiftSubList 鐝鏍囬鍒楄〃
-     * @param shiftDataList 鐝鏁版嵁鍒楄〃
-     */
-    initChart({ dataList, dateList, shiftSubList, shiftDataList }) {
-      const defaultLegendData = ['24灏忔椂', '24灏忔椂锛堝幓闄ゆ晠闅滄椂闂达級', '鐝', '绱杩愯鏃堕棿(h)']
-      const defaultSeries = [
-        {
-          type: 'line',
-          name: '24灏忔椂',
-          yAxisIndex: 0,
-          data: dataList ? dataList.map(item => item.utilizationRate) : []
-        },
-        {
-          type: 'line',
-          name: '24灏忔椂锛堝幓闄ゆ晠闅滄椂闂达級',
-          yAxisIndex: 0,
-          data: dataList ? dataList.map(item => item.amendUtilizationRate) : []
-        },
-        {
-          type: 'line',
-          name: '鐝',
-          yAxisIndex: 0,
-          data: dataList ? dataList.map(item => item.shiftUtilizationRate) : []
-        },
-        {
-          type: 'bar',
-          name: '绱杩愯鏃堕棿(h)',
-          yAxisIndex: 1,
-          barWidth: '30%',
-          data: dataList ? dataList.map(item => item.processLong) : []
-        }
-      ]
-      const option = {
-        title: {
-          text: '璁惧缁煎悎鍒╃敤鐜�',
-          left: 'center',
-          top: 0,
-          textStyle: {
-            fontSize: 22
-          }
-        },
-        grid: {
-          top: '12%',
-          left: '1%',
-          right: '1%',
-          bottom: '1%',
-          containLabel: true
-        },
-        legend: {
-          top: '6%',
-          right: 'center',
-          itemGap: 20,
-          data: defaultLegendData
-        },
-        tooltip: {
-          show: true,
-          trigger: 'axis'
-        },
-        xAxis: {
-          type: 'category',
-          data: dateList ? dateList : []
-        },
-        yAxis: [
-          {
-            type: 'value',
-            name: '鍒╃敤鐜�(%)',
-            axisLine: {
-              show: true
-            },
-            axisLabel: {
-              formatter: '{value}%'
+        mdcApi.getGroupChartDataApi(this.queryParam)
+          .then(res => {
+            if (res.success) {
+              if (!res.result.dataList || (res.result.dataList && res.result.dataList.length === 0)) {
+                that.$notification.warning({
+                  message: '娑堟伅',
+                  description: '鏆傛棤鏁版嵁'
+                })
+              }
+              that.initChart(res.result)
             }
+          })
+      },
+
+      /**
+       * 鍒濆鍖栧浘琛�
+       * @param dataList 鍥捐〃鏁版嵁婧�
+       * @param dateList 鏃ユ湡鍒楄〃
+       * @param shiftSubList 鐝鏍囬鍒楄〃
+       * @param shiftDataList 鐝鏁版嵁鍒楄〃
+       */
+      initChart({ dataList, dateList, shiftSubList, shiftDataList }) {
+        const defaultLegendData = ['24灏忔椂', '24灏忔椂锛堝幓闄ゆ晠闅滄椂闂达級', '鐝', '绱杩愯鏃堕棿(h)']
+        const defaultSeries = [
+          {
+            type: 'line',
+            name: '24灏忔椂',
+            yAxisIndex: 0,
+            data: dataList ? dataList.map(item => item.utilizationRate) : []
           },
           {
-            type: 'value',
-            name: '杩愯鏃堕棿(h)',
-            axisLine: {
-              show: true
-            }
-          }
-        ],
-        series: defaultSeries
-      }
-      if (shiftSubList) {
-        option.legend.data = defaultLegendData.concat(shiftSubList)
-        const newSeriesData = shiftDataList.map(item => {
-          return {
             type: 'line',
-            name: item.shiftSubName,
+            name: '24灏忔椂锛堝幓闄ゆ晠闅滄椂闂达級',
             yAxisIndex: 0,
-            data: item.dataList ? item.dataList.map(item => item.utilizationRate) : []
+            data: dataList ? dataList.map(item => item.amendUtilizationRate) : []
+          },
+          {
+            type: 'line',
+            name: '鐝',
+            yAxisIndex: 0,
+            data: dataList ? dataList.map(item => item.shiftUtilizationRate) : []
+          },
+          {
+            type: 'bar',
+            name: '绱杩愯鏃堕棿(h)',
+            yAxisIndex: 1,
+            barWidth: '30%',
+            data: dataList ? dataList.map(item => item.processLong) : []
           }
-        })
+        ]
+        const option = {
+          title: {
+            text: '璁惧缁煎悎鍒╃敤鐜�',
+            left: 'center',
+            top: 0,
+            textStyle: {
+              fontSize: 22
+            }
+          },
+          grid: {
+            top: '12%',
+            left: '1%',
+            right: '1%',
+            bottom: '1%',
+            containLabel: true
+          },
+          legend: {
+            top: '6%',
+            right: 'center',
+            itemGap: 20,
+            data: defaultLegendData
+          },
+          tooltip: {
+            show: true,
+            trigger: 'axis'
+          },
+          xAxis: {
+            type: 'category',
+            data: dateList ? dateList : []
+          },
+          yAxis: [
+            {
+              type: 'value',
+              name: '鍒╃敤鐜�(%)',
+              axisLine: {
+                show: true
+              },
+              axisLabel: {
+                formatter: '{value}%'
+              }
+            },
+            {
+              type: 'value',
+              name: '杩愯鏃堕棿(h)',
+              axisLine: {
+                show: true
+              }
+            }
+          ],
+          series: defaultSeries
+        }
+        if (shiftSubList) {
+          option.legend.data = defaultLegendData.concat(shiftSubList)
+          const newSeriesData = shiftDataList.map(item => {
+            return {
+              type: 'line',
+              name: item.shiftSubName,
+              yAxisIndex: 0,
+              data: item.dataList ? item.dataList.map(item => item.utilizationRate) : []
+            }
+          })
 
-        option.series = defaultSeries.concat(newSeriesData)
+          option.series = defaultSeries.concat(newSeriesData)
+        }
+
+        this.chartContainer.setOption(option, true)
+        this.chartContainer.hideLoading()
+      },
+
+      // 鑾峰彇涓績鍒楄〃
+      getCenterListByApi() {
+        this.centerList = []
+        const that = this
+        mdcApi.getCenterOrGroupListApi()
+          .then(res => {
+            if (res.success) {
+              that.centerList = res.result
+              that.queryParam.productionId = res.result[0].value
+              that.handleCenterSelectChange(res.result[0].value, { isInitLoad: true })
+            }
+          })
+      },
+
+      /**
+       * 鑾峰彇鐝粍鍒楄〃
+       * @param productionId 涓績Id
+       */
+      getGroupListByApi(productionId, isInitLoad) {
+        this.groupList = []
+        const that = this
+        mdcApi.getCenterOrGroupListApi(productionId)
+          .then(res => {
+            if (res.success) {
+              that.groupList = res.result
+              that.handleGroupSelectChange(res.result && res.result.length > 0 && isInitLoad ? [res.result[0].value] : [])
+              if (!isInitLoad) return
+              that.loadData()
+            }
+          })
+      },
+
+      /**
+       * 涓績鍙戠敓鏀瑰彉鏃惰Е鍙�
+       * @param value 鏀瑰彉鍚庣殑鍊�
+       * @param isInitLoad 鏄惁涓哄垵濮嬪寲鍔犺浇
+       */
+      handleCenterSelectChange(value, { isInitLoad }) {
+        this.getGroupListByApi(value, isInitLoad)
+      },
+
+      /**
+       * 鐝粍鍙戠敓鏀瑰彉鏃惰Е鍙�
+       * @param value 鏀瑰彉鍚庣殑鍊�
+       */
+      handleGroupSelectChange(value) {
+        this.productionIds = value
+        this.queryParam.productionIds = value.join(',')
+      },
+
+      // 鑾峰彇璁惧绫诲瀷鍒楄〃
+      getEquipmentTypeListApi() {
+        const that = this
+        mdcApi.getEquipmentTypeListApi()
+          .then(res => {
+            if (res.success) {
+              that.equipmentTypeList = res.result
+            }
+          })
+      },
+
+      // 鑾峰彇鐝埗鍒楄〃
+      getShiftListByApi() {
+        const that = this
+        mdcApi.getShiftListApi()
+          .then(res => {
+            if (res.success) {
+              that.shiftList = res.result
+            }
+          })
+      },
+
+      handleWindowResize() {
+        if (this.chartContainer) this.chartContainer.resize()
       }
-
-      this.chartContainer.setOption(option, true)
-      this.chartContainer.hideLoading()
-    },
-
-    // 鑾峰彇涓績鍒楄〃
-    getCenterListByApi() {
-      const that = this
-      mdcApi.getCenterOrGroupListApi()
-        .then(res => {
-          if (res.success) {
-            that.centerList = res.result
-            that.queryParam.productionId = res.result[0].value
-            that.getGroupListByApi(res.result[0].value)
-          }
-        })
-    },
-
-    /**
-     * 鑾峰彇鐝粍鍒楄〃
-     * @param productionId 涓績Id
-     */
-    getGroupListByApi(productionId) {
-      const that = this
-      mdcApi.getCenterOrGroupListApi(productionId)
-        .then(res => {
-          if (res.success) {
-            that.groupList = res.result
-            that.handleGroupSelectChange([res.result[0].value])
-            that.loadData()
-          }
-        })
-    },
-
-    /**
-     * 鐝粍鍙戠敓鏀瑰彉鏃惰Е鍙�
-     * @param value 鏀瑰彉鍚庣殑鍊�
-     */
-    handleGroupSelectChange(value) {
-      this.productionIds = value
-      this.queryParam.productionIds = value.join(',')
-    },
-
-    // 鑾峰彇璁惧绫诲瀷鍒楄〃
-    getEquipmentTypeListApi() {
-      const that = this
-      mdcApi.getEquipmentTypeListApi()
-        .then(res => {
-          if (res.success) {
-            that.equipmentTypeList = res.result
-          }
-        })
-    },
-
-    // 鑾峰彇鐝埗鍒楄〃
-    getShiftListByApi() {
-      const that = this
-      mdcApi.getShiftListApi()
-        .then(res => {
-          if (res.success) {
-            that.shiftList = res.result
-          }
-        })
-    },
-
-    handleWindowResize() {
-      if (this.chartContainer) this.chartContainer.resize()
     }
   }
-}
 </script>
\ No newline at end of file

--
Gitblit v1.9.3