From 9370afd29a8f6662921cc3f0f9e0f78890061326 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期三, 30 八月 2023 14:55:56 +0800
Subject: [PATCH] 资源查询接口对接调试,功能优化;资源管理页面新增,修改功能优化

---
 src/views/resourceQuery/resourceQuery.vue |  108 ++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 96 insertions(+), 12 deletions(-)

diff --git a/src/views/resourceQuery/resourceQuery.vue b/src/views/resourceQuery/resourceQuery.vue
index 7abc8fe..02599ad 100644
--- a/src/views/resourceQuery/resourceQuery.vue
+++ b/src/views/resourceQuery/resourceQuery.vue
@@ -57,7 +57,7 @@
             <el-form-item label="鏃堕棿鑼冨洿">
               <el-date-picker
                 style="width: 100%"
-                v-model="form.acqTime"
+                v-model="acqTime"
                 type="datetimerange"
                 range-separator="鑷�"
                 start-placeholder="寮�濮嬫棩鏈�"
@@ -303,12 +303,14 @@
         name: "",
         sensorType: 0,
         mataType: 0,
-        acqTime: null,
         wkt: null,
         pageIndex: 1,
         pageSize: 100,
         count: 0,
+        startDate: null,
+        endDate: null
       },
+      acqTime: '',
       sensorOption: [],
       metaOption: [],
       detailsBox: false,
@@ -328,12 +330,19 @@
         if (!checked) {
           this.list[i].checked = true;
           this.listChecked.push(this.list[i]);
+          this.setAddCheckLayer(this.list[i]);
         }
       }
     },
     setListRemoveCheckAll() {
       for (var i in this.list) {
-        this.list[i].checked = false;
+        if (this.list[i].checked) {
+          this.list[i].checked = false;
+          this.setRemoveCheckLayer(this.list[i]);
+        }
+
+
+
       }
       this.listChecked = [];
     },
@@ -346,6 +355,7 @@
       this.setFromStart();
       this.setDrawMenu(5);
       this.listChecked = [];
+      Viewer.entities.removeAll()
     },
     async setQueryRetrieval() {
       if (this.geoWkt) {
@@ -353,13 +363,47 @@
       } else {
         this.form.wkt = null;
       }
+      if (this.acqTime) {
+        this.form.endDate = this.setFromDate(this.acqTime[0])
+        this.form.startDate = this.setFromDate(this.acqTime[1])
+      } else {
+        this.form.endDate = null
+        this.form.startDate = null
+      }
       const data = await select_meta_ByPageAndCount(this.form);
       if (data.code != 200) return;
       this.form.count = data.count;
       this.list = data.result;
       this.listDialog = true;
     },
+    setFromDate(res) {
+      var time = new Date(res);
+      var y = time.getFullYear();
+      var m = time.getMonth() + 1;
+      var d = time.getDate();
+      var h = time.getHours();
+      var mm = time.getMinutes();
+      var s = time.getSeconds();
+      return (
+        y +
+        '-' +
+        this.add0(m) +
+        '-' +
+        this.add0(d) +
+        ' ' +
+        this.add0(h) +
+        ':' +
+        this.add0(mm) +
+        ':' +
+        this.add0(s)
+      );
+    },
+    //鏍煎紡鍖栨椂闂�
+    add0(m) {
 
+      return m < 10 ? "0" + m : m;
+    },
+    //澶у皬鍊兼敼鍙�
     handleSizeChange(val) {
       this.form.pageIndex = 1;
       this.form.pageSize = val;
@@ -376,6 +420,7 @@
       val.checked = !val.checked;
       if (val.checked) {
         this.listChecked.push(val);
+        this.setAddCheckLayer(val);
       }
 
       if (this.listChecked.length > 0) {
@@ -383,10 +428,46 @@
           this.listChecked.forEach((e, i) => {
             if (e.id == val.id) {
               this.listChecked.splice(i, 1);
+              this.setRemoveCheckLayer(val);
             }
           });
         }
       }
+    },
+    setAddCheckLayer(res) {
+      if (!res.geom) return
+      var wkt = this.$wkt.parse(res.geom).coordinates[0]
+      var geom = [];
+      for (var i in wkt) {
+        geom.push(Cesium.Cartesian3.fromDegrees(wkt[i][0], wkt[i][1]))
+      }
+      Viewer.entities.add({
+        name: res.name + "&&" + res.id,
+        polygon: {
+          hierarchy: geom,
+          material: Cesium.Color.WHITE.withAlpha(0.1),
+          // heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
+          outline: true,
+          outlineColor: Cesium.Color.fromCssColorString("rgba(130,167,33, 1)"),
+          outlineWidth: 10,
+          classificationType: Cesium.ClassificationType.BOTH,//璐村湴褰㈠拰3dtile
+          clampToGround: true,//寮�鍚创鍦�
+          height: 0,
+        },
+
+      });
+    },
+    setRemoveCheckLayer(res) {
+      var name = res.name + "&&" + res.id;
+      var entity = Viewer.entities._entities._array
+      for (var i = 0; i < entity.length; i++) {
+        if (entity[i].name == name) {
+          Viewer.entities.remove(entity[i])
+          i--;
+        }
+      }
+
+
     },
     setDrawMenu(res) {
       this.bufferNumber = 100;
@@ -433,7 +514,7 @@
       }
       var that = this;
       sgworld.Creator.createSimpleGraphic(this.drawType, config, (entity) => {
-        sgworld.Creator.SimpleGraphic.clear()
+
         that.querySatialQuery(entity);
       });
     },
@@ -453,10 +534,12 @@
           res_val = res.polygon.hierarchy.getValue().positions;
           break;
       }
+      sgworld.Creator.SimpleGraphic.clear()
       this.geoWkt = this.getEntityGeometry(res_val, this.drawType)
       if (this.geoWkt) {
-
-        this.setAddWktEntity(this.geoWkt)
+        this.$nextTick(() => {
+          this.setAddWktEntity(this.geoWkt)
+        })
       }
 
     },
@@ -464,18 +547,17 @@
       var wkt = this.$wkt.parse(res).coordinates[0];
       var geom = [];
       for (var i in wkt) {
-
         geom.push(Cesium.Cartesian3.fromDegrees(wkt[i][0], wkt[i][1], wkt[i][2] ?? 0))
       }
       this.wktEntity = Viewer.entities.add({
         name: '璧勬簮鏌ヨ',
         polygon: {
           hierarchy: geom,
-          material: Cesium.Color.BLUE.withAlpha(0),
-          heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
+          material: Cesium.Color.WHITE.withAlpha(0.2),
+          //heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
           outline: true,
-          outlineColor: Cesium.Color.GREEN,
-          outlineWidth: 5,
+          outlineColor: Cesium.Color.RED,
+          outlineWidth: 10,
           classificationType: Cesium.ClassificationType.BOTH,//璐村湴褰㈠拰3dtile
           clampToGround: true,//寮�鍚创鍦�
           height: 0,
@@ -568,12 +650,14 @@
         name: "",
         sensorType: 0,
         mataType: 0,
-        acqTime: null,
         wkt: null,
         pageIndex: 1,
         pageSize: 100,
         count: 0,
+        startDate: null,
+        endDate: null
       }
+      this.acqTime = ''
     }
   },
   created() { },

--
Gitblit v1.9.3