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