From 3a8223b71d18205d40b894fd0b4c0fa1ca773e86 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期一, 13 十一月 2023 10:44:11 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/mdc-test' into mdc-test --- src/views/WorkshopSignage.vue | 136 ++++++++++++++++++++++++++++++--------------- 1 files changed, 91 insertions(+), 45 deletions(-) diff --git a/src/views/WorkshopSignage.vue b/src/views/WorkshopSignage.vue index f15d63d..81b35a5 100644 --- a/src/views/WorkshopSignage.vue +++ b/src/views/WorkshopSignage.vue @@ -1,63 +1,85 @@ <template> <dv-full-screen-container class="full-screen-container"> <header class="page-header"> - {{workshopDetails.workshopName}} + {{ workshopDetails.workshopName }} <div class="header-right" v-has="'home:saveDevicePositionAndSize'"> <a-space> <span v-if="!isSwitchChecked">寮�鍚姛鑳�</span> <span v-else>鍏抽棴鍔熻兘</span> - <a-switch checked-children="寮�" un-checked-children="鍏�" @change="handleSwitchChange" - v-model="isSwitchChecked" :disabled="isSwitchChecked"/> + <a-switch + checked-children="寮�" + un-checked-children="鍏�" + @change="handleSwitchChange" + v-model="isSwitchChecked" + :disabled="isSwitchChecked" + /> </a-space> - <a-button type="primary" icon="save" size="large" @click="saveDevicePositionAndSizeByApi" - >淇濆瓨浣嶇疆 - </a-button> + <a-button type="primary" icon="save" size="large" @click="saveDevicePositionAndSizeByApi">淇濆瓨浣嶇疆 </a-button> </div> </header> <dv-border-box-8> <div class="content-container" ref="deviceContainerRef"> - <VueDragResize v-for="(item,index) in deviceList" :key="item.equipmentId" :w="item.vw" - :h="item.vh" :x="item.coordinateLeft" :y="item.coordinateTop" - v-on:resizing="resize($event,index)" - v-on:dragging="resize($event,index)" - :parentLimitation="true" - :minw="100" - :minh="100" - :isDraggable="isDraggable" - :isResizable="isResizable" - :id="item.equipmentId" - :stickSize="6" + <VueDragResize + v-for="(item, index) in deviceList" + :key="item.equipmentId" + :w="item.vw" + :h="item.vh" + :x="item.coordinateLeft" + :y="item.coordinateTop" + v-on:resizing="resize($event, index)" + v-on:dragging="resize($event, index)" + :parentLimitation="true" + :minw="100" + :minh="100" + :isDraggable="isDraggable" + :isResizable="isResizable" + :stickSize="6" > - <div class="single-device" - :style="{width: item.vw+ 'px',height:item.vh+'px'}"> + <div class="single-device" :style="{ width: item.vw + 'px', height: item.vh + 'px' }" + @mouseenter="openDetail(item)"> <div class="device-status"> - <div v-if="item.equipmentStatus==2||item.equipmentStatus==1" - :style="{backgroundImage:`url(${require('@/assets/yellow.png')})`}" class="status-image"></div> - <div v-if="item.equipmentStatus==22" :style="{backgroundImage:`url(${require('@/assets/red.png')})`}" - class="status-image"></div> - <div v-if="item.equipmentStatus==0" :style="{backgroundImage:`url(${require('@/assets/gray.png')})`}" - class="status-image"></div> - <div v-if="item.equipmentStatus==3" :style="{backgroundImage:`url(${require('@/assets/green.png')})`}" - class="status-image"></div> <div - :style="{backgroundImage:`url(${getImgView(item.equipmentImage)||require('@/assets/8.png')})`}" - class="device-image"></div> + v-if="item.equipmentStatus == 2 || item.equipmentStatus == 1" + :style="{ backgroundImage: `url(${require('@/assets/yellow.png')})` }" + class="status-image" + ></div> + <div + v-if="item.equipmentStatus == 22" + :style="{ backgroundImage: `url(${require('@/assets/red.png')})` }" + class="status-image" + ></div> + <div + v-if="item.equipmentStatus == 0" + :style="{ backgroundImage: `url(${require('@/assets/gray.png')})` }" + class="status-image" + ></div> + <div + v-if="item.equipmentStatus == 3" + :style="{ backgroundImage: `url(${require('@/assets/green.png')})` }" + class="status-image" + ></div> + <div + :style="{ backgroundImage: `url(${getImgView(item.equipmentImage) || require('@/assets/8.png')})` }" + class="device-image" + ></div> </div> - <div class="device-id" :style="{fontSize: item.fontSize+'px'}"> - {{item.equipmentId}} + <div class="device-id" :style="{ fontSize: item.fontSize + 'px' }"> + {{ item.equipmentId }} </div> </div> </VueDragResize> <div class="device-status-info"> <div v-for="item in deviceStatusList" :key="item.value" class="single-status-info"> - <div>{{item.label}}</div> - <div class="status-square" :style="{backgroundColor:item.color}"></div> - <div>{{getDeviceNumberByStatus(item.value)}}</div> + <div>{{ item.label }}</div> + <div class="status-square" :style="{ backgroundColor: item.color }"></div> + <div>{{ getDeviceNumberByStatus(item.value) }}</div> </div> </div> </div> </dv-border-box-8> + + <EquipmentDetailModal ref="EquipmentDetailModal"></EquipmentDetailModal> </dv-full-screen-container> </template> @@ -65,15 +87,21 @@ import VueDragResize from 'vue-drag-resize' import api from '@/api/mdc' import { getFileAccessHttpUrl } from '@/api/manage' + import EquipmentDetailModal from './mdc/base/modules/WorkshopSignage/EquipmentDetailModal' + import { message } from 'ant-design-vue' + + message.config({ + maxCount: 3 + }) export default { components: { - VueDragResize + VueDragResize, + EquipmentDetailModal }, data() { return { - // 杞﹂棿璇︾粏淇℃伅, - workshopDetails: {}, + workshopDetails: {}, // 杞﹂棿璇︾粏淇℃伅, isDraggable: false, // 鏄惁寮�鍚嫋鎷� isResizable: false, // 鏄惁寮�鍚缉鏀� isSwitchChecked: false, // 鏄惁寮�鍚姛鑳� @@ -138,7 +166,7 @@ */ getDeviceListByApi(id) { console.log('閲嶆柊鍒锋柊') - api.getDeviceListInWorkshopSignagePageApi(id).then(res => { + api.getDeviceListInWorkshopSignagePageApi(id).then((res) => { if (res.result && res.result.length > 0) { this.deviceList = res.result } @@ -150,9 +178,11 @@ * @param id 杞﹂棿Id */ getWorkshopDetailsByApi(id) { - api.getWorkshopDetailByWorkshopIdApi(id).then(res => { + api.getWorkshopDetailByWorkshopIdApi(id).then((res) => { this.workshopDetails = res.result - this.$refs.deviceContainerRef.style.backgroundImage = `url(${this.getImgView(this.workshopDetails.backgroundImage)})` + this.$refs.deviceContainerRef.style.backgroundImage = `url(${this.getImgView( + this.workshopDetails.backgroundImage + )})` }) }, @@ -173,7 +203,7 @@ saveDevicePositionAndSizeByApi() { console.log('瑙﹀彂淇濆瓨') if (this.isOperatingDevice) { - api.saveDevicePositionAndSizeApi(this.deviceList).then(res => { + api.saveDevicePositionAndSizeApi(this.deviceList).then((res) => { if (res.code === 200) { this.$notification.success({ message: '娑堟伅', @@ -185,6 +215,7 @@ this.isResizable = !this.isResizable this.isDraggable = !this.isDraggable } + this.getDeviceListByApi(this.$route.params.id) } }) } else { @@ -193,7 +224,6 @@ description: '璇峰紑鍚姛鑳藉悗鍐嶈繘琛屼繚瀛�' }) } - }, /** @@ -223,7 +253,7 @@ * @returns {number} 璁惧鏁伴噺 */ getDeviceNumberByStatus(value) { - return this.deviceList.filter(item => item.equipmentStatus === value).length + return this.deviceList.filter((item) => item.equipmentStatus === value).length }, /** @@ -234,7 +264,23 @@ this.isOperatingDevice = true this.isResizable = !this.isResizable this.isDraggable = !this.isDraggable - } + }, + + openDetail(item) { + if (item.equipmentStatus == 0) { + // this.$message.warn("璁惧澶勪簬鍏虫満鐘舵�侊紒"); + this.$message.warning('璁惧澶勪簬鍏虫満鐘舵�侊紒') + return false + } + console.log(item) + console.log(this.$refs.EquipmentDetailModal) + this.$refs.EquipmentDetailModal.initData(item.equId) + this.$refs.EquipmentDetailModal.timerModel(item.equId) + // this.equipMessageTimer = setInterval(() => { + // setTimeout( this.$refs.equmentDetaiModel.initData(item.equipmentId),0) + // },1000*10) + }, + }, created() { if (this.$route.params.id) { @@ -247,6 +293,7 @@ document.onselectstart = () => false }, beforeDestroy() { + // 纭繚閿�姣佸畾鏃跺櫒鍙婂洖鏀惰祫婧� clearInterval(this.timingAcquisition) this.timingAcquisition = null } @@ -343,7 +390,6 @@ } } } - } } </style> \ No newline at end of file -- Gitblit v1.9.3