From 54d11f9a2f395e021486e6a31912616274b3feda Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期一, 08 九月 2025 11:55:10 +0800 Subject: [PATCH] 车间智慧看板页面新增定时刷新功能 --- src/views/mdc/base/WorkshopSignage.vue | 112 ++++++++++++++++++++++--------------------------------- 1 files changed, 45 insertions(+), 67 deletions(-) diff --git a/src/views/mdc/base/WorkshopSignage.vue b/src/views/mdc/base/WorkshopSignage.vue index 79f3a76..1414037 100644 --- a/src/views/mdc/base/WorkshopSignage.vue +++ b/src/views/mdc/base/WorkshopSignage.vue @@ -36,40 +36,34 @@ </div> </div> </div> - <EquipmentLayout :deviceStatusList="deviceStatusList"/> + <EquipmentLayout ref="equipmentLayoutRef" :deviceStatusList="deviceStatusList"/> </div> <div class="workshop-alarm-info content-card"> <div class="card-title">鍏ㄥ巶鎶ヨ淇℃伅</div> - <WorkshopAlarmInfoTable/> + <WorkshopAlarmInfoTable ref="alarmInfoRef"/> </div> </div> <div class="content-right"> <div class="content-card"> <div class="card-title">鍓嶄竷澶╁埄鐢ㄧ巼鎺掑悕</div> - <UtilizationRateRankChart/> + <UtilizationRateRankChart ref="rateRankRef"/> </div> <div class=" content-card"> <div class="card-title">鍏ㄥ巶骞冲潎杩愯鏁堢巼</div> - <WorkshopEfficiencyAverageChart :dataSource="efficiencyData"/> + <WorkshopEfficiencyAverageChart ref="averageChartRef" :dataSource="efficiencyData"/> </div> <div class="workshop-equipment-status content-card"> <div class="card-title">鍏ㄥ巶褰撳墠璁惧鐘舵��</div> - <WorkshopEquipmentStatusChart :deviceStatusList="deviceStatusList"/> + <WorkshopEquipmentStatusChart ref="equipmentStatusChartRef" :deviceStatusList="deviceStatusList"/> </div> </div> </div> - - <EquipmentDetailModal ref="EquipmentDetailModal"></EquipmentDetailModal> </div> </template> <script> - import api from '@/api/mdc' import signageApi from '@/api/signage' - import { getFileAccessHttpUrl } from '@/api/manage' - import EquipmentDetailModal from './modules/WorkshopSignage/EquipmentDetailModal' - import { message } from 'ant-design-vue' import OpenRateChart from './modules/WorkshopSignage/OpenRateChart' import UtilizationRateChart from './modules/WorkshopSignage/UtilizationRateChart' import ClassUtilizationRateChart from './modules/WorkshopSignage/ClassUtilizationRateChart' @@ -78,10 +72,6 @@ import UtilizationRateRankChart from './modules/WorkshopSignage/UtilizationRateRankChart' import WorkshopEquipmentStatusChart from './modules/WorkshopSignage/WorkshopEquipmentStatusChart' import EquipmentLayout from './modules/WorkshopSignage/EquipmentLayout' - - message.config({ - maxCount: 3 - }) export default { components: { @@ -93,13 +83,13 @@ ClassUtilizationRateChart, UtilizationRateChart, OpenRateChart, - EquipmentDetailModal }, data() { return { currentDateTime: '', efficiencyData: {}, - timingAcquisition: null, // 瀹氭椂鍒锋柊鏄惁寮�鍚� + shortTimingAcquisition: null, // 楂橀鍒锋柊 + longTimingAcquisition: null, // 浣庨鍒锋柊 dateTimer: null,//瀹氭椂鑾峰彇褰撳墠鏃堕棿 deviceStatusList: [ { @@ -121,52 +111,29 @@ ]// 璁惧鐘舵�佹寚绀虹伅鍒楄〃锛� } }, - created() { - this.getEfficiencyDataByApi() + mounted() { + // 绂佹鐢ㄦ埛閫変腑鍐呭 + document.onselectstart = () => false + this.shortIntervalRefreshData() + this.longIntervalRefreshData() + this.dateTimer = setInterval(() => this.$nextTick(() => this.getCurrentDateTime()), 1000) + }, + beforeDestroy() { + // 纭繚閿�姣佸畾鏃跺櫒銆佷簨浠跺強鍥炴敹璧勬簮 + clearInterval(this.shortTimingAcquisition) + clearInterval(this.dateTimer) + this.shortTimingAcquisition = null + this.dateTimer = null }, methods: { getEfficiencyDataByApi() { const that = this signageApi.getEfficiencyDataApi() .then(res => { - console.log('res----------------', res) if (res.success) that.efficiencyData = res.result }) }, - /** - * 閫氳繃杞﹂棿Id璋冪敤鎺ュ彛鑾峰彇杞﹂棿璇︾粏淇℃伅 - * @param id 杞﹂棿Id - */ - getWorkshopDetailsByApi(id) { - api.getWorkshopDetailByWorkshopIdApi(id).then((res) => { - this.workshopDetails = res.result - this.imgSrc = this.getImgView(this.workshopDetails.backgroundImage) - this.$refs.deviceContainerRef.style.height = (this.windowHeight - this.pageHeaderHeight) + 'px' - }) - }, - - /** - * 鍥剧墖棰勮 - * @param text 鍥剧墖鍦板潃 - */ - getImgView(text) { - if (text && text.indexOf(',') > 0) { - text = text.substring(0, text.indexOf(',')) - } - return getFileAccessHttpUrl(text) - }, - - openDetail(item) { - if (!this.isSwitchChecked) { - if (item.equipmentStatus == 0) { - this.$message.warning('璁惧澶勪簬鍏虫満鐘舵�侊紒') - return false - } - this.$refs.EquipmentDetailModal.initData(item.equId) - this.$refs.EquipmentDetailModal.timerModel(item.equId) - } - }, // 鑾峰彇褰撳墠鏃堕棿 getCurrentDateTime() { @@ -184,21 +151,32 @@ if (min < 10) min = '0' + min if (sec < 10) sec = '0' + sec this.currentDateTime = `${year}骞�${mon}鏈�${day}鏃� ${hour}:${min}:${sec}` + }, + + /** + * 楂橀鍒锋柊鏁版嵁 鐩墠璁剧疆涓�5s + * @param intervalSecond 棰戠巼闂撮殧鏃堕棿锛堢锛� + */ + shortIntervalRefreshData(intervalSecond = 0) { + this.shortTimingAcquisition = window.setTimeout(() => { + this.$refs.equipmentLayoutRef.getEquipmentStatusByApi() + this.$refs.alarmInfoRef.getWorkshopAlarmInfoByApi() + this.$refs.equipmentStatusChartRef.getWorkshopEquipmentStatusByApi() + this.shortIntervalRefreshData(5) + }, intervalSecond * 1000) + }, + + /** + * 浣庨鍒锋柊鏁版嵁 鐩墠璁剧疆涓�1h + * @param intervalSecond 棰戠巼闂撮殧鏃堕棿锛堢锛� + */ + longIntervalRefreshData(intervalSecond = 0) { + this.longTimingAcquisition = window.setTimeout(() => { + this.getEfficiencyDataByApi() + this.$refs.rateRankRef.getUtilizationRateRankByApi() + this.longIntervalRefreshData(60 * 60) + }, intervalSecond * 1000) } - }, - - mounted() { - // 绂佹鐢ㄦ埛閫変腑鍐呭 - document.onselectstart = () => false - - this.dateTimer = setInterval(() => this.$nextTick(() => this.getCurrentDateTime()), 1000) - }, - beforeDestroy() { - // 纭繚閿�姣佸畾鏃跺櫒銆佷簨浠跺強鍥炴敹璧勬簮 - clearInterval(this.timingAcquisition) - clearInterval(this.dateTimer) - this.timingAcquisition = null - this.dateTimer = null } } </script> -- Gitblit v1.9.3