Loading src/views/drawCanvas/riskView.vue +84 −18 Original line number Diff line number Diff line <template> <div class="wrap" ref="mapmidbox"> <van-sticky> <van-sticky v-if="showHeader"> <header class="header"> <span @click="close" class="iconLeft"> 关闭</span> <span>{{text}}</span> Loading Loading @@ -36,7 +36,7 @@ </grid-layout> <div class="setBtns"> <van-button @click="addItem" type="info" size="mini" v-if="!isView">添加房间</van-button> <van-grid direction="horizontal" :column-num="2" class="footer"> <van-grid direction="horizontal" :column-num="2" class="footer" v-if="isView"> 风险等级图例: <span class="riskTab type1"></span>重大风险 <span class="riskTab type2"></span>较大风险 Loading Loading @@ -101,44 +101,99 @@ export default { roomName:'', columns: ['办公', '餐饮', '住宅', '超市'], colorList:['#FF4433','#FF9800','#FFFF00','#0091EA'], isView:true,// true:查看页面; false: 添加页面 isView:false,// true:查看页面; false: 添加页面 showHeader:true } }, props:{ isViews: { type: Boolean, default: false, }, }, mounted() { // screenfull.toggle(this.$refs.mapbox); // this.$nextTick(() => { this.$nextTick(() => { // this.rotateBox(); // }); this.isView = this.$route.params.isView? true : false this.initRotate(); }); if (this._props.isViews) { console.log('作为组件传值==>>',) this.isView = true this.showHeader = false } if (this.$route.params.isView) { this.isView = true } this.getRoomInfo() window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", this.orientationChange, false); }, methods: { orientationChange(){ if (window.orientation === 180 || window.orientation === 0) { console.log('竖屏状态!'); } if (window.orientation === 90 || window.orientation === -90 ){ console.log('横屏状态!'); } // let width = document.documentElement.clientWidth//页面宽度 // let height = document.documentElement.clientHeight//页面高度 // console.log('width==>>',width) // console.log('height==>>',height) this.rotateBox() }, initRotate(){ let width = document.documentElement.clientWidth,//页面宽度 height = document.documentElement.clientHeight,//页面高度 wrapper = this.$refs.mapmidbox,//需要横屏的块,与全屏的块要区分开,不区分全屏的块无法显示横屏效果 style = "";//样式 console.log('width==>>',width) console.log('height==>>',height) style += "width:" + height + "px;"; style += "height:" + width + "px;"; style += "-webkit-transform: rotate(90deg); transform: rotate(90deg);"; // 注意旋转中点的处理 style += "-webkit-transform-origin: " + width / 2 + "px " + width / 2 + "px;"; style += "transform-origin: " + width / 2 + "px " + width / 2 + "px;"; wrapper.style.cssText = style; }, rotateBox() { this.isScreenFull = !this.isScreenFull;//是否全屏状态 let width = document.documentElement.clientWidth,//页面宽度 height = document.documentElement.clientHeight,//页面高度 wrapper = this.$refs.mapmidbox,//需要横屏的块,与全屏的块要区分开,不区分全屏的块无法显示横屏效果 style = "";//样式 if (height < width) {//注意原来就是宽屏时不用横屏 return; } if (this.isScreenFull) { console.log('width==>>',width) console.log('height==>>',height) // if (height < width) {//注意原来就是宽屏时不用横屏 // return; // } if (height < width) { // 横屏 style += "width:" + height + "px;"; style += "height:" + width + "px;"; style += "-webkit-transform: rotate(90deg); transform: rotate(90deg);"; style += "-webkit-transform: rotate(0deg); transform: rotate(0deg);"; // 注意旋转中点的处理 style += "-webkit-transform-origin: " + width / 2 + "px " + width / 2 + "px;"; style += "transform-origin: " + width / 2 + "px " + width / 2 + "px;"; } else { // 竖屏 // style += "width:" + height + "px;"; // style += "height:" + width + "px;"; // style += "-webkit-transform: rotate(90deg); transform: rotate(90deg);"; // // 注意旋转中点的处理 // style += // "-webkit-transform-origin: " + width / 2 + "px " + width / 2 + "px;"; // style += "transform-origin: " + width / 2 + "px " + width / 2 + "px;"; style += "width:100%"; style += "height:100%;"; style += "-webkit-transform: rotate(0); transform: rotate(0);"; style += "-webkit-transform-origin: 0 0;"; style += "transform-origin: 0 0;"; } console.log('style==>>',style) wrapper.style.cssText = style; }, getRoomInfo(){ Loading @@ -160,7 +215,7 @@ export default { } this.layout.push(item.position) }) console.log('layout==>>',this.layout) // console.log('layout==>>',this.layout) } }).catch((err) => { console.log('err==>>',err) Loading @@ -182,8 +237,11 @@ export default { }, // 删除 removeItem: function (val) { // const index = this.layout.map(item => item.i).indexOf(val); // this.layout.splice(index, 1); if (val == '') { const index = this.layout.map(item => item.i).indexOf(val); this.layout.splice(index, 1); return } postFun('/ledger/room/delete/'+val).then((res) => { if (res.code == 200) { Toast.success('删除成功'); Loading Loading @@ -235,13 +293,13 @@ export default { h: 3, i: '', name: this.roomName, c: '#eee', c: '#0091EA', type:this.roomType, isDraggable:true, isResizable:true } this.layout.push(this.layOutItem) console.log('layOutItem==>>',this.layOutItem) // console.log('layOutItem==>>',this.layOutItem) }, onConfirm(value) { this.roomType = value; Loading @@ -252,11 +310,15 @@ export default { </script> <style scoped > .router-view{ padding-bottom: 0px !important; } .wrap{ height: 100vh; width: 100vw; /* transform: rotate(90deg); transform-origin: bottom left; */ position: relative; } .footer{ /* position: fixed; */ Loading Loading @@ -298,9 +360,12 @@ export default { /*************************************/ .setBtns{ position: fixed; /* position: fixed; top:auto; right: auto; left: 0; bottom: 0; bottom: 0; */ margin-top: 10px; font-size: 0.3rem; padding: 10px; vertical-align: middle; Loading Loading @@ -342,6 +407,7 @@ export default { .vue-grid-item .text { writing-mode:vertical-rl; -webkit-writing-mode: vertical-rl; font-size: 10cqw; display: flex; align-items: center; Loading Loading
src/views/drawCanvas/riskView.vue +84 −18 Original line number Diff line number Diff line <template> <div class="wrap" ref="mapmidbox"> <van-sticky> <van-sticky v-if="showHeader"> <header class="header"> <span @click="close" class="iconLeft"> 关闭</span> <span>{{text}}</span> Loading Loading @@ -36,7 +36,7 @@ </grid-layout> <div class="setBtns"> <van-button @click="addItem" type="info" size="mini" v-if="!isView">添加房间</van-button> <van-grid direction="horizontal" :column-num="2" class="footer"> <van-grid direction="horizontal" :column-num="2" class="footer" v-if="isView"> 风险等级图例: <span class="riskTab type1"></span>重大风险 <span class="riskTab type2"></span>较大风险 Loading Loading @@ -101,44 +101,99 @@ export default { roomName:'', columns: ['办公', '餐饮', '住宅', '超市'], colorList:['#FF4433','#FF9800','#FFFF00','#0091EA'], isView:true,// true:查看页面; false: 添加页面 isView:false,// true:查看页面; false: 添加页面 showHeader:true } }, props:{ isViews: { type: Boolean, default: false, }, }, mounted() { // screenfull.toggle(this.$refs.mapbox); // this.$nextTick(() => { this.$nextTick(() => { // this.rotateBox(); // }); this.isView = this.$route.params.isView? true : false this.initRotate(); }); if (this._props.isViews) { console.log('作为组件传值==>>',) this.isView = true this.showHeader = false } if (this.$route.params.isView) { this.isView = true } this.getRoomInfo() window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", this.orientationChange, false); }, methods: { orientationChange(){ if (window.orientation === 180 || window.orientation === 0) { console.log('竖屏状态!'); } if (window.orientation === 90 || window.orientation === -90 ){ console.log('横屏状态!'); } // let width = document.documentElement.clientWidth//页面宽度 // let height = document.documentElement.clientHeight//页面高度 // console.log('width==>>',width) // console.log('height==>>',height) this.rotateBox() }, initRotate(){ let width = document.documentElement.clientWidth,//页面宽度 height = document.documentElement.clientHeight,//页面高度 wrapper = this.$refs.mapmidbox,//需要横屏的块,与全屏的块要区分开,不区分全屏的块无法显示横屏效果 style = "";//样式 console.log('width==>>',width) console.log('height==>>',height) style += "width:" + height + "px;"; style += "height:" + width + "px;"; style += "-webkit-transform: rotate(90deg); transform: rotate(90deg);"; // 注意旋转中点的处理 style += "-webkit-transform-origin: " + width / 2 + "px " + width / 2 + "px;"; style += "transform-origin: " + width / 2 + "px " + width / 2 + "px;"; wrapper.style.cssText = style; }, rotateBox() { this.isScreenFull = !this.isScreenFull;//是否全屏状态 let width = document.documentElement.clientWidth,//页面宽度 height = document.documentElement.clientHeight,//页面高度 wrapper = this.$refs.mapmidbox,//需要横屏的块,与全屏的块要区分开,不区分全屏的块无法显示横屏效果 style = "";//样式 if (height < width) {//注意原来就是宽屏时不用横屏 return; } if (this.isScreenFull) { console.log('width==>>',width) console.log('height==>>',height) // if (height < width) {//注意原来就是宽屏时不用横屏 // return; // } if (height < width) { // 横屏 style += "width:" + height + "px;"; style += "height:" + width + "px;"; style += "-webkit-transform: rotate(90deg); transform: rotate(90deg);"; style += "-webkit-transform: rotate(0deg); transform: rotate(0deg);"; // 注意旋转中点的处理 style += "-webkit-transform-origin: " + width / 2 + "px " + width / 2 + "px;"; style += "transform-origin: " + width / 2 + "px " + width / 2 + "px;"; } else { // 竖屏 // style += "width:" + height + "px;"; // style += "height:" + width + "px;"; // style += "-webkit-transform: rotate(90deg); transform: rotate(90deg);"; // // 注意旋转中点的处理 // style += // "-webkit-transform-origin: " + width / 2 + "px " + width / 2 + "px;"; // style += "transform-origin: " + width / 2 + "px " + width / 2 + "px;"; style += "width:100%"; style += "height:100%;"; style += "-webkit-transform: rotate(0); transform: rotate(0);"; style += "-webkit-transform-origin: 0 0;"; style += "transform-origin: 0 0;"; } console.log('style==>>',style) wrapper.style.cssText = style; }, getRoomInfo(){ Loading @@ -160,7 +215,7 @@ export default { } this.layout.push(item.position) }) console.log('layout==>>',this.layout) // console.log('layout==>>',this.layout) } }).catch((err) => { console.log('err==>>',err) Loading @@ -182,8 +237,11 @@ export default { }, // 删除 removeItem: function (val) { // const index = this.layout.map(item => item.i).indexOf(val); // this.layout.splice(index, 1); if (val == '') { const index = this.layout.map(item => item.i).indexOf(val); this.layout.splice(index, 1); return } postFun('/ledger/room/delete/'+val).then((res) => { if (res.code == 200) { Toast.success('删除成功'); Loading Loading @@ -235,13 +293,13 @@ export default { h: 3, i: '', name: this.roomName, c: '#eee', c: '#0091EA', type:this.roomType, isDraggable:true, isResizable:true } this.layout.push(this.layOutItem) console.log('layOutItem==>>',this.layOutItem) // console.log('layOutItem==>>',this.layOutItem) }, onConfirm(value) { this.roomType = value; Loading @@ -252,11 +310,15 @@ export default { </script> <style scoped > .router-view{ padding-bottom: 0px !important; } .wrap{ height: 100vh; width: 100vw; /* transform: rotate(90deg); transform-origin: bottom left; */ position: relative; } .footer{ /* position: fixed; */ Loading Loading @@ -298,9 +360,12 @@ export default { /*************************************/ .setBtns{ position: fixed; /* position: fixed; top:auto; right: auto; left: 0; bottom: 0; bottom: 0; */ margin-top: 10px; font-size: 0.3rem; padding: 10px; vertical-align: middle; Loading Loading @@ -342,6 +407,7 @@ export default { .vue-grid-item .text { writing-mode:vertical-rl; -webkit-writing-mode: vertical-rl; font-size: 10cqw; display: flex; align-items: center; Loading