From 266db48e639ce2cd84572c8586876d906b8ce6b8 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期一, 23 六月 2025 16:57:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/mdc/base/GroupEquipmentUtilizationRateChart.vue |  444 +++++++++++++++++++++++++++----------------------------
 1 files changed, 217 insertions(+), 227 deletions(-)

diff --git a/src/views/mdc/base/GroupEquipmentUtilizationRateChart.vue b/src/views/mdc/base/GroupEquipmentUtilizationRateChart.vue
index 8e3d7cb..2c25d68 100644
--- a/src/views/mdc/base/GroupEquipmentUtilizationRateChart.vue
+++ b/src/views/mdc/base/GroupEquipmentUtilizationRateChart.vue
@@ -34,7 +34,6 @@
           <a-col :md="5" :sm="5">
             <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>
@@ -46,246 +45,237 @@
 </template>
 
 <script>
-import mdcApi from '@api/mdc'
-import moment from 'moment'
-import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import mdcApi from '@api/mdc'
+  import moment from 'moment'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
 
-export default {
-  name: 'GroupEquipmentUtilizationRateChart',
-  components: {},
-  mixins: [JeecgListMixin],
-  data() {
-    return {
-      disableMixinCreated: true,
-      productionIds: [],//鐝粍
-      centerList: [],
-      groupList: [],
-      queryParam: {
-        month: moment().subtract('1', 'month').format('YYYYMM')
+  export default {
+    name: 'GroupEquipmentUtilizationRateChart',
+    components: {},
+    mixins: [JeecgListMixin],
+    data() {
+      return {
+        disableMixinCreated: true,
+        productionIds: [],//鐝粍
+        centerList: [],
+        groupList: [],
+        queryParam: {
+          month: moment().subtract('1', 'month').format('YYYYMM')
+        }
       }
-    }
-  },
-  mounted() {
-    window.addEventListener('resize', this.handleWindowResize)
-    this.handleWindowResize()
-    this.getCenterListByApi()
-  },
-  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.getGroupEquipmentChartDataApi(this.queryParam)
-        .then(res => {
-          if (res.success) {
-            if (Object.keys(res.result).length === 0 || res.result.equipmentNameList.length === 0) {
+    },
+    mounted() {
+      window.addEventListener('resize', this.handleWindowResize)
+      this.handleWindowResize()
+      this.getCenterListByApi()
+    },
+    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.getGroupEquipmentChartDataApi(this.queryParam)
+          .then(res => {
+            if (res.success) {
+              if (Object.keys(res.result).length === 0 || res.result.equipmentNameList.length === 0) {
+                that.$notification.warning({
+                  message: '娑堟伅',
+                  description: '鏆傛棤鏁版嵁'
+                })
+                // 姝ゅ鏈猺eturn鏄负淇濊瘉鍥捐〃鏁版嵁鑳借娓呴櫎骞跺睍绀虹┖鍥捐〃
+              }
+              that.initChart(res.result)
+            } else {
               that.$notification.warning({
                 message: '娑堟伅',
-                description: '鏆傛棤鏁版嵁'
+                description: res.message
               })
-              // 姝ゅ鏈猺eturn鏄负淇濊瘉鍥捐〃鏁版嵁鑳借娓呴櫎骞跺睍绀虹┖鍥捐〃
             }
-            that.initChart(res.result)
-          } else {
-            that.$notification.warning({
-              message: '娑堟伅',
-              description: res.message
-            })
-          }
-        })
-        .catch(err => {
-          that.$notification.error({
-            message: '娑堟伅',
-            description: err.message
           })
-        })
-    },
+          .catch(err => {
+            that.$notification.error({
+              message: '娑堟伅',
+              description: err.message
+            })
+          })
+      },
 
-    /**
-     * 鍒濆鍖栧浘琛�
-     * @param chartDataObj 鏁版嵁瀵硅薄 Object
-     */
-    initChart(chartDataObj) {
-      const option = {
-        title: {
-          text: '璁惧缁煎悎鍒╃敤鐜囷紙' + (this.queryParam.month.slice(-2) >= 10 ? this.queryParam.month.slice(-2) : this.queryParam.month.slice(-1)) + '鏈堬級',
-          left: 'center',
-          top: 0,
-          textStyle: {
-            fontSize: 22
-          }
-        },
-        grid: {
-          top: '12%',
-          left: '1%',
-          right: '1%',
-          bottom: '8%',
-          containLabel: true
-        },
-        legend: {
-          top: '6%',
-          right: 'center',
-          itemGap: 20,
-          data: ['24h缁煎悎鍒╃敤鐜�', '24h鍘婚櫎鏁呴殰', '璁″垝宸ヤ綔鏃堕棿缁煎悎鍒╃敤鐜�']
-        },
-        tooltip: {
-          show: true,
-          trigger: 'axis'
-        },
-        xAxis: {
-          type: 'category',
-          // data: ['绔嬪姞u1000-3', '浜旇酱125P', '浜斿潗鏍囧姞宸ヤ腑蹇僄S1000', 'A杞�1000PLUS', '姊у窞80P_2', '闆曞埢鏈�800TE', '鍥涘潗鏍囩珛鍔�104V', '绔嬪姞u1000-4', '绔嬪姞GX710_1', '涓夊潗鏍囩珛鍔�1350', '鍗у姞H5000-1', '绔嬪姞u1000-2', '绔嬪姞1000HS_1', '绔嬪姞1160_1', '绔嬪姞GX710_2', '绔嬪姞u1000-3', '浜旇酱125P', '浜斿潗鏍囧姞宸ヤ腑蹇僄S1000', 'A杞�1000PLUS', '姊у窞80P_2', '闆曞埢鏈�800TE', '鍥涘潗鏍囩珛鍔�104V', '绔嬪姞u1000-4', '绔嬪姞GX710_1', '涓夊潗鏍囩珛鍔�1350', '鍗у姞H5000-1', '绔嬪姞u1000-2', '绔嬪姞1000HS_1', '绔嬪姞1160_1', '绔嬪姞GX710_2', '绔嬪姞u1000-3', '浜旇酱125P', '浜斿潗鏍囧姞宸ヤ腑蹇僄S1000', 'A杞�1000PLUS', '姊у窞80P_2', '闆曞埢鏈�800TE', '鍥涘潗鏍囩珛鍔�104V'],
-          data: chartDataObj.equipmentNameList ? chartDataObj.equipmentNameList : [],
-          axisLabel: {
-            interval: 0, // 鍧愭爣杞村埢搴︽爣绛剧殑鏄剧ず闂撮殧锛屽湪绫荤洰杞翠腑鏈夋晥锛涢粯璁や細閲囩敤鏍囩涓嶉噸鍙犵殑绛栫暐闂撮殧鏄剧ず鏍囩锛涘彲浠ヨ缃垚0寮哄埗鏄剧ず鎵�鏈夋爣绛撅紱濡傛灉璁剧疆涓�1锛岃〃绀恒�庨殧涓�涓爣绛炬樉绀轰竴涓爣绛俱�忥紝濡傛灉鍊间负2锛岃〃绀洪殧涓や釜鏍囩鏄剧ず涓�涓爣绛撅紝浠ユ绫绘帹銆�
-            rotate: 45, // 鍒诲害鏍囩鏃嬭浆鐨勮搴︼紝鍦ㄧ被鐩酱鐨勭被鐩爣绛炬樉绀轰笉涓嬬殑鏃跺�欏彲浠ラ�氳繃鏃嬭浆闃叉鏍囩涔嬮棿閲嶅彔锛涙棆杞殑瑙掑害浠�-90搴﹀埌90搴�
-            inside: false, // 鍒诲害鏍囩鏄惁鏈濆唴锛岄粯璁ゆ湞澶�
-            margin: 15, // 鍒诲害鏍囩涓庤酱绾夸箣闂寸殑璺濈
-            fontSize: 14,
-            color: '#000'
-          }
-        },
-        yAxis: [
-          {
-            type: 'value',
-            name: '鍒╃敤鐜�(%)',
-            axisLine: {
-              show: true
-            },
-            axisLabel: {
-              formatter: '{value}%'
+      /**
+       * 鍒濆鍖栧浘琛�
+       * @param chartDataObj 鏁版嵁瀵硅薄 Object
+       */
+      initChart(chartDataObj) {
+        const option = {
+          title: {
+            text: '璁惧缁煎悎鍒╃敤鐜囷紙' + (this.queryParam.month.slice(-2) >= 10 ? this.queryParam.month.slice(-2) : this.queryParam.month.slice(-1)) + '鏈堬級',
+            left: 'center',
+            top: 0,
+            textStyle: {
+              fontSize: 22
             }
-          }
-        ],
-        series: [
-          {
-            type: 'bar',
-            name: '24h缁煎悎鍒╃敤鐜�',
-            // data: [53.28, 32.22, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 85, 32, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 23, 56, 24, 85, 32, 23, 56, 24, 85, 32, 85, 32, 23, 56, 24, 85, 32]
-            data: chartDataObj.dataList ? chartDataObj.dataList.map(item => item.utilizationRate) : []
-            // label: {
-            //   show: true,
-            //   position: 'top',
-            //   formatter: '{c}%',
-            //   avoidLabelOverlap: true
-            // }
           },
-          {
-            type: 'bar',
-            name: '24h鍘婚櫎鏁呴殰',
-            data: chartDataObj.dataList ? chartDataObj.dataList.map(item => item.amendUtilizationRate) : []
-            // data: [53.28, 32.22, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 85, 32, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 23, 56, 24, 85, 32, 23, 56, 24, 85, 32, 85, 32, 23, 56, 24, 85, 32]
+          grid: {
+            top: '12%',
+            left: '1%',
+            right: '1%',
+            bottom: '8%',
+            containLabel: true
           },
-          {
-            type: 'bar',
-            name: '璁″垝宸ヤ綔鏃堕棿缁煎悎鍒╃敤鐜�',
-            data: chartDataObj.dataList ? chartDataObj.dataList.map(item => item.shiftUtilizationRate) : []
-            // data: [63.25, 32.22, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 85, 32, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 85, 32, 23, 56, 24, 85, 32, 85, 32, 23, 56, 24, 85, 32]
-          }
-        ],
-        dataZoom: [
-          {
-            type: 'slider',
+          legend: {
+            top: '6%',
+            right: 'center',
+            itemGap: 20,
+            data: ['24h缁煎悎鍒╃敤鐜�', '24h鍘婚櫎鏁呴殰', '璁″垝宸ヤ綔鏃堕棿缁煎悎鍒╃敤鐜�']
+          },
+          tooltip: {
             show: true,
-            xAxisIndex: 0,
-            startValue: 0,
-            endValue: 19,
-            // 鏄惁鏄剧ずdetail锛屽嵆鎷栨嫿鏃跺�欐樉绀鸿缁嗘暟鍊间俊鎭�
-            showDetail: false,
-            // empty锛氬綋鍓嶆暟鎹獥鍙e鐨勬暟鎹紝琚缃负绌恒��
-            // 鍗充笉浼氬奖鍝嶅叾浠栬酱鐨勬暟鎹寖鍥�
-            filterMode: 'empty',
-            // 鎺у埗鎵嬫焺鐨勫昂瀵�
-            // handleSize: 0,
-            // 鏄惁閿佸畾閫夋嫨鍖哄煙锛堟垨鍙仛鏁版嵁绐楀彛锛夌殑澶у皬
-            zoomLock: true,
-            brushSelect: false
+            trigger: 'axis'
           },
-          {
-            // 娌℃湁涓嬮潰杩欏潡鐨勮瘽锛屽彧鑳芥嫋鍔ㄦ粴鍔ㄦ潯锛�
-            // 榧犳爣婊氳疆鍦ㄥ尯鍩熷唴涓嶈兘鎺у埗澶栭儴婊氬姩鏉�
-            type: 'inside',
-            show: true,
-            // 鎺у埗鍝釜杞达紝濡傛灉鏄痭umber琛ㄧず鎺у埗涓�涓酱锛�
-            xAxisIndex: 0,
-            // 婊氳疆鏄惁瑙﹀彂缂╂斁
-            zoomOnMouseWheel: false,
-            // 榧犳爣绉诲姩鑳藉惁瑙﹀彂骞崇Щ
-            moveOnMouseMove: true,
-            // 榧犳爣婊氳疆鑳藉惁瑙﹀彂骞崇Щ
-            moveOnMouseWheel: true
-          }
-        ]
+          xAxis: {
+            type: 'category',
+            // data: ['绔嬪姞u1000-3', '浜旇酱125P', '浜斿潗鏍囧姞宸ヤ腑蹇僄S1000', 'A杞�1000PLUS', '姊у窞80P_2', '闆曞埢鏈�800TE', '鍥涘潗鏍囩珛鍔�104V', '绔嬪姞u1000-4', '绔嬪姞GX710_1', '涓夊潗鏍囩珛鍔�1350', '鍗у姞H5000-1', '绔嬪姞u1000-2', '绔嬪姞1000HS_1', '绔嬪姞1160_1', '绔嬪姞GX710_2', '绔嬪姞u1000-3', '浜旇酱125P', '浜斿潗鏍囧姞宸ヤ腑蹇僄S1000', 'A杞�1000PLUS', '姊у窞80P_2', '闆曞埢鏈�800TE', '鍥涘潗鏍囩珛鍔�104V', '绔嬪姞u1000-4', '绔嬪姞GX710_1', '涓夊潗鏍囩珛鍔�1350', '鍗у姞H5000-1', '绔嬪姞u1000-2', '绔嬪姞1000HS_1', '绔嬪姞1160_1', '绔嬪姞GX710_2', '绔嬪姞u1000-3', '浜旇酱125P', '浜斿潗鏍囧姞宸ヤ腑蹇僄S1000', 'A杞�1000PLUS', '姊у窞80P_2', '闆曞埢鏈�800TE', '鍥涘潗鏍囩珛鍔�104V'],
+            data: chartDataObj.equipmentNameList ? chartDataObj.equipmentNameList : [],
+            axisLabel: {
+              interval: 0, // 鍧愭爣杞村埢搴︽爣绛剧殑鏄剧ず闂撮殧锛屽湪绫荤洰杞翠腑鏈夋晥锛涢粯璁や細閲囩敤鏍囩涓嶉噸鍙犵殑绛栫暐闂撮殧鏄剧ず鏍囩锛涘彲浠ヨ缃垚0寮哄埗鏄剧ず鎵�鏈夋爣绛撅紱濡傛灉璁剧疆涓�1锛岃〃绀恒�庨殧涓�涓爣绛炬樉绀轰竴涓爣绛俱�忥紝濡傛灉鍊间负2锛岃〃绀洪殧涓や釜鏍囩鏄剧ず涓�涓爣绛撅紝浠ユ绫绘帹銆�
+              rotate: 45, // 鍒诲害鏍囩鏃嬭浆鐨勮搴︼紝鍦ㄧ被鐩酱鐨勭被鐩爣绛炬樉绀轰笉涓嬬殑鏃跺�欏彲浠ラ�氳繃鏃嬭浆闃叉鏍囩涔嬮棿閲嶅彔锛涙棆杞殑瑙掑害浠�-90搴﹀埌90搴�
+              inside: false, // 鍒诲害鏍囩鏄惁鏈濆唴锛岄粯璁ゆ湞澶�
+              margin: 15, // 鍒诲害鏍囩涓庤酱绾夸箣闂寸殑璺濈
+              fontSize: 14,
+              color: '#000'
+            }
+          },
+          yAxis: [
+            {
+              type: 'value',
+              name: '鍒╃敤鐜�(%)',
+              axisLine: {
+                show: true
+              },
+              axisLabel: {
+                formatter: '{value}%'
+              }
+            }
+          ],
+          series: [
+            {
+              type: 'bar',
+              name: '24h缁煎悎鍒╃敤鐜�',
+              // data: [53.28, 32.22, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 85, 32, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 23, 56, 24, 85, 32, 23, 56, 24, 85, 32, 85, 32, 23, 56, 24, 85, 32]
+              data: chartDataObj.dataList ? chartDataObj.dataList.map(item => item.utilizationRate) : []
+              // label: {
+              //   show: true,
+              //   position: 'top',
+              //   formatter: '{c}%',
+              //   avoidLabelOverlap: true
+              // }
+            },
+            {
+              type: 'bar',
+              name: '24h鍘婚櫎鏁呴殰',
+              data: chartDataObj.dataList ? chartDataObj.dataList.map(item => item.amendUtilizationRate) : []
+              // data: [53.28, 32.22, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 85, 32, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 23, 56, 24, 85, 32, 23, 56, 24, 85, 32, 85, 32, 23, 56, 24, 85, 32]
+            },
+            {
+              type: 'bar',
+              name: '璁″垝宸ヤ綔鏃堕棿缁煎悎鍒╃敤鐜�',
+              data: chartDataObj.dataList ? chartDataObj.dataList.map(item => item.shiftUtilizationRate) : []
+              // data: [63.25, 32.22, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 85, 32, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 85, 32, 23, 56, 24, 85, 32, 85, 32, 23, 56, 24, 85, 32]
+            }
+          ],
+          dataZoom: [
+            {
+              type: 'slider',
+              show: true,
+              xAxisIndex: 0,
+              startValue: 0,
+              endValue: 19,
+              // 鏄惁鏄剧ずdetail锛屽嵆鎷栨嫿鏃跺�欐樉绀鸿缁嗘暟鍊间俊鎭�
+              showDetail: false,
+              // empty锛氬綋鍓嶆暟鎹獥鍙e鐨勬暟鎹紝琚缃负绌恒��
+              // 鍗充笉浼氬奖鍝嶅叾浠栬酱鐨勬暟鎹寖鍥�
+              filterMode: 'empty',
+              // 鎺у埗鎵嬫焺鐨勫昂瀵�
+              // handleSize: 0,
+              // 鏄惁閿佸畾閫夋嫨鍖哄煙锛堟垨鍙仛鏁版嵁绐楀彛锛夌殑澶у皬
+              zoomLock: true,
+              brushSelect: false
+            },
+            {
+              // 娌℃湁涓嬮潰杩欏潡鐨勮瘽锛屽彧鑳芥嫋鍔ㄦ粴鍔ㄦ潯锛�
+              // 榧犳爣婊氳疆鍦ㄥ尯鍩熷唴涓嶈兘鎺у埗澶栭儴婊氬姩鏉�
+              type: 'inside',
+              show: true,
+              // 鎺у埗鍝釜杞达紝濡傛灉鏄痭umber琛ㄧず鎺у埗涓�涓酱锛�
+              xAxisIndex: 0,
+              // 婊氳疆鏄惁瑙﹀彂缂╂斁
+              zoomOnMouseWheel: false,
+              // 榧犳爣绉诲姩鑳藉惁瑙﹀彂骞崇Щ
+              moveOnMouseMove: true,
+              // 榧犳爣婊氳疆鑳藉惁瑙﹀彂骞崇Щ
+              moveOnMouseWheel: true
+            }
+          ]
+        }
+        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, true)
+            }
+          })
+      },
+
+      /**
+       * 鑾峰彇鐝粍鍒楄〃
+       * @param productionId 涓績Id
+       * @param isInitLoad 鏄惁涓哄垵濮嬪寲鍔犺浇
+       */
+      getGroupListByApi(productionId, isInitLoad = false) {
+        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 鏀瑰彉鍚庣殑涓績Id
+       */
+      handleCenterSelectChange(value) {
+        this.getGroupListByApi(value)
+      },
+
+      /**
+       * 鐝粍鍙戠敓鏀瑰彉鏃惰Е鍙�
+       * @param value 鏀瑰彉鍚庣殑鐝粍Id
+       */
+      handleGroupSelectChange(value) {
+        this.productionIds = value
+        this.queryParam.productionIds = value.join(',')
+      },
+
+      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, true)
-          }
-        })
-    },
-
-    /**
-     * 鑾峰彇鐝粍鍒楄〃
-     * @param productionId 涓績Id
-     * @param isInitLoad 鏄惁涓哄垵濮嬪寲鍔犺浇
-     */
-    getGroupListByApi(productionId, isInitLoad = false) {
-      const that = this
-      mdcApi.getCenterOrGroupListApi(productionId)
-        .then(res => {
-          if (res.success) {
-            that.groupList = res.result
-            if (!isInitLoad) return
-            that.handleGroupSelectChange([res.result[0].value])
-            that.loadData()
-          }
-        })
-    },
-
-    /**
-     * 涓績鏀瑰彉鏃惰Е鍙�
-     * @param value 鏀瑰彉鍚庣殑涓績Id
-     */
-    handleCenterSelectChange(value) {
-      if (this.productionIds.length > 0) {
-        this.groupList = []
-        this.productionIds = []
-        delete this.queryParam.productionIds
-      }
-      this.getGroupListByApi(value)
-    },
-
-    /**
-     * 鐝粍鍙戠敓鏀瑰彉鏃惰Е鍙�
-     * @param value 鏀瑰彉鍚庣殑鐝粍Id
-     */
-    handleGroupSelectChange(value) {
-      this.productionIds = value
-      if (value.length === 0) {
-        delete this.queryParam.productionIds
-        return
-      }
-      this.queryParam.productionIds = value.join(',')
-    },
-
-    handleWindowResize() {
-      if (this.chartContainer) this.chartContainer.resize()
     }
   }
-}
 </script>
\ No newline at end of file

--
Gitblit v1.9.3