From 6e92e7b101c2ea468a4b0d2a19066bc1b4d31764 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期五, 12 五月 2023 18:03:14 +0800
Subject: [PATCH] 发布管理,图层管理页面修改

---
 src/views/Tools/LayerTree.vue    |   47 +++++++++------
 src/views/Synthesis/LeftMenu.vue |   12 ++--
 src/components/preview_map.vue   |   73 +++++++++++++++++------
 src/components/mapsdk.vue        |   38 +++++++++++-
 4 files changed, 120 insertions(+), 50 deletions(-)

diff --git a/src/components/mapsdk.vue b/src/components/mapsdk.vue
index f80f26d..0b7d4b1 100644
--- a/src/components/mapsdk.vue
+++ b/src/components/mapsdk.vue
@@ -90,7 +90,7 @@
               <el-form-item label="绾害:">
                 <el-input
                   v-model="coordFrom.lat"
-                  placeholder="璇疯緭鍏ョ淮搴�"
+                  placeholder="璇疯緭鍏ョ含搴�"
                 ></el-input>
               </el-form-item>
               <el-form-item label="楂樺害:">
@@ -312,7 +312,17 @@
       </div>
       <!--      <div style="display: flex;">-->
       <div
-        class="changeTerrain"
+        style=" position: absolute;
+  bottom: 84px;
+  right: 46px;
+  height: 30px;
+  width: 30px;
+  z-index: 101;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  cursor: pointer;
+  border: 1px solid rgba(255, 255, 255, 0.5);"
         @click="changeTerrainLayer"
       >
         <div
@@ -324,7 +334,17 @@
       <!--      class="center CenDiv"-->
       <div
         @click="changeMenulayer"
-        class="changeLayer"
+        style=" position: absolute;
+  bottom: 116px;
+  right: 46px;
+  height: 30px;
+  width: 30px;
+  z-index: 101;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  cursor: pointer;
+  border: 1px solid rgba(255, 255, 255, 0.5);"
       >
         <div
           title="搴曞浘鍒囨崲"
@@ -335,7 +355,17 @@
 
       <div
         @click="changeMapType"
-        class="changeMapType"
+        style="  position: absolute;
+  bottom: 52px;
+  right: 46px;
+  height: 30px;
+  width: 30px;
+  z-index: 101;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  cursor: pointer;
+  border: 1px solid rgba(255, 255, 255, 0.5);"
       >
         <div
           title="2/3缁村垏鎹�"
diff --git a/src/components/preview_map.vue b/src/components/preview_map.vue
index 1705e6a..d1fe011 100644
--- a/src/components/preview_map.vue
+++ b/src/components/preview_map.vue
@@ -54,10 +54,12 @@
             @click="underground"
           >鍦颁笅</el-button>
           <el-button
+            v-if="$store.state.previewLayer.type  != '3dml'"
             size="small"
             @click="pickupCoords"
           >鎷惧彇</el-button>
           <el-button
+            v-if="$store.state.previewLayer.type  != '3dml'"
             size="small"
             @click="reload"
           >
@@ -74,7 +76,10 @@
           >淇濆瓨</el-button>
 
         </el-form-item>
-        <el-form-item label="缁忓害:">
+        <el-form-item
+          label="缁忓害:"
+          v-if="$store.state.previewLayer.type  != '3dml'"
+        >
           <el-input
             size="small"
             v-model="modelForm.lon"
@@ -88,7 +93,10 @@
             :max="135"
           ></el-slider>
         </el-form-item>
-        <el-form-item label="绾害:">
+        <el-form-item
+          label="绾害:"
+          v-if="$store.state.previewLayer.type  != '3dml'"
+        >
           <el-input
             size="small"
             v-model="modelForm.lat"
@@ -102,7 +110,10 @@
             :max="54"
           ></el-slider>
         </el-form-item>
-        <el-form-item label="楂樺害:">
+        <el-form-item
+          label="楂樺害:"
+          v-if="$store.state.previewLayer.type  != '3dml'"
+        >
           <el-input
             size="small"
             v-model="modelForm.height"
@@ -116,7 +127,10 @@
             :max="8800"
           ></el-slider>
         </el-form-item>
-        <el-form-item label="瑙掑害:">
+        <el-form-item
+          label="瑙掑害:"
+          v-if="$store.state.previewLayer.type  != '3dml'"
+        >
           <el-input
             size="small"
             v-model="modelForm.yaw"
@@ -791,6 +805,7 @@
         } else {
           url = modelUrl + "/" + res.url
         }
+
         var tileset = Viewer.scene.primitives.add(
           new Cesium.Cesium3DTileset({
             name: res.cnName,
@@ -806,7 +821,10 @@
           tileset.id = res.cnName;
           tileset.layerId = res.id;
           tileset.pubid = res.pubid;
-          that.getArgsTileset(tileset, res);
+          if (res.bak != '3dml') {
+            that.getArgsTileset(tileset, res);
+          }
+
         });
       }
     },
@@ -819,7 +837,10 @@
         if (data.code != 200) {
 
         } else {
-          this.reloadTile(tileset, data.result.json)
+
+
+          this.tileSet(tileset, parseFloat(res.elev))
+
         }
       } else {
         this.tileSet(tileset, parseFloat(res.elev))
@@ -838,7 +859,7 @@
       var translation = Cesium.Cartesian3.subtract(Cartesian3_offset, Cartesian3_original, new Cesium.Cartesian3());
       //淇敼妯″瀷鐭╅樀
       tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
-      Viewer.flyTo(tileset);
+      // Viewer.flyTo(tileset);
     },
     reloadTile(tileset, res) {
       var vm = JSON.parse(res)
@@ -913,7 +934,6 @@
       window.terrainLayer = sgworld.Creator.sfsterrainprovider("", option, "", true, "");
 
 
-
       if (this.$store.state.previewLayer) {
         var res = this.$store.state.previewLayer;
         var type = res.type;
@@ -976,6 +996,9 @@
             if (window.pickedFeature && window.pickedFeature.getProperty) {
 
               this.setModeLayerID(pickedFeature);
+            } else {
+              this.modelForm.modelid = 'id3dml'
+              window.ModeKeyIdHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); //绉婚櫎浜嬩欢
             }
           }
         }
@@ -1010,6 +1033,7 @@
       var that = this;
       Viewer.scene.primitives.add(this.app.tileset).readyPromise.then(function (ts) {
         that.modelForm = JSON.parse(json);
+
         var pos = Cesium.Cartesian3.fromDegrees(parseFloat(that.modelForm.lon), parseFloat(that.modelForm.lat), parseFloat(that.modelForm.height));
 
 
@@ -1018,6 +1042,7 @@
         var matrix = Cesium.Transforms.headingPitchRollToFixedFrame(pos, hpr, Cesium.Ellipsoid.WGS84, converter);
         that.app.tileset._root.transform = matrix;
         Viewer.flyTo(ts);
+
         that.app.isBusy = false;
       });
     },
@@ -1055,17 +1080,17 @@
     update() {
       if (!this.modelForm.lon || isNaN(this.modelForm.lon)) {
         var args = this.getEditTilesetArgs();
-        this.modelForm.lon = args.lon;
+        this.modelForm.lon = args.lon == null ? 0 : args.height;
         return
       }
       if (!this.modelForm.lat || isNaN(this.modelForm.lat)) {
         var args = this.getEditTilesetArgs();
-        this.modelForm.lat = args.lat;
+        this.modelForm.lat = args.lat == null ? 0 : args.height;
         return
       }
       if (!this.modelForm.height || isNaN(this.modelForm.height)) {
         var args = this.getEditTilesetArgs();
-        this.modelForm.height = args.height;
+        this.modelForm.height = args.height == null ? 0 : args.height;
         return
       }
       if (!this.modelForm.yaw || isNaN(this.modelForm.yaw)) {
@@ -1089,7 +1114,7 @@
     setTilesetArgs(f) {
 
       if (!this.app.tileset || this.app.isBusy) return;
-
+      debugger
       var pos = Cesium.Cartesian3.fromDegrees(parseFloat(f.lon), parseFloat(f.lat), parseFloat(f.height));
 
       var converter = Cesium.Transforms.eastNorthUpToFixedFrame;
@@ -1145,13 +1170,17 @@
       } else {
         this.getTilesetArgs();
       }
-
     },
     setModleLocatin() {
       var res = this.$store.state.previewLayer;
       var type = res.type;
       if (this.modelType.indexOf(type) != -1) {
-        this.setEditModelLayer(res)
+        if (type != '3dml') {
+          this.setEditModelLayer(res)
+        } else {
+          this.editModelFlag = true;
+        }
+
       }
 
     },
@@ -1189,14 +1218,17 @@
     },
     getEditTilesetArgs() {
       this.app.isBusy = true;
+      var std = {
+        lon: 0,
+        lat: 0,
+        height: 0,
+      }
+
+      if (!this.app.tileset._root) return std;
       var cm = this.app.tileset._root.transform;
       var cartesian = new Cesium.Cartesian3(cm[12], cm[13], cm[14]);
       var carto = Cesium.Cartographic.fromCartesian(cartesian);
-      var std = {
-        lon: null,
-        lat: null,
-        height: null,
-      }
+
 
       if (carto) {
         std.lon = Cesium.Math.toDegrees(carto.longitude).toFixed(7);
@@ -1241,7 +1273,8 @@
           pickedFeature = sgworld.Viewer.scene.pick(event.position);
           if (Cesium.defined(pickedFeature)) {
             if (pickedFeature.primitive instanceof Cesium.Cesium3DTileset) {
-              if (pickedFeature && pickedFeature.getProperty) {
+
+              if (pickedFeature) {
                 pickedColor = pickedFeature.color
                 pickedFeature.color = Cesium.Color.RED.withAlpha(0.3);
 
diff --git a/src/views/Synthesis/LeftMenu.vue b/src/views/Synthesis/LeftMenu.vue
index 716a4f1..750b659 100644
--- a/src/views/Synthesis/LeftMenu.vue
+++ b/src/views/Synthesis/LeftMenu.vue
@@ -441,12 +441,12 @@
             name: "鍦颁笅妯″紡",
             css: "twoMenu_imge29",
           },
-          {
-            id: "b10",
-            label: "synthesis.undergroundMode",
-            name: "鐡︾墖涓嬭浇",
-            css: "twoMenu_imge29",
-          },
+          // {
+          //   id: "b10",
+          //   label: "synthesis.undergroundMode",
+          //   name: "鐡︾墖涓嬭浇",
+          //   css: "twoMenu_imge29",
+          // },
         ],
         [
           {
diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue
index cce059f..085b369 100644
--- a/src/views/Tools/LayerTree.vue
+++ b/src/views/Tools/LayerTree.vue
@@ -399,6 +399,9 @@
       } else if (Node.data.children == null && Node.data.serveType != "Tileset") {
         this.showlocal = false;
         this.showopaque = false;
+      } else if (Node.data.children == null && Node.data.serveType != "DEM") {
+        this.showlocal = false;
+        this.showopaque = false;
       }
       this.menuVisible = true;
 
@@ -936,6 +939,7 @@
 
         tileset.readyPromise.then((tileset) => {
 
+
           tileset.id = res.cnName;
           tileset.layerId = res.id;
           tileset.pubid = res.pubid;
@@ -962,6 +966,9 @@
             window.modelHeight = height;
           } else window.modelHeight = 0;
           this.getTilesetArgs(tileset, res);
+
+
+
         });
         this.$store.state.setAlphaList.push({
           name: res.cnName,
@@ -1013,7 +1020,11 @@
         if (data.code != 200) {
 
         } else {
-          this.reload(tileset, data.result.json)
+          if (res.bak != '3dml') {
+            this.reload(tileset, data.result.json)
+          } else {
+            this.tileSet(tileset, parseFloat(res.elev))
+          }
         }
       } else {
         this.tileSet(tileset, parseFloat(res.elev))
@@ -1208,7 +1219,7 @@
     },
     getNewTree(obj, result) {
       for (const i in obj) {
-        console.log(obj[i].cnName)
+
         result.push(obj[i])
         if (obj[i].children && obj[i].children.length > 0) {
           this.getNewTree(obj[i].children, result)
@@ -1240,20 +1251,22 @@
           if (rs.enName == st_code[0].code) {
             return rs
           }
+          if (rs.enName && rs.enName.indexOf(st_code[0].code) > -1) {
+            return rs
+          }
         })
+
         this.removeAllLayer();
         var obj = {
           dirid: res,
           pageIndex: 1,
           pageSize: 10,
         }
-
         const data = await project_selectByDirid(obj);
         if (data.code != 200) {
           this.$message.error("鍒楄〃鑾峰彇澶辫触");
           return;
         }
-
         if (data.result[0]) {
           var geom = data.result[0].geom
           if (geom) {
@@ -1262,34 +1275,28 @@
               destination: Cesium.Cartesian3.fromDegrees(wkt.coordinates[0].toFixed(6), wkt.coordinates[1].toFixed(6), 5000),
             });
           }
-
         }
         this.cannelTerrainLayer();
         this.setTerrainMptLayer();
         //娓呯┖鍥惧眰鏍戦�変腑鐘舵��
         this.$refs.tree.setCheckedKeys([]);
         if (val.length > 0) {
-
-          if (val[0].type == 1 && val[0].isProject == 1) {//椤圭洰鍒嗙被
-
-            var std_check = [];
-            for (var i in val) {
+          var std_check = [];
+          for (var i in val) {
+            if (val[i].type == 1 && val[i].isProject == 1) {//椤圭洰鍒嗙被
               var std_val = this.getNewTree([this.$refs.tree.getNode(val[i].id).data], [])
               for (var j in std_val) {
                 std_check.push(std_val[j])
               }
             }
-
-
-            var value = this.$store.state.isProjectLayer;
-            for (var i in value) {
-
-              std_check.push(value[i])
-            }
-            this.setProjectLayer(std_check);
-          } else {
-            this.setChangeProLayer();
           }
+          var value = this.$store.state.isProjectLayer;
+          for (var i in value) {
+            std_check.push(value[i])
+          }
+
+
+          this.setProjectLayer(std_check);
         } else {
           this.setChangeProLayer();
         }

--
Gitblit v1.9.3