From 7a0c7de021aebbef3ec137f2f94ff73ab41014d7 Mon Sep 17 00:00:00 2001
From: 王旭 <1377869194@qq.com>
Date: 星期三, 10 五月 2023 14:44:47 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.20.39:8989/r/LFWEB_NEW

---
 src/views/datamanage/uploadmanage.vue     |   10 
 src/views/exportMap/index.vue             |   62 ++++++
 src/views/Synthesis/LeftMenu.vue          |    6 
 src/components/mapsdk.vue                 |  189 ++++++++++++++++++++
 src/views/datamanage/layerManagement.vue  |   68 +++++--
 src/views/PackageTwo/WareInspection.vue   |   41 +++-
 src/views/Tools/maplayer.vue              |    7 
 src/api/api.js                            |   12 +
 src/assets/lang/zh.js                     |   12 +
 src/views/Tools/LayerTree.vue             |   69 +++++++
 src/views/datamanage/dictionaryManage.vue |    6 
 src/components/preview_map.vue            |   20 ++
 src/assets/lang/en.js                     |   17 +
 src/components/navMenu.vue                |    4 
 14 files changed, 462 insertions(+), 61 deletions(-)

diff --git a/src/api/api.js b/src/api/api.js
index 65fd19c..8219aa6 100644
--- a/src/api/api.js
+++ b/src/api/api.js
@@ -547,6 +547,16 @@
 export function inquiry_SelectTabs(params) {
   return request.get('/inquiry/selectTabs', { params: params });
 }
+
+//缁煎悎灞曠ず=>鏌ヨ=>涓嬭浇鐡︾墖
+export function inquiry_downloadTiles(params) {
+  return service.post('/inquiry/downloadTiles', params);
+}
+
+
+
+
+
 //杩愮淮绠$悊=>鐢ㄦ埛绠$悊=>鑾峰彇鍒楄〃
 export function userSelectByPageAndCount(params) {
   return request.get('/user/selectByPageAndCount', { params: params });
@@ -618,8 +628,6 @@
 export function dataUpload_selectPageAndCountByPid(params) {
   return request.get('/dataUpload/selectPageAndCountByPid', { params: params });
 }
-
-
 
 
 //鏁版嵁涓婁紶=鍒犻櫎鏁版嵁
diff --git a/src/assets/lang/en.js b/src/assets/lang/en.js
index efb5511..3a85e64 100644
--- a/src/assets/lang/en.js
+++ b/src/assets/lang/en.js
@@ -76,10 +76,10 @@
     dataStatistics: 'data Statistics',
     layerManage: 'Layer Management',
     layerObj: {
-      menuName: 'Menu name',
-      menuType: 'Menu type',
-      layerName: 'Layer name',
-      layerType: 'Layer type',
+      menuName: 'menu name',
+      menuType: 'Menu Type',
+      menuName: 'Layer Name',
+      menuType: 'Layer Type',
       serviceName: 'service name',
       serviceType: 'service type',
       serviceAddress: 'Service Address',
@@ -88,6 +88,15 @@
       dataType: 'data type',
       istrue: 'true',
       isfalse: 'false',
+      enTableName: 'English Table Name',
+      prompt1: 'Please enter a layer name',
+      prompt2: 'Please select a layer type',
+      prompt3: 'Please select a service type',
+      prompt4: 'Please enter the service address',
+
+      prompt6: 'Please enter the name of the English table (eg: m_geocontrollpoint)',
+      prompt7: 'Please enter note information',
+      prompt8: 'Please select a data type',
 
     },
     dataStaticObj: {
diff --git a/src/assets/lang/zh.js b/src/assets/lang/zh.js
index a3126e4..ee89852 100644
--- a/src/assets/lang/zh.js
+++ b/src/assets/lang/zh.js
@@ -77,8 +77,8 @@
     layerObj: {
       menuName: '鑿滃崟鍚嶇О',
       menuType: '鑿滃崟绫诲瀷',
-      layerName: '鍥惧眰鍚嶇О',
-      layerType: '鍥惧眰绫诲瀷',
+      menuName: '鍥惧眰鍚嶇О',
+      menuType: '鍥惧眰绫诲瀷',
       serviceName: '鏈嶅姟鍚嶇О',
       serviceType: '鏈嶅姟绫诲瀷',
       serviceAddress: '鏈嶅姟鍦板潃',
@@ -87,7 +87,15 @@
       dataType: '鏁版嵁绫诲瀷',
       istrue: '鏄�',
       isfalse: '鍚�',
+      enTableName: '鑻辨枃琛ㄥ悕绉�',
+      prompt1: '璇疯緭鍏ュ浘灞傚悕绉�',
+      prompt2: '璇烽�夋嫨鍥惧眰绫诲瀷',
+      prompt3: '璇烽�夋嫨鏈嶅姟绫诲瀷',
+      prompt4: '璇疯緭鍏ユ湇鍔″湴鍧�',
 
+      prompt6: '璇疯緭鍏ヨ嫳鏂囪〃鍚嶇О(濡�:m_geocontrolpoint)',
+      prompt7: '璇疯緭鍏ュ娉ㄤ俊鎭�',
+      prompt8: '璇烽�夋嫨鏁版嵁绫诲瀷',
     },
     dataStaticObj: {
       type1: '鏈嶅姟鍚嶇О',
diff --git a/src/components/mapsdk.vue b/src/components/mapsdk.vue
index 7723b34..c8a7364 100644
--- a/src/components/mapsdk.vue
+++ b/src/components/mapsdk.vue
@@ -1,5 +1,10 @@
 <template>
-  <div class="mapBox">
+  <div
+    class="mapBox"
+    v-loading="loading"
+    :element-loading-text="loadingText"
+    element-loading-background="rgba(0, 0, 0, 0.8)"
+  >
     <div id="mapdiv">
       <div
         class="menu_Top box_divm"
@@ -646,6 +651,72 @@
 
         </div>
       </el-dialog>
+      <el-dialog
+        title="鐡︾墖涓嬭浇"
+        :append-to-body="false"
+        :visible.sync="downTitleFlag"
+        :close-on-click-modal="false"
+        :show-close="false"
+        width="30%"
+      >
+        <el-form
+          :model="ruleForm"
+          status-icon
+          :rules="rules"
+          ref="ruleForm"
+          label-width="100px"
+          class="demo-ruleForm"
+        >
+          <el-form-item
+            label="鍚嶇О"
+            prop="title"
+          >
+            <el-input
+              v-model="ruleForm.title"
+              size="small"
+              placeholder="璇疯緭鍏ユ暟鎹悕绉�..."
+            ></el-input>
+          </el-form-item>
+          <el-form-item
+            label="瀵嗙爜"
+            prop="pass"
+          >
+            <el-input
+              show-password
+              type="password"
+              v-model="ruleForm.pass"
+              autocomplete="off"
+              size="small"
+              placeholder="璇疯緭鍏ュ瘑鐮�..."
+            ></el-input>
+          </el-form-item>
+          <el-form-item
+            label="纭瀵嗙爜"
+            prop="checkPass"
+          >
+            <el-input
+              show-password
+              type="password"
+              v-model="ruleForm.checkPass"
+              autocomplete="off"
+              size="small"
+              placeholder="纭瀵嗙爜..."
+            ></el-input>
+          </el-form-item>
+
+          <el-form-item>
+            <el-button
+              type="primary"
+              size="small"
+              @click='submitTitleDown("ruleForm")'
+            >鎻愪氦</el-button>
+            <el-button
+              size="small"
+              @click='cannelTitleDown("ruleForm")'
+            >鍙栨秷</el-button>
+          </el-form-item>
+        </el-form>
+      </el-dialog>
       <!--      <div-->
       <!--        @click="changeMenulayer"-->
       <!--        class="center CenDiv"-->
@@ -659,6 +730,11 @@
 
     </div>
     <model-property ref='modelProperty'></model-property>
+    <iframe
+      id="downFrame"
+      src=""
+      style="display: none; border: 0; padding: 0; height: 0; width: 0"
+    ></iframe>
   </div>
 </template>
 
@@ -673,7 +749,8 @@
   comprehensive_selectRoute,
   dataLib_selectFiles, dataQuery_selectFields, dataQuery_selectDomains,
   dataQuery_selectByPage,
-  comprehensive_selectPubById, comprehensive_selectModelByGuid
+  comprehensive_selectPubById, comprehensive_selectModelByGuid, decr,
+  encr, inquiry_downloadTiles, sign_getPublicKey
 } from '../api/api'
 import { getToken } from '@/utils/auth'
 
@@ -701,6 +778,35 @@
             }
           }
         }
+        callback();
+      }
+    };
+    var checkAge = (rule, value, callback) => {
+      if (!value) {
+        return callback(new Error('鏁版嵁鍚嶇О涓嶈兘涓虹┖'));
+      }
+      callback();
+
+    };
+    var validatePass = (rule, value, callback) => {
+      if (value === '') {
+        callback(new Error('璇疯緭鍏ュ瘑鐮�'));
+      } else {
+        var passwordreg =
+          /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![a-z0-9]+$)(?![a-z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![0-9\W!@#$%^&*`~()\\-_+=,.?;<>]+$)[a-zA-Z0-9\W!@#$%^&*`~()\\-_+=,.?;<>]{12,20}$/
+
+        if (!passwordreg.test(value)) {
+          callback(new Error("瀵嗙爜蹇呴』鐢辨暟瀛椼�佸瓧姣嶃�佺壒娈婂瓧绗︾粍鍚�,璇疯緭鍏�13-20浣�"))
+        }
+        callback();
+      }
+    };
+    var validatePass2 = (rule, value, callback) => {
+      if (value === '') {
+        callback(new Error('璇峰啀娆¤緭鍏ュ瘑鐮�'));
+      } else if (value !== this.ruleForm.pass) {
+        callback(new Error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!'));
+      } else {
         callback();
       }
     };
@@ -733,6 +839,15 @@
             message: "鍧愭爣鐐圭粡绾害閿欒,鍧愭爣搴斿湪[116.xxx, 39.yyy]鑼冨洿",
           },
         ],
+        pass: [
+          { validator: validatePass, trigger: 'blur' }
+        ],
+        checkPass: [
+          { validator: validatePass2, trigger: 'blur' }
+        ],
+        title: [
+          { validator: checkAge, trigger: 'blur' }
+        ]
       },
       bufFrom: {
         val: 50,
@@ -786,6 +901,15 @@
       valueX: 0,
       valueY: 0,
       terrainflag: false,
+      downTitleFlag: false,
+      downTitleData: null,
+      ruleForm: {
+        pass: '',
+        checkPass: '',
+        title: ''
+      },
+      loadingText: '',
+      loading: false,
     };
   },
   mounted() {
@@ -812,13 +936,72 @@
     });
     //妯″瀷鎹曟崏
     this.catchmodel()
-
+    this.$bus.$on("titleDown", res => {
+      this.setDownLoadTitle(res);
+    })
     window.localStorage.setItem('slider_x', this.valueX);
     window.localStorage.setItem('slider_y', this.valueY);
     window.localStorage.setItem('slider_z', this.valueZ);
   },
   methods: {
+    setDownLoadTitle(res) {
+      this.signGetPublicKey()
+      this.downTitleFlag = true;
+      this.downTitleData = res;
 
+    },
+    async signGetPublicKey() {
+      const res = await sign_getPublicKey()
+      if (res && res.code == 200) {
+        window.encrypt = new JSEncrypt()
+        encrypt.setPublicKey(res.result)
+      }
+    },
+    submitTitleDown(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+
+          this.downTitleData.title = this.ruleForm.title
+          // this.downTitleData.pwd = encr(this.ruleForm.pass)
+          this.downTitleData.pwd = encrypt.encrypt(this.ruleForm.pass)
+          this.getDownLoadTile(this.downTitleData);
+          this.cannelTitleDown();
+        } else {
+
+          console.log('error submit!!');
+          return false;
+        }
+      });
+    },
+    async getDownLoadTile(res) {
+      this.loading = true;
+      this.loadingText = "鏁版嵁涓嬭浇涓�,璇风◢绛�..."
+      $.ajax({
+        url: BASE_URL + "/inquiry/downloadTiles?token=" + getToken(),
+        type: "POST",
+        data: JSON.stringify(res),
+        dataType: 'json', // html銆乯son銆乯sonp銆乻cript銆乼ext
+        contentType: "application/json", // "application/x-www-form-urlencoded"
+        success: (data) => {
+          var token = getToken()
+          var url = BASE_URL + "/dataLib/downloadFile?token=" + token + "&guid=" + data.result + "&pwd=" + res.pwd;
+          $("#downFrame").attr("src", url).click();
+          this.loading = false;
+          this.loadingText = ""
+        },
+        error: function (e) {
+        }
+      });
+    },
+    cannelTitleDown(formName) {
+      this.downTitleFlag = false;
+      // this.$refs[formName].resetFields();
+      this.ruleForm = {
+        pass: '',
+        checkPass: '',
+        title: ''
+      }
+    },
     catchmodel() {
       var that = this;
       window.pickedFeature;
diff --git a/src/components/navMenu.vue b/src/components/navMenu.vue
index 7de5719..ee0583c 100644
--- a/src/components/navMenu.vue
+++ b/src/components/navMenu.vue
@@ -152,9 +152,13 @@
     document.body.addEventListener('click', () => {
       this.showFlag = null;
     }, false);
+
   },
   computed: {},
   methods: {
+    closeSecondMenu() {
+      this.showFlag = null
+    },
     themeChange() {
       this.$store.state.themeflag = !this.$store.state.themeflag;
       if (this.$store.state.themeflag == true) {
diff --git a/src/components/preview_map.vue b/src/components/preview_map.vue
index 34eaa1d..c2a5c09 100644
--- a/src/components/preview_map.vue
+++ b/src/components/preview_map.vue
@@ -917,7 +917,23 @@
       if (this.$store.state.previewLayer) {
         var res = this.$store.state.previewLayer;
         var type = res.type;
-        if (res.url.indexOf('.png') != -1) {
+        if (type == 'DEM') {
+          window.terrainLayer.deleteObject();
+          window.terrainLayer = null;
+          window.terrainLayer = new Cesium.CesiumTerrainProvider({
+            url: res.url
+          });
+          Viewer.terrainProvider = window.terrainLayer
+          Viewer.camera.flyTo({
+            destination: Cesium.Cartesian3.fromDegrees(113.229279, 31.215949, 1000),
+            orientation: {
+              heading: 6.08434611923462,
+              pitch: Cesium.Math.toRadians(-45.0),
+              roll: 0.0
+            }
+          });
+
+        } else if (res.url.indexOf('.png') != -1) {
           var wkt = this.$wkt.parse(res.geom);
           var height = this.getHeight(wkt.coordinates[2])
           window.BaseMapLayer = Viewer.imageryLayers.addImageryProvider(
@@ -929,7 +945,7 @@
           Viewer.camera.flyTo({
             destination: Cesium.Cartesian3.fromDegrees(wkt.coordinates[1], wkt.coordinates[0], height),
           });
-        } else if (res.url.indexOf('.json') != -1) {
+        } else if (type == '3dml') {
           if (this.app.tileset) viewer.scene.primitives.remove(this.app.tileset);
           this.app.tileset = this.createTileset(res);
           var that = this;
diff --git a/src/views/PackageTwo/WareInspection.vue b/src/views/PackageTwo/WareInspection.vue
index 32d3b85..c716574 100644
--- a/src/views/PackageTwo/WareInspection.vue
+++ b/src/views/PackageTwo/WareInspection.vue
@@ -1,8 +1,11 @@
 <!--鍏ュ簱璐ㄦ--->
 <template>
-  <div class="wareBox">
+  <div
+    class="wareBox"
+    id="wareBox"
+  >
     <iframe
-      id="ifream"
+      id="iframeContainer"
       style="border:none"
       width="100%"
       height="100%"
@@ -10,7 +13,8 @@
     ></iframe>
   </div>
 </template>
-
+ 
+ 
 <script>
 import { getToken } from "@/utils/auth";
 export default {
@@ -38,15 +42,18 @@
     }
   },
   methods: {
+    closeNaveMenu() {
+      this.$bus.$emit('closeNaveMenu', true)
+    },
     langreash(res) {
 
-       this.$router.push('/QualityInspection')
+      this.$router.push('/QualityInspection')
 
     },
     refreash(res) {
 
-     this.$router.push('/QualityInspection')
-    
+      this.$router.push('/QualityInspection')
+
     },
     showChangeIfream(res) {
       // 
@@ -89,9 +96,9 @@
     setLiClick(res, index) {
       var timer = setTimeout(function () {
         if (res.indexOf('http') != -1) {
-            this.$store.reporturl = res;
-            // sessionStorage.setItem('iframehttpurl', this.$store.reporturl)
-            this.$router.push('/QualityInspection');
+          this.$store.reporturl = res;
+          // sessionStorage.setItem('iframehttpurl', this.$store.reporturl)
+          this.$router.push('/QualityInspection');
           // if (location.href.indexOf('/WareInspection') == -1) {
           //   this.$store.reporturl = res.url;
           //   this.$router.push('/WareInspection');
@@ -114,10 +121,20 @@
     },
   },
   mounted() {
-    // console.log(sessionStorage.getItem('iframehttpurl'))
-    // 
+
+    // var iframe = document.getElementById('iframeContainer');
+    // iframe.onload = function (res) {
+
+    // }
+
+    // $('#iframeContainer').click = function () {
+    //   console.log('鐐瑰嚮浜唅frame椤甸潰')
+    //   // if (window.sessionStorage.getItem('xxxLastTime') !== null) {
+    //   //   window.sessionStorage.setItem('xxxLastTime', new Date().getTime())
+    //   // }
+    // };
     if (sessionStorage.getItem('routerName') === '/WareInspection') {
-      
+
       this.showChangeIfream(sessionStorage.getItem('iframehttpurl'))
       this.setLiClick(sessionStorage.getItem('iframehttpurl'))
 
diff --git a/src/views/Synthesis/LeftMenu.vue b/src/views/Synthesis/LeftMenu.vue
index a593fbf..716a4f1 100644
--- a/src/views/Synthesis/LeftMenu.vue
+++ b/src/views/Synthesis/LeftMenu.vue
@@ -441,6 +441,12 @@
             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 3b587fb..cd3b9aa 100644
--- a/src/views/Tools/LayerTree.vue
+++ b/src/views/Tools/LayerTree.vue
@@ -126,6 +126,14 @@
       >
         <i class="el-icon-tickets"></i>&nbsp;&nbsp;閽诲瓟鏌辩姸鍥�
       </div>
+      <div
+        class="edit"
+        v-show="shwoTitle"
+        @click="tileDownload()"
+      >
+        <i class="el-icon-download"></i>&nbsp;&nbsp;鐡︾墖涓嬭浇
+
+      </div>
       <!-- <div
         class="edit"
         v-show="showModelAttach"
@@ -220,6 +228,7 @@
   perms_selectLayers, inquiry_selectDomains, comprehensive_selectPubById,
   project_selectDirAll, project_selectByDirid, dataQuerySelectWktById
 } from "../../api/api.js";
+import { conditions } from '../Archive/Archive.js';
 export default {
   name: "tree",
   components: { queryinfo },
@@ -271,11 +280,47 @@
       mptLayer: [],
       optionts: [],
       proValue: null,
-      setCheeckedLayer: []
+      setCheeckedLayer: [],
+      shwoTitle: false,
     };
   },
   methods: {
+    //鐡︾墖涓嬭浇
+    tileDownload() {
+      var that = this;
+      this.menuVisible = false
+      sgworld.Creator.createSimpleGraphic(
+        "rectangle",
+        {},
+        function (entity) {
+          that.getTileRectangle(entity);
+          sgworld.Creator.SimpleGraphic.clear()
 
+        }
+      );
+    },
+    getTileRectangle(res) {
+      var value = res.rectangle.coordinates.getValue();
+      var val = {
+        pubid: this.currentData.pubid,
+        pwd: "",
+        title: "",
+        xmax: Cesium.Math.toDegrees(
+          value.east
+        ),
+        xmin: Cesium.Math.toDegrees(
+          value.west
+        ),
+        ymax: Cesium.Math.toDegrees(
+          value.north
+        ),
+        ymin: Cesium.Math.toDegrees(
+          value.south
+        )
+      }
+      this.$bus.$emit("titleDown", val)
+
+    },
     //杞瓟鏌辩姸鍥�
     async histogram() {
       this.menuVisible = false
@@ -325,10 +370,14 @@
       this.currentNode = Node;
 
       this.$store.state.propertiesName = this.currentData;
-      if (this.currentData.serveType == "Tileset") {
+      this.showModelAttach = false;
+      this.shwoTitle = false;
+
+
+      if (this.currentData.serveType == 'TMS') {
+        this.shwoTitle = true
+      } else if (this.currentData.serveType == "Tileset") {
         this.showModelAttach = true;
-      } else {
-        this.showModelAttach = false;
       }
       if (this.currentData.enName == "s_explorationpoint") {
         this.shwoHistogram = true;
@@ -1081,7 +1130,15 @@
       let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕
       return cloneData.filter((father) => {
         // 寰幆鎵�鏈夐」
-        let branchArr = cloneData.filter((child) => father.id == child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁
+        let branchArr = cloneData.filter((child) => father.id == child.pid);
+        if (branchArr.length > 0) {
+
+          branchArr.sort(function (a, b) {
+
+            return a.orderNum - b.orderNum
+          })
+        }
+
         branchArr.length > 0 ? (father.children = branchArr) : ""; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊�
         // 灞炰簬鍚屼竴瀵硅薄闂锛屼緥濡傦細浠� a=b銆乧=1 锛岀劧鍚庡啀浠� b.c=c 锛� 閭d箞 a.c=b.c=c=1 锛涘悓鐞嗭紝鍚庣画浠� c.d=2 ,閭d箞 a.c.d 涔熸槸=2锛�
         // 鐢辨寰幆澶氭鍚庯紝灏辫兘褰㈡垚鐩稿簲鐨勬爲褰㈡暟鎹粨鏋�
@@ -1391,7 +1448,9 @@
     if (this.$store.state.showAllLayers == true) {
       this.layersStart();
       this.$store.state.showAllLayers = false;
+
     } else {
+
       this.treeData = this.$store.state.treeData;
       this.$refs.tree.setCheckedKeys(this.$store.state.checkedKeys);
     }
diff --git a/src/views/Tools/maplayer.vue b/src/views/Tools/maplayer.vue
index 4afa171..1da7dd5 100644
--- a/src/views/Tools/maplayer.vue
+++ b/src/views/Tools/maplayer.vue
@@ -5,14 +5,13 @@
       v-for="(data, index) in PopupData"
       :key="data.id"
       title="鍥惧眰绠$悊"
-      :maxHeight="data.maxHeight || '400px'"
+      :maxHeight="data.maxHeight || '700px'"
       @close="close(data.id)"
       :left="data.left || left"
-      :top="data.top || top + index * 42 + 'px'"
+      :top="data.top || top + index * 30 + 'px'"
     >
-      <div>
+      <div id="eagleMapContainer">
         <div
-          id="eagleMapContainer"
           style="width:300px;height:400px;"
           v-drag
           @mousedown="dragEagle"
diff --git a/src/views/datamanage/dictionaryManage.vue b/src/views/datamanage/dictionaryManage.vue
index fd185b6..3dc8e52 100644
--- a/src/views/datamanage/dictionaryManage.vue
+++ b/src/views/datamanage/dictionaryManage.vue
@@ -472,7 +472,8 @@
               v-model="insertform.tab"
               autocomplete="off"
               style="width:85%"
-                 :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetableName')"
+              :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetableName')"
+              disabled
             ></el-input>
           </el-form-item>
           <el-form-item
@@ -720,7 +721,8 @@
     //淇敼璇︽儏寮规
     handleEdit(index, row) {
       this.dialogFormVisible = true;
-      this.upform = row;
+      var val = JSON.parse(JSON.stringify(row))
+      this.upform = val;
     },
     //鍒犻櫎鍒楄〃
     DelFormData() {
diff --git a/src/views/datamanage/layerManagement.vue b/src/views/datamanage/layerManagement.vue
index de9a168..9caeb2c 100644
--- a/src/views/datamanage/layerManagement.vue
+++ b/src/views/datamanage/layerManagement.vue
@@ -12,8 +12,11 @@
         style="border: 1px solid #dcdfe6;"
       >
         <div>
-          <el-input v-model="filterText" suffix-icon="el-icon-search" :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuelayerName')">
-          </el-input>
+          <el-input
+            v-model="filterText"
+            :placeholder="$t('dataManage.layerObj.prompt1')"
+            suffix-icon="el-icon-search"
+          ></el-input>
 
           <el-tree
             ref="tree"
@@ -105,18 +108,20 @@
             <!-- 鑿滃崟鍚嶇О -->
             <el-form-item :label="$t('dataManage.layerObj.layerName')">
               <el-input
+                :placeholder="$t('dataManage.layerObj.prompt1')"
                 style="width: 60%;"
                 v-model="formInline.cnName"
-                 :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuelayerName')"
+               
               ></el-input>
             </el-form-item>
             <!-- 鑿滃崟绫诲瀷 -->
             <el-form-item :label="$t('dataManage.layerObj.layerType')">
               <el-select
+                :placeholder="$t('dataManage.layerObj.prompt2')"
                 clearable
                 style="width: 60%;"
                 v-model="formInline.type"
-                 :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuelayerType')"
+               
               >
                 <el-option
                   label="鐩綍"
@@ -137,7 +142,7 @@
                 clearable
                 style="width: 60%;"
                 v-model="formInline.serveType"
-                
+                :placeholder="$t('dataManage.layerObj.prompt3')"
               >
                 <el-option
                   v-for="item in serveType"
@@ -154,8 +159,20 @@
               :label="$t('dataManage.layerObj.serviceAddress')"
             >
               <el-input
+                :placeholder="$t('dataManage.layerObj.prompt4')"
                 style="width: 60%;"
                 v-model="formInline.url"
+              ></el-input>
+            </el-form-item>
+            <!-- 鑻辨枃琛ㄥ悕 -->
+            <el-form-item
+              v-show="formInline.type == 2 && formInline.serveType =='WMS'"
+              :label="$t('dataManage.layerObj.enTableName')"
+            >
+              <el-input
+                :placeholder="$t('dataManage.layerObj.prompt6')"
+                style="width: 60%;"
+                v-model="formInline.enName"
               ></el-input>
             </el-form-item>
             <!-- 鏁版嵁绫诲瀷 -->
@@ -164,7 +181,7 @@
                 clearable
                 style="width: 60%;"
                 v-model="formInline.dataType"
-                 :placeholder="$t('shuJuGuanLi.shuJuJianSuo.selectDataType')"
+                :placeholder="$t('dataManage.layerObj.prompt8')"
               >
                 <el-option
                   v-for="item in dataType"
@@ -208,7 +225,7 @@
               <el-input
                 style="width: 60%;"
                 v-model="formInline.bak"
-                :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueRemarks')"
+                :placeholder="$t('dataManage.layerObj.prompt7')"
               ></el-input>
             </el-form-item>
             <el-form-item v-show="menuStatus.update">
@@ -243,7 +260,7 @@
             <el-input
               style="width: 80%;"
               v-model="insertData.cnName"
-                :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuelayerName')"
+              :placeholder="$t('dataManage.layerObj.prompt1')"
             ></el-input>
           </el-form-item>
           <!-- 鑿滃崟绫诲瀷 -->
@@ -252,7 +269,7 @@
               clearable
               style="width: 80%;"
               v-model="insertData.type"
-               :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuelayerType')"
+              :placeholder="$t('dataManage.layerObj.prompt2')"
             >
               <el-option
                 label="鐩綍"
@@ -273,7 +290,7 @@
               clearable
               style="width: 80%;"
               v-model="insertData.serveType"
-              placeholder=" "
+              :placeholder="$t('dataManage.layerObj.prompt3')"
             >
               <el-option
                 v-for="item in serveType"
@@ -290,8 +307,20 @@
             :label="$t('dataManage.layerObj.serviceAddress')"
           >
             <el-input
+              :placeholder="$t('dataManage.layerObj.prompt4')"
               style="width: 80%;"
               v-model="insertData.url"
+            ></el-input>
+          </el-form-item>
+          <!-- 鑻辨枃琛ㄥ悕 -->
+          <el-form-item
+            v-show="insertData.type == 2 && insertData.serveType =='WMS'"
+            :label="$t('dataManage.layerObj.enTableName')"
+          >
+            <el-input
+              :placeholder="$t('dataManage.layerObj.prompt6')"
+              style="width: 80%;"
+              v-model="insertData.enName"
             ></el-input>
           </el-form-item>
           <!-- 鏁版嵁绫诲瀷 -->
@@ -300,7 +329,7 @@
               clearable
               style="width: 80%;"
               v-model="insertData.dataType"
-               :placeholder="$t('shuJuGuanLi.shuJuJianSuo.selectDataType')"
+              :placeholder="$t('dataManage.layerObj.prompt8')"
             >
               <el-option
                 v-for="item in dataType"
@@ -342,9 +371,10 @@
           <!-- 鎻忚堪 -->
           <el-form-item :label="$t('common.bak')">
             <el-input
+              :placeholder="$t('dataManage.layerObj.prompt7')"
               style="width: 80%;"
               v-model="insertData.bak"
-                :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueRemarks')"
+        
             ></el-input>
           </el-form-item>
           <el-form-item v-show="menuStatus.update">
@@ -639,13 +669,13 @@
       var val = JSON.parse(JSON.stringify(res))
 
       var data = this.$refs.tree.getNode(val.id).data;
-
-      this.backUpData = JSON.stringify(data)
-      this.currentData = JSON.stringify(data)
-      this.formInline = data;
-      this.formInline.type = data.type.toString();
-      this.formInline.isShow = data.isShow.toString();
-      this.formInline.isProject = data.isProject.toString();
+      var result = JSON.parse(JSON.stringify(data))
+      this.backUpData = JSON.stringify(result)
+      this.currentData = JSON.stringify(result)
+      this.formInline = result;
+      this.formInline.type = result.type.toString();
+      this.formInline.isShow = result.isShow.toString();
+      this.formInline.isProject = result.isProject.toString();
     },
     //鍥惧眰鍒楄〃鐐瑰嚮浜嬩欢
     handleNodeClick(data, node) {
diff --git a/src/views/datamanage/uploadmanage.vue b/src/views/datamanage/uploadmanage.vue
index f31e72a..a6d3a59 100644
--- a/src/views/datamanage/uploadmanage.vue
+++ b/src/views/datamanage/uploadmanage.vue
@@ -460,7 +460,10 @@
               v-model="insertLayer.number"
             ></el-input>
           </el-form-item>
-          <el-form-item :label="$t('dataManage.vmobj.labe14')">
+          <el-form-item
+            :label="$t('dataManage.vmobj.labe14')"
+            v-show="formInline.type =='DOM'"
+          >
             <el-select
               style="width:100%"
               v-model="insertLayer.noData"
@@ -600,6 +603,9 @@
         value: 'DOM',
         label: '褰卞儚鏁版嵁(.tif, .img)'
       }, {
+        value: 'DEM',
+        label: '楂樼▼鏁版嵁(.tif)'
+      }, {
         value: 'MPT',
         label: '鍦烘櫙鏁版嵁(.mpt)'
       }, {
@@ -728,7 +734,7 @@
         this.$message("璇烽�夋嫨瑕佸彂甯冪殑鏁版嵁")
         return
       }
-      if (this.formInline.type == "DOM") {
+      if (this.formInline.type == "DOM" || this.formInline.type == "DEM") {
         this.insertLayer.name = this.formInline.dirName;
         this.insertLayer.number = this.multipleSelection.length
         this.insertLayer.noData = '0';
diff --git a/src/views/exportMap/index.vue b/src/views/exportMap/index.vue
index ed7d7bc..6af9cac 100644
--- a/src/views/exportMap/index.vue
+++ b/src/views/exportMap/index.vue
@@ -36,7 +36,7 @@
 
         <el-form-item>
           <el-link
-            @click="setMapAddDraw()"
+            @click="drawRegularPolygon()"
             :underline="false"
           ><i class="el-icon-edit-outline"></i>缁樺埗</el-link>
         </el-form-item>
@@ -75,13 +75,13 @@
             :underline="false"
           >鐭㈤噺</el-link>
         </el-form-item>
-        <el-form-item label="鏃嬭浆瑙掑害">
+        <!-- <el-form-item label="鏃嬭浆瑙掑害">
           <el-input
             v-model="formInline.role"
             placeholder="璇疯緭鍏ュ唴瀹�"
             @change="setMapRole"
           ></el-input>
-        </el-form-item>
+        </el-form-item> -->
       </el-form>
     </div>
     <div
@@ -131,6 +131,12 @@
       >
         <el-form-item label="鍑哄浘鍚嶇О">
           <el-input v-model="form.name"></el-input>
+        </el-form-item>
+        <el-form-item label="鏃嬭浆瑙掑害">
+          <el-input
+            v-model="formInline.role"
+            placeholder="璇疯緭鍏ユ棆杞搴�(0-360)"
+          ></el-input>
         </el-form-item>
         <el-form-item>
           <div style="padding: 1%;  ">
@@ -279,6 +285,8 @@
 import TileLayer from "ol/layer/Tile"
 import { transform } from "ol/proj"
 import Draw, { createRegularPolygon, createBox } from "ol/interaction/Draw.js"
+
+
 import { OSM, Vector as VectorSource } from "ol/source"
 import { Vector as VectorLayer } from "ol/layer"
 import LayerVector from "ol/layer/Vector"
@@ -500,7 +508,7 @@
         resolution: "20绫�",
         date: this.getYMD(),
         layers: res.toString(),
-        rotation: 0,
+        rotation: this.form.role,
         xmin: this.layerExtent.xmin,
         ymin: this.layerExtent.ymin,
         xmax: this.layerExtent.xmax,
@@ -548,7 +556,53 @@
       }
       this.layerExtent = null
     },
+    stopDraw() {
+      // if (this.draw !== null) {
+      //   this.map.removeInteraction(this.draw)
+      // }
+      if (this.draw != null) {
+        mapView.removeLayer(this.vector)
+      }
+      this.layerExtent = null
+    },
+    drawRegularPolygon() {
+      this.stopDraw();
 
+
+      this.source = new VectorSource({ wrapX: false })
+
+      this.vector = new VectorLayer({
+        source: this.source,
+      })
+      mapView.addLayer(this.vector)
+
+      let type = 'Circle'
+      let geometryFunction2 = createRegularPolygon(4)
+      this.draw = new Draw({
+        source: this.source,
+        type: type,
+        geometryFunction: geometryFunction2
+      })
+      mapView.addInteraction(this.draw)
+      this.draw.on("drawend", e => {
+        let feature = e.feature
+        let geom = feature.getGeometry()
+        var extent = geom.getExtent()
+        var a1 = transform([extent[0], extent[1]], "EPSG:3857", "EPSG:4326")
+        var a2 = transform([extent[2], extent[3]], "EPSG:3857", "EPSG:4326")
+
+        this.layerExtent = {
+          xmin: a1[0],
+          ymin: a1[1],
+          xmax: a2[0],
+          ymax: a2[1],
+        }
+
+        mapView.removeInteraction(this.draw)
+      })
+
+    },
+    //缁樺埗鍥惧舰
     setMapAddDraw() {
       this.setMapRemoveDraw()
 

--
Gitblit v1.9.3