From c42e12bcc0877678cf09438b7a6bfb9ccd7342fa Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期五, 24 三月 2023 19:06:08 +0800
Subject: [PATCH] 转孔柱状图添加图例,官网一张图修改

---
 src/components/MapView/mapSpacePop.vue |  405 ++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 244 insertions(+), 161 deletions(-)

diff --git a/src/components/MapView/mapSpacePop.vue b/src/components/MapView/mapSpacePop.vue
index b7e6ecc..309d420 100644
--- a/src/components/MapView/mapSpacePop.vue
+++ b/src/components/MapView/mapSpacePop.vue
@@ -3,6 +3,43 @@
     <div style="padding: 5px">
       <el-form
         :inline="true"
+        :model="ruleForm"
+        class="demo-form-inline"
+      >
+        <el-form-item>
+          <el-input
+            size="small"
+            style="width:47vh"
+            v-model="ruleForm.fileName"
+            disabled
+            placeholder="璇疯緭鍏�..."
+          ></el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-button
+            @click="conditionVisible = true"
+            size="small"
+            type="success"
+          >鏂板</el-button>
+          <el-button
+            size="small"
+            @click="resetForm"
+          >閲嶇疆</el-button>
+        </el-form-item>
+        <el-form-item v-if="spaceLayer == 'sexplorationpoint'">
+          <el-button
+            size="small"
+            @click="spaceHistogram( )"
+            plain
+          >鏌辩姸鍥�</el-button>
+          <!-- <el-button
+            plain
+            size="small"
+          >鍓栧垏鍥�</el-button> -->
+        </el-form-item>
+      </el-form>
+      <!-- <el-form
+        :inline="true"
         :model="formInline"
         class="demo-form-inline"
       >
@@ -66,9 +103,9 @@
           <!-- <el-button
             plain
             size="small"
-          >鍓栧垏鍥�</el-button> -->
-        </el-form-item>
-      </el-form>
+          >鍓栧垏鍥�</el-button>
+      </el-form-item>
+      </el-form> -->
       <div class="centTable">
         <el-table
           :data="tableData"
@@ -135,6 +172,81 @@
         </el-pagination>
       </div>
     </div>
+    <el-dialog
+      :visible.sync="conditionVisible"
+      title="楂樼骇鏌ヨ"
+      width="44%"
+      :close-on-click-modal="false"
+      :modal="false"
+    >
+
+      <el-form
+        :inline=" true"
+        :model="formSql"
+        class="demo-form-inline"
+        label-position="top"
+      >
+
+        <el-form-item>
+          <el-select
+            @change="fieldChange($event)"
+            v-model="formSql.field"
+            :popper-append-to-body="false"
+          >
+            <el-option
+              v-for="item in filedsOption"
+              :key="item.field"
+              :label="item.alias"
+              :value="item.field"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-select
+            :popper-append-to-body="false"
+            v-model="formSql.condition"
+          >
+            <el-option
+              v-for="item in condOption"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item v-show="!fromSqlflag">
+          <el-input v-model="formSql.value"></el-input>
+        </el-form-item>
+        <el-form-item v-show="fromSqlflag">
+          <el-date-picker
+            v-model="formSql.date"
+            type="date"
+            placeholder="閫夋嫨鏃ユ湡"
+            value-format="yyyy-MM-dd"
+          >
+          </el-date-picker>
+        </el-form-item>
+
+      </el-form>
+
+      <span
+        slot="footer"
+        class="dialog-footer"
+      >
+        <el-button
+          size="small"
+          @click="startFiledAndcondition"
+        >鍙� 娑�</el-button>
+        <el-button
+          class="primaries"
+          size="small"
+          @click="appendQueryFilter"
+        >纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+
   </div>
 </template>
 
@@ -148,6 +260,7 @@
   encr,
 } from "../../api/api.js"
 import * as turf from "@turf/turf"
+import { conditions } from "../../views/Archive/Archive.js";
 export default {
   computed: {
     storeTime() {
@@ -156,6 +269,13 @@
   },
   data() {
     return {
+      conditionVisible: false,
+      filedsOption: [],
+      condOption: [],
+      ruleForm: {
+        fileName: "",
+      },
+      fromSqlflag: false,
       count: 0,
       listdata: {
         pageIndex: 1,
@@ -223,12 +343,21 @@
       imagePoint: null,
       domainsLayer: null,
       querytype: null,
+
+      formSql: {
+        field: "",
+        condition: "",
+        value: "",
+        type: "",
+        date: "",
+      },
     }
   },
   watch: {
     async storeTime(index) {
       this.spaceLayer = index
-      this.getDomainsLayer()
+      this.resetForm();
+      // this.getDomainsLayer()
       // this.getTableselectFields();
       // this.restSpacePopLayer();
     },
@@ -237,12 +366,43 @@
     this.spaceLayer = this.$store.state.mapSpaceQueryLayer
     // this.showSpacePopLayer();
     //   this.getTableselectFields();
-
-
-    this.getDomainsLayer()
+    this.resetForm();
+    // this.getDomainsLayer()
   },
 
   methods: {
+    fieldChange(value) {
+      var obj = {};
+      obj = this.filedsOption.find(function (item) {
+        return item.field === value;
+      });
+      this.conditionChange(obj);
+    },
+    conditionChange(res) {
+      this.formSql.field = res.field;
+      this.formSql.type = res.type;
+      if (res.type == "date" || res.type == "datetime") {
+        this.fromSqlflag = true;
+      } else {
+        this.fromSqlflag = false;
+      }
+      var std = [];
+      this.condOption = [];
+      if (res.type == "text" || res.type == "blob") {
+        std = conditions[0];
+      } else if (res.type == "date" || res.type == "datetime") {
+        std = conditions[2];
+      } else {
+        std = conditions[1];
+      }
+      for (var i in std) {
+        this.condOption.push({
+          label: std[i],
+          value: std[i],
+        });
+      }
+      this.formSql.condition = this.condOption[0].value;
+    },
     closeSpaceBox() {
       if (this.imagePoint != null) {
         sgworld.Creator.DeleteObject(this.imagePoint)
@@ -328,7 +488,7 @@
       if (data.code != 200) {
         this.$message.error("鍒楄〃璋冪敤澶辫触")
       }
-
+      this.filedsOption = [];
       this.optionx = []
       var valadata = data.result
       for (var i in valadata) {
@@ -340,10 +500,63 @@
             valadata[i].domainNa = this.getMatchDomainNa(valadata[i].domainNa)
           }
           this.optionx.push(valadata[i])
+          this.filedsOption.push(valadata[i])
           this.attributeData.push(valadata[i])
         }
       }
+      this.startFiledAndcondition();
       this.showSpacePopLayer()
+    },
+    appendQueryFilter() {
+      if (this.formSql.type == "date" || this.formSql.type == "datetime") {
+        if (this.formSql.date == null) {
+          this.$message.error("璇疯緭鍏ヨ鏌ヨ鐨勪俊鎭�!");
+          return;
+        }
+      } else {
+        if (this.formSql.value == "") {
+          this.$message.error("璇疯緭鍏ヨ鏌ヨ鐨勪俊鎭�!");
+          return;
+        }
+      }
+
+      if (this.ruleForm.fileName != "") {
+        this.ruleForm.fileName += " and ";
+      }
+      var val;
+
+      if (this.formSql.type == "long" || this.formSql.type == "integer") {
+        val = parseInt(this.formSql.value);
+      } else if (this.formSql.type == "double") {
+        if (this.formSql.value.indexOf(".") != -1) {
+          val = this.formSql.value;
+        } else {
+          val = parseFloat(this.formSql.value).toFixed(1);
+        }
+      } else if (
+        this.formSql.type == "date" ||
+        this.formSql.type == "datetime"
+      ) {
+        var time = new Date(this.formSql.date);
+        var m = time.getMonth() + 1;
+        var d = time.getDate();
+        var y = time.getFullYear();
+        val = "'" + y + "-" + this.add0(m) + "-" + this.add0(d) + "'";
+      } else {
+        val = "'" + this.formSql.value + "'";
+      }
+      this.ruleForm.fileName +=
+        this.formSql.field + " " + this.formSql.condition + " " + val;
+
+      this.startFiledAndcondition();
+      this.getSpaceTableLayer();
+    },
+
+    startFiledAndcondition() {
+      this.conditionVisible = false;
+      this.conditionChange(this.filedsOption[0]);
+      this.formSql.value = "";
+      this.formSql.date = new Date();
     },
     getMatchDomainNa(res) {
       var std = null
@@ -365,35 +578,27 @@
       this.setListDataStart()
       this.getTableselectFields()
     },
+
+
+
+    resetForm() {
+      this.ruleForm.fileName = "";
+      this.listdata.pageIndex = 1;
+      this.listdata.pageSize = 10;
+      //鑾峰彇table淇℃伅
+      this.getDomainsLayer()
+    },
+
     //鍒濆鍖栨煡璇㈣〃鏍间俊鎭�
     async getSpaceTableLayer() {
-      this.listdata.name = this.spaceLayer
-      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 (this.querytype == "date" || this.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 + " " + val
+      this.listdata.name = this.spaceLayer
+      if (this.ruleForm.fileName != "") {
+        this.listdata.filter = this.ruleForm.fileName;
+      } else {
+        this.listdata.filter = null;
       }
+
 
       const data = await dataQuerySelectByPage(this.listdata)
       if (data.code != 200) {
@@ -480,6 +685,8 @@
       if (data.code != 200) {
         return this.$message.error("鍒楄〃璋冪敤澶辫触")
       }
+
+      this.count = data.count;
       if (data.result.length == 0) {
         return this.$message({
           message: '鏈煡璇㈠埌杞瓟鐐规暟鎹�',
@@ -520,7 +727,7 @@
           })
 
 
-          this.listdata.count = data.count;
+
           this.tableData = val;
 
           this.showHistogramLayer(data.count)
@@ -613,15 +820,7 @@
             }
           }
         }
-        // var outlineList = [
-        //   'rgba(141,135,114,1)',
-        //   'rgba(248,235,179,1)',
-        //   'rgba(185,183,151,1)',
-        //   'rgba(224,222,94,1)',
-        //   'rgba(250,190,153,1)',
-        //   'rgba(197,222,130,1)',
-        //   'rgba(208,228,177,1)',
-        // ]
+
         var outlineList = [
           { 'name': '绮夎川榛忓湡', 'color': 'rgba(139,106,77,1)' },
           { 'name': '娣ゆ偿璐ㄧ矇鍦�', 'color': 'rgba(141,85,69,1)' },
@@ -666,14 +865,14 @@
           this.$store.state.histogramLayer.push(layer)
         }
       }
-
+      this.$store.state.histLenged = true;
     },
 
 
 
 
     spaceHistogram() {
-      this.restSpacePopLayer();
+      this.resetForm();
       if (this.$store.state.histogramLayer.length != 0) {
         for (var i in this.$store.state.histogramLayer) {
           Viewer.entities.remove(this.$store.state.histogramLayer[i])
@@ -691,122 +890,6 @@
         that.setCartesianToEightFour(entity)
       });
 
-
-
-
-      // var param = {
-      //   gid: row.gid,
-      //   name: this.spaceLayer,
-      // }
-      // const data1 = await dataQuerySelectWktById(param)
-      // if (data1.code != 200) {
-      //   this.$message.error("鍒楄〃璋冪敤澶辫触")
-      // }
-
-      // var val1 = decr(data1.result)
-      // var wkt = this.$wkt.parse(val1)
-      // var coord = wkt.coordinates
-      // var obj = {
-      //   pageIndex: 1,
-      //   pageSize: 10,
-      //   name: 'sexplorationpointstratum',
-      //   filter: "exppointid = '" + row.exppointid + "'"
-      // }
-      // var data = await dataQuerySelectByPage(obj)
-      // if (data.code != 200) {
-
-      // }
-
-      // if (data.result.length != 0) {
-      //   var val = data.result;
-      //   //鍐掓场鎺掑簭
-      //   for (var i = 0; i < val.length; i++) {
-      //     for (var u = i + 1; u < val.length; u++) {
-
-      //       if (val[i].botdepth > val[u].botdepth) {
-      //         var num = val[i];
-      //         val[i] = val[u];
-      //         val[u] = num;
-      //       }
-      //     }
-      //   }
-      //   var outlineList = [
-      //     'rgba(141,135,114,1)',
-      //     'rgba(248,235,179,1)',
-      //     'rgba(185,183,151,1)',
-      //     'rgba(224,222,94,1)',
-      //     'rgba(250,190,153,1)',
-      //     'rgba(197,222,130,1)',
-      //     'rgba(208,228,177,1)',
-      //   ]
-      //   var num = row.elev;
-      //   var height = 0;
-      //   for (var i = 0; i < val.length; i++) {
-      //     var fill, line;
-      //     if (i > outlineList.length) {
-      //       var len = outlineList.length - 1;
-      //       fill = outlineList[len];
-      //       line = outlineList[len];
-      //     } else {
-      //       fill = outlineList[i];
-      //       line = outlineList[i];
-      //     }
-      //     var height = num - val[i].botdepth
-      //     var layer = Viewer.entities.add({
-      //       position: Cesium.Cartesian3.fromDegrees(coord[0], coord[1]),
-      //       tag: 'Histogram',
-      //       properties: val[i],
-      //       ellipse: {
-      //         semiMinorAxis: 1.0, //鐭酱
-      //         semiMajorAxis: 1.0, //闀胯酱
-      //         height: height, //鎷変几楂樺害    elev  gwaterdep
-      //         extrudedHeight: num, //绂诲湴楂樺害
-      //         rotation: Cesium.Math.toRadians(0), //鏃嬭浆
-      //         fill: true, //鏄惁鏄剧ず鍦嗙殑濉厖
-      //         material: Cesium.Color.fromCssColorString(line), //鍦嗙殑棰滆壊,
-      //         outline: false, //鏄惁鏄剧ず鍦嗚疆寤�
-
-      //       },
-      //     });
-      //     num -= val[i].botdepth;
-      //     this.$store.state.histogramLayer.push(layer)
-      //     sgworld.Navigate.flyToObj(layer)
-      //   }
-      //   window.histogramHandler = new Cesium.ScreenSpaceEventHandler(
-      //     sgworld.Viewer.scene.canvas
-      //   )
-      //   var that = this;
-      //   window.histogramHandler.setInputAction((event) => {
-      //     // var ellipsoid = sgworld.Viewer.scene.globe.ellipsoid;
-      //     // var cartesian = sgworld.Viewer.scene.camera.pickEllipsoid(event.endPosition, ellipsoid);
-      //     var pick = sgworld.Viewer.scene.pick(event.endPosition);
-      //     var selectedEntity = null;
-
-      //     if (Cesium.defined(pick)) {
-      //       if (pick && pick.id && pick.id.tag && pick.id.tag == "Histogram") {
-
-      //         that.$store.state.propertiesInfo = {
-      //           title: pick.id.properties._exppointid._value,
-      //           name: pick.id.properties._geoname._value,
-      //           type: pick.id.properties.geotype._value,
-      //           botdepth: pick.id.properties._botdepth._value,
-      //           describe: pick.id.properties._describe._value,
-      //         }
-      //         that.$store.state.propertiesFlag = "2"
-      //       } else {
-      //         that.$store.state.propertiesFlag = null
-      //       }
-      //     } else {
-      //       that.$store.state.propertiesFlag = null
-      //     }
-
-      //   }, Cesium.ScreenSpaceEventType.MOUSE_MOVE)
-
-
-      // } else {
-      //   var msg = row.exppointid + " 娌″嫎鎺㈢偣鍦板眰琛ㄦ暟鎹紝鏃犳硶鐢熸垚鏌辩姸鍥�"
-      //   this.$message.error(msg);
-      // }
     },
     async spaceLocation(index, row) {
       var param = {

--
Gitblit v1.9.3