From c6a9b11ff0783bcd81a043a179fbc27f685eee70 Mon Sep 17 00:00:00 2001
From: lxl <lixuliang_hd@126.com>
Date: 星期一, 07 十一月 2022 16:19:43 +0800
Subject: [PATCH] 菜单

---
 src/views/Synthesis/plotting.vue |  289 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 234 insertions(+), 55 deletions(-)

diff --git a/src/views/Synthesis/plotting.vue b/src/views/Synthesis/plotting.vue
index f80cbe5..ebef7b6 100644
--- a/src/views/Synthesis/plotting.vue
+++ b/src/views/Synthesis/plotting.vue
@@ -1,75 +1,253 @@
 <template>
   <div class="box">
+    <div class="tooltip"></div>
+    <input type="file" accept=".kml" class="file" style="display: none" />
+
     <ul>
-      <li
-        style="width: 86px"
-        @click="changePlot(item)"
-        v-for="item in itemsOne"
-      >
+      <li style="margin-left: 20px" @click="drawing">
         <div class="divli">
-          <div :class="item.class" class="backimge8"></div>
+          <div class="backimge8 h1"></div>
         </div>
-        <div class="div_li">{{ item.name }}</div>
+        <div class="div_li">鏍囩粯</div>
+      </li>
+      <li style="margin-left: 20px" id="open">
+        <div class="divli">
+          <div class="backimge8 h1"></div>
+        </div>
+        <div class="div_li">鎵撳紑json</div>
+      </li>
+      <li style="margin-left: 20px" @click="save">
+        <div class="divli">
+          <div class="backimge8 h1"></div>
+        </div>
+        <div class="div_li">淇濆瓨json</div>
+      </li>
+      <li style="margin-left: 20px" @click="kmlopen">
+        <div class="divli">
+          <div class="backimge8 h1"></div>
+        </div>
+        <div class="div_li">鍘熺敓kml</div>
+      </li>
+      <li style="margin-left: 20px" @click="handleOpenClick">
+        <div class="divli">
+          <div class="backimge8 h1"></div>
+        </div>
+        <div class="div_li">瀵煎叆KML鏂囦欢</div>
+      </li>
+      <li style="margin-left: 20px" @click="handleSaveClick">
+        <div class="divli">
+          <div class="backimge8 h1"></div>
+        </div>
+        <div class="div_li">瀵煎嚭KML鏂囦欢</div>
       </li>
     </ul>
+
+    <terrainDig ref="terrainDig" />
+    <modelPress ref="modelPress" />
   </div>
 </template>
 
 <script>
+// 娴嬮噺-淇℃伅寮圭獥
+import terrainDig from "../Tools/terrainDig.vue";
+import modelPress from "../Tools/modelPress.vue";
 export default {
+  components: { terrainDig, modelPress },
   data() {
     return {
-      itemsOne: [
-        {
-          id: "1",
-          name: "鐐�",
-          class: "h1",
-        },
-        {
-          id: "2",
-          name: "绾�",
-          class: "h2",
-        },
-        {
-          id: "3",
-          name: "鐭╁舰",
-          class: "h3",
-        },
-        {
-          id: "4",
-          name: "澶氳竟褰�",
-          class: "h4",
-        },
-        {
-          id: "7",
-          name: "绗﹀彿鍖栨爣绛�",
-          class: "h7",
-        },
-        {
-          id: "5",
-          name: "鍦板舰骞虫暣",
-          class: "h5",
-        },
-        {
-          id: "6",
-          name: "鍦板舰寮�鎸�",
-          class: "h6",
-        },
-        {
-          id: "8",
-          name: "娓呴櫎缁樺埗",
-          class: "h8",
-        },
-      ],
+      id: "",
+      plotStatus: {
+        delete: true,
+        upload: true,
+        insert: true,
+        update: true,
+      },
     };
   },
+  created() {
+    var cover_Id = this.$store.state.syntiesis.menu;
+    var cover_perms = this.$store.state.permsEntity;
+
+    for (var i = 0; i < cover_perms.length; i++) {
+      if (cover_perms[i].pid == cover_Id) {
+        this.showViewMenu(cover_perms[i]);
+      }
+    }
+    layui.use("upload", function () {
+      var upload = layui.upload;
+      upload.render({
+        elem: "#open",
+        accept: "file", //鏅�氭枃浠�
+        auto: false,
+        choose: function (obj) {
+          var files = obj.pushFile();
+          for (var key in files) {
+            sgworld.Creator.SimpleGraphic.open(files[key]);
+            break;
+          }
+        },
+      });
+    });
+  },
   methods: {
-    changePlot(res) {
-      var res_val = {
-        url: "",
-        name: res.name,
+    handleSaveClick() {
+      let funDownload = function (content, filename) {
+        let eleLink = document.createElement("a");
+        eleLink.download = filename;
+        eleLink.style.display = "none";
+        // 瀛楃鍐呭杞彉鎴恇lob鍦板潃
+        let blob = new Blob([content]);
+        eleLink.href = URL.createObjectURL(blob);
+        // 瑙﹀彂鐐瑰嚮
+        document.body.appendChild(eleLink);
+        eleLink.click();
+        // 鐒跺悗绉婚櫎
+        document.body.removeChild(eleLink);
       };
-      this.$bus.$emit("changetool", res_val);
+      let entities = new Cesium.EntityCollection();
+      let dataSources = sgworld.Viewer.dataSources;
+      for (let i = 0, j = dataSources.length; i < j; i++) {
+        for (let v of dataSources.get(i).entities.values) {
+          entities.add(v);
+        }
+      }
+      for (let v of sgworld.Viewer.entities.values) {
+        entities.add(v);
+      }
+
+      if (entities.values.length) {
+        console.log(sgworld.Viewer.entities);
+
+        let promise = Cesium.exportKml({ entities: sgworld.Viewer.entities });
+        console.log(entities);
+        // let promise = Cesium.exportKml({ entities: entities });
+        promise.then(function (e) {
+          
+          funDownload(e.kml, new Date().getTime() + ".kml");
+        });
+      } else {
+        alert("褰撳墠鍦烘櫙娌℃湁entities瀹炰綋");
+      }
+    },
+    handleOpenClick() {
+      // let that = this;
+      let fileInput = document.querySelector(".file");
+      fileInput.onchange = function (evt) {
+        let files = evt.target.files;
+        if (files.length > 0) {
+          let file = evt.target.files[0];
+
+          let fileReader = new FileReader();
+          fileReader.readAsDataURL(file);
+          fileReader.onload = () => {
+            sgworld.Viewer.dataSources
+              .add(
+                Cesium.KmlDataSource.load(fileReader.result, {
+                  camera: sgworld.Viewer.scene.camera,
+                  canvas: sgworld.Viewer.scene.canvas,
+                })
+              )
+              .then((KmlDataSource) => {
+                console.log(KmlDataSource);
+                // let entities = kmlDataSource.entities;
+              });
+          };
+
+          // let fileReader = new FileReader();
+          // fileReader.onload = function () {
+          // sgworld.Viewer.dataSources
+          // .add(
+          //       Cesium.KmlDataSource.load(new Blob([this.result]), {
+          //         camera: sgworld.Viewer.scene.camera,
+          //         canvas: sgworld.Viewer.scene.canvas,
+          //         clampToGround: false,
+          //       })
+          // )
+          //     .then(function (kmlDataSource) {
+          //       let entities = kmlDataSource.entities;
+          //       let item = entities.values[entities.values.length - 1];
+          //       sgworld.Viewer.zoomTo(entities);
+          //     });
+          //   fileInput = null;
+          //   fileReader = null;
+          // };
+          // fileReader.readAsText(file);
+        }
+        // fileInput.value = null;
+      };
+      fileInput.click();
+    },
+
+    preview(event) {
+      var reader = new FileReader();
+      reader.readAsDataURL(file);
+      //鐩戝惉鏂囦欢璇诲彇缁撴潫鍚庝簨浠�
+      reader.onloadend = function (e) {
+        $(".img").attr("src", e.target.result); //e.target.result灏辨槸鏈�鍚庣殑璺緞鍦板潃
+      };
+      // let files = document.getElementById(this.id).files[0];
+      // this.imgDataUrl = this.getObjectURL(files);
+      // // this.$emit("sendImgUrl", this.imgDataUrl, this.id);
+      // console.log("sendImgUrl", this.imgDataUrl, this.id);
+    },
+    getObjectURL(file) {
+      let url = null;
+      if (window.createObjectURL != undefined) {
+        // basic
+        url = window.createObjectURL(file);
+      } else if (window.webkitURL != undefined) {
+        // webkit or chrome
+        url = window.webkitURL.createObjectURL(file);
+      } else if (window.URL != undefined) {
+        // mozilla(firefox)
+        url = window.URL.createObjectURL(file);
+      }
+      return url;
+    },
+    showViewMenu(res) {
+      if (res.cnName != "鏍囩粯") return;
+      switch (res.tag) {
+        case "/delete":
+          this.plotStatus.delete = true;
+          break;
+        case "/upload":
+          this.plotStatus.upload = true;
+          break;
+        case "/insert":
+          this.plotStatus.insert = true;
+          break;
+        case "/update":
+          this.plotStatus.update = true;
+          break;
+      }
+    },
+    save() {
+      // var val_result = sgworld.Viewer.entities._entities._array;
+      // console.log(val_result[0]);
+      // console.log(sgworld.Core);
+      // console.log(sgworld.Core.getEntityPropValue(val_result[0], show));
+      sgworld.Creator.SimpleGraphic.save();
+    },
+    kmlopen() {
+      sgworld.Creator.addKmlLayer(
+        "kml鏁版嵁",
+        "http://183.162.245.49:82/sdkdemo_2022/demo/kml/facilities/facilities.kml",
+        true
+      );
+    },
+    drawing() {
+      this.$emit("drawing");
+    },
+    clearAll() {
+      sgworld.Creator.SimpleGraphic.clear();
+      if (window.Excavation) {
+        window.Excavation.clear();
+        window.Excavation = null;
+      }
+      if (window.TerrainFlattening) {
+        window.TerrainFlattening.remove();
+        window.TerrainFlattening = null;
+      }
     },
   },
 };
@@ -81,6 +259,7 @@
   height: 100%;
   position: relative;
 }
+
 .box li {
   list-style: none;
   float: left;
@@ -127,9 +306,9 @@
 .backimge8 {
   width: 30px;
   height: 30px;
-  margin-left: 30px;
   position: absolute;
   background-size: 100% 100%;
+  margin: 0% 30%;
 }
 .divli {
   width: 100%;

--
Gitblit v1.9.3