From a751e547d67c4f8e2c6fddf958c1559f792515bd Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期五, 27 六月 2025 16:11:50 +0800 Subject: [PATCH] 添加工作流 --- src/views/mdc/base/DeviceBaseInfo.vue | 237 +++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 173 insertions(+), 64 deletions(-) diff --git a/src/views/mdc/base/DeviceBaseInfo.vue b/src/views/mdc/base/DeviceBaseInfo.vue index 3c7ccf1..afb1ad9 100644 --- a/src/views/mdc/base/DeviceBaseInfo.vue +++ b/src/views/mdc/base/DeviceBaseInfo.vue @@ -5,38 +5,29 @@ <base-tree @sendSelectBaseTree="changeSelection" @getCurrSelected="changeSelectionNode"></base-tree> </a-col> <a-col :md="24-5" :sm="24"> - <div class="equipMessage"> - <table> - <tr> - <td>鍏虫満 - <span class="equipShutdown"></span> - </td> - <td>{{offNumber}}</td> - <td>寰呮満 - <span class="standbyNumber"></span> - </td> - <td>{{standbyNumber}}</td> - <td>杩愯 - <span class="equipRun"></span> - </td> - <td>{{workNumber}}</td> - <td>鎶ヨ - <span class="equipAlarm"></span> - </td> - <td>{{warningNumber}}</td> - <td>鎬绘暟</td> - <td>{{allNumber}}</td> - </tr> - </table> - + <!--</div>--> + <div class="device-status-info"> + <a-space v-for="item in deviceStatusList" :key="item.value" class="single-status-info"> + <template v-if="item.value!=99"> + <div>{{ item.label }}</div> + <div class="status-square" :style="{ backgroundColor: item.color }"></div> + <div>{{getDeviceNumberByStatus(item.value) }}</div> + </template> + <template v-else> + <div>{{ item.label }}</div> + <div>{{getDeviceNumberByStatus(item.value) }}</div> + </template> + </a-space> </div> + <div> <a-tabs default-active-key="1"> <a-tab-pane key="1" tab="甯冨眬鍥�"> - <equipment-layout :dataList="dataList" :equipmentId="selectEquementId" :node="selectEquement"></equipment-layout> + <equipment-layout :dataList="dataList" :equipmentId="selectEquementId" + :node="selectEquement"></equipment-layout> </a-tab-pane> <a-tab-pane key="2" tab="鍒楄〃" force-render> - <equipment-list :dataSource="dataList"></equipment-list> + <equipment-list :dataSource="dataList" @editEquipmentStatus="editEquipmentStatus"></equipment-list> </a-tab-pane> </a-tabs> </div> @@ -48,9 +39,7 @@ </template> <script> - import { putAction, getAction } from '@/api/manage' - import { frozenBatch } from '@/api/api' - import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import { getAction } from '@/api/manage' import JInput from '@/components/jeecg/JInput' import BaseTree from '../common/BaseTree' import EquipmentLayout from './modules/deviceBaseInfo/EquipmentLayout' @@ -81,22 +70,54 @@ workNumber: 0, allNumber: 0, url: { - list: '/mdc/mdcEquipment/queryEquipmentMonitorList' + list: '/mdc/mdcEquipment/queryEquipmentMonitorList', + updateEquipmentStatus: '/mdc/mdcEquipment/updateEquipmentStatus' }, - timer:null, - timerzhun:null + param: {}, + timer: null, + timerzhun: null, + deviceStatusList: [ + { + label: '鍏虫満', + value: 0, + color: '#A8A8A8' + }, + { + label: '寰呮満', + value: 2, + color: '#FFFF00' + }, + { + label: '杩愯', + value: 3, + color: '#00EE00' + }, + { + label: '鎶ヨ', + value: 22, + color: '#FF0000' + }, + { + label: '鎬绘暟', + value: 99, + color: '#fff' + } + ]// 璁惧鐘舵�佹寚绀虹伅鍒楄〃锛� } }, created() { + const { productionId } = this.$route.params + console.log('productionId', productionId) + if (productionId) this.param.key = productionId // this.equipmentStatistics() // setInterval(this.equipmentStatistics(), 5*1000); }, methods: { - equipmentStatistics(param) { + equipmentStatistics(param, resopnse = { key: false }) { getAction(this.url.list, param).then((res) => { this.dataList = [] if (res.success) { - if(res.result.length != 0){ + if (res.result.length != 0) { this.standbyNumber = 0 this.offNumber = 0 this.warningNumber = 0 @@ -105,74 +126,146 @@ this.dataList = res.result // console.log(this.dataList) this.allNumber = this.dataList.length + if (resopnse.key) { + this.$notification.success({ + key: 'equipmentStatus', + message: '娑堟伅', + description: resopnse.message + }) + } for (let i = 0; i < this.dataList.length; i++) { let item = this.dataList[i] switch (item.oporationDict) { - case "寰呮満" : this.standbyNumber = this.standbyNumber + 1;break; + case '寰呮満' : + this.standbyNumber = this.standbyNumber + 1 + break // case 2 : this.standbyNumber = this.standbyNumber + 1;break; - case "杩愯" : this.workNumber = this.workNumber + 1;break; - case "鍏虫満" : this.offNumber = this.offNumber + 1;break; - case "鎶ヨ" : this.warningNumber = this.warningNumber + 1;break; - default:break; + case '杩愯' : + this.workNumber = this.workNumber + 1 + break + case '鍏虫満' : + this.offNumber = this.offNumber + 1 + break + case '鎶ヨ' : + this.warningNumber = this.warningNumber + 1 + break + default: + break } } - }else{ + + // 绛涢�変粠杞︽澘璺宠浆杩囨潵鐨勯渶姹傛暟鎹� + const { signageData } = this.$route.params + console.log('signageData', signageData) + if (!signageData) return + else this.filterDataList(signageData) + } else { // this.$message.warning("姝よ溅闂翠笅闈㈡棤璁惧锛侊紒") this.$notification.warning({ - message:'娑堟伅', - description:"姝よ溅闂翠笅闈㈡棤璁惧锛侊紒" - }); + message: '娑堟伅', + description: '姝よ溅闂翠笅闈㈡棤璁惧锛侊紒' + }) } } else { // this.$message.warn(res.message) this.$notification.warning({ - message:'娑堟伅', - description:res.message - }); + message: '娑堟伅', + description: res.message + }) } }) }, + + /** + * 绛涢�夋弧瓒充粠鐪嬫澘璺宠浆杩囨潵鏃剁殑鏉′欢鐨勬暟鎹� + * @param record + */ + filterDataList(signageData) { + this.dataList = this.dataList.filter(item => item.oporationDict === signageData.name) + console.log('dataList', this.dataList) + }, + changeSelection(val) { this.selectEquementId = val }, changeSelectionNode(val) { // console.log(val) this.selectEquement = val.equipmentId - clearInterval(this.timer); + clearInterval(this.timer) this.timer = null - let param = {} if (!val.equipmentId) { - param.key = val.key - clearInterval(this.timerzhun); + this.param.key = val.key + clearInterval(this.timerzhun) this.timerzhun = null - this.equipmentStatistics(param) + this.equipmentStatistics(this.param) this.timer = setInterval(() => { - setTimeout( this.equipmentStatistics(param),0) - },1000*10) - }else{ - param.key = val.parentId - clearInterval(this.timerzhun); + setTimeout(this.equipmentStatistics(this.param), 0) + }, 1000 * 10) + } else { + this.param.key = val.parentId + clearInterval(this.timerzhun) this.timerzhun = null - this.equipmentStatistics(param) + this.equipmentStatistics(this.param) this.timer = setInterval(() => { - setTimeout( this.equipmentStatistics(param),0) - },1000*10) + setTimeout(this.equipmentStatistics(this.param), 0) + }, 1000 * 10) } + }, + + /** + * 鍗曞嚮鐘舵�佸弽棣堝悗瑙﹀彂 + * @param record + */ + editEquipmentStatus(record) { + console.log('瀛愮粍浠秗ecord', record.id) + const _this = this + this.$notification.info({ + key: 'equipmentStatus', + message: '娑堟伅', + description: '鍙嶉涓�...' + }) + getAction(this.url.updateEquipmentStatus, { id: record.id }) + .then(res => { + if (res.success) { + _this.equipmentStatistics(this.param, { key: true, message: res.message }) + } else { + this.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + .catch(err => { + this.$notification.error({ + message: '娑堟伅', + description: err.message + }) + }) + }, + + /** + * 鏍规嵁璁惧鐘舵�佸�艰幏鍙栧搴旇澶囨暟閲� + * @param value 璁惧鐘舵�佸�� + * @returns {number} 璁惧鏁伴噺 + */ + getDeviceNumberByStatus(value) { + if (value === 99) return this.dataList.length + return this.dataList.filter((item) => item.oporation === 1 && value === 2 || item.oporation === value).length } }, - mounted(){ - this.equipmentStatistics() + mounted() { + this.equipmentStatistics(this.param) // this.timerzhun = setInterval(() => { // setTimeout( this.equipmentStatistics(),0) // },1000*10) }, - beforeDestroy(){ - clearInterval(this.timer); + beforeDestroy() { + clearInterval(this.timer) this.timer = null } } </script> -<style scoped> +<style scoped lang="less"> @import '~@assets/less/common.less'; .equipMessage { @@ -212,4 +305,20 @@ .equipMessage table td .equipAlarm { background-color: #FD0008; } + + .device-status-info { + display: flex; + justify-content: flex-end; + align-items: center; + + .single-status-info { + margin: 10px; + .status-square { + width: 20px; + height: 20px; + border: 1px solid #ddd; + border-radius: 3px; + } + } + } </style> \ No newline at end of file -- Gitblit v1.9.3