From dc995e1b1df9f18c554f5fa9f7c32023e514f162 Mon Sep 17 00:00:00 2001 From: "605875155@qq.com" Date: Tue, 10 Jan 2023 19:33:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=89=E5=85=A8=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 动态获取设备点位并标注在地图上 --- .../fourEngin/security/centerTop.vue | 85 ++++++++++++++----- 1 file changed, 66 insertions(+), 19 deletions(-) diff --git a/src/views/projectAdmin/fourEngin/security/centerTop.vue b/src/views/projectAdmin/fourEngin/security/centerTop.vue index d101b744..55438d91 100644 --- a/src/views/projectAdmin/fourEngin/security/centerTop.vue +++ b/src/views/projectAdmin/fourEngin/security/centerTop.vue @@ -1,13 +1,19 @@ @@ -32,7 +39,7 @@ import EnvironmentDialog from '@/views/projectAdmin/jlw/digitalSite/components/E import VideoDialog from '@/views/projectAdmin/jlw/digitalSite/components/VideoDialog.vue' import ElevatorDialog from '@/views/projectAdmin/jlw/digitalSite/components/ElevatorDialog_.vue' import TowerDialog from '@/views/projectAdmin/jlw/digitalSite/components/TowerDialog.vue' -import { selectWorkerAttendanceByDevApi,selectProjectGetProjectInfoBySn } from '@/assets/js/api/dataBoard' +import { selectWorkerAttendanceByDevApi,selectProjectGetProjectInfoBySn,selectDevCoordinateListApi } from '@/assets/js/api/dataBoard' import { getRealTimeDustNoiseDataApi } from '@/assets/js/api/environmentManage' export default { components: { Card, JNestedRingChart, FaceGageDialog, EnvironmentDialog, VideoDialog, ElevatorDialog, TowerDialog }, @@ -46,6 +53,7 @@ export default { this.getFaceGateInfo() this.getEnvironmentInfo() this.getProjectInfoBySnImg() + this.getAllDevPointList() }, data() { return { @@ -71,9 +79,42 @@ export default { elevatorDialog: false, towerDialog: false, imageUrlMap:'',//平面图 + imgWidthScale: 0, //工地图片与容器宽度的比例 + imgHeightScale: 0, //工地图片与容器高度的比例 + points: [], + showPoints: false } }, methods: { + // 计算点位的缩小比 + countBoxSize() { + this.$nextTick(() => { + setTimeout(() => { + let el = document.querySelector('.mapContent') + let imgDom = document.querySelector('.bgPackImg') + this.imgWidthScale = imgDom.naturalWidth / imgDom.width + this.imgHeightScale = imgDom.naturalHeight / imgDom.height + let boxWidthHalf = el.offsetWidth / 2 + let imgWidthHalf = imgDom.width / 2 + let leftMove = imgWidthHalf - boxWidthHalf + console.log(this.imgWidthScale, this.imgHeightScale) + imgDom.style.top = 0 + imgDom.style.left = -leftMove + 'px' + this.showPoints = true + }, 200) + }) + }, + // 获取所有点位 + getAllDevPointList() { + let data = { + projectSn: this.projectSn, + devType: '4' + } + // 获取设备信息 + selectDevCoordinateListApi(data).then(res => { + this.points = res.result + }) + }, //获取项目平面图 async getProjectInfoBySnImg(){ const res= await selectProjectGetProjectInfoBySn({ @@ -88,7 +129,7 @@ export default { this.tabIndex = index }, handlePoint(point) { - this[point + 'Dialog'] = true + this.videoDialog = true }, getFaceGateInfo() { selectWorkerAttendanceByDevApi({ @@ -106,26 +147,32 @@ export default { }) } }, - computed: { - points() { - return ['tower', 'elevator', 'video', 'environment', 'gate'].map(tab => [tab, tab]).flat() - } - } }