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/IndexSignage.vue | 126 ++++++++++++++++++++++++----------------- 1 files changed, 74 insertions(+), 52 deletions(-) diff --git a/src/views/dashboard/IndexSignage.vue b/src/views/dashboard/IndexSignage.vue index ff2faab..85ce0bd 100644 --- a/src/views/dashboard/IndexSignage.vue +++ b/src/views/dashboard/IndexSignage.vue @@ -106,32 +106,7 @@ nextNextMonthMaintenancePlanNum: 0, twoMaintenanceChartData: [['-', '-', '-']], barChart: '', - barChartData: [ - { - 'value': '32', - 'name': '401', - 'productionCode': '125487318', - 'productionId': '1729419336207761409' - }, - { - 'value': '23', - 'name': '406', - 'productionCode': '4212152142', - 'productionId': '1729419361201618945' - }, - { - 'value': '11', - 'name': '407', - 'productionCode': '321321345', - 'productionId': '1729419381665628161' - }, - { - 'value': '44', - 'name': '408', - 'productionCode': '536341343', - 'productionId': '1729670118396067842' - } - ], + barChartData: [], doubleBarChart: '', doubleBarChartData: {}, efficiencyChartConfig: {}, @@ -141,13 +116,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() @@ -155,12 +131,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() .then(res => { if (res.success) this.runningStateData = res.result.list @@ -170,6 +153,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() .then(res => { if (res.success) this.efficiencyData = res.result @@ -179,9 +169,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() .then(res => { - if (res.success) { + if (res.success && res.result) { this.techConditionData = [ { value: res.result[0].qualifiedCount, name: '鍚堟牸' }, { value: res.result[0].disabledCount, name: '绂佺敤' }, @@ -194,9 +191,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() .then(res => { - if (res.success) { + if (res.success && res.result) { this.warrantyMalfunctionData = [ { value: res.result[0].failurTotalCount, name: '鎶ヤ慨' }, { value: res.result[0].stopCount, name: '鍋滄満' }, @@ -238,6 +242,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() .then(res => { if (res.success) this.barChartData = res.result @@ -247,6 +258,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() .then(res => { if (res.success) this.doubleBarChartData = res.result @@ -254,21 +272,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 = { height: 300, title: { @@ -346,6 +351,7 @@ ] } this.runningStateChart.setOption(option, true) + this.runningStateChart.hideLoading() this.runningStateChart.on('click', params => { this.$router.push({ @@ -357,7 +363,6 @@ /* 缁樺埗璁惧鍒╃敤鐜囪兌鍥婂浘 */ drawEfficiencyChart() { - this.efficiencyChart = this.$echarts.init(document.getElementById('efficiency_chart')) const data = this.efficiencyData const colorArray = [ { @@ -388,7 +393,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 @@ -431,6 +442,9 @@ } }, show: true, + min: 0, + max: 'dataMax', + interval: yAxisInterval, type: 'value', axisTick: { show: false @@ -546,7 +560,7 @@ } option.title.text = `${moment().format('M鏈圖鏃�')}鍒╃敤鐜嘸 this.efficiencyChart.setOption(option, true) - + this.efficiencyChart.hideLoading() this.efficiencyChart.on('click', params => { // 鐐瑰嚮瑙﹀彂鐨勪负鏌辩姸浣擄紝闄ゆ闄ゅ鏄爣棰� if (params.componentType === 'series') { @@ -576,7 +590,6 @@ /* 缁樺埗鎶�鏈姸鎬侀ゼ鍥� */ drawTechConditionChart() { - this.techConditionChart = this.$echarts.init(document.getElementById('tech_condition_chart')) const option = { height: 300, title: { @@ -651,11 +664,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: { @@ -730,6 +743,7 @@ ] } this.warrantyMalfunctionChart.setOption(option, true) + this.warrantyMalfunctionChart.hideLoading() }, /* 缁樺埗杞﹂棿淇濆吇婊氬姩琛� */ @@ -749,8 +763,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 @@ -812,7 +831,9 @@ }], yAxis: [{ name: '%', - max: 100, + min: 0, + max: yAxisMax, + interval: yAxisInterval, axisLabel: { formatter: '{value}', color: '#e2e9ff' @@ -868,6 +889,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) @@ -886,7 +908,6 @@ /* 缁樺埗鍙屾煴鍥� */ drawDoubleBarChart() { - this.doubleBarChart = this.$echarts.init(document.getElementById('double_bar_chart')) const option = { color: ['#409EFF', '#0FC61A'], tooltip: { @@ -1032,6 +1053,7 @@ ] } this.doubleBarChart.setOption(option, true) + this.doubleBarChart.hideLoading() }, /* 缁樺埗闂婊氬姩琛� */ -- Gitblit v1.9.3