From 04dae190af26730e8e0dcfb7cb4ec066400422f3 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期一, 14 八月 2023 16:43:25 +0800 Subject: [PATCH] 生产环境加载高德地图显示空白修改 --- src/components/Screen/bottom.vue | 377 ++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 300 insertions(+), 77 deletions(-) diff --git a/src/components/Screen/bottom.vue b/src/components/Screen/bottom.vue index 7de4602..a9327a1 100644 --- a/src/components/Screen/bottom.vue +++ b/src/components/Screen/bottom.vue @@ -28,7 +28,10 @@ v-model="searchName" @change="handleSearchChange(item)" > - <el-button slot="append" icon="el-icon-search"></el-button> + <el-button + slot="append" + icon="el-icon-search" + ></el-button> </el-input> </div> <div class="popover-content__list"> @@ -46,9 +49,34 @@ </div> </el-popover> </div> + + <div + class="bottombtn" + :class="showTree ? 'active' : ''" + @click="handleTree" + > + 鍥惧眰绠$悊 + </div> </div> <div class="bottom13"> - <img :src="yxImg" @click="ChangeBaseLayer" /> + <div + class="bottom13-wrapper" + :class="isExpand ? 'expend' : 'fold'" + @mouseover="handleMouseOver" + @mouseout="handleMouseOut" + > + <div + v-for="item in yxList" + yxList + :class="item.name == currYX && isExpand ? [item.key, 'active'] : item.key" + @click="ChangeBaseLayer(item.name)" + :title="item.name" + ></div> + + <!-- <transition name="slide-fade"> + <p v-if="show">hello</p> + </transition> --> + </div> </div> </div> <div class="bottom2"> @@ -57,11 +85,13 @@ </div> </template> <script> +let yunxuanLayer = null import PipeLine from "@/assets/json/pipeline.json" import { countProjectTour, countProjectDisplay, countProjectLocation, + selectProjectFileList, } from "@/api/screen.js" import { wktToGeoJSON } from "@terraformer/wkt" @@ -69,13 +99,16 @@ data() { return { YXState: true, + XRState: true, + yunxuanLayer: null, //鍏ㄧ悆鐪╂檿鍥� yxImg: require("../../assets/img/Screen/yximg.png"), - currMenu: "椤圭洰灞曠ず", - currProject: "鍏ㄧ悆绠$綉鍥�", + xrImg: require("../../assets/img/Screen/bdimg.png"), + currMenu: "涓撻灞曠ず", + currProject: "", searchName: "", menuList: [ { - menuName: "椤圭洰灞曠ず", + menuName: "涓撻灞曠ず", children: [ { name: "鍏ㄥ浗绠$綉鍥�", @@ -96,7 +129,7 @@ ], }, { - menuName: "宸ョ▼灞曠ず", + menuName: "椤圭洰灞曠ず", children: [ { name: "涓縿涓滅嚎绠¢亾宸ョ▼", @@ -154,12 +187,31 @@ ], }, ], + showTree: false, + currYX: "褰卞儚鍥�", + yxList: [ + { + name: "褰卞儚鍥�", + key: "yingxiang", + }, + { + name: "娉ㄨ鍥�", + key: "zhuji", + }, + { + name: "鏅曟覆鍥�", + key: "yunxuan", + }, + ], + isExpand: false } }, computed: { currMenuList() { + const menu = this.menuList.find(item => item.menuName == this.currMenu) const filterChildren = [] + const value = this.searchName menu.children.forEach(item => { if (item.name && item.name.includes(value)) { @@ -171,24 +223,93 @@ }, created() { this.getCountProjectDisplay() + this.getCountProjectTour() }, methods: { - ChangeBaseLayer() { - if (this.YXState) { - this.yxImg = require("../../assets/img/Screen/bdimg.png") - //鍔犺浇鐧惧害褰卞儚 - Viewer.imageryLayers._layers[1].show = true + ChangeBaseLayer(name) { + this.currYX = name + + if (is_production) { Viewer.imageryLayers._layers[2].show = false - Viewer.imageryLayers._layers[3].show = false - } else { - this.yxImg = require("../../assets/img/Screen/yximg.png") Viewer.imageryLayers._layers[1].show = false - Viewer.imageryLayers._layers[2].show = true - Viewer.imageryLayers._layers[3].show = true + } else { + Viewer.imageryLayers._layers[1].show = false + } - this.YXState = !this.YXState + + if (yunxuanLayer) { + Viewer.imageryLayers.remove(yunxuanLayer); + yunxuanLayer = null + } + + switch (name) { + case "鏅曟覆鍥�": + if (yunxuanLayer == null) { + // var urls = "https://tiles3.geovisearth.com/base/v1/ter" + // // 鏄熷浘鍦扮悆鍦板舰鏅曟覆 + // yunxuanLayer = sgworld.Creator.createUrlTemplateImageryProvider( + // "鏄熷浘鍦扮悆鍦板舰鏅曟覆", + // { + // url: + // urls + + // "/{z}/{x}/{y}?format=webp&token=486dac3bec56d7d7c2a581c150be2bd937462f1e8f3bc9c78b5658b396122405", + // }, + // "0", + // undefined, + // true, + // "" + // ) + var urls = "http://t0.tianditu.com/ter_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=ter&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk="; + var tokne = "94a34772eb88317fcbf8428e10448561" + if (is_production) { + var baseUrl_yx = window.sceneConfig.baseUrl_yx; + if (baseUrl_yx.indexOf('{host}') > -1) { + baseUrl_yx = baseUrl_yx.replace("{host}", iisHost) + } + + yunxuanLayer = Viewer.imageryLayers.addImageryProvider( + new Cesium.UrlTemplateImageryProvider({ + url: baseUrl_yx, + maximumLevel: 22, + }) + ); + } else { + yunxuanLayer = Viewer.imageryLayers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider({ + url: urls + tokne, + layer: "tdtImgLayer", + style: "default", + format: "image/jpeg", + tileMatrixSetID: "GoogleMapsCompatible", + })) + } + + + Viewer.imageryLayers.lowerToBottom(yunxuanLayer);//灏嗗浘灞傜Щ鍒版渶搴曞眰 + Viewer.imageryLayers.raise(yunxuanLayer);//灏嗗浘灞備笂绉讳竴灞� + } + + + + break + case "褰卞儚鍥�": + + if (is_production) { + Viewer.imageryLayers._layers[1].show = true + } + break + case "娉ㄨ鍥�": + if (is_production) { + Viewer.imageryLayers._layers[2].show = true + } else { + Viewer.imageryLayers._layers[1].show = true + } + break + default: + break + } }, handleMenuClick(menu) { + this.currMenu = menu.menuName }, handlePopoverClick(child) { @@ -198,83 +319,59 @@ case "宸ョ▼宸¤": this.showPathLine(child) break - case "宸ョ▼灞曠ず": + case "椤圭洰灞曠ず": + this.$bus.$emit("changeProjectLayer", child.id) this.DisplayCurrentProject(child) + this.changeProject(child) + this.$bus.$emit("changeProjectCode", child.id) break + case "涓撻灞曠ず": + this.$bus.$emit("changeProjectLayer", child.id) + this.changeProject(child) + break + default: break } }, + + //宸ョ▼宸¤ async showPathLine(params) { + + this.$bus.$emit("closeLeftAndRightMenu", true) + const line = wktToGeoJSON(params.wkt) const position = line.coordinates[0] const result = [] position.forEach(pos => { - pos.push(50) + // 娣诲姞婕父楂樺害锛屽悗缁慨鏀筍DK婧愮爜鍙互閫傞厤涓哄湴闈㈤珮绋� + pos.push(1000) result.push(...pos) }) - // - console.log("line", position) - // 瑗挎皵涓滆緭浜岀嚎瑗挎骞茬嚎 - // console.log("PipeLine", PipeLine) - const features = PipeLine.features - // features.forEach(item => { - // const name = item.properties.pipename - // const rawArr = item.geometry.coordinates - // }) - // const pipeline = features.find( - // item => item.properties.pipename == "瑗挎皵涓滆緭涓�绾�" - // ) - // const name = pipeline.properties.pipename - // const rawArr = pipeline.geometry.coordinates[0] - // const result = [] - // rawArr.forEach(pos => { - // pos.push(50) - // result.push(...pos) - // }) - // console.log("result", result); - // sgworld.Command.execute(2, 3, "", data => { - // data.showPoint = false - // data.showLine = true - // data.mode = 1 - // // 寮圭獥鏁版嵁 - // window.PathAnimationData = { - // flyData: data, - // } - // window.PathAnimationData.winIndex = layer.open({ - // type: 2, - // title: "璺緞鍔ㄧ敾", - // shade: false, - // area: ["352px", "690px"], - // offset: "r", - // skin: "other-class", - // content: SmartEarthRootUrl + "Workers/path/Path.html", - // end: function () { - // PathAnimationData.fly && PathAnimationData.fly.exit() - // }, - // }) - // }) + window.sgworld.Creator.getFlyData(result, data => { data.showPoint = false data.showLine = true - data.mode = 1 - data.height = 2000 + data.mode = 0 + data.height = 5000 // 寮圭獥鏁版嵁 window.PathAnimationData = { flyData: data, } + var that = this window.PathAnimationData.winIndex = layer.open({ type: 2, - title: "璺緞鍔ㄧ敾", + title: "宸ョ▼宸¤", shade: false, area: ["352px", "690px"], offset: "r", skin: "other-class", - content: SmartEarthRootUrl + "Workers/path/Path.html", + content: SmartEarthRootUrl + "Workers/path/ProjectPath.html", end: function () { PathAnimationData.fly && PathAnimationData.fly.exit() + that.$bus.$emit("closeLeftAndRightMenu", false) }, }) }) @@ -282,8 +379,6 @@ //椤圭洰灞曠ず DisplayCurrentProject(params) { - console.log(params) - //鎵撳紑鎴栬�呭姞杞藉浘灞� //椋炲埌鎸囧畾浣嶇疆 @@ -311,25 +406,38 @@ return menu.children // return menu.children.filter(item => item.name.indexOf(searchName) > -1) }, - handleSearchChange(currMenu) {}, + handleSearchChange(currMenu) { }, async getCountProjectDisplay() { - const res = await countProjectLocation() + // const res = await countProjectLocation() + // if (res.code === 200) { + // const menu = this.menuList.find(item => item.menuName == "椤圭洰灞曠ず") + // menu.children = res.result.map(item => { + // return { + // name: item.projname, + // id: item.projname, + // wkt: item.wkt, + // } + // }) + // } + const res = await selectProjectFileList() if (res.code === 200) { - const menu = this.menuList.find(item => item.menuName == "宸ョ▼灞曠ず") + const menu = this.menuList.find(item => item.menuName == "椤圭洰灞曠ず") menu.children = res.result.map(item => { return { - name: item.projname, - id: item.projname, - wkt: item.st_astext, + name: item.name, + id: item.code, + wkt: item.wkt, } }) - console.log(menu.children.length) } + selectProjectFileList }, async getCountProjectTour() { const res = await countProjectTour() if (res.code === 200) { + const menu = this.menuList.find(item => item.menuName == "宸ョ▼宸¤") + menu.children = res.result.map(item => { return { name: item.projname, @@ -337,9 +445,47 @@ wkt: item.wkt, } }) - console.log(menu.children.length) } }, + //涓撻灞曠ず + changeProject(params) { + this.$bus.$emit("changeProject", params.name) + var lon, lat, height; + if (params.name.indexOf("鍏ㄥ浗") != -1) { + height = 20000000; + lon = 110; + lat = 32; + window.viewer.camera.flyTo({ + destination: new Cesium.Cartesian3.fromDegrees(lon, lat, height), + orientation: { + heading: Cesium.Math.toRadians(0), + pitch: Cesium.Math.toRadians(-90), + }, + }) + } else if (params.name.indexOf("鍏ㄧ悆") != -1) { + lon = 85; + lat = 25; + height = 30000000; + window.viewer.camera.flyTo({ + destination: new Cesium.Cartesian3.fromDegrees(lon, lat, height), + orientation: { + heading: Cesium.Math.toRadians(0), + pitch: Cesium.Math.toRadians(-90), + }, + }) + } + + }, + handleTree(params) { + this.showTree = !this.showTree + this.$bus.$emit("changeTree", this.showTree) + }, + handleMouseOver() { + this.isExpand = true + }, + handleMouseOut() { + this.isExpand = false + } }, } </script> @@ -370,16 +516,83 @@ align-items: center; justify-content: space-around; } - .bottom13 { + display: flex; + flex-direction: row-reverse; + } + -webkit-transition-property: width; + .expend { + transition-property: width; + -webkit-transition-duration: 0.5s; + transition-duration: 0.5s; + width: 320px !important; + } + .fold { + -webkit-transition-property: width; + transition-property: width; + -webkit-transition-duration: 0.5s; + transition-duration: 0.5s; + width: 100px !important; + } + .bottom13-wrapper { + height: 80px; + width: 100px; + -webkit-transition-property: width; + transition-property: width; + -webkit-transition-duration: 0.5s; + transition-duration: 0.5s; cursor: pointer; display: flex; align-items: center; justify-content: flex-end; + position: relative; + overflow: hidden; + &:hover { + .zhuji { + right: 100px; + } + .yunxuan { + right: 200px; + } + } + .yingxiang, + .zhuji, + .yunxuan { + margin-right: 10px; + width: 92px; + height: 61px; + background: url(~@/assets/img/Screen/yximg.png); + background-size: 100% 100%; + background-position: 0 0; + position: absolute; + z-index: 3; + right: 0; + -webkit-transition-property: right; + transition-property: right; + -webkit-transition-duration: 0.5s; + transition-duration: 0.5s; + } + .zhuji { + z-index: 2; + background-position: 0px -61px; + right: 5px; + background: url(~@/assets/img/Screen/bdimg.png); + background-size: 100% 100%; + } + .yunxuan { + z-index: 1; + background-position: 0 -122px; + right: 10px; + background: url(~@/assets/img/Screen/geovisearth-ter.png); + background-size: 100% 100%; + } + .active { + border: 1px solid #409eff; + } img { cursor: pointer; - margin-right: 30px; + margin-right: 10px; width: 92px; height: 61px; } @@ -391,13 +604,14 @@ background: url(~@/assets/img/Screen/centerbtn.png); background-size: 100% 100%; background-repeat: no-repeat; - font-size: 1rem; + font-size: 16px; display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 600; cursor: pointer; + &.active { background: url(~@/assets/img/Screen/centerbtnc.png); background-size: 100% 100%; @@ -418,6 +632,7 @@ } } } + .popover { display: flex; justify-content: center; @@ -426,9 +641,11 @@ background: url(~@/assets/img/Screen/centerTooltipBg.png); background-size: 100% 100%; border: none; + .popper__arrow { display: none; } + .popover-content { &__header { display: flex; @@ -439,6 +656,7 @@ height: 30px; font-size: 18px; color: #fff; + &::before, &::after { margin: 0 5px; @@ -450,15 +668,18 @@ height: 8px; } } + &__search { margin-top: 8px; width: 145px; text-align: center; + .el-input { width: 125px; height: 21px; background: rgba(0, 48, 111, 0.2); border: 0.25px solid #2a80a9; + &__inner { background: rgba(0, 48, 111, 0.2); border-radius: inherit; @@ -466,6 +687,7 @@ padding: 0 5px; color: #fff; } + .el-input-group__append { width: 32px; border: none; @@ -508,6 +730,7 @@ } } } + ::-webkit-scrollbar { width: 2px; height: 2px; -- Gitblit v1.9.3