From 8f1df61c8902a35e41205d7cbd9d0763619e6d46 Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期五, 22 八月 2025 16:36:47 +0800 Subject: [PATCH] mdc首页设备管理部分功能调整 --- src/views/dashboard/IndexSignage.vue | 262 +++++++++++++++++----------------------------------- 1 files changed, 86 insertions(+), 176 deletions(-) diff --git a/src/views/dashboard/IndexSignage.vue b/src/views/dashboard/IndexSignage.vue index 358183e..0761ee4 100644 --- a/src/views/dashboard/IndexSignage.vue +++ b/src/views/dashboard/IndexSignage.vue @@ -89,7 +89,7 @@ { planTime: '鏈湀涓変繚璁″垝', planValueLabel: 'thisMonthMaintenancePlanNum', - backgroundColor: '#5FE0AF', + backgroundColor: '#719D8E', apiUrl: '/eam/calibrationOrder/showThisMonthMaintenanceList' }, { @@ -101,7 +101,7 @@ { planTime: '涓嬫湀涓変繚璁″垝', planValueLabel: 'nextMonthMaintenancePlanNum', - backgroundColor: '#D6BC52', + backgroundColor: '#A8985D', apiUrl: '/eam/calibrationOrder/showNextMonthMaintenanceList' }, { @@ -145,9 +145,10 @@ getChartDataByApi() { this.getRunningStateDataByApi() this.getEfficiencyDataByApi() - this.getTechConditionDataByApi() - this.getWarrantyMalfunctionDataByApi() - this.getMonthMaintenanceNumByApi() + // this.getTechConditionDataByApi() + // this.getWarrantyMalfunctionDataByApi() + this.getTechConditionAndWarrantyMalfunctionDataByApi() + this.getThirdMaintenanceConditionByApi() this.getTwoMaintenanceChartDataByApi() this.getBarChartDataByApi() this.getDoubleBarChartDataByApi() @@ -160,8 +161,8 @@ this.runningStateChart.showLoading({ text: '鏁版嵁鍔犺浇涓� ...', color: '#0696e1', // 鍔犺浇鍔ㄧ敾棰滆壊 - textColor: '#fff', - maskColor: 'rgba(1, 25, 75, 0.2)' // 閬僵灞� + textColor: 'rgba(0, 0, 0, .45)', + maskColor: 'rgba(0,0,0,.05)' // 閬僵灞� }) signageApi.getEquipmentStatusStatisticsApi() .then(res => { @@ -180,8 +181,8 @@ this.efficiencyChart.showLoading({ text: '鏁版嵁鍔犺浇涓� ...', color: '#0696e1', // 鍔犺浇鍔ㄧ敾棰滆壊 - textColor: '#fff', - maskColor: 'rgba(1, 25, 75, 0.2)' // 閬僵灞� + textColor: 'rgba(0, 0, 0, .45)', + maskColor: 'rgba(0,0,0,.05)' // 閬僵灞� }) signageApi.getEquipmentUtilizationStatisticsApi() .then(res => { @@ -192,69 +193,65 @@ }) }, - /* 璋冪敤鎺ュ彛鑾峰彇鎶�鏈姸鎬� */ - getTechConditionDataByApi() { + /* 璋冪敤鎺ュ彛鑾峰彇鎶�鏈姸鎬佷笌鏁呴殰鎶ヤ慨 */ + getTechConditionAndWarrantyMalfunctionDataByApi() { this.techConditionChart = this.$echarts.init(document.getElementById('tech_condition_chart')) + this.warrantyMalfunctionChart = this.$echarts.init(document.getElementById('warranty_malfunction_chart')) this.techConditionChart.showLoading({ text: '鏁版嵁鍔犺浇涓� ...', color: '#0696e1', // 鍔犺浇鍔ㄧ敾棰滆壊 - textColor: '#fff', - maskColor: 'rgba(1, 25, 75, 0.2)' // 閬僵灞� + textColor: 'rgba(0, 0, 0, .45)', + maskColor: 'rgba(0,0,0,.05)' // 閬僵灞� }) - signageApi.getEquipmentTechnologyStatusListApi() - .then(res => { - if (res.success && res.result) { - this.techConditionData = [ - { value: res.result[0].qualifiedCount, name: '鍚堟牸', technologyStatus: 'qualified' }, - { value: res.result[0].disabledCount, name: '绂佺敤', technologyStatus: 'disabled' }, - { value: res.result[0].limitedUseCount, name: '闄愮敤', technologyStatus: 'limitedUse' } - ] - this.techConditionChartRequireFinished = true - this.drawTechConditionChart() - } - }) - }, - - /* 璋冪敤鎺ュ彛鑾峰彇璁惧鎶ヤ慨鏁呴殰 */ - 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)' // 閬僵灞� + textColor: 'rgba(0, 0, 0, .45)', + maskColor: 'rgba(0,0,0,.05)' // 閬僵灞� }) - signageApi.getReportRepairEquipmentListApi() + signageApi.getEquipmentTechnologyStatusAndReportRepairEquipmentListApi() .then(res => { if (res.success && res.result) { - this.warrantyMalfunctionData = [ - { value: res.result[0].failurTotalCount, name: '鎶ヤ慨', isStop: '' }, - { value: res.result[0].stopCount, name: '鍋滄満', isStop: '2' }, - { value: res.result[0].noStopCount, name: '杩愯', isStop: '1' } + this.techConditionData = [ + { + value: res.result.jszt.find(item => item.code === 'QUALIFIED').value, + name: '鍚堟牸', + technologyStatus: 'QUALIFIED' + }, + { + value: res.result.jszt.find(item => item.code === 'PROHIBITED').value, + name: '绂佺敤', + technologyStatus: 'PROHIBITED' + }, + { + value: res.result.jszt.find(item => item.code === 'RESTRICTED').value, + name: '闄愮敤', + technologyStatus: 'RESTRICTED' + } ] + this.warrantyMalfunctionData = [ + { value: res.result.bxqk.find(item => item.code === 'bx').value, name: '鎶ヤ慨', isStop: '' }, + { value: res.result.bxqk.find(item => item.code === 'stop').value, name: '鍋滄満', isStop: '2' }, + { value: res.result.bxqk.find(item => item.code === 'run').value, name: '杩愯', isStop: '1' } + ] + this.techConditionChartRequireFinished = true this.warrantyMalfunctionChartRequireFinished = true + this.drawTechConditionChart() this.drawWarrantyMalfunctionChart() } }) }, - /* 璋冪敤鎺ュ彛鑾峰彇涓変繚璁″垝 */ - getMonthMaintenanceNumByApi() { - signageApi.getThisMonthMaintenanceListApi() + /* 璋冪敤鎺ュ彛鑾峰彇涓変繚鎯呭喌 */ + getThirdMaintenanceConditionByApi() { + signageApi.getThirdMaintenanceConditionApi() .then(res => { - if (res.success && res.result) this.thisMonthMaintenancePlanNum = res.result[0].totalCount - }) - signageApi.getThisMonthMaintenanceFinishListApi() - .then(res => { - if (res.success && res.result) this.thisMonthMaintenanceRealNum = res.result[0].totalCount - }) - signageApi.getNextMonthMaintenanceList() - .then(res => { - if (res.success && res.result) this.nextMonthMaintenancePlanNum = res.result[0].totalCount - }) - signageApi.getNextNextMonthMaintenanceListApi() - .then(res => { - if (res.success && res.result) this.nextNextMonthMaintenancePlanNum = res.result[0].totalCount + if (res.success && res.result) { + this.thisMonthMaintenancePlanNum = res.result.find(item => item.code === 'bysbzs').value + this.thisMonthMaintenanceRealNum = res.result.find(item => item.code === 'bwc').value + this.nextMonthMaintenancePlanNum = res.result.find(item => item.code === 'xysb').value + this.nextNextMonthMaintenancePlanNum = res.result.find(item => item.code === 'xxysb').value + } }) }, @@ -262,7 +259,7 @@ getTwoMaintenanceChartDataByApi() { signageApi.getTwoMaintenancePlanListApi() .then(res => { - if (res.success && res.result.length > 0) this.twoMaintenanceChartData = res.result.map(item => [item.centerName, item.maintenanceDate, item.content]) + if (res.success && res.result.length > 0) this.twoMaintenanceChartData = res.result.map(item => [item.factoryName, item.monthPlan, '浜岀骇淇濆吇']) this.drawMaintenanceChart() }) }, @@ -273,12 +270,12 @@ this.barChart.showLoading({ text: '鏁版嵁鍔犺浇涓� ...', color: '#0696e1', // 鍔犺浇鍔ㄧ敾棰滆壊 - textColor: '#fff', - maskColor: 'rgba(1, 25, 75, 0.2)' // 閬僵灞� + textColor: 'rgba(0, 0, 0, .45)', + maskColor: 'rgba(0,0,0,.05)' // 閬僵灞� }) signageApi.getEquipmentOEEStatistics() .then(res => { - if (res.success && res.result && res.result.length > 0) { + if (res.success && res.result) { this.barChartData = res.result this.drawBarChart() } @@ -291,8 +288,8 @@ this.doubleBarChart.showLoading({ text: '鏁版嵁鍔犺浇涓� ...', color: '#0696e1', // 鍔犺浇鍔ㄧ敾棰滆壊 - textColor: '#fff', - maskColor: 'rgba(1, 25, 75, 0.2)' // 閬僵灞� + textColor: 'rgba(0, 0, 0, .45)', + maskColor: 'rgba(0,0,0,.05)' // 閬僵灞� }) signageApi.getEquipmentMonthStatisticsApi() .then(res => { @@ -318,7 +315,7 @@ height: 300, title: { show: true, // 鏄惁鏄剧ず鏍囬锛岄粯璁や负true - text: '璁惧鐘舵��', // 涓绘爣棰樻枃鏈� + text: '璁惧杩愯鐘舵�佺粺璁�', // 涓绘爣棰樻枃鏈� x: 'center', // 鏍囬姘村钩瀹夋斁浣嶇疆锛屽彲閫夊�间负'left'銆�'center'銆�'right'鎴栧叿浣撶殑姘村钩鍧愭爣鍊� y: 'top', // 鏍囬鍨傜洿瀹夋斁浣嶇疆锛屽彲閫夊�间负'top'銆�'bottom'銆�'center'鎴栧叿浣撶殑鍨傜洿鍧愭爣鍊� textStyle: { @@ -340,7 +337,6 @@ left: 0, orient: 'vertical', right: '10%', - // bottom: "0", itemWidth: 14, itemHeight: 14, icon: 'roundRect', @@ -363,10 +359,10 @@ radius: this.pieChartRadius, center: ['50%', '60%'], color: [ - '#8B8B8B', - '#F56436', - '#FFFF40', - '#0FC61A' + '#686869', + '#AA6349', + '#EAEA7C', + '#5D975D' ], label: { position: 'outside', @@ -404,37 +400,8 @@ /* 缁樺埗璁惧鍒╃敤鐜囪兌鍥婂浘 */ drawEfficiencyChart() { const data = this.efficiencyData - const colorArray = [ - { - top: '#79CEAA', - bottom: '#79CEAA' - }, - { - top: '#F589A2', - bottom: '#F589A2' - }, - { - top: '#6FBF9D', - bottom: '#6FBF9D' - }, - { - top: '#66DFE2', - bottom: '#66DFE2' - }, { - top: '#A7F0C1', - bottom: '#A7F0C1' - }, - { - top: '#FAE893', - bottom: '#FAE893' - }, - { - top: '#F7B7A0', - bottom: '#F7B7A0' - } - ] const defaultData = [] - const dataMax = +data.sort((x, y) => +y.value - +x.value)[0].value + const dataMax = data.length > 0 ? +data.sort((x, y) => +y.value - +x.value)[0].value : 0 let yAxisMax if (dataMax === 0) yAxisMax = 1 // 鑻ユ暟鎹腑鏈�澶у�间负0锛屽垯灏嗚儗鏅粯璁ゅ�艰缃负1 else yAxisMax = Math.ceil(dataMax / 5) * 5 // 璁剧疆鏌卞浘鑳屾櫙闃村奖榛樿鍊硷紝鎬濊矾涓烘暟鎹渶澶у�兼渶鎺ヨ繎鐨勮兘琚�5鏁撮櫎鐨勬暟瀛� @@ -473,12 +440,12 @@ xAxis: { name: '', nameTextStyle: { - color: '#fff' + color: 'rgba(0,0,0,.45)' }, axisLabel: { margin: 20, textStyle: { - color: '#fff' + color: 'rgba(0,0,0,.45)' } }, show: true, @@ -500,7 +467,7 @@ axisLabel: { show: true, textStyle: { - color: '#fff', + color: 'rgba(0,0,0,.45)', fontSize: '14', fontWeight: 'bolder' }, @@ -535,68 +502,17 @@ }, data: data }], - series: [{ + series: { name: 'TEEP', type: 'bar', zlevel: 1, itemStyle: { barBorderRadius: 100, - color: function(params) { - let num = colorArray.length - return { - type: 'linear', - colorStops: [{ - offset: 0, - color: colorArray[params.dataIndex % num].bottom - }, { - offset: 1, - color: colorArray[params.dataIndex % num].top - }, { - offset: 0, - color: colorArray[params.dataIndex % num].bottom - }, { - offset: 1, - color: colorArray[params.dataIndex % num].top - }, { - offset: 0, - color: colorArray[params.dataIndex % num].bottom - }, { - offset: 1, - color: colorArray[params.dataIndex % num].top - }, { - offset: 0, - color: colorArray[params.dataIndex % num].bottom - }, { - offset: 1, - color: colorArray[params.dataIndex % num].top - }, { - offset: 0, - color: colorArray[params.dataIndex % num].bottom - }, { - offset: 1, - color: colorArray[params.dataIndex % num].top - }, { - offset: 0, - color: colorArray[params.dataIndex % num].bottom - }] - } - } + color: '#5070DD' }, barWidth: 12, data: data - }, - { - name: '鑳屾櫙', - type: 'bar', - barWidth: 12, - barGap: '-100%', - data: defaultData, - itemStyle: { - color: '#11294d', - barBorderRadius: 100 - } - } - ] + } } option.title.text = `${moment().subtract(1, 'days').format('M鏈圖鏃�')}TEEP` this.efficiencyChart.setOption(option, true) @@ -674,9 +590,9 @@ radius: this.pieChartRadius, center: ['45%', '60%'], color: [ - '#0FC61A', - '#F56436', - '#8B8B8B' + '#0AA012', + '#247F49', + '#757160' ], label: { position: 'outside', @@ -719,7 +635,7 @@ height: 300, title: { show: true, // 鏄惁鏄剧ず鏍囬锛岄粯璁や负true - text: '璁惧鎶ヤ慨鏁呴殰', // 涓绘爣棰樻枃鏈� + text: '璁惧鎶ヤ慨鏁呴殰鎯呭喌', // 涓绘爣棰樻枃鏈� x: 'center', // 鏍囬姘村钩瀹夋斁浣嶇疆锛屽彲閫夊�间负'left'銆�'center'銆�'right'鎴栧叿浣撶殑姘村钩鍧愭爣鍊� y: 'top', // 鏍囬鍨傜洿瀹夋斁浣嶇疆锛屽彲閫夊�间负'top'銆�'bottom'銆�'center'鎴栧叿浣撶殑鍨傜洿鍧愭爣鍊� textStyle: { @@ -762,9 +678,9 @@ radius: this.pieChartRadius, center: ['45%', '60%'], color: [ - '#24F2F5', - '#F56436', - '#FFFF40' + '#00CED1', + '#B85B38', + '#EAEA7C' ], label: { position: 'outside', @@ -806,9 +722,9 @@ this.maintenanceConfig = { indexHeader: '搴忓彿', header: ['杞﹂棿', '鏃ユ湡', '鍐呭'], - headerBGC: '#2C8BB2', - oddRowBGC: '#244B58', - evenRowBGC: '#295562', + headerBGC: '#266C86', + oddRowBGC: '#0A2732', + evenRowBGC: '#003B51', data: this.twoMaintenanceChartData, index: true, columnWidth: [100, 300, 300, 300], @@ -819,8 +735,7 @@ /* 缁樺埗鍗曟煴鍥� */ drawBarChart() { const defaultData = [] - const colorArray = ['#79CEAA', '#F589A2', '#6FBF9D', '#66DFE2', '#A7F0C1', '#FAE893', '#F7B7A0'] - const dataMax = +this.barChartData.sort((x, y) => +y.value - +x.value)[0].value + const dataMax = this.barChartData.length > 0 ? +this.barChartData.sort((x, y) => +y.value - +x.value)[0].value : 0 let yAxisMax if (dataMax === 0) yAxisMax = 1 // 鑻ユ暟鎹腑鏈�澶у�间负0锛屽垯灏嗚儗鏅粯璁ゅ�艰缃负1 else yAxisMax = Math.ceil(dataMax / 5) * 5 // 璁剧疆鏌卞浘鑳屾櫙闃村奖榛樿鍊硷紝鎬濊矾涓烘暟鎹渶澶у�兼渶鎺ヨ繎鐨勮兘琚�5鏁撮櫎鐨勬暟瀛� @@ -917,11 +832,7 @@ data: this.barChartData, barWidth: this.barChartData.length > 5 ? '40%' : 30, itemStyle: { - color: function(params) { - let num = colorArray.length - return colorArray[params.dataIndex % num] - }, - barBorderRadius: 100 + color: '#2E8BDA' }, zlevel: 1, label: { @@ -945,8 +856,7 @@ barGap: '-100%', data: defaultData, itemStyle: { - color: '#11294d', - barBorderRadius: 100 + color: '#11294d' } }] } @@ -970,7 +880,7 @@ /* 缁樺埗鍙屾煴鍥� */ drawDoubleBarChart() { const option = { - color: ['#66DFE2', '#79CEAA'], + color: ['#4992FF', '#4DC0B1'], tooltip: { confine: true, formatter: function(params) { @@ -994,7 +904,7 @@ formatter: ['{a|{name}}'].join('\n'), textStyle: { fontSize: 14, - color: '#fff', + color: 'rgba(0, 0, 0, .45)', height: 8, rich: { a: { @@ -1119,9 +1029,9 @@ this.problemConfig = { indexHeader: '搴忓彿', header: ['闂鍐呭', '鏃堕棿'], - headerBGC: '#86D186', - oddRowBGC: '#7CBF7C', - evenRowBGC: '#7CBF7C', + headerBGC: '#83B883', + oddRowBGC: '#556955', + evenRowBGC: '#556955', data: this.workshopProblemChartData, index: true, columnWidth: [100, 300, 150], -- Gitblit v1.9.3