From 865fe880b2ee89fd7ac358fa48da5e9510864aa6 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期四, 16 三月 2023 15:30:43 +0800
Subject: [PATCH] 拾取效果修改,地下模型效果优化

---
 src/assets/js/drag.js                |   28 ++++
 src/api/api.js                       |    6 +
 src/views/Tools/undergroundModel.vue |  139 +++++++++++++++++++++++
 src/main.js                          |    2 
 src/views/Synthesis/LeftMenu.vue     |  138 +++++++++++++---------
 src/components/mapsdk.vue            |    1 
 6 files changed, 257 insertions(+), 57 deletions(-)

diff --git a/src/api/api.js b/src/api/api.js
index 5f92795..a674e1a 100644
--- a/src/api/api.js
+++ b/src/api/api.js
@@ -1069,6 +1069,12 @@
   return request.get('/dataQuery/selectByGid', { params: params });
 }
 
+//鏁版嵁鏌ヨ=>鏍规嵁瀹炰綋鍚嶆煡璇㈣〃鍚�
+export function dataQuery_selectTabByEntity(params) {
+  return request.get('/dataQuery/selectTabByEntity', { params: params });
+}
+
+
 
 
 
diff --git a/src/assets/js/drag.js b/src/assets/js/drag.js
new file mode 100644
index 0000000..0e6af59
--- /dev/null
+++ b/src/assets/js/drag.js
@@ -0,0 +1,28 @@
+import Vue from 'vue';
+//浣跨敤Vue.directive()瀹氫箟涓�涓叏灞�鎸囦护
+//1.鍙傛暟涓�锛氭寚浠ょ殑鍚嶇О锛屽畾涔夋椂鎸囦护鍓嶉潰涓嶉渶瑕佸啓v-
+//2.鍙傛暟浜岋細鏄竴涓璞★紝璇ュ璞′腑鏈夌浉鍏崇殑鎿嶄綔鍑芥暟
+//3.鍦ㄨ皟鐢ㄧ殑鏃跺�欏繀椤诲啓v-
+const drag = Vue.directive('drag', {
+    //1.鎸囦护缁戝畾鍒板厓绱犱笂鍥炵珛鍒绘墽琛宐ind鍑芥暟锛屽彧鎵ц涓�娆�
+    //2.姣忎釜鍑芥暟涓涓�涓弬鏁版案杩滄槸el锛岃〃绀虹粦瀹氭寚浠ょ殑鍏冪礌锛宔l鍙傛暟鏄師鐢焜s瀵硅薄
+    //3.閫氳繃el.focus()鏄棤娉曡幏鍙栫劍鐐圭殑锛屽洜涓哄彧鏈夋彃鍏OM鍚庢墠鐢熸晥
+    bind: function (el) { },
+    //inserted琛ㄧず涓�涓厓绱狅紝鎻掑叆鍒癉OM涓細鎵цinserted鍑芥暟锛屽彧瑙﹀彂涓�娆�
+    inserted: function (el) {
+        el.onmousedown = function (e) {
+            var disx = e.pageX - el.offsetLeft;
+            var disy = e.pageY - el.offsetTop;
+            document.onmousemove = function (e) {
+                el.style.left = e.pageX - disx + 'px';
+                el.style.top = e.pageY - disy + 'px';
+            }
+            document.onmouseup = function () {
+                document.onmousemove = document.onmouseup = null;
+            }
+        }
+    },
+    //褰揤Node鏇存柊鐨勬椂鍊欎細鎵цupdated锛屽彲浠ヨЕ鍙戝娆�
+    updated: function (el) { }
+})
+export default drag;
\ No newline at end of file
diff --git a/src/components/mapsdk.vue b/src/components/mapsdk.vue
index dd9844e..f4d5460 100644
--- a/src/components/mapsdk.vue
+++ b/src/components/mapsdk.vue
@@ -353,6 +353,7 @@
       <div
         class="propertiesPop"
         v-if="$store.state.propertiesFlag == '1'"
+        v-drag
       >
         <el-card class="box-card">
           <div slot="header">
diff --git a/src/main.js b/src/main.js
index cb3e22e..04ba251 100644
--- a/src/main.js
+++ b/src/main.js
@@ -19,7 +19,7 @@
 import VueParticles from 'vue-particles'
 import dataV from '@jiaminghi/data-view'
 import directive from '@/directive/index.js' // directive
-
+import drag from '@/assets/js/drag.js'
 Vue.use(directive)
 Vue.use(dataV)
 Vue.use(VueParticles)
diff --git a/src/views/Synthesis/LeftMenu.vue b/src/views/Synthesis/LeftMenu.vue
index c0211f6..d0e7a8c 100644
--- a/src/views/Synthesis/LeftMenu.vue
+++ b/src/views/Synthesis/LeftMenu.vue
@@ -17,6 +17,7 @@
     <queryinfo ref="queryinfo" />
     <terrainDig ref="terrainDig" />
     <modelAttach ref="modelAttach" />
+    <undergroundModel ref="undergroundModel" />
     <input
       type="file"
       accept=".kml"
@@ -184,50 +185,6 @@
           </el-tab-pane>
 
         </el-tabs>
-        <!-- <el-form :model="formInline">
-          <el-form-item>
-            <el-row :gutter="20">
-              <el-col :span="20">
-                <el-input
-                  size="small"
-                  disabled
-                  v-model="formInline.file"
-                ></el-input>
-
-                <input
-                  name="file1"
-                  type="file"
-                  id="insertFile"
-                  multiple="multiple"
-                  style="display: none"
-                  @change="insertFile( )"
-                />
-              </el-col>
-              <el-col :span="4">
-                <el-link
-                  @click="getInsertFile( )"
-                  :underline="false"
-                  icon="el-icon-folder"
-                > </el-link>
-              </el-col>
-            </el-row>
-          </el-form-item>
-          <el-form-item>
-            <el-button
-              @click="setAttachInsert"
-              size="mini"
-              type="primary"
-              plain
-            >娣诲姞</el-button>
-            <el-button
-              type="danger"
-              plain
-              size="mini"
-              @click="setAttachDel"
-            >鍒犻櫎</el-button>
-          </el-form-item>
-        </el-form> -->
-        <!--     @selection-change="handleAttatchChange" -->
 
       </div>
     </el-dialog>
@@ -241,6 +198,7 @@
 import queryinfo from "../Tools/queryinfo.vue";
 import terrainDig from "../Tools/terrainDig.vue";
 import modelAttach from "../Tools/ModelAttach.vue";
+import undergroundModel from "../Tools/undergroundModel";
 import $ from "jquery";
 import { getToken } from "@/utils/auth";
 import ImageWMS from "ol/source/ImageWMS";
@@ -255,7 +213,11 @@
   comprehensive_deletes,
   comprehensive_selectModelByPageAndCount,
   comprehensive_insertModel,
-  comprehensive_updateModel, selectByBuffer
+  comprehensive_updateModel, selectByBuffer,
+  dataQuery_selectTabByEntity,
+  inquiry_selectDomains,
+  inquiry_selectFields,
+  dataQuery_selectByGid,
 } from '../../api/api.js'
 import {
   OverviewMap,
@@ -268,7 +230,7 @@
 import { geometry } from "@turf/turf";
 
 export default {
-  components: { mapinfo, maplayer, queryinfo, terrainDig, modelAttach },
+  components: { mapinfo, maplayer, queryinfo, terrainDig, modelAttach, undergroundModel },
   data() {
     return {
       showTwoMenuFlag: false,
@@ -2202,8 +2164,11 @@
           this.$store.state.isNaviget = this.isNaviget;
           break;
         case "b9": //鍦颁笅妯″紡
-          this.UndergroundMode = !this.UndergroundMode;
-          window.sgworld.Analysis.UndergroundMode(this.UndergroundMode, 0.3);
+          // this.UndergroundMode = !this.UndergroundMode;
+          // window.sgworld.Analysis.UndergroundMode(this.UndergroundMode, 0.3);
+          this.$refs &&
+            this.$refs.undergroundModel &&
+            this.$refs.undergroundModel.open("鍦颁笅妯″紡", null,);
           break;
       }
     },
@@ -2368,19 +2333,80 @@
           name: tab.replaceAll("_", "")
         }
 
-        this.$refs &&
-          this.$refs.queryinfo &&
-          this.$refs.queryinfo.close("queryinfo");
-        this.$store.state.mapPopBoxFlag = "4";
+        const res = await dataQuery_selectTabByEntity({
+          name: this.$store.state.pickoption.name
+        })
+        if (res.code != 200) {
+          return;
+        }
+        var value = res.result.split('.')
+        this.$store.state.propertiesName = {
+          ns: value[0],
+          enName: value[1],
+          tabDesc: '鎷惧彇淇℃伅'
+        }
+        var name = this.$store.state.pickoption.name;
+        const data = await inquiry_selectFields({ name: name })
+        if (data.code != 200) {
+          this.$message.error("鍒楄〃璋冪敤澶辫触")
+        }
+        const data1 = await inquiry_selectDomains({ name: name })
+        if (data1.code != 200) {
+          this.$message.error("鍒楄〃璋冪敤澶辫触")
+        }
+        this.optionx = []
+        this.attributeData = []
+        var valadata = data.result
+        var laydomain = data1.result
+        for (var i in valadata) {
+          if (valadata[i].showtype == 1) {
+            if (
+              valadata[i].domainNa != null &&
+              valadata[i].domainNa != undefined
+            ) {
+              for (var j in laydomain) {
+                if (laydomain[j].domName == valadata[i].domainNa) {
+                  valadata[i].domainNa = laydomain[j].codeDesc
+                }
+              }
+            }
+            this.optionx.push(valadata[i])
+            this.attributeData.push(valadata[i])
+          }
+        }
 
-        this.$refs &&
-          this.$refs.queryinfo &&
-          this.$refs.queryinfo.open("鎷惧彇鍒嗘瀽", null,);
+        this.getTableData()
       }
+    },
+    async getTableData() {
+      this.tableData = []
+      const data = await dataQuery_selectByGid(this.$store.state.pickoption)
+      if (data.code != 200) {
+        return
+      }
+      var valste = data.result
 
+
+      for (var j in this.optionx) {
+        if (
+          this.optionx[j].domainNa != null &&
+          this.optionx[j].domainNa != undefined
+        ) {
+
+          valste[this.optionx[j].field] = this.optionx[j].domainNa
+        }
+      }
+      var arr = {}
+      for (var i = (this.attributeData.length - 1); i >= 0; i--) {
+        var vla = this.attributeData[i]
+        arr[vla.alias] = valste[vla.field]
+      }
+      arr['eventid'] = valste.eventid
+      this.$store.state.propertiesInfo = arr;
+
+      this.$store.state.propertiesFlag = '1'
 
     },
-
 
     showModelAttach() {
       if (this.$store.state.attachModel) {
diff --git a/src/views/Tools/undergroundModel.vue b/src/views/Tools/undergroundModel.vue
new file mode 100644
index 0000000..1bed81e
--- /dev/null
+++ b/src/views/Tools/undergroundModel.vue
@@ -0,0 +1,139 @@
+<template>
+  <Popup
+    ref="pop"
+    :title="form.title"
+    left="calc(100% - 330px)"
+  >
+    <div class="undergroundModel">
+      <el-form
+        ref="form"
+        :model="form"
+        label-width="100px"
+      >
+        <el-form-item class="nolabel-form-item">
+          <el-form-item
+            class="inline-form-item"
+            label="鍦颁笅妯″紡"
+          >
+            <el-switch
+              v-model="form.open"
+              @change="openChange"
+            > </el-switch>
+          </el-form-item>
+          <el-form-item
+            class="inline-form-item"
+            label="鍦颁笅鏍肩綉"
+          >
+            <el-switch
+              v-model="form.grid"
+              @change="gridChange"
+            > </el-switch>
+          </el-form-item>
+        </el-form-item>
+        <el-form-item label="閫忔槑搴�">
+          <el-slider
+            v-model="form.alpha"
+            :min="0"
+            :max="100"
+            @change="alphaChange"
+          ></el-slider>
+        </el-form-item>
+        <el-form-item
+          label="鏍肩綉娣卞害"
+          v-if="form.grid"
+        >
+          <el-slider
+            v-model="form.depth"
+            :min="0"
+            :max="300"
+            @change="depthChange"
+          ></el-slider>
+        </el-form-item>
+      </el-form>
+    </div>
+  </Popup>
+</template>
+<script>
+import Popup from "./Popup.vue";
+let UndergroundMode;
+export default {
+  name: "undergroundModel",
+  components: {
+    Popup,
+  },
+  data() {
+    return {
+      form: {
+        title: "鍦颁笅妯″紡",
+        open: false,
+        grid: false,
+        alpha: 50,
+        depth: 100,
+      },
+    };
+  },
+  methods: {
+    // 鍏抽棴寮圭獥
+    close() {
+      this.$refs.pop.close();
+    },
+    // 鎵撳紑寮圭獥
+    open() {
+      this.$refs.pop.open();
+    },
+    // 寮�鍏冲紑鍏�
+    openChange() {
+      let value = this.form.alpha / 100;
+      if (this.form.open == 1) {
+        // this.$notify({
+        //   title: "鍦颁笅妯″紡",
+        //   message: "鍦颁笅妯″紡宸插紑鍚�",
+        //   type: "success",
+        //   duration: "3000",
+        // });
+        UndergroundMode = window.sgworld.Analysis.UndergroundMode(true, value);
+        UndergroundMode.grid = this.form.grid;
+        UndergroundMode.depth = this.form.depth;
+      } else {
+        window.sgworld.Analysis.UndergroundMode(false, value);
+        UndergroundMode = null;
+        // this.$notify({
+        //   title: "鍦颁笅妯″紡",
+        //   message: "鍦颁笅妯″紡宸插叧闂�",
+        //   duration: "3000",
+        // });
+      }
+    },
+    // 寮�鍏冲紑鍏�
+    gridChange() {
+      UndergroundMode && (UndergroundMode.grid = this.form.grid);
+      // if (this.form.grid) {
+      //   this.$notify({
+      //     title: "鍦颁笅妯″紡",
+      //     message: "寮�鍚湴涓嬫牸缃�",
+      //     type: "success",
+      //     duration: "3000",
+      //   });
+      // } else {
+      //   this.$notify({
+      //     title: "鍦颁笅妯″紡",
+      //     message: "鍏抽棴鍦颁笅鏍肩綉",
+      //     duration: "3000",
+      //   });
+      // }
+    },
+    // 婊戝潡鍎垮�艰皟鏁�
+    alphaChange() {
+      let value = this.form.alpha / 100;
+      UndergroundMode && (UndergroundMode.alpha = value);
+    },
+    // 婊戝潡鍎垮�艰皟鏁�
+    depthChange() {
+      let value = this.form.depth;
+      UndergroundMode && (UndergroundMode.depth = value);
+    },
+  },
+};
+</script>
+<style lang="less">
+</style>
\ No newline at end of file

--
Gitblit v1.9.3