| | |
| | | @dragstart="dragstart($event, index)" @dragend="dragend($event, index)" |
| | | @drop="handleDrop($event, index)" @dragover="handleDragOver($event)" draggable="true" |
| | | @click="showDeviceInfo(index,item,$event)" |
| | | :id="'itemtext@'+item?.deviceInfo?.areaCode+'_'+item?.deviceInfo?.networkPort+'_'+index" |
| | | > |
| | | {{ item.deviceInfo?.networkPort }} |
| | | <device-info v-show="selectedIndex === index " :show_info="show_device_info" |
| | |
| | | item_show: false, |
| | | code: "", |
| | | query_networkPort: '', |
| | | deviceId:'', |
| | | }, |
| | | //根据 |
| | | //后端存储的是世界坐标,初次时候也是世界坐标,最小单位为0.01吧,这个间距或者大小,不考虑实际像素 |
| | |
| | | }); |
| | | if(this.code){ |
| | | // 获取当前页面的背景图和数量 |
| | | this.initArea(); |
| | | await this.initArea(); |
| | | // 根据屏幕初始化格子 |
| | | this.initializeElements(); // 在组件加载时初始化 elements |
| | | await this.initializeElements(); // 在组件加载时初始化 elements |
| | | // 初始化设备信息 |
| | | this.handleBindElementsItems() |
| | | await this.handleBindElementsItems() |
| | | |
| | | // 如果传入了ip的话,则弹框展示 |
| | | if(this.code && this.query_networkPort){ |
| | | this.showSelectedIpDevice(this.code, this.query_networkPort) |
| | | } |
| | | |
| | | } |
| | | |
| | | // this.handleBindElementsItemsTest() |
| | | |
| | | }, |
| | | destroyed() { |
| | | const content = document.getElementById("content"); |
| | |
| | | this.elements[originalIndex] = element; |
| | | } |
| | | } |
| | | |
| | | }, |
| | | |
| | | async handleBindElementsItemsTest() { |
| | | const deviceInfoList = await getDeviceList(this.code) |
| | | const switchDetialInfos = deviceInfoList.switchDetialInfos |
| | | |
| | | // const evenIndexes = this.elements.filter((_, index) => index % 2 === 0); |
| | | const evenIndexes = this.elements.filter(element => element.cell % 2 == 0); |
| | | evenIndexes.forEach((element, index) => { |
| | | element.deviceInfo = switchDetialInfos[index] || null; |
| | | // element.isPlaceholder = !!switchDetialInfos[index]; |
| | | element.isPlaceholder=true; |
| | | }); |
| | | |
| | | console.log("所有布局元素") |
| | | console.log(this.elements) |
| | | |
| | | showSelectedIpDevice(code,networkPort){ |
| | | const originalIndex = this.elements.findIndex((el) =>el.deviceInfo?.areaCode==code && el.deviceInfo?.networkPort == networkPort); |
| | | // console.log(originalIndex) |
| | | if(originalIndex>0){ |
| | | this.selectedIndex=originalIndex |
| | | this.show_device_info = true; |
| | | this.cur_device_info = this.elements[originalIndex].deviceInfo; |
| | | } |
| | | // if(originalIndex>0){ |
| | | // let id='itemtext@'+code+'_'+networkPort+'_'+originalIndex |
| | | // // itemtext@01_T2-04-06_46 |
| | | // var dom = document.getElementById(id) |
| | | // if (dom) { |
| | | // this.selectedIndex=originalIndex |
| | | // this.show_device_info = true; |
| | | // this.cur_device_info = this.elements[originalIndex].deviceInfo; |
| | | // // dom.click() |
| | | // } |
| | | // } |
| | | |
| | | }, |
| | | |
| | | handleItemClick(item) { |
| | |
| | | |
| | | // 点击增加 |
| | | handleClickToAddItem(index,item){ |
| | | |
| | | this.cur_item=item |
| | | // 如果存在设备的话则直接返回 |
| | | if(item?.deviceInfo?.id) return; |
| | |
| | | cells: item.areaCellRow || [], |
| | | code: item.areaIndex, |
| | | }; |
| | | // console.log("bridge_infos", this.bridge_infos); |
| | | // console.log( |
| | | // "currentareaconfig", |
| | | // currentareaconfig[item.areaIndex], |
| | | // currentareaconfig["pad"] |
| | | // ); |
| | | |
| | | if (currentareaconfig["pad"]) { |
| | | this.bridge_infos[item.areaIndex]["pad"] = currentareaconfig["pad"]; |
| | | } |
| | |
| | | cursor: move; |
| | | } |
| | | |
| | | .space-text { |
| | | // .space-text { |
| | | // background-image: url("@/assets/area/space-text.svg"); |
| | | // background-size: 100% 100%; |
| | | // min-width: 7.5rem; |
| | | // min-height: 2.5rem; |
| | | // transform: translate(-50%, 0%); |
| | | // left: 50%; |
| | | // padding-top: 0.5rem; |
| | | // top: -2.5rem; |
| | | // position: absolute; |
| | | // cursor: grabbing; |
| | | // cursor: move; |
| | | // /* line-height: 100%; */ |
| | | // /* font-size: 12px; */ |
| | | // /* span { */ |
| | | // word-break: break-all; |
| | | // word-wrap: break-word; |
| | | // /*但在有些场景中,还需要加上下面这行代码*/ |
| | | // white-space: normal; |
| | | // overflow-wrap: anywhere; |
| | | // /* } */ |
| | | |
| | | // font-size: 1rem; |
| | | // font-family: PingFangSC-Semibold, PingFang SC; |
| | | // font-weight: 600; |
| | | // color: #3299ff; |
| | | // z-index: 20; |
| | | // } |
| | | .space-text{ |
| | | background-image: url("@/assets/area/space-text.svg"); |
| | | background-size: 100% 100%; |
| | | min-width: 7.5rem; |
| | | min-height: 2.5rem; |
| | | transform: translate(-50%, 0%); |
| | | min-width: 3rem; |
| | | height: 1.5rem; |
| | | transform: translate(-50%); |
| | | left: 50%; |
| | | padding-top: 0.5rem; |
| | | top: -2.5rem; |
| | | padding-top: 0.2rem; |
| | | padding-left: 0.2rem; |
| | | padding-right: 0.3rem; |
| | | top: -1.5rem; |
| | | position: absolute; |
| | | cursor: grabbing; |
| | | cursor: move; |
| | | /* line-height: 100%; */ |
| | | /* font-size: 12px; */ |
| | | /* span { */ |
| | | word-break: break-all; |
| | | word-wrap: break-word; |
| | | /*但在有些场景中,还需要加上下面这行代码*/ |
| | | white-space: normal; |
| | | white-space: nowrap; |
| | | overflow-wrap: anywhere; |
| | | /* } */ |
| | | |
| | | font-size: 1rem; |
| | | font-size: 0.6rem; |
| | | font-size: 14; |
| | | font-family: PingFangSC-Semibold, PingFang SC; |
| | | font-weight: 600; |
| | | color: #3299ff; |