From 64479e2ce8b7c30e36f08c41eed226a1def1be82 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期二, 09 五月 2023 17:00:39 +0800
Subject: [PATCH] 瓦片下载功能添加;综合展示图层管理修改;数据管理字段管理编辑修改

---
 src/components/mapsdk.vue |  189 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 186 insertions(+), 3 deletions(-)

diff --git a/src/components/mapsdk.vue b/src/components/mapsdk.vue
index 0efb01d..2003a36 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;

--
Gitblit v1.9.3