| | |
| | | <template> |
| | | <dv-full-screen-container class="full-screen-container"> |
| | | <header class="page-header"> |
| | | <header class="page-header" :style="{height: pageHeaderHeight+'px'}"> |
| | | {{ workshopDetails.workshopName }} |
| | | <div class="header-left" v-has="'home:saveDevicePositionAndSize'"> |
| | | <a-space> |
| | |
| | | <a-button type="primary" icon="save" size="large" @click="saveDevicePositionAndSizeByApi">保存位置</a-button> |
| | | </div> |
| | | <div class="device-status-info"> |
| | | <div v-for="item in deviceStatusList" :key="item.value" class="single-status-info"> |
| | | <a-space 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> |
| | | </a-space> |
| | | </div> |
| | | </header> |
| | | |
| | |
| | | </div> |
| | | </div> |
| | | </VueDragResize> |
| | | |
| | | </div> |
| | | </dv-border-box-8> |
| | | |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | pageHeaderHeight: 80,// 页头高度 |
| | | taskBarHeight: window.screen.height - window.screen.availHeight,// 屏幕底部任务栏高度 |
| | | utilsBarHeight: window.outerHeight - window.innerHeight,// 浏览器工具栏高度 |
| | | normalPageHeight: 0, |
| | | fullScreenPageHeight: 0, |
| | | workshopDetails: {}, // 车间详细信息, |
| | | isDraggable: false, // 是否开启拖拽 |
| | | isResizable: false, // 是否开启缩放 |
| | |
| | | value: 22, |
| | | color: '#FF0000' |
| | | } |
| | | ] // 设备状态指示灯列表 |
| | | ],// 设备状态指示灯列表, |
| | | isFullscreen: false |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | this.workshopDetails.backgroundImage |
| | | )})` |
| | | |
| | | this.fullScreenPageHeight = `calc(100% - ${this.pageHeaderHeight}px)` |
| | | this.normalPageHeight = `calc(100% - ${this.pageHeaderHeight}px - ${this.taskBarHeight}px - ${this.utilsBarHeight}px)` |
| | | |
| | | if (this.isFullscreen) { |
| | | this.$refs.deviceContainerRef.style.height = this.fullScreenPageHeight |
| | | } else { |
| | | this.$refs.deviceContainerRef.style.height = this.normalPageHeight |
| | | } |
| | | }) |
| | | }, |
| | | |
| | |
| | | // setTimeout( this.$refs.equmentDetaiModel.initData(item.equipmentId),0) |
| | | // },1000*10) |
| | | } |
| | | }, |
| | | |
| | | onResize() { |
| | | // 利用屏幕分辨率和window对象的内高度来判断兼容IE |
| | | let winFlag = window.innerHeight === window.screen.height |
| | | // 利用window全屏标识来判断 -- IE无效 |
| | | let isFull = window.fullScreen || document.webkitIsFullScreen |
| | | |
| | | if (isFull === undefined) { |
| | | this.isFullscreen = winFlag |
| | | } else { |
| | | this.isFullscreen = winFlag || isFull |
| | | } |
| | | console.log(winFlag) // true全屏 false不是全屏 |
| | | console.log('任务栏高度', this.taskBarHeight) |
| | | console.log('工具栏高度', this.utilsBarHeight) |
| | | |
| | | //全屏则图纸盒子可视高度减去页头高度,正常窗口则减去页头、屏幕底部任务栏以及浏览器工具栏高度 |
| | | if (winFlag) { |
| | | console.log('触发全屏') |
| | | this.$refs.deviceContainerRef.style.height = this.fullScreenPageHeight |
| | | |
| | | } else { |
| | | console.log('关闭全屏') |
| | | // 如果刷新页面重新加载后默认处于全屏模式,则工具栏高度为负数,因此需要退出全屏模式时重置工具栏高度 |
| | | this.utilsBarHeight = window.outerHeight - window.innerHeight |
| | | this.normalPageHeight = `calc(100% - ${this.pageHeaderHeight}px - ${this.taskBarHeight}px - ${this.utilsBarHeight}px)` |
| | | this.$refs.deviceContainerRef.style.height = this.normalPageHeight |
| | | } |
| | | } |
| | | |
| | | }, |
| | |
| | | this.getDeviceListByApi(this.$route.params.id) |
| | | this.getWorkshopDetailsByApi(this.$route.params.id) |
| | | } |
| | | |
| | | |
| | | let winFlag = window.innerHeight === window.screen.height |
| | | // 利用window全屏标识来判断 -- IE无效 |
| | | let isFull = window.fullScreen || document.webkitIsFullScreen |
| | | |
| | | if (isFull === undefined) { |
| | | this.isFullscreen = winFlag |
| | | } else { |
| | | this.isFullscreen = winFlag || isFull |
| | | } |
| | | |
| | | // window.addEventListener('resize', this.onResize) |
| | | }, |
| | | mounted() { |
| | | // 禁止用户选中内容 |
| | | document.onselectstart = () => false |
| | | }, |
| | | beforeDestroy() { |
| | | // 确保销毁定时器及回收资源 |
| | | // 确保销毁定时器、事件及回收资源 |
| | | clearInterval(this.timingAcquisition) |
| | | this.timingAcquisition = null |
| | | // window.removeEventListener('resize', this.onResize) |
| | | } |
| | | } |
| | | </script> |
| | |
| | | color: #fff; |
| | | |
| | | .page-header { |
| | | height: 80px; |
| | | font-size: 50px; |
| | | text-align: center; |
| | | position: relative; |
| | |
| | | justify-content: space-between; |
| | | |
| | | .single-status-info { |
| | | width: 60px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | /*width: 70px;*/ |
| | | /*display: flex;*/ |
| | | /*align-items: center;*/ |
| | | /*justify-content: space-between;*/ |
| | | |
| | | .status-square { |
| | | width: 14px; |
| | |
| | | |
| | | .content-container { |
| | | width: 100%; |
| | | height: calc(100% - 80px); |
| | | /*height: calc(100% - 200px);*/ |
| | | /*height: 100%;*/ |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | |
| | | |
| | | .single-device { |
| | | position: absolute; |
| | |
| | | width: 100%; |
| | | height: 100%; |
| | | display: flex; |
| | | align-items:end ; |
| | | |
| | | align-items: end; |
| | | |
| | | .status-image { |
| | | background-size: 100% 100%; |