From 28bd61701bb409257ea0dd3c78f32bd0b45ebbd5 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期一, 06 三月 2023 09:16:35 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.20.39:8989/r/LFWEB_NEW

---
 src/components/MapView/mapSpacePop.vue |   98 +++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 86 insertions(+), 12 deletions(-)

diff --git a/src/components/MapView/mapSpacePop.vue b/src/components/MapView/mapSpacePop.vue
index c6fd02f..3e4146c 100644
--- a/src/components/MapView/mapSpacePop.vue
+++ b/src/components/MapView/mapSpacePop.vue
@@ -60,7 +60,8 @@
       <div class="centTable">
         <el-table
           :data="tableData"
-          height="260px"
+          border
+          height="100%"
           ref="filterTable"
           style="width: 100%"
         >
@@ -90,6 +91,7 @@
             :prop="item.field"
             show-overflow-tooltip
             align="center"
+            :fit="true"
           ></el-table-column>
         </el-table>
       </div>
@@ -192,6 +194,7 @@
       spaceLayer: '',
       imagePoint: null,
       domainsLayer: null,
+      querytype: null,
     };
   },
   watch: {
@@ -241,7 +244,7 @@
       this.options = [];
 
       var std = [];
-
+      this.querytype = obj.type
       if (obj.type == "text" || obj.type == "blob") {
         std = this.conditions[0];
       } else if (obj.type == "date" || obj.type == "datetime") {
@@ -269,6 +272,7 @@
       this.formInline.name = val_date.field;
       this.options = [];
       var std = [];
+      this.querytype = val_date.type
       if (val_date.type == "text" || val_date.type == "blob") {
         std = this.conditions[0];
       } else if (val_date.type == "date" || val_date.type == "datetime") {
@@ -292,6 +296,7 @@
       if (data.code != 200) {
         this.$message.error('鍒楄〃璋冪敤澶辫触');
       }
+
       this.optionx = [];
       var valadata = data.result;
       for (var i in valadata) {
@@ -324,6 +329,7 @@
         this.$message.error('鍒楄〃璋冪敤澶辫触');
       }
       this.domainsLayer = data.result;
+
       this.setListDataStart();
       this.getTableselectFields();
     },
@@ -333,13 +339,41 @@
       if (this.formInline.input == undefined || this.formInline.input == null) {
         this.listdata.filter = null;
       } else {
+
+        var val;
+        var value = this.formInline.input
+        if (this.querytype == "long" || this.querytype == "integer") {
+
+          val = parseInt(value);
+        } else if (this.querytype == 'double') {
+
+          if (this.formSql.value.indexOf(".") != -1) {
+            val = value;
+          } else {
+            val = parseFloat(value).toFixed(1)
+          }
+        } else if (querytype == "date" || querytype == "datetime") {
+          var time = new Date(value);
+          var m = time.getMonth() + 1;
+          var d = time.getDate();
+          var y = time.getFullYear();
+          val = "'" + y +
+            '-' +
+            this.add0(m) +
+            '-' +
+            this.add0(d) + "'";
+        } else {
+          val = "'" + value + "'";
+        }
+
+
+
+
         this.listdata.filter =
-          this.formInline.name +
-          ' ' +
-          this.formInline.region +
-          ' ' +
-          this.formInline.input;
+          this.formInline.name + " " + this.formInline.region + " " + val
+
       }
+
       const data = await dataQuerySelectByPage(this.listdata);
       if (data.code != 200) {
         this.$message.error('鍒楄〃璋冪敤澶辫触');
@@ -379,7 +413,8 @@
           this.$store.state.primitLayer = null;
         }
         var wkt = this.$wkt.parse(val1);
-        this.setMapLoaction(wkt);
+
+        this.setMapLoaction(wkt, row);
       }
     },
     handleSizeChange(val) {
@@ -390,7 +425,7 @@
       this.listdata.pageIndex = val;
       this.getSpaceTableLayer();
     },
-    setMapLoaction(res) {
+    setMapLoaction(res, properties) {
       if (this.$store.state.primitLayer != null) {
         sgworld.Creator.DeleteObject(this.$store.state.primitLayer);
         // this.$store.state.primitLayer = null;
@@ -398,6 +433,7 @@
         this.$store.state.primitLayer = null;
       }
       var coord = res.coordinates;
+
       if (res.type == 'Point') {
         var val = Cesium.Cartesian3.fromDegrees(
           res.coordinates[0],
@@ -405,6 +441,8 @@
 
         );
         this.$store.state.primitLayer = Viewer.entities.add({
+          properties: properties,
+          tag: "properties_point",
           position: val,
           billboard: {
             // 鍥惧儚鍦板潃锛孶RI鎴朇anvas鐨勫睘鎬�
@@ -426,13 +464,41 @@
 
         sgworld.Navigate.flyToObj(this.$store.state.primitLayer)
 
+        window.propertieshandler = new Cesium.ScreenSpaceEventHandler(
+          sgworld.Viewer.scene.canvas
+        );
+        window.propertieshandler.setInputAction(event => {
+          let pick = sgworld.Viewer.scene.pick(event.position);
+          // ;
+          if (pick && pick.id && pick.id.tag == "properties_point") {
+            this.$store.state.propertiesFlag = '1';
+            let properties = pick.id.properties;
+            let propertyNames = pick.id.properties.propertyNames;
+            let obj = {};
+            obj["eventid"] = properties['_eventid']._value;
+            // 
+            this.attributeData.forEach(item => {
+              propertyNames.forEach(itemElement => {
+                if (itemElement == item.field) {
+                  obj[item.alias] = properties[itemElement]._value
+                }
+              })
+            })
+            this.$store.state.propertiesInfo = obj;
+          }
+        }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
+
       } else if (res.type == 'MultiPolygon' || res.type == 'LineString') {
+
         var val = res.coordinates[0][0];
         var std = [];
         for (var i in val) {
 
-          std.push({ x: val[i][0], y: val[i][1] })
+          std.push(val[i][0])
+
+          std.push(val[i][1])
         }
+
         this.$store.state.primitLayer = Viewer.entities.add({
           polyline: {
             positions: Cesium.Cartesian3.fromDegreesArray(std),
@@ -460,6 +526,9 @@
       }
     },
   },
+  destroyed() {
+    this.$store.state.propertiesFlag = null;
+  }
 };
 </script>
 
@@ -473,7 +542,9 @@
   border: 1px solid gray;
   float: left;
   .centTable {
-    height: 230px;
+    position: absolute;
+    height: 66%;
+    width: 98%;
   }
   .rightTitle {
     padding: 5px;
@@ -486,7 +557,10 @@
   }
   .bottomPage {
     position: absolute;
-    bottom: 1%;
+    bottom: 3%;
+  }
+  /deep/.el-form-item {
+    margin-bottom: 0px;
   }
 }
 </style>

--
Gitblit v1.9.3