From ce20ac0c6339fbde3d3f9f62c1b39327880b8ccc Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期二, 09 五月 2023 10:13:28 +0800
Subject: [PATCH] 图层管理,发布管理修改

---
 src/views/PackageTwo/WareInspection.vue  |   41 +++++++---
 src/views/datamanage/uploadmanage.vue    |   10 ++
 src/views/exportMap/index.vue            |   62 ++++++++++++++-
 src/assets/lang/zh.js                    |   10 ++
 src/components/preview_map.vue           |   20 ++++
 src/assets/lang/en.js                    |   11 ++
 src/components/navMenu.vue               |    4 +
 src/views/datamanage/layerManagement.vue |   60 +++++++++++---
 8 files changed, 184 insertions(+), 34 deletions(-)

diff --git a/src/assets/lang/en.js b/src/assets/lang/en.js
index daa2506..9088321 100644
--- a/src/assets/lang/en.js
+++ b/src/assets/lang/en.js
@@ -78,6 +78,8 @@
     layerObj: {
       menuName: 'menu name',
       menuType: 'Menu Type',
+      menuName: 'Layer Name',
+      menuType: 'Layer Type',
       serviceName: 'service name',
       serviceType: 'service type',
       serviceAddress: 'Service Address',
@@ -86,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 113301a..b800ebc 100644
--- a/src/assets/lang/zh.js
+++ b/src/assets/lang/zh.js
@@ -77,6 +77,8 @@
     layerObj: {
       menuName: '鑿滃崟鍚嶇О',
       menuType: '鑿滃崟绫诲瀷',
+      menuName: '鍥惧眰鍚嶇О',
+      menuType: '鍥惧眰绫诲瀷',
       serviceName: '鏈嶅姟鍚嶇О',
       serviceType: '鏈嶅姟绫诲瀷',
       serviceAddress: '鏈嶅姟鍦板潃',
@@ -85,7 +87,15 @@
       dataType: '鏁版嵁绫诲瀷',
       istrue: '鏄�',
       isfalse: '鍚�',
+      enTableName: '鑻辨枃琛ㄥ悕绉�',
+      prompt1: '璇疯緭鍏ュ浘灞傚悕绉�',
+      prompt2: '璇烽�夋嫨鍥惧眰绫诲瀷',
+      prompt3: '璇烽�夋嫨鏈嶅姟绫诲瀷',
+      prompt4: '璇疯緭鍏ユ湇鍔″湴鍧�',
 
+      prompt6: '璇疯緭鍏ヨ嫳鏂囪〃鍚嶇О(濡�:m_geocontrolpoint)',
+      prompt7: '璇疯緭鍏ュ娉ㄤ俊鎭�',
+      prompt8: '璇烽�夋嫨鏁版嵁绫诲瀷',
     },
     dataStaticObj: {
       type1: '鏈嶅姟鍚嶇О',
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/datamanage/layerManagement.vue b/src/views/datamanage/layerManagement.vue
index 1da5a84..af264e5 100644
--- a/src/views/datamanage/layerManagement.vue
+++ b/src/views/datamanage/layerManagement.vue
@@ -12,7 +12,11 @@
         style="border: 1px solid #dcdfe6;"
       >
         <div>
-          <el-input v-model="filterText"></el-input>
+          <el-input
+            v-model="filterText"
+            :placeholder="$t('dataManage.layerObj.prompt1')"
+            suffix-icon="el-icon-search"
+          ></el-input>
 
           <el-tree
             ref="tree"
@@ -104,6 +108,7 @@
             <!-- 鑿滃崟鍚嶇О -->
             <el-form-item :label="$t('dataManage.layerObj.menuName')">
               <el-input
+                :placeholder="$t('dataManage.layerObj.prompt1')"
                 style="width: 60%;"
                 v-model="formInline.cnName"
               ></el-input>
@@ -111,10 +116,10 @@
             <!-- 鑿滃崟绫诲瀷 -->
             <el-form-item :label="$t('dataManage.layerObj.menuType')">
               <el-select
+                :placeholder="$t('dataManage.layerObj.prompt2')"
                 clearable
                 style="width: 60%;"
                 v-model="formInline.type"
-                placeholder=" "
               >
                 <el-option
                   label="鐩綍"
@@ -135,7 +140,7 @@
                 clearable
                 style="width: 60%;"
                 v-model="formInline.serveType"
-                placeholder=" "
+                :placeholder="$t('dataManage.layerObj.prompt3')"
               >
                 <el-option
                   v-for="item in serveType"
@@ -152,8 +157,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>
             <!-- 鏁版嵁绫诲瀷 -->
@@ -162,7 +179,7 @@
                 clearable
                 style="width: 60%;"
                 v-model="formInline.dataType"
-                placeholder=" "
+                :placeholder="$t('dataManage.layerObj.prompt8')"
               >
                 <el-option
                   v-for="item in dataType"
@@ -206,6 +223,7 @@
               <el-input
                 style="width: 60%;"
                 v-model="formInline.bak"
+                :placeholder="$t('dataManage.layerObj.prompt7')"
               ></el-input>
             </el-form-item>
             <el-form-item v-show="menuStatus.update">
@@ -240,6 +258,7 @@
             <el-input
               style="width: 80%;"
               v-model="insertData.cnName"
+              :placeholder="$t('dataManage.layerObj.prompt1')"
             ></el-input>
           </el-form-item>
           <!-- 鑿滃崟绫诲瀷 -->
@@ -248,7 +267,7 @@
               clearable
               style="width: 80%;"
               v-model="insertData.type"
-              placeholder=" "
+              :placeholder="$t('dataManage.layerObj.prompt2')"
             >
               <el-option
                 label="鐩綍"
@@ -269,7 +288,7 @@
               clearable
               style="width: 80%;"
               v-model="insertData.serveType"
-              placeholder=" "
+              :placeholder="$t('dataManage.layerObj.prompt3')"
             >
               <el-option
                 v-for="item in serveType"
@@ -286,8 +305,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>
           <!-- 鏁版嵁绫诲瀷 -->
@@ -296,7 +327,7 @@
               clearable
               style="width: 80%;"
               v-model="insertData.dataType"
-              placeholder=" "
+              :placeholder="$t('dataManage.layerObj.prompt8')"
             >
               <el-option
                 v-for="item in dataType"
@@ -338,6 +369,7 @@
           <!-- 鎻忚堪 -->
           <el-form-item :label="$t('common.bak')">
             <el-input
+              :placeholder="$t('dataManage.layerObj.prompt7')"
               style="width: 80%;"
               v-model="insertData.bak"
             ></el-input>
@@ -634,13 +666,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 5f2bf53..bff463a 100644
--- a/src/views/datamanage/uploadmanage.vue
+++ b/src/views/datamanage/uploadmanage.vue
@@ -458,7 +458,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"
@@ -598,6 +601,9 @@
         value: 'DOM',
         label: '褰卞儚鏁版嵁(.tif, .img)'
       }, {
+        value: 'DEM',
+        label: '楂樼▼鏁版嵁(.tif)'
+      }, {
         value: 'MPT',
         label: '鍦烘櫙鏁版嵁(.mpt)'
       }, {
@@ -726,7 +732,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