From 28189102d735bfc2c41720d1ef292bd9024b49f2 Mon Sep 17 00:00:00 2001
From: zhuzhuanzhuan
Date: 星期四, 18 四月 2024 11:21:01 +0800
Subject: [PATCH] 1、首页 (1)设备级看板单击设备效率统计仪表盘图标跳转至统计分析页面并根据唯一编号筛选页面对应数据 (2)设备级看板点击设备班次按钮跳转至工作日历页面并根据设备编号筛选页面对应数据 (3)增加所有层级看板图表数据加载动画 (4)公司级以及分厂级看板利用率胶囊以及上月OEE车间单柱图表轴线刻度最大值采用动态设置方式而非固定100% (5)工段级看板上月OEE单柱图表轴线刻度最大值采用动态设置方式而非固定100% (6)工段级看板单击前7天利用率图表跳转至统计分析页面并根据唯一编号筛选页面对应数据 (7)工段级看板单击上月OEE图表跳转至设备综合效率分析页面并根据唯一编号筛选页面对应数据 2、调整全局导航栏页签间距,以便能在不超出导航栏的情况下同时放置更多页面页签

---
 src/views/dashboard/BranchFactorySignage.vue |  113 +++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 74 insertions(+), 39 deletions(-)

diff --git a/src/views/dashboard/BranchFactorySignage.vue b/src/views/dashboard/BranchFactorySignage.vue
index fa20fd7..d560385 100644
--- a/src/views/dashboard/BranchFactorySignage.vue
+++ b/src/views/dashboard/BranchFactorySignage.vue
@@ -110,20 +110,7 @@
         nextNextMonthMaintenancePlanNum: 0,
         twoMaintenanceChartData: [['-', '-', '-']],
         barChart: '',
-        barChartData: [
-          {
-            'value': '34',
-            'name': '401涓�宸ユ',
-            'productionCode': '4215215621',
-            'productionId': '1729761410329280513'
-          },
-          {
-            'value': '77',
-            'name': '401浜屽伐娈�',
-            'productionCode': '8563354643',
-            'productionId': '1729783206308302849'
-          }
-        ],
+        barChartData: [],
         doubleBarChart: '',
         doubleBarChartData: {},
         maintenanceConfig: {},
@@ -132,13 +119,14 @@
     },
     mounted() {
       window.addEventListener('resize', this.handleWindowResize)
-      this.drawCharts()
       this.getChartDataByApi()
+      this.drawProblemChart()
     },
     beforeDestroy() {
       window.removeEventListener('resize', this.handleWindowResize)
     },
     methods: {
+      /* 璋冪敤鎺ュ彛鑾峰彇鍥捐〃鏁版嵁姹囨�绘柟娉� */
       getChartDataByApi() {
         this.getRunningStateDataByApi()
         this.getEfficiencyDataByApi()
@@ -146,12 +134,19 @@
         this.getWarrantyMalfunctionDataByApi()
         this.getMonthMaintenanceNumByApi()
         this.getTwoMaintenanceChartDataByApi()
-        // this.getBarChartDataByApi()
+        this.getBarChartDataByApi()
         this.getDoubleBarChartDataByApi()
       },
 
       /* 璋冪敤鎺ュ彛鑾峰彇璁惧杩愯鐘舵�� */
       getRunningStateDataByApi() {
+        this.runningStateChart = this.$echarts.init(document.getElementById('running_state_chart'))
+        this.runningStateChart.showLoading({
+          text: '鏁版嵁鍔犺浇涓� ...',
+          color: '#0696e1', // 鍔犺浇鍔ㄧ敾棰滆壊
+          textColor: '#fff',
+          maskColor: 'rgba(1, 25, 75, 0.2)' // 閬僵灞�
+        })
         signageApi.getEquipmentStatusStatisticsApi(this.productionCode)
           .then(res => {
             if (res.success) this.runningStateData = res.result.list
@@ -161,6 +156,13 @@
 
       /* 璋冪敤鎺ュ彛鑾峰彇璁惧鍒╃敤鐜� */
       getEfficiencyDataByApi() {
+        this.efficiencyChart = this.$echarts.init(document.getElementById('efficiency_chart'))
+        this.efficiencyChart.showLoading({
+          text: '鏁版嵁鍔犺浇涓� ...',
+          color: '#0696e1', // 鍔犺浇鍔ㄧ敾棰滆壊
+          textColor: '#fff',
+          maskColor: 'rgba(1, 25, 75, 0.2)' // 閬僵灞�
+        })
         signageApi.getEquipmentUtilizationStatisticsApi(this.productionCode)
           .then(res => {
             if (res.success) this.efficiencyData = res.result
@@ -170,9 +172,16 @@
 
       /* 璋冪敤鎺ュ彛鑾峰彇鎶�鏈姸鎬� */
       getTechConditionDataByApi() {
+        this.techConditionChart = this.$echarts.init(document.getElementById('tech_condition_chart'))
+        this.techConditionChart.showLoading({
+          text: '鏁版嵁鍔犺浇涓� ...',
+          color: '#0696e1', // 鍔犺浇鍔ㄧ敾棰滆壊
+          textColor: '#fff',
+          maskColor: 'rgba(1, 25, 75, 0.2)' // 閬僵灞�
+        })
         signageApi.getEquipmentTechnologyStatusListApi(this.productionCode)
           .then(res => {
-            if (res.success) {
+            if (res.success && res.result) {
               this.techConditionData = [
                 { value: res.result[0].qualifiedCount, name: '鍚堟牸' },
                 { value: res.result[0].disabledCount, name: '绂佺敤' },
@@ -185,9 +194,16 @@
 
       /* 璋冪敤鎺ュ彛鑾峰彇璁惧鎶ヤ慨鏁呴殰 */
       getWarrantyMalfunctionDataByApi() {
+        this.warrantyMalfunctionChart = this.$echarts.init(document.getElementById('warranty_malfunction_chart'))
+        this.warrantyMalfunctionChart.showLoading({
+          text: '鏁版嵁鍔犺浇涓� ...',
+          color: '#0696e1', // 鍔犺浇鍔ㄧ敾棰滆壊
+          textColor: '#fff',
+          maskColor: 'rgba(1, 25, 75, 0.2)' // 閬僵灞�
+        })
         signageApi.getReportRepairEquipmentListApi(this.productionCode)
           .then(res => {
-            if (res.success) {
+            if (res.success && res.result) {
               this.warrantyMalfunctionData = [
                 { value: res.result[0].failurTotalCount, name: '鎶ヤ慨' },
                 { value: res.result[0].stopCount, name: '鍋滄満' },
@@ -229,6 +245,13 @@
 
       /* 璋冪敤鎺ュ彛鑾峰彇璁惧OEE缁熻 */
       getBarChartDataByApi() {
+        this.barChart = this.$echarts.init(document.getElementById('bar_chart'))
+        this.barChart.showLoading({
+          text: '鏁版嵁鍔犺浇涓� ...',
+          color: '#0696e1', // 鍔犺浇鍔ㄧ敾棰滆壊
+          textColor: '#fff',
+          maskColor: 'rgba(1, 25, 75, 0.2)' // 閬僵灞�
+        })
         signageApi.getEquipmentOEEStatistics(this.productionCode)
           .then(res => {
             if (res.success) this.barChartData = res.result
@@ -238,6 +261,13 @@
 
       /* 璋冪敤鎺ュ彛鑾峰彇璁惧OEE鍜屽埄鐢ㄧ巼瀵规瘮 */
       getDoubleBarChartDataByApi() {
+        this.doubleBarChart = this.$echarts.init(document.getElementById('double_bar_chart'))
+        this.doubleBarChart.showLoading({
+          text: '鏁版嵁鍔犺浇涓� ...',
+          color: '#0696e1', // 鍔犺浇鍔ㄧ敾棰滆壊
+          textColor: '#fff',
+          maskColor: 'rgba(1, 25, 75, 0.2)' // 閬僵灞�
+        })
         signageApi.getEquipmentMonthStatisticsApi(this.productionCode)
           .then(res => {
             if (res.success) this.doubleBarChartData = res.result
@@ -245,21 +275,8 @@
           })
       },
 
-      /* 缁樺埗鍥捐〃姹囨�绘柟娉� */
-      drawCharts() {
-        this.drawRunningStateChart()
-        this.drawEfficiencyChart()
-        this.drawTechConditionChart()
-        this.drawWarrantyMalfunctionChart()
-        this.drawMaintenanceChart()
-        this.drawBarChart()
-        this.drawDoubleBarChart()
-        this.drawProblemChart()
-      },
-
       /* 缁樺埗璁惧杩愯鐘舵�佺帿鐟伴ゼ鍥� */
       drawRunningStateChart(productionId) {
-        this.runningStateChart = this.$echarts.init(document.getElementById('running_state_chart'))
         const option = {
           title: {
             show: true, // 鏄惁鏄剧ず鏍囬锛岄粯璁や负true
@@ -336,6 +353,7 @@
           ]
         }
         this.runningStateChart.setOption(option, true)
+        this.runningStateChart.hideLoading()
 
         this.runningStateChart.on('click', params => {
           console.log('params', params)
@@ -348,7 +366,6 @@
 
       /* 缁樺埗璁惧鍒╃敤鐜囪兌鍥婂浘 */
       drawEfficiencyChart() {
-        this.efficiencyChart = this.$echarts.init(document.getElementById('efficiency_chart'))
         const data = this.efficiencyData
         const colorArray = [
           {
@@ -379,7 +396,13 @@
             bottom: '#F7B7A0'
           }
         ]
-        const defaultData = [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+        const defaultData = []
+        const dataMax = +data.sort((x, y) => +y.value - +x.value)[0].value
+        let yAxisMax
+        if (dataMax === 0) yAxisMax = 1 // 鑻ユ暟鎹腑鏈�澶у�间负0锛屽垯灏嗚儗鏅粯璁ゅ�艰缃负1
+        else yAxisMax = Math.ceil(dataMax / 5) * 5 // 璁剧疆鏌卞浘鑳屾櫙闃村奖榛樿鍊硷紝鎬濊矾涓烘暟鎹渶澶у�兼渶鎺ヨ繎鐨勮兘琚�5鏁撮櫎鐨勬暟瀛�
+        const yAxisInterval = yAxisMax / 5 // 鍚屾椂灏嗗埢搴﹀�煎垎鎴�5浠�
+        data.forEach(item => defaultData.push(yAxisMax))
         const option = {
           title: {
             show: true, // 鏄惁鏄剧ず鏍囬锛岄粯璁や负true
@@ -422,6 +445,9 @@
               }
             },
             show: true,
+            min: 0,
+            max: 'dataMax',
+            interval: yAxisInterval,
             type: 'value',
             axisTick: {
               show: false
@@ -537,6 +563,7 @@
         }
         option.title.text = `${moment().format('M鏈圖鏃�')}鍒╃敤鐜嘸
         this.efficiencyChart.setOption(option, true)
+        this.efficiencyChart.hideLoading()
 
         this.efficiencyChart.on('click', params => {
           // 鐐瑰嚮瑙﹀彂鐨勪负鏌辩姸浣擄紝闄ゆ闄ゅ鏄爣棰�
@@ -565,7 +592,6 @@
 
       /* 缁樺埗鎶�鏈姸鎬侀ゼ鍥� */
       drawTechConditionChart() {
-        this.techConditionChart = this.$echarts.init(document.getElementById('tech_condition_chart'))
         const option = {
           height: 300,
           title: {
@@ -640,11 +666,11 @@
           ]
         }
         this.techConditionChart.setOption(option, true)
+        this.techConditionChart.hideLoading()
       },
 
       /* 缁樺埗璁惧鎶ヤ慨鏁呴殰楗煎浘 */
       drawWarrantyMalfunctionChart() {
-        this.warrantyMalfunctionChart = this.$echarts.init(document.getElementById('warranty_malfunction_chart'))
         const option = {
           height: 300,
           title: {
@@ -719,6 +745,7 @@
           ]
         }
         this.warrantyMalfunctionChart.setOption(option, true)
+        this.warrantyMalfunctionChart.hideLoading()
       },
 
       /* 缁樺埗杞﹂棿淇濆吇婊氬姩琛� */
@@ -739,8 +766,13 @@
 
       /* 缁樺埗鍗曟煴鍥� */
       drawBarChart() {
-        this.barChart = this.$echarts.init(document.getElementById('bar_chart'))
-        const defaultData = [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
+        const defaultData = []
+        const dataMax = +this.barChartData.sort((x, y) => +y.value - +x.value)[0].value
+        let yAxisMax
+        if (dataMax === 0) yAxisMax = 1 // 鑻ユ暟鎹腑鏈�澶у�间负0锛屽垯灏嗚儗鏅粯璁ゅ�艰缃负1
+        else yAxisMax = Math.ceil(dataMax / 5) * 5 // 璁剧疆鏌卞浘鑳屾櫙闃村奖榛樿鍊硷紝鎬濊矾涓烘暟鎹渶澶у�兼渶鎺ヨ繎鐨勮兘琚�5鏁撮櫎鐨勬暟瀛�
+        const yAxisInterval = yAxisMax / 5 // 鍚屾椂灏嗗埢搴﹀�煎垎鎴�5浠�
+        this.barChartData.forEach(item => defaultData.push(yAxisMax))
         const option = {
           title: {
             show: true, // 鏄惁鏄剧ず鏍囬锛岄粯璁や负true
@@ -801,7 +833,9 @@
           }],
           yAxis: [{
             name: '%',
-            max: 100,
+            min: 0,
+            max: yAxisMax,
+            interval: yAxisInterval,
             axisLabel: {
               formatter: '{value}',
               color: '#e2e9ff'
@@ -857,6 +891,7 @@
         }
         option.title.text = moment().subtract(1, 'months').format('M鏈�') + `OEE杞﹂棿`
         this.barChart.setOption(option, true)
+        this.barChart.hideLoading()
 
         this.barChart.on('click', params => {
           console.log('params', params)
@@ -874,7 +909,6 @@
 
       /* 缁樺埗鍙屾煴鍥� */
       drawDoubleBarChart() {
-        this.doubleBarChart = this.$echarts.init(document.getElementById('double_bar_chart'))
         const option = {
           color: ['#409EFF', '#0FC61A'],
           tooltip: {
@@ -1017,6 +1051,7 @@
           ]
         }
         this.doubleBarChart.setOption(option, true)
+        this.doubleBarChart.hideLoading()
       },
 
       /* 缁樺埗闂婊氬姩琛� */

--
Gitblit v1.9.3