From e081f232138b318338ffca07e7c9fcd941ac20b4 Mon Sep 17 00:00:00 2001
From: zhuzhuanzhuan
Date: 星期五, 12 四月 2024 09:54:17 +0800
Subject: [PATCH] 1、设备综合效率分析以及设备加工工件报表页面表格高度设置为页面进入时即可拖动水平滚动条的高度 2、首页 (1)OEE标题增加月份展示,利用率等效率标题增加日期展示 (2)公司及车间级看板单击OEE车间图表跳转至设备综合效率分析页面并根据唯一编号筛选页面对应数据 (3)工段级看板单击设备效率统计仪表盘图标跳转至统计分析页面并根据唯一编号筛选页面对应数据 (4)调整折线图数据展示维度,通过当前工段下各个设备前7天的利用率、开动率和开机率轮播展示
---
src/views/dashboard/BranchFactorySignage.vue | 337 +++++++++++++++++++++++++++++++++-----------------------
1 files changed, 198 insertions(+), 139 deletions(-)
diff --git a/src/views/dashboard/BranchFactorySignage.vue b/src/views/dashboard/BranchFactorySignage.vue
index 997f634..fa20fd7 100644
--- a/src/views/dashboard/BranchFactorySignage.vue
+++ b/src/views/dashboard/BranchFactorySignage.vue
@@ -1,31 +1,24 @@
<template>
<div class="page-container">
- <!--<div class="page-title">-->
- <!--<slot name="index_signage_nav"></slot>-->
- <!--<!–<dv-decoration-11 class="workshop-nav" v-for="item in workshopList">–>-->
- <!--<!–{{item.workshopName}}–>-->
- <!--<!–</dv-decoration-11>–>-->
- <!--</div>-->
<div class="content-container">
<div style="width: 25%" class="left-col">
<div class="back-nav" @click="$emit('backToLastSignage','Index')" v-if="userType===4">
<dv-decoration-7>涓婁竴绾�</dv-decoration-7>
</div>
- <dv-border-box-9 style="padding: 40px 20px 0">
- <!--<div class="first-title">M D C 鍏� 缃� 鎬� 鏁� : 6 0 3 鍙�</div>-->
+ <dv-border-box-9 style="padding: 30px 20px 0">
<div id="running_state_chart" style="width:100%;height: 400px;"></div>
<div id="efficiency_chart" style="width: 100%;height: 350px"></div>
</dv-border-box-9>
</div>
+
<div style="width: 42%" class="middle-col">
- <dv-border-box-9 style="padding: 40px 20px 0">
- <!--<div class="first-title">璁� 澶� 鍙� 璐� 鎬� 鏁� : 1 0 2 2 鍙�</div>-->
+ <dv-border-box-9 style="padding: 30px 20px 0">
<div style="display: flex">
<div id="tech_condition_chart" style="width:50%;height: 420px;"></div>
<div id="warranty_malfunction_chart" style="width:50%;height: 420px;"></div>
</div>
<div class="support-plan-container">
- <div class="support-plan-item" style="background:#719D8E">
+ <div class="support-plan-item" style="background:#5FE0AF">
<div>鏈湀涓変繚璁″垝</div>
<div class="plan-value-container">
<div class="plan-value">{{thisMonthMaintenancePlanNum}}</div>
@@ -39,7 +32,7 @@
<div>鍙�</div>
</div>
</div>
- <div class="support-plan-item" style="background:#A8985D">
+ <div class="support-plan-item" style="background:#D6BC52">
<div>涓嬫湀涓変繚璁″垝</div>
<div class="plan-value-container">
<div class="plan-value">{{nextMonthMaintenancePlanNum}}</div>
@@ -59,10 +52,11 @@
</div>
</dv-border-box-9>
</div>
+
<div style="width: 32%">
- <dv-border-box-9 style="padding: 30px 0">
- <div id="bar_chart" style="width:100%;height: 250px;"></div>
- <div id="double_bar_chart" style="width:100%;height: 300px;"></div>
+ <dv-border-box-9 style="padding: 30px 0 20px">
+ <div id="bar_chart" style="width:100%;height: 280px;"></div>
+ <div id="double_bar_chart" style="width:100%;height: 280px;"></div>
<div style="padding: 0 20px;">
<dv-scroll-board :config="problemConfig" style="width:100%;height:220px"/>
</div>
@@ -74,6 +68,7 @@
<script>
import signageApi from '@/api/signage'
+ import moment from 'moment'
export default {
name: 'BranchFactorySignage',
@@ -115,7 +110,20 @@
nextNextMonthMaintenancePlanNum: 0,
twoMaintenanceChartData: [['-', '-', '-']],
barChart: '',
- barChartData: [],
+ barChartData: [
+ {
+ 'value': '34',
+ 'name': '401涓�宸ユ',
+ 'productionCode': '4215215621',
+ 'productionId': '1729761410329280513'
+ },
+ {
+ 'value': '77',
+ 'name': '401浜屽伐娈�',
+ 'productionCode': '8563354643',
+ 'productionId': '1729783206308302849'
+ }
+ ],
doubleBarChart: '',
doubleBarChartData: {},
maintenanceConfig: {},
@@ -138,7 +146,7 @@
this.getWarrantyMalfunctionDataByApi()
this.getMonthMaintenanceNumByApi()
this.getTwoMaintenanceChartDataByApi()
- this.getBarChartDataByApi()
+ // this.getBarChartDataByApi()
this.getDoubleBarChartDataByApi()
},
@@ -255,22 +263,21 @@
const option = {
title: {
show: true, // 鏄惁鏄剧ず鏍囬锛岄粯璁や负true
- text: '璁惧杩愯鐘舵�佺粺璁�', // 涓绘爣棰樻枃鏈�
+ text: '璁惧鐘舵��', // 涓绘爣棰樻枃鏈�
x: 'center', // 鏍囬姘村钩瀹夋斁浣嶇疆锛屽彲閫夊�间负'left'銆�'center'銆�'right'鎴栧叿浣撶殑姘村钩鍧愭爣鍊�
y: 'top', // 鏍囬鍨傜洿瀹夋斁浣嶇疆锛屽彲閫夊�间负'top'銆�'bottom'銆�'center'鎴栧叿浣撶殑鍨傜洿鍧愭爣鍊�
textStyle: {
// 涓绘爣棰樻枃鏈牱寮�
fontSize: 18,
fontWeight: 'normal',
- color: '#00A8AC'
+ color: '#1AD8DE'
}
},
tooltip: {
trigger: 'item',
formatter: function(params) {
- if (params.name !== '') {
- return `${params.name}:${params.value}(${params.percent}%)`
- }
+ return '<span style="font-weight:bolder;">' + params.name + '</span><br/>' +
+ '<span style="display:inline-block; width:10px; height:10px; border-radius:100px; margin-right:5px; background:' + params.color + '"></span>' + `${params.value}锛�${params.percent}%锛塦
}
},
legend: {
@@ -301,10 +308,10 @@
radius: ['40%', '60%'],
center: ['53%', '50%'],
color: [
- '#686869',
- '#AA6349',
- '#968A5E',
- '#5D975D'
+ '#8B8B8B',
+ '#F56436',
+ '#FFFF40',
+ '#0FC61A'
],
label: {
position: 'outside',
@@ -345,44 +352,45 @@
const data = this.efficiencyData
const colorArray = [
{
- top: '#61927F',
- bottom: '#61927F'
- }, {
- top: '#629480',
- bottom: '#629480'
+ top: '#79CEAA',
+ bottom: '#79CEAA'
+ },
+ {
+ top: '#F589A2',
+ bottom: '#F589A2'
+ },
+ {
+ top: '#6FBF9D',
+ bottom: '#6FBF9D'
},
{
top: '#66DFE2',
bottom: '#66DFE2'
}, {
- top: '#9FE6B8',
- bottom: '#9FE6B8'
+ top: '#A7F0C1',
+ bottom: '#A7F0C1'
},
{
- top: '#FEDA5B',
- bottom: '#FEDA5B'
+ top: '#FAE893',
+ bottom: '#FAE893'
},
{
- top: '#FF9F7F',
- bottom: '#FF9F7F'
- },
- {
- top: '#F87091',
- bottom: '#F87091'
+ top: '#F7B7A0',
+ bottom: '#F7B7A0'
}
]
const defaultData = [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
const option = {
title: {
show: true, // 鏄惁鏄剧ず鏍囬锛岄粯璁や负true
- text: '璁惧鍒╃敤鐜�', // 涓绘爣棰樻枃鏈�
+ text: '', // 涓绘爣棰樻枃鏈�
x: 'left', // 鏍囬姘村钩瀹夋斁浣嶇疆锛屽彲閫夊�间负'left'銆�'center'銆�'right'鎴栧叿浣撶殑姘村钩鍧愭爣鍊�
y: 'top', // 鏍囬鍨傜洿瀹夋斁浣嶇疆锛屽彲閫夊�间负'top'銆�'bottom'銆�'center'鎴栧叿浣撶殑鍨傜洿鍧愭爣鍊�
textStyle: {
// 涓绘爣棰樻枃鏈牱寮�
fontSize: 18,
fontWeight: 'normal',
- color: '#fff'
+ color: '#1AD8DE'
}
},
grid: {
@@ -429,7 +437,7 @@
axisLabel: {
show: true,
textStyle: {
- color: '#d9e7fa',
+ color: '#fff',
fontSize: '14',
fontWeight: 'bolder'
},
@@ -527,14 +535,23 @@
}
]
}
+ option.title.text = `${moment().format('M鏈圖鏃�')}鍒╃敤鐜嘸
this.efficiencyChart.setOption(option, true)
this.efficiencyChart.on('click', params => {
// 鐐瑰嚮瑙﹀彂鐨勪负鏌辩姸浣擄紝闄ゆ闄ゅ鏄爣棰�
if (params.componentType === 'series') {
console.log('seriesParams===========', params)
- const productionId = this.efficiencyData.find(item => item.productionCode === params.name).productionId
- const tierName = this.efficiencyData.find(item => item.productionCode === params.name).name
+ let productionId
+ let tierName
+ // 鐐瑰嚮鐨勬槸鏌变綋鐨勫�硷紝鍚﹀垯鐐瑰嚮鐨勪负鏌变綋鑳屾櫙闃村奖
+ if (params.seriesIndex === 0) {
+ productionId = params.data.productionId
+ tierName = params.data.name
+ } else {
+ productionId = this.efficiencyData.find(item => item.productionCode === params.name).productionId
+ tierName = this.efficiencyData.find(item => item.productionCode === params.name).name
+ }
this.$router.push({
name: 'mdc-base-StatisticsChart',
params: { isEquipment: false, productionId, tierName }
@@ -560,15 +577,14 @@
// 涓绘爣棰樻枃鏈牱寮�
fontSize: 18,
fontWeight: 'normal',
- color: '#00A8AC'
+ color: '#1AD8DE'
}
},
tooltip: {
trigger: 'item',
formatter: function(params) {
- if (params.name !== '') {
- return `${params.name}:${params.value}(${params.percent}%)`
- }
+ return '<span style="font-weight:bolder;">' + params.name + '</span><br/>' +
+ '<span style="display:inline-block; width:10px; height:10px; border-radius:100px; margin-right:5px; background:' + params.color + '"></span>' + `${params.value}锛�${params.percent}%锛塦
}
},
legend: {
@@ -597,9 +613,9 @@
radius: ['40%', '60%'],
center: ['50%', '60%'],
color: [
- '#0AA012',
- '#237E48',
- '#757160'
+ '#0FC61A',
+ '#0DAF15',
+ '#8B8B8B'
],
label: {
position: 'outside',
@@ -640,15 +656,14 @@
// 涓绘爣棰樻枃鏈牱寮�
fontSize: 18,
fontWeight: 'normal',
- color: '#00A8AC'
+ color: '#1AD8DE'
}
},
tooltip: {
trigger: 'item',
formatter: function(params) {
- if (params.name !== '') {
- return `${params.name}:${params.value}(${params.percent}%)`
- }
+ return '<span style="font-weight:bolder;">' + params.name + '</span><br/>' +
+ '<span style="display:inline-block; width:10px; height:10px; border-radius:100px; margin-right:5px; background:' + params.color + '"></span>' + `${params.value}锛�${params.percent}%锛塦
}
},
legend: {
@@ -677,9 +692,9 @@
radius: ['40%', '60%'],
center: ['50%', '60%'],
color: [
- '#00CED1',
- '#B85B38',
- '#A8985D'
+ '#24F2F5',
+ '#F56436',
+ '#FFFF40'
],
label: {
position: 'outside',
@@ -711,7 +726,9 @@
this.maintenanceConfig = {
indexHeader: '搴忓彿',
header: ['杞﹂棿', '鏃ユ湡', '鍐呭'],
- headerBGC: '#266C86',
+ headerBGC: '#2C8BB2',
+ oddRowBGC: '#244B58',
+ evenRowBGC: '#295562',
rowNum: 1,
data: this.twoMaintenanceChartData,
index: true,
@@ -723,11 +740,28 @@
/* 缁樺埗鍗曟煴鍥� */
drawBarChart() {
this.barChart = this.$echarts.init(document.getElementById('bar_chart'))
+ const defaultData = [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
const option = {
+ title: {
+ show: true, // 鏄惁鏄剧ず鏍囬锛岄粯璁や负true
+ text: '', // 涓绘爣棰樻枃鏈�
+ x: 'center', // 鏍囬姘村钩瀹夋斁浣嶇疆锛屽彲閫夊�间负'left'銆�'center'銆�'right'鎴栧叿浣撶殑姘村钩鍧愭爣鍊�
+ y: 'top', // 鏍囬鍨傜洿瀹夋斁浣嶇疆锛屽彲閫夊�间负'top'銆�'bottom'銆�'center'鎴栧叿浣撶殑鍨傜洿鍧愭爣鍊�
+ textStyle: {
+ // 涓绘爣棰樻枃鏈牱寮�
+ fontSize: 18,
+ fontWeight: 'normal',
+ color: '#1AD8DE'
+ }
+ },
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
+ },
+ formatter: function(params) {
+ return '<span style="font-weight:bolder;">' + params[0].name + '</span><br/>' +
+ '<span style="display:inline-block; width:10px; height:10px; border-radius:100px; margin-right:5px; background:' + params[0].color + '"></span>' + ' OEE: ' + params[0].value + '%'
},
// backgroundColor: 'rgba(9, 24, 48, 0.5)',
borderColor: 'rgba(75, 253, 238, 0.4)',
@@ -741,11 +775,11 @@
left: '10%'
},
xAxis: [{
- name: 'OEE杞﹂棿',
+ name: '',
nameLocation: 'middle',
nameGap: 40, // x杞磏ame涓庢í鍧愭爣杞寸嚎鐨勯棿璺�
type: 'category',
- data: this.barChartData.map(item => item.name),
+ data: this.barChartData.map(item => item.productionId),
axisLine: {
lineStyle: {
color: '#FFFFFF'
@@ -756,16 +790,18 @@
interval: 0, // 鍧愭爣杞村埢搴︽爣绛剧殑鏄剧ず闂撮殧锛屽湪绫荤洰杞翠腑鏈夋晥锛涢粯璁や細閲囩敤鏍囩涓嶉噸鍙犵殑绛栫暐闂撮殧鏄剧ず鏍囩锛涘彲浠ヨ缃垚0寮哄埗鏄剧ず鎵�鏈夋爣绛撅紱濡傛灉璁剧疆涓�1锛岃〃绀恒�庨殧涓�涓爣绛炬樉绀轰竴涓爣绛俱�忥紝濡傛灉鍊间负2锛岃〃绀洪殧涓や釜鏍囩鏄剧ず涓�涓爣绛撅紝浠ユ绫绘帹銆�
rotate: this.barChartData.length >= 5 ? -30 : 0, // 鍒诲害鏍囩鏃嬭浆鐨勮搴︼紝鍦ㄧ被鐩酱鐨勭被鐩爣绛炬樉绀轰笉涓嬬殑鏃跺�欏彲浠ラ�氳繃鏃嬭浆闃叉鏍囩涔嬮棿閲嶅彔锛涙棆杞殑瑙掑害浠�-90搴﹀埌90搴�
inside: false, // 鍒诲害鏍囩鏄惁鏈濆唴锛岄粯璁ゆ湞澶�
- margin: 6 // 鍒诲害鏍囩涓庤酱绾夸箣闂寸殑璺濈
+ formatter: value => {
+ return `${this.barChartData.find(item => item.productionId === value).name}`
+ }
},
axisTick: {
- show: false
+ show: true,
+ alignWithLabel: true
}
}],
yAxis: [{
- name: '鏁伴噺',
- nameLocation: 'middle',
- nameGap: 30, // x杞磏ame涓庢í鍧愭爣杞寸嚎鐨勯棿璺�
+ name: '%',
+ max: 100,
axisLabel: {
formatter: '{value}',
color: '#e2e9ff'
@@ -780,6 +816,7 @@
}
},
splitLine: {
+ show: false,
lineStyle: {
color: 'rgba(255,255,255,0.12)'
}
@@ -790,8 +827,9 @@
data: this.barChartData,
barWidth: '15%',
itemStyle: {
- color: '#7DB17F'
+ color: '#55D6A5'
},
+ zlevel: 1,
label: {
show: true,
lineHeight: 10,
@@ -805,16 +843,40 @@
fontSize: 18
}
}
- }]
+ },
+ {
+ name: '鑳屾櫙',
+ type: 'bar',
+ barWidth: '15%',
+ barGap: '-100%',
+ data: defaultData,
+ itemStyle: {
+ color: '#11294d'
+ }
+ }]
}
+ option.title.text = moment().subtract(1, 'months').format('M鏈�') + `OEE杞﹂棿`
this.barChart.setOption(option, true)
+
+ this.barChart.on('click', params => {
+ console.log('params', params)
+ let productionId
+ // 鐐瑰嚮鐨勬槸鏌变綋鐨勫�硷紝鍚﹀垯鐐瑰嚮鐨勪负鏌变綋鑳屾櫙闃村奖
+ if (params.seriesIndex === 0) productionId = params.data.productionId
+ else productionId = params.name
+
+ this.$router.push({
+ name: 'mdc-base-OEEAnalysis',
+ params: { isEquipment: false, productionId }
+ })
+ })
},
/* 缁樺埗鍙屾煴鍥� */
drawDoubleBarChart() {
this.doubleBarChart = this.$echarts.init(document.getElementById('double_bar_chart'))
const option = {
- color: ['#4992FF', '#4DC0B1'],
+ color: ['#409EFF', '#0FC61A'],
tooltip: {
confine: true,
formatter: function(params) {
@@ -838,7 +900,7 @@
formatter: ['{a|{name}}'].join('\n'),
textStyle: {
fontSize: 14,
- color: '#6A93B9',
+ color: '#fff',
height: 8,
rich: {
a: {
@@ -858,58 +920,61 @@
},
axisLabel: {
fontSize: 12,
- color: '#6A93B9'
+ color: '#fff'
},
axisTick: {
- show: false
+ show: true
}
},
- yAxis: [{
- name: '%',
- type: 'value',
- min: 0,
- minInterval: 1,
- splitArea: {
- show: false
- },
- axisLine: {
- show: false
- },
- axisTick: {
- show: false
- },
- splitLine: {
- lineStyle: {
- color: 'rgba(255, 255, 255, 0.15)'
- // type: 'dashed', // dotted 铏氱嚎
+ yAxis: [
+ {
+ name: '%',
+ nameTextStyle: {
+ color: '#fff'
+ },
+ type: 'value',
+ min: 0,
+ minInterval: 1,
+ axisLine: {
+ show: true
+ },
+ axisTick: {
+ show: true
+ },
+ splitLine: {
+ show: false,
+ lineStyle: {
+ color: 'rgba(255, 255, 255, 0.15)'
+ // type: 'dashed', // dotted 铏氱嚎
+ }
+ },
+ axisLabel: {
+ fontSize: 12,
+ color: '#fff',
+ fontFamily: 'Bebas'
}
},
- axisLabel: {
- fontSize: 12,
- color: '#6A93B9',
- fontFamily: 'Bebas'
- }
- }, {
- type: 'value',
- axisLine: {
- show: false
- },
- axisTick: {
- show: false
- },
- splitLine: {
- show: false
- },
- axisLabel: {
- fontSize: 12,
- formatter: '{value}%', // 鍙充晶Y杞存枃瀛楁樉绀�
- fontFamily: 'Bebas',
- color: '#6A93B9'
- },
- splitArea: {
- show: false
- }
- }],
+ {
+ type: 'value',
+ axisLine: {
+ show: true
+ },
+ axisTick: {
+ show: false
+ },
+ splitLine: {
+ show: false
+ },
+ axisLabel: {
+ fontSize: 12,
+ formatter: '{value}%', // 鍙充晶Y杞存枃瀛楁樉绀�
+ fontFamily: 'Bebas',
+ color: '#6A93B9'
+ },
+ splitArea: {
+ show: false
+ }
+ }],
series: [{
type: 'bar',
barWidth: 15,
@@ -959,10 +1024,21 @@
this.problemConfig = {
indexHeader: '搴忓彿',
header: ['鏃堕棿', '闂鍐呭'],
- headerBGC: '#83B883',
- oddRowBGC: '#556955',
- evenRowBGC: '#556955',
- data: [],
+ headerBGC: '#86D186',
+ oddRowBGC: '#7CBF7C',
+ evenRowBGC: '#7CBF7C',
+ data: [
+ // ['2024骞�3鏈�23鍙�', '澶у娉ㄦ剰瀹夊叏闂'],
+ // ['2024骞�3鏈�23鍙�', '澶у娉ㄦ剰瀹夊叏闂'],
+ // ['2024骞�3鏈�23鍙�', '澶у娉ㄦ剰瀹夊叏闂'],
+ // ['2024骞�3鏈�23鍙�', '澶у娉ㄦ剰瀹夊叏闂'],
+ // ['2024骞�3鏈�23鍙�', '澶у娉ㄦ剰瀹夊叏闂'],
+ // ['2024骞�3鏈�23鍙�', '澶у娉ㄦ剰瀹夊叏闂'],
+ // ['2024骞�3鏈�23鍙�', '澶у娉ㄦ剰瀹夊叏闂'],
+ // ['2024骞�3鏈�23鍙�', '澶у娉ㄦ剰瀹夊叏闂'],
+ // ['2024骞�3鏈�23鍙�', '澶у娉ㄦ剰瀹夊叏闂'],
+ // ['2024骞�3鏈�23鍙�', '澶у娉ㄦ剰瀹夊叏闂']
+ ],
index: true,
columnWidth: [100, 300, 300],
align: ['center']
@@ -994,12 +1070,6 @@
color: #fff;
margin-bottom: 10px;
- .workshop-nav {
- width: 120px;
- height: 40px;
- font-size: 12px;
- cursor: pointer;
- }
}
.content-container {
@@ -1008,17 +1078,6 @@
justify-content: space-between;
.left-col {
- .back-nav {
- width: 100px;
- height: 30px;
- color: #eee;
- position: absolute;
- top: 25px;
- left: 25px;
- cursor: pointer;
- z-index: 9999
- }
-
.first-title {
color: #00A8AC;
font-size: 20px;
--
Gitblit v1.9.3