From 5b5a5a7899a9444665235d96d8d7f2d50fed6a8c Mon Sep 17 00:00:00 2001 From: Jin Lei <jinlei_182@163.com> Date: 星期六, 11 十一月 2023 17:42:58 +0800 Subject: [PATCH] [历史影像]删除之前二维地图,叠加beijing54地图 --- src/components/left/layerTree/Layer.vue | 2 src/components/menu/bottom-menu.vue | 359 ++++------------ src/store/index.js | 4 src/components/map/viewer1.vue | 711 ++++++++++++++++++--------------- src/components/map/viewer.vue | 123 +++++ src/components/index.vue | 51 +- src/components/right/right-top.vue | 1 7 files changed, 625 insertions(+), 626 deletions(-) diff --git a/src/components/index.vue b/src/components/index.vue index 7506958..5e8dc2e 100644 --- a/src/components/index.vue +++ b/src/components/index.vue @@ -11,31 +11,20 @@ <img class="searchBtn" src="@/assets/img/right/closeinput1.png" /> </el-button> </div> - <History /> + </div> - <viewer1 - class="mapViewer" - v-if="viewer1Show" - :style="viewer1Style" - @mousemove.native="viewer1MouseMove" - /> - <viewer - class="mapViewer" - :style="viewerStyle" - @mousemove.native="viewerMouseMove" - /> - <div - class="controlPanel" - :style="{ - width: `${size}`, - height: `${size}`, - transform: `scale(${scale}) translate(${offset},${offset})`, - '-webkit-transform': `scale(${scale}) translate(${offset},${offset})`, - '-moz-transform': `scale(${scale}) translate(${offset},${offset})`, - '-o-transform': `scale(${scale}) translate(${offset},${offset})`, - '-ms-transform': `scale(${scale}) translate(${offset},${offset})`, - }" - > + <viewer1 class="mapViewer" :key="switchKey" v-if="viewer1Show" :style="viewer1Style" + @mousemove.native="viewer1MouseMove" /> + <viewer class="mapViewer" ref="mapViewer" :style="viewerStyle" @mousemove.native="viewerMouseMove" /> + <div class="controlPanel" :style="{ + width: `${size}`, + height: `${size}`, + transform: `scale(${scale}) translate(${offset},${offset})`, + '-webkit-transform': `scale(${scale}) translate(${offset},${offset})`, + '-moz-transform': `scale(${scale}) translate(${offset},${offset})`, + '-o-transform': `scale(${scale}) translate(${offset},${offset})`, + '-ms-transform': `scale(${scale}) translate(${offset},${offset})`, + }"> <img @click="changePwd" id="headlog" src="@/assets/img/new/topBar.png" /> <img id="bottomBar" src="@/assets/img/new/bottomBar.png" /> <!-- <el-slider @@ -69,7 +58,6 @@ import bottommenu from "@/components/menu/bottom-menu"; import { mapState, mapMutations } from "vuex"; -import History from "@/components/map/history.vue"; export default { name: "index", @@ -98,6 +86,7 @@ offset: "0%", tooltipInfo: "璇风◢鍚庛�傘�傘��", tooltipShow: false, + switchKey: 0, // viewer1Show: false, }; }, @@ -108,7 +97,7 @@ this.size = size + "%"; }, computed: { - ...mapState(["viewer1Show", "yqfk"]), + ...mapState(["viewer1Show", "isLand", "yqfk"]), showSetting() { return this.$store.state.showSetting; }, @@ -137,6 +126,9 @@ }, changePwd() { console.log(111); + }, + changeMode(mode){ + this.$refs.mapViewer.changeMode(mode); }, detectZoom() { var ratio = 0, @@ -242,11 +234,13 @@ .mapViewer { height: 100%; } + .userinfo { position: absolute; z-index: 20; top: 10px; } + #headlog { width: 965px; height: 70px; @@ -255,6 +249,7 @@ top: 0; transform: translate(-50%, 0); } + #bottomBar { width: 1357px; height: 52px; @@ -263,6 +258,7 @@ bottom: 0; transform: translate(-50%, 0); } + .trigger { pointer-events: all; } @@ -304,6 +300,7 @@ border-radius: 10px; padding: 10px 30px; } + .hisbox { position: absolute; z-index: 10000002; @@ -311,11 +308,13 @@ height: 100%; background-color: #fff; } + .btnbox { position: absolute; z-index: 100000003; right: 30px; } + .btnbox .el-button { padding: 0 !important; font-size: 24px; diff --git a/src/components/left/layerTree/Layer.vue b/src/components/left/layerTree/Layer.vue index db0c791..5fcb5da 100644 --- a/src/components/left/layerTree/Layer.vue +++ b/src/components/left/layerTree/Layer.vue @@ -1086,7 +1086,7 @@ height: 30px; cursor: pointer; text-align: center; - z-index: 999999; + z-index: 999; color: white; } .treeContainer { diff --git a/src/components/map/viewer.vue b/src/components/map/viewer.vue index 4255a83..a2875be 100644 --- a/src/components/map/viewer.vue +++ b/src/components/map/viewer.vue @@ -1,6 +1,13 @@ <template> <div> <div id="sdkContainer"></div> + <div class="listBox" v-show="viewer1Show && !isLand"> + <ul> + <li v-for="(item, index) in arr" :key="index" @click="changeLeftMap($event, item, index)"> + {{ item }} + </li> + </ul> + </div> <layerTreeTwoScreen v-if="layerTreeTwoScreen" /> <!-- <div id="bottomInfo" v-html="bottomInfo"></div> --> <div id="switchImagerLayer" :style="{ @@ -12,7 +19,7 @@ }"> <transition name="animate__animated animate__bounce" @click="switchImagerLayerShowOrHide" enter-active-class="animate__backInRight" leave-active-class="animate__backOutRight" appear> - <switchImagerLayer v-show="switchImagerLayer" /> + <switchImagerLayer ref="switchImagerLayer" v-show="switchImagerLayer" /> </transition> <img class="swichImg" @click="switchImagerLayerShowOrHide" :src="switchImage" /> @@ -35,6 +42,8 @@ import jiejing from "@/assets/img/new/jiejing.png"; import "animate.css"; import Bus from "@tools/Bus"; + +let activeLi, nLayer; export default { name: "viewer", components: { @@ -55,10 +64,14 @@ scale: "1", offset: "0%", radio: 3, + arr: [ + 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, + 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, + ], }; }, computed: { - ...mapState(["layerTreeTwoScreen", "cesiumInit"]), + ...mapState(["viewer1Show", "isLand", "layerTreeTwoScreen", "cesiumInit"]), }, mounted() { this.$nextTick(function () { @@ -67,8 +80,8 @@ window.sgworld = new SmartEarth.EarthCtrl( "sdkContainer", { - // StaticFileBaseUrl: "../../../static/CimSDK/", - StaticFileBaseUrl: "../../../YZXNCS/static/CimSDK/", + StaticFileBaseUrl: "../../../static/CimSDK/", + // StaticFileBaseUrl: "../../../YZXNCS/static/CimSDK/", }, {}, {}, @@ -228,6 +241,74 @@ return ratio; //this.onresize_height = ratio; // return ratio; + }, + changeMode(mode) { + this.$refs.switchImagerLayer.switchImagerLayerClick(mode); + }, + setImageComparison(isStart) { + this.isImage = isStart; + if (!this.isImage) { + this.destroyImageLayer(); + } + }, + destroyImageLayer() { + if (activeLi) { + activeLi.classList.remove('active'); + activeLi = null; + } + if (nLayer) { + Viewer.imageryLayers.remove(nLayer, true); + nLayer = null; + } + }, + changeLeftMap(event, item, index) { + let liObj = event.currentTarget; + if (activeLi) { + activeLi.classList.remove('active'); + activeLi = null; + } + liObj.classList.add('active'); + activeLi = liObj; + this.loadImageLayer(item); + }, + loadImageLayer(year) { + if (nLayer) { + Viewer.imageryLayers.remove(nLayer, true); + nLayer = null; + } + nLayer = this.loadBJ54ImageLayer(year); + }, + loadBJ54ImageLayer(year) { + let url = "http://172.26.64.84/service/ImageEngine/picdis/abc"; + //let url = option.url; + //let year = option.year; + let paramUrl = `${url}?user=jjjskfq&password=Jjjskfq@2022&layer=Sate_${year}&style=&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fpng&TileMatrix={z}&TileCol={nx}&TileRow={ny}`; + let minx = 113.168199 * Math.PI / 180.0; + let miny = 39.230551 * Math.PI / 180.0; + let maxx = 118.562362 * Math.PI / 180.0; + let maxy = 41.294714 * Math.PI / 180.0; + let rectangle = new Cesium.Rectangle(minx, miny, maxx, maxy); + let tilingScheme = new Cesium.GeographicTilingScheme({ + rectangle: rectangle, + numberOfLevelZeroTilesX: 2, + numberOfLevelZeroTilesY: 1 + }); + var dx = { + url: paramUrl, + tilingScheme: tilingScheme, + customTags: { + nx: function (imageryProvider, x, y, level) { + return (2 << (level - 1)) + x; + }, + ny: function (imageryProvider, x, y, level) { + return (2 << (level - 1)) + y; + } + } + }; + var imageryProvider = new Cesium.UrlTemplateImageryProvider(dx); + let imageLayer = new Cesium.ImageryLayer(imageryProvider, { alpha: 1, brightness: 1.0 }); + Viewer.imageryLayers.add(imageLayer, 2); + return imageLayer; }, changeImage(val) { switch (val) { @@ -450,6 +531,40 @@ z-index: -1; } +.listBox { + position: absolute; + left: 20px; + top: 100px; + +} + +.listBox .active { + + background: rgba(255, 166, 0, 0.808); + +} + +.listBox li { + padding: 2px; + margin-top: 1px; + border-radius: 2px; + color: white; + background: rgba(14, 50, 143, 0.6); + font-size: 14px; + cursor: pointer; +} + +/* 灞忓箷鍒嗚鲸鐜囨斁澶т负 125 */ +@media (-webkit-min-device-pixel-ratio: 1.25) { + .listBox li { + font-size: 12px; + } +} + +.listBox li:hover { + background: rgba(255, 166, 0, 0.808); +} + .mid { position: absolute; top: 50%; diff --git a/src/components/map/viewer1.vue b/src/components/map/viewer1.vue index 12d50b4..0439c00 100644 --- a/src/components/map/viewer1.vue +++ b/src/components/map/viewer1.vue @@ -1,10 +1,14 @@ <template> <div> <div id="sdkContainer1" style="height: 100%"></div> - <layerTreeTwoScreenRight - v-if="layerTreeTwoScreen" - id="layerTreeTwoScreen111" - /> + <div class="listBox" v-show="!isLand"> + <ul> + <li v-for="(item, index) in arr" :key="index" @click="changeLeftMap($event, item, index)"> + {{ item }} + </li> + </ul> + </div> + <layerTreeTwoScreenRight v-if="layerTreeTwoScreen" id="layerTreeTwoScreen111" /> <div class="tdInfo" v-if="showTDinfo"> <div class="tdInfo_close" @click="tdInfoClose">脳</div> <p v-if="dikuanxinxi" class="noInfo">鏆傛棤璇ュ湴鍧椾俊鎭�</p> @@ -41,12 +45,7 @@ <div v-else class="title"> <li> 浼佷笟 - <el-tooltip - class="item" - effect="dark" - content="鐐瑰嚮鏌ョ湅浼佷笟淇℃伅" - placement="bottom" - > + <el-tooltip class="item" effect="dark" content="鐐瑰嚮鏌ョ湅浼佷笟淇℃伅" placement="bottom"> <a @click="showYZCQY"> {{ qysl }}</a> </el-tooltip> 瀹� @@ -54,83 +53,31 @@ </div> </ul> </div> - <el-dialog - class="aboutDialog" - title="浼佷笟淇℃伅" - append-to-body - width="60%" - height="60%" - style="overflow: auto" - :visible.sync="QYbox" - :before-close="dialogClose" - > + <el-dialog class="aboutDialog" title="浼佷笟淇℃伅" append-to-body width="60%" height="60%" style="overflow: auto" + :visible.sync="QYbox" :before-close="dialogClose"> <div class="el-dialog-div"> <div class="inquire"> - <el-form - size="medium" - ref="queryForm" - :model="queryForm" - :inline="true" - > + <el-form size="medium" ref="queryForm" :model="queryForm" :inline="true"> <el-form-item label="鏌ヨ鍐呭" prop="name"> - <el-input - v-model="queryForm.content" - placeholder="璇疯緭鍏ユ煡璇㈠唴瀹�" - /> + <el-input v-model="queryForm.content" placeholder="璇疯緭鍏ユ煡璇㈠唴瀹�" /> </el-form-item> <el-form-item> - <el-button - @click="queryInfo('queryForm')" - icon="el-icon-search" - class="primary" - >鏌ヨ</el-button - > + <el-button @click="queryInfo('queryForm')" icon="el-icon-search" class="primary">鏌ヨ</el-button> </el-form-item> </el-form> </div> - <el-table - fit - style="width: 100%" - :data="tableData" - highlight-current-row - > + <el-table fit style="width: 100%" :data="tableData" highlight-current-row> <el-table-column type="index" width="50"></el-table-column> - <el-table-column - property="浼佷笟鍚嶇О" - label="浼佷笟鍚嶇О" - ></el-table-column> - <el-table-column - property="浼佷笟绫诲瀷" - label="浼佷笟绫诲瀷" - ></el-table-column> - <el-table-column - property="鎴愮珛鏃堕棿" - label="鎴愮珛鏃堕棿" - ></el-table-column> - <el-table-column - property="鎵�灞炶涓�" - label="鎵�灞炶涓�" - ></el-table-column> + <el-table-column property="浼佷笟鍚嶇О" label="浼佷笟鍚嶇О"></el-table-column> + <el-table-column property="浼佷笟绫诲瀷" label="浼佷笟绫诲瀷"></el-table-column> + <el-table-column property="鎴愮珛鏃堕棿" label="鎴愮珛鏃堕棿"></el-table-column> + <el-table-column property="鎵�灞炶涓�" label="鎵�灞炶涓�"></el-table-column> <el-table-column property="娉曚汉" label="娉曚汉"></el-table-column> - <el-table-column - property="娉ㄥ唽鍦板潃" - label="娉ㄥ唽鍦板潃" - ></el-table-column> + <el-table-column property="娉ㄥ唽鍦板潃" label="娉ㄥ唽鍦板潃"></el-table-column> </el-table> - <div - slot="footer" - class="dialog-footer" - style="text-align: center; margin-top: 5px" - > - <el-pagination - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - :current-page.sync="currentPage" - :page-size="10" - :pager-count="11" - layout="total, pager" - :total="searchNum" - > + <div slot="footer" class="dialog-footer" style="text-align: center; margin-top: 5px"> + <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" + :current-page.sync="currentPage" :page-size="10" :pager-count="11" layout="total, pager" :total="searchNum"> </el-pagination> </div> </div> @@ -147,8 +94,7 @@ import Bus from "../tools/Bus"; -let line, line1, handler, handler1, divPoint, divPoint1, dx; - +let line, line1, handler, handler1, divPoint, divPoint1, dx, activeLi, nLayer, TDLayer; export default { name: "viewer1", components: { layerTreeTwoScreenRight }, @@ -179,7 +125,13 @@ currentPage: 1, pageSize: 10, searchNum: 0, + arr: [ + 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, + 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, + ], tableData: [], + + queryForm: { type: "浼佷笟鍚嶇О", content: "", @@ -193,7 +145,7 @@ }, computed: { - ...mapState(["viewer1Show", "layerTreeTwoScreen"]), + ...mapState(["viewer1Show", "isLand", "layerTreeTwoScreen"]), }, watch: { viewer1Show: { @@ -214,6 +166,24 @@ }, 2000); }, }, + isLand(newvalue, oldvalue) { + if (!newvalue) { + if (TDLayer) { + TDLayer.deleteObject(); + TDLayer = null; + } + if (line) { + sgworld.Creator.DeleteObject(line); + } + if (line1) { + sgworld1.Creator.DeleteObject(line1); + } + } else { + if (!TDLayer) { + this.loadTDGLLayer(); + } + } + } }, mounted() { this.$nextTick(function () { @@ -230,22 +200,6 @@ }, }, }; - // let option = { - // url: SmartEarthRootUrl + "Workers/image/earth.jpg", - // fullscreenButton: true, - // licenseServer: "http://183.162.245.49:18080", - // minViewHeight: parseFloat(common.minviewheight), - // contextOptions: { - // failIfMajorPerformanceCaveat: false, - // webgl: { - // alpha: true, - // preserveDrawingBuffer: true - // } - // } - // }; - - //EPSG4326 - // Cesium.ExpandBySmartEarth.Ellipsoid.z = 6356752.3142451793; // 鍖椾含 window.sgworld1 = new SmartEarth.EarthCtrl( @@ -268,30 +222,9 @@ true, "" ); - let treeNode = URLInCode.tdglTmsCode; - sgworld1.Creator.createImageryProvider( - treeNode.name, - "tms", - { - id: treeNode.id, - url: treeNode.urls, - fileExtension: treeNode.img || "png", - enablePickFeatures: false, - level: treeNode.Level, - minimumLevel: treeNode.minimumLevel, - maximumLevel: treeNode.maximumLevel, - tilingScheme: - treeNode.tileType === "Geo" - ? new Cesium.GeographicTilingScheme() - : new Cesium.WebMercatorTilingScheme(), - alpha: treeNode.alpha, - }, - "0", - treeNode.zIndex, - true, - "" - ); - + if (this.isLand) { + this.loadTDGLLayer(); + } var p = { destination: sgworld.Navigate.getPosition(), orientation: { @@ -302,32 +235,15 @@ }; sgworld1.Viewer.camera.setView(p); setTimeout(() => { + window.loading && window.loading.close(); + }, 100); + setTimeout(() => { window.APPLoading && window.APPLoading.close(); - }, 1000); + }, 100); } ); - // 鍚堣偉 - // window.sgworld1 = new SmartEarth.SGWorld( - // "sdkContainer1", - // Cesium, - // option, - // null, - // function () { - // var p = { - // destination: sgworld.Navigate.getPosition(), - // orientation: { - // heading: sgworld.Viewer.camera.heading, - // pitch: sgworld.Viewer.camera.pitch, - // roll: sgworld.Viewer.camera.roll, - // }, - // }; - // sgworld1.Viewer.camera.setView(p); - // setTimeout(() => { - // window.APPLoading && window.APPLoading.close(); - // }, 1000); - // } - // ); + window.Viewer1 = sgworld1._Viewer; Viewer1.shadows = false; @@ -338,176 +254,9 @@ // Viewer.scene.screenSpaceCameraController.enableCollisionDetection = false; Viewer1.scene.globe.translucency.frontFaceAlpha = 0.5; Viewer1.scene.globe.undergroundColor = undefined; - let type = 0; - //鐐瑰嚮宸︿晶鏄剧ず鑼冨洿銆佽鎯� - handler1 = new Cesium.ScreenSpaceEventHandler(Viewer1.scene.canvas); - handler1.setInputAction((event) => { - let that = this; - this.clearInfoPanel(); - let p; - if (type === 0) { - p = sgworld1.Navigate.getMouseDegrees(event); - } else { - p = sgworld1.Navigate.getMousePosition(event); - } - // alert(JSON.stringify(p)) - // console.log(p); - if (p) { - if (line) { - sgworld.Creator.DeleteObject(line); - line = null; - } - if (line1) { - sgworld1.Creator.DeleteObject(line1); - line1 = null; - } - if (divPoint) { - sgworld.Creator.DeleteObject(divPoint); - divPoint = null; - } - if (divPoint1) { - sgworld1.Creator.DeleteObject(divPoint1); - divPoint1 = null; - } - axios - .get( - "http://10.10.4.115:8022/geowinmap_xncs/ds?r=0.9158559377752831&serviceproviderid=map.vectorserviceprovider&serviceid=queryfeature&featcls=225%25E8%258C%2583%25E5%259B%25B4%25E5%2588%2586%25E5%258C%25BA%25E8%25A7%2584%25E5%2588%2592.geojson&lng=" + - p.lon + - "&lat=" + - p.lat + - "&geom=true&requesttype=json" - ) - .then((response) => { - let center = { lon: 0, lat: 0 }; - let polygon = that.read(response.data.geometry); - if (polygon.length > 0) { - var geometry = []; - let points = polygon[0].split(","); - for (let i = 0; i < points.length; i++) { - let point = points[i].replace(/^\s+|\s+$/g, "").split(" "); - center.lon += parseFloat(point[0]) / points.length; - center.lat += parseFloat(point[1]) / points.length; - geometry.push({ - x: parseFloat(point[0]), - y: parseFloat(point[1]), - z: 0, - }); - } - if (line) { - sgworld.Creator.DeleteObject(line); - line = null; - } - if (line1) { - sgworld1.Creator.DeleteObject(line1); - line1 = null; - } - line = sgworld.Creator.createPolyline( - geometry, - "#ff0000", - 1, - 0, - "绾�" - ); - line1 = sgworld1.Creator.createPolyline( - geometry, - "#ff0000", - 1, - 0, - "绾�" - ); - } - if (center.lon != 0 && center.lat != 0) { - axios - .get( - "http://10.10.4.115:8022//poisearch/guihuacon/getInfo?ydbm=" + - response.data.NO - ) - .then( - (info) => { - try { - if (divPoint) { - sgworld.Creator.DeleteObject(divPoint); - divPoint = null; - } - if (divPoint1) { - sgworld1.Creator.DeleteObject(divPoint1); - divPoint1 = null; - } - // console.log(info.data.data); - //鍏抽棴寮圭獥 - layuiLayer.close(SmartEarthPopupData.layerProp); - //鍏抽棴鍙充晶淇℃伅寮圭獥 - Bus.$emit("closeRightPop", true); - this.showTDinfo = true; - let data = info.data.data; - if (data.yongdishuju === null) { - this.dikuanxinxi = true; - return; - } else { - this.dikuanxinxi = false; - } - this.qiyexinxi = info.data.data.qiyexinxi; - this.qysl = data.qiyexinxi.length; - if (this.qysl > 0) { - this.ydbm = data.qiyexinxi[0]["鍦板潡缂栧彿"]; - } else { - this.ydbm = data.churangxinxi["ydbh"]; - } - try { - this.ydlx = data.yongdishuju["ydlxmc"]; - } catch (e) {} - try { - this.cyfx = data.yongdishuju["cyfx"]; - } catch (e) {} - try { - // this.crzt = response.data["ZT"]; - switch (response.data["ZT"]) { - case 3: - this.crzt = "宸插嚭璁�"; - break; - case 4: - this.crzt = "鏈嚭璁�"; - break; - } - } catch (e) {} - try { - this.ydmj = parseFloat( - "" + data.yongdishuju["ydmj"] - ).toFixed(0); - } catch (e) {} - try { - this.crnx = data.churangxinxi["crnx"]; - } catch (e) {} - try { - this.crnf = data.churangxinxi["crnf"]; - } catch (e) {} - try { - this.rjl = data.yongdishuju["rjl"]; - } catch (e) {} - try { - this.jzxg = data.yongdishuju["jzxg"]; - } catch (e) {} - try { - this.jzmd = data.yongdishuju["jzmd"]; - } catch (e) {} - } catch (e) {} - }, - (info) => { - this.$notify.error({ - title: "鎻愮ず", - message: "鏈煡璇㈠埌鏁版嵁锛�", - }); - // alert("鏈煡璇㈠埌鏁版嵁锛�"); - console.log("鏌ヨ澶辫触锛�"); - } - ); - } - }); - } - }, Cesium.ScreenSpaceEventType.LEFT_CLICK); - + this.addEvent(); }); //鍏抽棴寮圭獥 Bus.$on("closeLandInfoPop", (data) => { @@ -517,6 +266,271 @@ }); }, methods: { + + setImageComparison(isStart) { + this.isImage = isStart; + if (!this.isImage) { + this.destroyImageLayer(); + } + }, + destroyImageLayer() { + if (activeLi) { + activeLi.classList.remove('active'); + activeLi = null; + } + if (nLayer) { + Viewer1.imageryLayers.remove(nLayer, true); + nLayer = null; + } + }, + changeLeftMap(event, item, index) { + let liObj = event.currentTarget; + if (activeLi) { + activeLi.classList.remove('active'); + activeLi = null; + } + liObj.classList.add('active'); + activeLi = liObj; + this.loadImageLayer(item); + }, + loadImageLayer(year) { + if (nLayer) { + Viewer1.imageryLayers.remove(nLayer, true); + nLayer = null; + } + nLayer = this.loadBJ54ImageLayer(year); + }, + loadBJ54ImageLayer(year) { + let url = "http://172.26.64.84/service/ImageEngine/picdis/abc"; + //let url = option.url; + //let year = option.year; + let paramUrl = `${url}?user=jjjskfq&password=Jjjskfq@2022&layer=Sate_${year}&style=&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fpng&TileMatrix={z}&TileCol={nx}&TileRow={ny}`; + let minx = 113.168199 * Math.PI / 180.0; + let miny = 39.230551 * Math.PI / 180.0; + let maxx = 118.562362 * Math.PI / 180.0; + let maxy = 41.294714 * Math.PI / 180.0; + let rectangle = new Cesium.Rectangle(minx, miny, maxx, maxy); + let tilingScheme = new Cesium.GeographicTilingScheme({ + rectangle: rectangle, + numberOfLevelZeroTilesX: 2, + numberOfLevelZeroTilesY: 1 + }); + var dx = { + url: paramUrl, + tilingScheme: tilingScheme, + customTags: { + nx: function (imageryProvider, x, y, level) { + return (2 << (level - 1)) + x; + }, + ny: function (imageryProvider, x, y, level) { + return (2 << (level - 1)) + y; + } + } + }; + var imageryProvider = new Cesium.UrlTemplateImageryProvider(dx); + let imageLayer = new Cesium.ImageryLayer(imageryProvider, { alpha: 1, brightness: 1.0 }); + Viewer1.imageryLayers.add(imageLayer, 2); + return imageLayer; + }, + loadTDGLLayer() { + let treeNode = URLInCode.tdglTmsCode; + TDLayer = sgworld1.Creator.createImageryProvider( + treeNode.name, + "tms", + { + id: treeNode.id, + url: treeNode.urls, + fileExtension: treeNode.img || "png", + enablePickFeatures: false, + level: treeNode.Level, + minimumLevel: treeNode.minimumLevel, + maximumLevel: treeNode.maximumLevel, + tilingScheme: + treeNode.tileType === "Geo" + ? new Cesium.GeographicTilingScheme() + : new Cesium.WebMercatorTilingScheme(), + alpha: treeNode.alpha, + }, + "0", + treeNode.zIndex, + true, + "" + ); + + }, + addEvent() { + let type = 0; + //鐐瑰嚮宸︿晶鏄剧ず鑼冨洿銆佽鎯� + handler1 = new Cesium.ScreenSpaceEventHandler(Viewer1.scene.canvas); + handler1.setInputAction((event) => { + if (this.isLand) { + let that = this; + this.clearInfoPanel(); + let p; + if (type === 0) { + p = sgworld1.Navigate.getMouseDegrees(event); + } else { + p = sgworld1.Navigate.getMousePosition(event); + } + // alert(JSON.stringify(p)) + // console.log(p); + if (p) { + if (line) { + sgworld.Creator.DeleteObject(line); + line = null; + } + if (line1) { + sgworld1.Creator.DeleteObject(line1); + line1 = null; + } + if (divPoint) { + sgworld.Creator.DeleteObject(divPoint); + divPoint = null; + } + if (divPoint1) { + sgworld1.Creator.DeleteObject(divPoint1); + divPoint1 = null; + } + axios + .get( + "http://10.10.4.115:8022/geowinmap_xncs/ds?r=0.9158559377752831&serviceproviderid=map.vectorserviceprovider&serviceid=queryfeature&featcls=225%25E8%258C%2583%25E5%259B%25B4%25E5%2588%2586%25E5%258C%25BA%25E8%25A7%2584%25E5%2588%2592.geojson&lng=" + + p.lon + + "&lat=" + + p.lat + + "&geom=true&requesttype=json" + ) + .then((response) => { + let center = { lon: 0, lat: 0 }; + let polygon = that.read(response.data.geometry); + if (polygon.length > 0) { + var geometry = []; + let points = polygon[0].split(","); + for (let i = 0; i < points.length; i++) { + let point = points[i].replace(/^\s+|\s+$/g, "").split(" "); + center.lon += parseFloat(point[0]) / points.length; + center.lat += parseFloat(point[1]) / points.length; + geometry.push({ + x: parseFloat(point[0]), + y: parseFloat(point[1]), + z: 0, + }); + } + if (line) { + sgworld.Creator.DeleteObject(line); + line = null; + } + if (line1) { + sgworld1.Creator.DeleteObject(line1); + line1 = null; + } + line = sgworld.Creator.createPolyline( + geometry, + "#ff0000", + 1, + 0, + "绾�" + ); + line1 = sgworld1.Creator.createPolyline( + geometry, + "#ff0000", + 1, + 0, + "绾�" + ); + } + if (center.lon != 0 && center.lat != 0) { + axios + .get( + "http://10.10.4.115:8022//poisearch/guihuacon/getInfo?ydbm=" + + response.data.NO + ) + .then( + (info) => { + try { + if (divPoint) { + sgworld.Creator.DeleteObject(divPoint); + divPoint = null; + } + if (divPoint1) { + sgworld1.Creator.DeleteObject(divPoint1); + divPoint1 = null; + } + // console.log(info.data.data); + //鍏抽棴寮圭獥 + layuiLayer.close(SmartEarthPopupData.layerProp); + //鍏抽棴鍙充晶淇℃伅寮圭獥 + Bus.$emit("closeRightPop", true); + this.showTDinfo = true; + let data = info.data.data; + if (data.yongdishuju === null) { + this.dikuanxinxi = true; + return; + } else { + this.dikuanxinxi = false; + } + this.qiyexinxi = info.data.data.qiyexinxi; + this.qysl = data.qiyexinxi.length; + + if (this.qysl > 0) { + this.ydbm = data.qiyexinxi[0]["鍦板潡缂栧彿"]; + } else { + this.ydbm = data.churangxinxi["ydbh"]; + } + try { + this.ydlx = data.yongdishuju["ydlxmc"]; + } catch (e) { } + try { + this.cyfx = data.yongdishuju["cyfx"]; + } catch (e) { } + try { + // this.crzt = response.data["ZT"]; + switch (response.data["ZT"]) { + case 3: + this.crzt = "宸插嚭璁�"; + break; + case 4: + this.crzt = "鏈嚭璁�"; + break; + } + } catch (e) { } + try { + this.ydmj = parseFloat( + "" + data.yongdishuju["ydmj"] + ).toFixed(0); + } catch (e) { } + try { + this.crnx = data.churangxinxi["crnx"]; + } catch (e) { } + try { + this.crnf = data.churangxinxi["crnf"]; + } catch (e) { } + try { + this.rjl = data.yongdishuju["rjl"]; + } catch (e) { } + try { + this.jzxg = data.yongdishuju["jzxg"]; + } catch (e) { } + try { + this.jzmd = data.yongdishuju["jzmd"]; + } catch (e) { } + } catch (e) { } + }, + (info) => { + this.$notify.error({ + title: "鎻愮ず", + message: "鏈煡璇㈠埌鏁版嵁锛�", + }); + // alert("鏈煡璇㈠埌鏁版嵁锛�"); + console.log("鏌ヨ澶辫触锛�"); + } + ); + } + }); + } + } + }, Cesium.ScreenSpaceEventType.LEFT_CLICK); + + }, dialogClose() { this.queryForm.content = ""; this.queryForm.type = "浼佷笟鍚嶇О"; @@ -552,7 +566,7 @@ const tableData = this.qiyexinxi; // 鎼滅储鍑虹殑缁撴灉 let searchTable = this.tableRes(this.queryForm.content, tableData); - + // 鎼滅储鍑虹殑鏁伴噺杩涜鍒嗛〉 this.searchNum = searchTable.length; //鏍规嵁椤电爜灞曠ず鍐呭 @@ -1049,6 +1063,7 @@ background-size: 100% 100%; margin: 0 auto; } + .tdInfo .title li { margin-left: 32px; /* width: 78px; */ @@ -1060,6 +1075,7 @@ -webkit-background-clip: text; -webkit-text-fill-color: transparent; } + .content1, .content2, .content3 { @@ -1070,6 +1086,7 @@ flex-direction: column; justify-content: space-between; } + .content1 li, .content2 li, .content3 li { @@ -1079,14 +1096,17 @@ line-height: 26px; text-shadow: 0px 1px 6px rgba(3, 10, 26, 0.5); } + .content1 { height: 136px; padding: 19px 0; } + .content2 { height: 132px; padding: 21px 0; } + .content3 { height: 116px; padding-top: 21px; @@ -1121,13 +1141,13 @@ box-shadow: 0px 1px 10px 0px rgba(3, 10, 26, 0.38); } -.aboutDialog >>> .el-dialog__body { +.aboutDialog>>>.el-dialog__body { height: 77%; padding: 0px !important; padding: 15px !important; } -.aboutDialog >>> .el-dialog__header { +.aboutDialog>>>.el-dialog__header { padding: 10px 20px; height: 25px; line-height: 25px; @@ -1136,28 +1156,28 @@ background: transparent; } -.aboutDialog >>> .el-dialog__title { +.aboutDialog>>>.el-dialog__title { color: #fff; font-size: 1.1rem; } -.aboutDialog >>> .el-dialog__headerbtn .el-dialog__close { +.aboutDialog>>>.el-dialog__headerbtn .el-dialog__close { color: #fff; } -.aboutDialog >>> .el-dialog__headerbtn:hover .el-dialog__close { +.aboutDialog>>>.el-dialog__headerbtn:hover .el-dialog__close { color: #fff; } -.aboutDialog >>> .el-dialog__headerbtn { +.aboutDialog>>>.el-dialog__headerbtn { top: 13px; } -.aboutDialog >>> .el-form-item { +.aboutDialog>>>.el-form-item { margin-bottom: 10px; } -.el-form >>> .el-form-item__label { +.el-form>>>.el-form-item__label { color: #fff; } @@ -1206,46 +1226,79 @@ background-color: transparent; } -.el-table /deep/ .el-table__body tr.current-row > td { +.el-table /deep/ .el-table__body tr.current-row>td { background-color: transparent; } -.el-table--enable-row-hover /deep/ .el-table__body tr:hover > td { +.el-table--enable-row-hover /deep/ .el-table__body tr:hover>td { background-color: rgba(0, 32, 70, 0.7) !important; } -.el-table__body /deep/ tr.current-row > td { +.el-table__body /deep/ tr.current-row>td { background-color: rgba(0, 32, 70, 0.7) !important; } -.aboutDialog .el-dialog-div .dialog-footer { -} +.aboutDialog .el-dialog-div .dialog-footer {} .el-pagination { color: #fff; } -.el-pagination >>> .el-pagination__total, -.el-pagination >>> .btn-next, -.el-pagination >>> .btn-prev { +.el-pagination>>>.el-pagination__total, +.el-pagination>>>.btn-next, +.el-pagination>>>.btn-prev { background: transparent; color: #fff; font-size: 1rem; } -.el-pagination >>> .el-pager li { +.el-pagination>>>.el-pager li { line-height: 27px; background-color: transparent; font-size: 1rem; } -.el-pagination >>> .el-pager li.btn-quicknext, -.el-pagination >>> .el-pager li.btn-quickprev { +.el-pagination>>>.el-pager li.btn-quicknext, +.el-pagination>>>.el-pager li.btn-quickprev { font-size: 1rem; line-height: 28px; color: #fff; } +.listBox { + position: absolute; + right: 20px; + top: 100px; + +} + +.listBox .active { + + background: rgba(255, 166, 0, 0.808); + +} + +.listBox li { + padding: 2px; + margin-top: 1px; + border-radius: 2px; + color: white; + background: rgba(14, 50, 143, 0.6); + font-size: 14px; + cursor: pointer; +} + +/* 灞忓箷鍒嗚鲸鐜囨斁澶т负 125 */ +@media (-webkit-min-device-pixel-ratio: 1.25) { + .listBox li { + font-size: 12px; + } +} + +.listBox li:hover { + background: rgba(255, 166, 0, 0.808); +} + ::-webkit-scrollbar { /*婊氬姩鏉℃暣浣撴牱寮�*/ width: 4px; diff --git a/src/components/menu/bottom-menu.vue b/src/components/menu/bottom-menu.vue index badb2fb..288b38e 100644 --- a/src/components/menu/bottom-menu.vue +++ b/src/components/menu/bottom-menu.vue @@ -1,6 +1,6 @@ <template> <div class="specialTool"> - <div class="bottomwrapper" :class="{ 'top-btn-active': viewer1Show }"> + <div class="bottomwrapper" :class="{ 'top-btn-active': viewer1Show && isLand }"> <div class="imgbox" @click="tdglHandle"> <img src="@assets/img/new/tudiguanli.png" alt="" /> </div> @@ -9,7 +9,7 @@ </div> </div> - <div class="bottomwrapper" @click="historyHandle"> + <div class="bottomwrapper" @click="historyHandle" :class="{ 'top-btn-active': viewer1Show && !isLand }"> <div class="imgbox"> <img src="@assets/img/new/chengshigengxin.png" alt="" /> </div> @@ -25,29 +25,13 @@ <div class="textbox"> <span> 缁煎悎鎵╁睍 </span> </div> - <el-dropdown-menu - slot="dropdown" - :append-to-body="false" - class="popper-dropdown" - > - <el-dropdown-item command="stdsjHandle" - >瑙嗗浘澶ф暟鎹钩鍙�</el-dropdown-item - > - <el-dropdown-item command="bzdSystem" - >鏍囧噯鍦扮洃绠″钩鍙�</el-dropdown-item - > - <el-dropdown-item v-if="isShowSPJK" command="spjkHandle" - >瑙嗛闆嗘垚涓庡彲瑙嗗寲</el-dropdown-item - > - <el-dropdown-item v-else command="closeSpjk" - >鍏抽棴瑙嗛鐐逛綅鍒嗗竷</el-dropdown-item - > - <el-dropdown-item v-if="isShowSjxl" command="sjxlHandle" - >鎵嬫満淇′护鐑姏鍒嗗竷</el-dropdown-item - > - <el-dropdown-item v-else command="closeSjxl" - >鍏抽棴淇′护鐑姏鍒嗗竷</el-dropdown-item - > + <el-dropdown-menu slot="dropdown" :append-to-body="false" class="popper-dropdown"> + <el-dropdown-item command="stdsjHandle">瑙嗗浘澶ф暟鎹钩鍙�</el-dropdown-item> + <el-dropdown-item command="bzdSystem">鏍囧噯鍦扮洃绠″钩鍙�</el-dropdown-item> + <el-dropdown-item v-if="isShowSPJK" command="spjkHandle">瑙嗛闆嗘垚涓庡彲瑙嗗寲</el-dropdown-item> + <el-dropdown-item v-else command="closeSpjk">鍏抽棴瑙嗛鐐逛綅鍒嗗竷</el-dropdown-item> + <el-dropdown-item v-if="isShowSjxl" command="sjxlHandle">鎵嬫満淇′护鐑姏鍒嗗竷</el-dropdown-item> + <el-dropdown-item v-else command="closeSjxl">鍏抽棴淇′护鐑姏鍒嗗竷</el-dropdown-item> <el-dropdown-item command="csgxHandle">鍩庡競鏇存柊</el-dropdown-item> </el-dropdown-menu> </el-dropdown> @@ -60,75 +44,15 @@ <div class="textbox"> <span> 绮炬ā绀鸿寖 </span> </div> - <el-dropdown-menu - slot="dropdown" - :append-to-body="false" - class="popper-dropdown" - > + <el-dropdown-menu slot="dropdown" :append-to-body="false" class="popper-dropdown"> <el-dropdown-item command="fcfhHandle">鍒嗗眰鍒嗘埛</el-dropdown-item> <!-- <el-dropdown-item command="sprhHandle">鍦烘櫙瑙嗛铻嶅悎</el-dropdown-item> --> - <el-dropdown-item v-if="isShowSPRH" command="jiqirendahui" - >鍦烘櫙瑙嗛铻嶅悎</el-dropdown-item - > - <el-dropdown-item v-else command="jiqirendahui" - >鍏抽棴瑙嗛铻嶅悎</el-dropdown-item - > + <el-dropdown-item v-if="isShowSPRH" command="jiqirendahui">鍦烘櫙瑙嗛铻嶅悎</el-dropdown-item> + <el-dropdown-item v-else command="jiqirendahui">鍏抽棴瑙嗛铻嶅悎</el-dropdown-item> </el-dropdown-menu> </el-dropdown> </div> - <!-- <el-tooltip - class="item" - effect="dark" - content="鍦熷湴绠$悊" - placement="bottom" - popper-class="item_tooltip" - > - <i - @click="tdglHandle" - class="iconfont icon-nongcuntudiwenti" - :class="{ 'top-btn-active': viewer1Show }" - ></i> - </el-tooltip> - <el-tooltip - class="item" - effect="dark" - content="鍩庡競閮ㄤ欢鍙鍖�" - placement="top" - > - <el-dropdown placement="top" @command="handleCommand" trigger="click"> - <span class="el-dropdown-link"> - <i class="el-icon-arrow-down el-icon--right"></i> - </span> - <el-dropdown-menu slot="dropdown"> - <el-dropdown-item command="qytj">鎰熺煡璁惧涓�寮犲浘</el-dropdown-item> - <el-dropdown-item command="spjkHandle" - >瑙嗛闆嗘垚涓庡彲瑙嗗寲灞曠ず</el-dropdown-item - > - <el-dropdown-item command="stdsjHandle"> - 瑙嗛鏅鸿兘鍒嗘瀽鎴愭灉灞曠ず</el-dropdown-item - > - </el-dropdown-menu> - </el-dropdown> - </el-tooltip> - - - <el-tooltip class="item" effect="dark" content="鍦烘櫙娴忚" placement="right"> - <el-dropdown> - <span class="el-dropdown-link"> - <i class="el-icon-position"></i> - </span> - <el-dropdown-menu slot="dropdown"> - <el-dropdown-item - v-for="item in romanOption" - :key="item.name" - @click="setRomanFly(item)" - > - {{ item.name }}</el-dropdown-item - > - </el-dropdown-menu> - </el-dropdown> - </el-tooltip> --> <div class="funcBox" v-if="testSHIPINRONGHE"> <el-form ref="form" label-width="80px"> <el-form-item label="鍥涘懆鏂瑰悜:"> @@ -139,128 +63,33 @@ @input="updateVideo" > </el-slider> --> - <el-slider - :min="0" - :max="360" - v-model="robotVideoList[3].heading" - @input="updateVideo" - > + <el-slider :min="0" :max="360" v-model="robotVideoList[3].heading" @input="updateVideo"> </el-slider> </el-form-item> <el-form-item label="淇话瑙掑害:"> - <el-slider - :min="-89" - :max="89" - v-model="robotVideoList[3].pitch" - @input="updateVideo" - > + <el-slider :min="-89" :max="89" v-model="robotVideoList[3].pitch" @input="updateVideo"> </el-slider> </el-form-item> <el-form-item label="姘村钩瑙嗚:"> - <el-slider - :min="30" - :max="120" - v-model="robotVideoList[3].horizonAngle" - @input="updateVideo" - > + <el-slider :min="30" :max="120" v-model="robotVideoList[3].horizonAngle" @input="updateVideo"> </el-slider> </el-form-item> <el-form-item label="鍨傜洿瑙嗚:"> - <el-slider - :min="30" - :max="120" - v-model="robotVideoList[3].verticalAngle" - @input="updateVideo" - > + <el-slider :min="30" :max="120" v-model="robotVideoList[3].verticalAngle" @input="updateVideo"> </el-slider> </el-form-item> <el-form-item label="鏈�杩滄姇灏�:"> - <el-slider - :min="100" - :max="300" - v-model="robotVideoList[3].far" - @input="updateVideo" - > + <el-slider :min="100" :max="300" v-model="robotVideoList[3].far" @input="updateVideo"> </el-slider> </el-form-item> <el-form-item label="閫忔槑搴�:"> - <el-slider - :step="0.1" - :min="0" - :max="1" - v-model="robotVideoList[3].alpha" - @input="updateVideo" - > + <el-slider :step="0.1" :min="0" :max="1" v-model="robotVideoList[3].alpha" @input="updateVideo"> </el-slider> </el-form-item> </el-form> </div> - <!-- <el-tooltip - class="item" - effect="dark" - content="瑙嗗浘澶ф暟鎹钩鍙�" - placement="bottom" - popper-class="item_tooltip" - > - <i @click="stdsjHandle" class="el-icon-data-line"> </i> - </el-tooltip> - <el-tooltip - class="item" - effect="dark" - content="鍦熷湴绠$悊" - placement="bottom" - popper-class="item_tooltip" - > - <i - @click="tdglHandle" - class="iconfont icon-nongcuntudiwenti" - :class="{ 'top-btn-active': viewer1Show }" - ></i> - </el-tooltip> --> - <!-- <el-tooltip - class="item" - effect="dark" - content="鏁版嵁姹囪仛" - placement="bottom" - popper-class="item_tooltip" - > - <i - @click="qytj" - class="el-icon-pie-chart" - :class="{ 'top-btn-active': qyEchartsShow }" - ></i> - </el-tooltip> --> - <!-- - <el-tooltip - class="item" - effect="dark" - content="鍦烘櫙婕父" - placement="bottom" - popper-class="item_tooltip" - > - <i @click="sceneRoaming()" class="el-icon-position"></i> - </el-tooltip> --> - <!-- <el-tooltip - class="item" - effect="dark" - content="瑙嗛铻嶅悎" - placement="bottom" - popper-class="item_tooltip" - > - <i @click="shipinronghe(videoList)" class="el-icon-position"></i> - </el-tooltip> - <div id="scroll" class="scroll_div"> - <ul> - <li - v-for="item in romanOption" - :key="item.name" - @click="setRomanFly(item)" - > - {{ item.name }} - </li> - </ul> - </div> --> + </div> </template> @@ -277,17 +106,21 @@ display: flex; justify-content: space-between; } + .specialTool .bottomwrapper:nth-of-type(2), .specialTool .bottomwrapper:nth-of-type(3) { /* background: red; */ position: relative; top: -18px; } + .bottomwrapper { display: flex; flex-direction: column; align-items: center; + cursor: pointer; } + .imgbox { width: 84px; height: 81px; @@ -295,6 +128,7 @@ background-size: 100% 100%; position: relative; } + .imgbox img { width: 38px; position: absolute; @@ -302,6 +136,7 @@ left: 52.5%; transform: translate(-50%, -50%); } + .textbox { margin-top: 2px; width: 100px; @@ -309,6 +144,7 @@ background-image: url("~@/assets/img/new/textbg.png"); background-size: 100% 100%; } + .textbox span { text-align: center; display: block; @@ -319,12 +155,14 @@ line-height: 28px; text-shadow: 0px 2px 2px rgba(32, 32, 32, 0.8); } + .list { position: absolute; background: rgba(14, 50, 143, 0.6); bottom: 124px; box-shadow: 0px 0px 10px 5px rgba(11, 78, 179, 0.7) inset; } + .list li { min-width: 154px; height: 35px; @@ -346,12 +184,15 @@ width: 155px; border: none; } -.el-dropdown /deep/ .el-dropdown-selfdefine{ + +.el-dropdown /deep/ .el-dropdown-selfdefine { margin-left: 8px !important; } + .csbj .el-dropdown-menu { top: -215px !important; } + .jxmx .el-dropdown-menu { top: -110px !important; } @@ -360,9 +201,11 @@ color: #fff; line-height: 35px; } + .el-dropdown-menu /deep/ .popper__arrow { border: none; } + .csbj .el-popper /deep/ .popper__arrow::after { border-top-color: rgba(14, 50, 143, 0.6); border-top-width: 6px; @@ -370,6 +213,7 @@ top: 201px; left: 37px; } + .jxmx .el-popper /deep/ .popper__arrow::after { border-top-color: rgba(14, 50, 143, 0.6); border-top-width: 6px; @@ -410,6 +254,7 @@ .scroll_div li:hover { color: #0987ff; } + .funcBox { width: 230px; position: absolute; @@ -455,6 +300,7 @@ lon: 116.51507, lat: 39.79686, height: 40, + isLand: true, // 鍥涘懆鏂瑰悜 heading: 305, // 淇话瑙掑害 @@ -469,63 +315,7 @@ far: 3000, cameraIndexCode: "2b046ef675704975a8d45f1b00cd946b", }, - // { - // name: "video3", - // lon: 116.5146339, - // lat: 39.7967196, - // height: 80, - // // 鍥涘懆鏂瑰悜 - // heading: 62, - // // 淇话瑙掑害 - // pitch: -43, - // // 姘村钩瑙掑害 - // horizonAngle: 45, - // // 鍨傜洿瑙掑害 - // verticalAngle: 64, - // // 閫忔槑搴� - // alpha: 1, - // // 閫忔槑搴� - // far: 166, - // cameraIndexCode: "a0ffb1dedde7468187d0b0f91d431475", - // }, - // { - // name: "video4", - // lon: 116.51496, - // lat: 39.796854, - // height: 80, - // // 鍥涘懆鏂瑰悜 - // heading: 148, - // // 淇话瑙掑害 - // pitch: -39, - // // 姘村钩瑙掑害 - // horizonAngle: 40, - // // 鍨傜洿瑙掑害 - // verticalAngle: 58, - // // 閫忔槑搴� - // alpha: 1, - // // 閫忔槑搴� - // far: 219, - // cameraIndexCode: "e6ec9aaf9320455ab6c5ea224f3f5f38", - // }, - // { - // name: "video1", - // lon: 116.51522, - // lat: 39.79724, - // height: 80, - // // 鍥涘懆鏂瑰悜 - // heading: 64, - // // 淇话瑙掑害 - // pitch: -47, - // // 姘村钩瑙掑害 - // horizonAngle: 30, - // // 鍨傜洿瑙掑害 - // verticalAngle: 60, - // // 閫忔槑搴� - // alpha: 1, - // // 閫忔槑搴� - // far: 166, - // cameraIndexCode: "1523335e47a5476f9f65f90f9983e875", - // }, + ], robotVideoList: [ { @@ -623,10 +413,10 @@ }; }, computed: { - ...mapState(["viewer1Show", "yqfk", "qyEchartsShow"]), + ...mapState(["viewer1Show", "isLand", "yqfk", "qyEchartsShow"]), }, methods: { - ...mapMutations(["setViewer1Show", "setqyEchartsShow"]), + ...mapMutations(["setViewer1Show", "setIsLand", "setqyEchartsShow"]), showList(index) { switch (index) { case "csbj": @@ -676,20 +466,57 @@ break; } }, - tdglHandle() { - if (!this.viewer1Show) { - const loading = this.$loading({ - lock: true, - text: "鍦熷湴绠$悊鍔熻兘鍔犺浇涓紝璇风◢鍚�", - spinner: "el-icon-loading", - background: "rgba(0, 0, 0, 0.7)", - }); - setTimeout(() => { - loading.close(); - }, 3500); + historyHandle() { + if (this.isLand) { + this.$parent.changeMode('褰卞儚搴曞浘'); + if (!this.viewer1Show) { + window.loading = this.$loading({ + lock: true, + text: "褰卞儚瀵规瘮鍔熻兘鍔犺浇涓紝璇风◢鍚�", + spinner: "el-icon-loading", + background: "rgba(0, 0, 0, 0.7)", + }); + } + this.setIsLand(false); + this.setViewer1Show(true); + } else { + if (!this.viewer1Show) { + this.$parent.changeMode('褰卞儚搴曞浘'); + window.loading = this.$loading({ + lock: true, + text: "褰卞儚瀵规瘮鍔熻兘鍔犺浇涓紝璇风◢鍚�", + spinner: "el-icon-loading", + background: "rgba(0, 0, 0, 0.7)", + }); + } + this.setIsLand(false); + this.setViewer1Show(!this.viewer1Show); } - - this.setViewer1Show(!this.viewer1Show); + }, + tdglHandle() { + if (!this.isLand) { + if (!this.viewer1Show) { + window.loading = this.$loading({ + lock: true, + text: "鍦熷湴绠$悊鍔熻兘鍔犺浇涓紝璇风◢鍚�", + spinner: "el-icon-loading", + background: "rgba(0, 0, 0, 0.7)", + }); + } + this.setIsLand(true); + this.setViewer1Show(true); + } else { + if (!this.viewer1Show) { + window.loading = this.$loading({ + lock: true, + text: "鍦熷湴绠$悊鍔熻兘鍔犺浇涓紝璇风◢鍚�", + spinner: "el-icon-loading", + background: "rgba(0, 0, 0, 0.7)", + }); + } + this.setIsLand(true); + this.setViewer1Show(!this.viewer1Show); + } }, stdsjHandle() { // window.location.href = @@ -745,9 +572,9 @@ heatMapItem.deleteObject(); } }, - historyHandle() { - this.$store.commit("showHistory", true); - }, + // historyHandle() { + // this.$store.commit("showHistory", true); + // }, csgxHandle() { Bus.$emit("openMyResourcePop", true); }, diff --git a/src/components/right/right-top.vue b/src/components/right/right-top.vue index 0be5280..c265228 100644 --- a/src/components/right/right-top.vue +++ b/src/components/right/right-top.vue @@ -409,6 +409,7 @@ color: #fff; padding: 10px; box-sizing: border-box; + z-index: 9999; } .transition-box ul li { /* min-width: 154px; */ diff --git a/src/store/index.js b/src/store/index.js index 27cb7b7..aa388bb 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -19,6 +19,7 @@ let store = new Vuex.Store({ state: { viewer1Show: false, + isLand: true, qyEchartsShow: false, layerTreeTwoScreen: false, yqfk: false, @@ -52,6 +53,9 @@ setCesiumInit(state, b) { state.cesiumInit = b }, + setIsLand(state, b) { + state.isLand = b; + }, setViewer1Show(state, b) { state.viewer1Show = b; }, -- Gitblit v1.9.3