From 9f51306b10520a2be30bedfe1b34c288cf770f43 Mon Sep 17 00:00:00 2001
From: surprise <15810472099@163.com>
Date: 星期四, 19 十月 2023 17:51:30 +0800
Subject: [PATCH] 坡度坡向功能新增,临时图层添加定位。空间查询功能优化;

---
 src/assets/js/Map/index.js             |   43 +++-
 src/views/plotting/plottingInquire.vue |  231 ++++++++++---------------
 src/components/mouseMove.vue           |   58 +++---
 src/views/Map/mapView.vue              |    1 
 src/views/query/slopeQuery.vue         |   72 ++++++++
 src/assets/js/Map/menuTool.js          |   13 +
 src/views/menus.vue                    |    2 
 src/assets/js/Map/temporaryTools.js    |   22 +
 src/views/layer/layerManage.vue        |   45 +++-
 src/views/Index.vue                    |   25 --
 src/store/index.ts                     |    3 
 11 files changed, 302 insertions(+), 213 deletions(-)

diff --git a/src/assets/js/Map/index.js b/src/assets/js/Map/index.js
index 7fb0fd1..c8a7867 100644
--- a/src/assets/js/Map/index.js
+++ b/src/assets/js/Map/index.js
@@ -31,11 +31,11 @@
       timeline: true,
     });
 
- 
+
     this.earthCtrl.Viewer.scene.debugShowFramesPerSecond = true
     this.earthCtrl.coreMap.scene.screenSpaceCameraController.enableCollisionDetection = true;
     this.earthCtrl.Viewer.scene.globe.terrainExaggeration = 1.00001
- 
+
 
     window.earthCtrl = this.earthCtrl;
 
@@ -65,26 +65,51 @@
     sgworld.Navigate.Stop(); //鍙栨秷椋炶鐘舵��
     sgworld.Navigate.setPosition(-1093596.38, 5729026.12, 4136590.41);
     this.addMouseLeftClickEvents();
+    this.addMouseLeftDownEvents();
   },
-
-  //榧犳爣宸﹂敭鐐瑰嚮浜嬩欢娣诲姞
-  addMouseLeftClickEvents() {
+  addMouseLeftDownEvents() {
     if (window.handleLeftClick) {
       window.handleLeftClick.removeInputAction(
         Cesium.ScreenSpaceEventType.LEFT_CLICK
       ); //绉婚櫎浜嬩欢
       window.handleLeftClick = null;
     }
+    const pickGlobeSlope = new SmartEarth.Cesium.PickGlobeSlope(earthCtrl.Viewer)
     window.handleLeftClick = new Cesium.ScreenSpaceEventHandler(
       window.Viewer.scene.canvas
     );
     var that = this;
     window.handleLeftClick.setInputAction(function (event) {
+      const angle = pickGlobeSlope.pickSlope(event.position)
+      if (store.state.slopeQueyFlag) {
+        if (!store.state.showSlopeQuey) {
+          store.state.showSlopeQuey = true;
+        }
+        store.state.slopeQueyValue = angle.toFixed(6);
+
+      }
+
+    }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
+  },
+
+  //榧犳爣宸﹂敭鐐瑰嚮浜嬩欢娣诲姞
+  addMouseLeftClickEvents() {
+    if (window.handleLeftDown) {
+      window.handleLeftDown.removeInputAction(
+        Cesium.ScreenSpaceEventType.LEFT_DOWN
+      ); //绉婚櫎浜嬩欢
+      window.handleLeftDown = null;
+    }
+    window.handleLeftDown = new Cesium.ScreenSpaceEventHandler(
+      window.Viewer.scene.canvas
+    );
+    var that = this;
+    window.handleLeftDown.setInputAction(function (event) {
       let cartesian = window.Viewer.scene.pick(event.position);
       if (Cesium.defined(cartesian)) {
 
         if (cartesian.id.shpType && cartesian.id.shpType == 'temporaryLayer') {
-     
+
           that.setEditTemporaryLayer(cartesian.id._id)
         }
 
@@ -94,9 +119,9 @@
   setEditTemporaryLayer(res) {
     // store.state.editTemporaryId = res;
     // console.log(store.state.editTemporaryId)
- 
-    if (store.state.editTemporaryId && store.state.editTemporaryId  == res) {
- 
+
+    if (store.state.editTemporaryId && store.state.editTemporaryId == res) {
+
       store.state.setEditTemporaryShow = true;
     }
   },
diff --git a/src/assets/js/Map/menuTool.js b/src/assets/js/Map/menuTool.js
index 77671cd..65c3031 100644
--- a/src/assets/js/Map/menuTool.js
+++ b/src/assets/js/Map/menuTool.js
@@ -136,8 +136,11 @@
       window.material = null;
       globe.material = null;
       Viewer.scene.globe.enableLighting = false;
+      store.state.slopeQueyFlag = false;
+      store.state.showSlopeQuey = false;
       return;
     }
+    store.state.slopeQueyFlag = true;
     window.material = new Cesium.Material({
       fabric: {
         type: "ElevationRamp",
@@ -159,6 +162,9 @@
     if (window.material) {
       window.material = null;
       globe.material = null;
+      store.state.slopeQueyFla = false
+      store.state.slopeQueyFlag = false;
+      store.state.showSlopeQuey = false;
       return;
     }
 
@@ -625,7 +631,8 @@
       window.material = null;
       globe.material = null;
       Viewer.scene.globe.enableLighting = false;
-      return;
+      store.state.slopeQueyFlag = false;
+      store.state.showSlopeQuey = false;
     }
     if (window.DoubleScreen) {
       window.DoubleScreen && window.DoubleScreen.destroy();
@@ -695,7 +702,7 @@
       offset: {
         heading: Cesium.Math.toRadians(0.0),
         pitch: Cesium.Math.toRadians(-90),
-        range: 0
+        range: 40
       }
     }
     );
@@ -753,7 +760,7 @@
 
       },
     })
-    window.Viewer.flyTo(locationPolygonEntity, {
+    window.Viewer.flyTo(polyline, {
       offset: {
         heading: Cesium.Math.toRadians(0.0),
         pitch: Cesium.Math.toRadians(-90),
diff --git a/src/assets/js/Map/temporaryTools.js b/src/assets/js/Map/temporaryTools.js
index f8be7c8..fdafaf3 100644
--- a/src/assets/js/Map/temporaryTools.js
+++ b/src/assets/js/Map/temporaryTools.js
@@ -10,6 +10,20 @@
             }
         }
     },
+    locationTemporaryLayer(res){
+        var entities = window.Viewer.entities._entities._array;
+        for (var i in entities) {
+            if (entities[i].id == res.id && entities[i]._shpType == res.shpType) {
+                window.Viewer.flyTo(entities[i], {
+                    offset: {
+                      heading: Cesium.Math.toRadians(0.0),
+                      pitch: Cesium.Math.toRadians(-90),
+                      range: 400
+                    }
+                  });
+            }
+        }
+    },
     addTemporaryTool(res) {
         switch (res.type) {
             case "point":
@@ -142,7 +156,7 @@
         if (res.outline) {
             outlinewidth = res.width
         }
- 
+
         window.Viewer.entities.add({
             name: res.cnName,
             id: res.id,
@@ -156,7 +170,7 @@
                     res.near,
                     res.far
                 ),
-  
+
                 material: new Cesium.PolylineOutlineMaterialProperty({
                     color: Cesium.Color.fromCssColorString(res.material).withAlpha(
                         res.materialAlpha
@@ -339,7 +353,7 @@
             layerType: '绾�',
             geometry: geom,
             heightReference: res.polyline.clampToGround._value,
-            outline:  res.outline != null ?  res.outline : false,
+            outline: res.outline != null ? res.outline : false,
             width: res.polyline.width._value,
             material: this.colorRgbToHex('rgb(' + (mataColor.red * 255) + ',' + (mataColor.green * 255) + ',' + (mataColor.blue * 255) + ')'),
             outlineColor: this.colorRgbToHex('rgb(' + (outlineColor.red * 255) + ',' + (outlineColor.green * 255) + ',' + (outlineColor.blue * 255) + ')'),
@@ -361,7 +375,6 @@
         if (res.label.outlineWidth && res.label.outlineWidth._value) {
             width = res.label.outlineWidth._value
         }
-
         return {
             id: this.isedit ? res.id : (new Date()).getTime(),
             cnName: res.name,
@@ -386,7 +399,6 @@
             layerType: '鏂囨湰鐐�',
         }
     },
-
     getPointEntityObj(res) {
         var mataColor = res.point.color._value;
         var outlineColor = res.point.outlineColor._value;
diff --git a/src/components/mouseMove.vue b/src/components/mouseMove.vue
index 63e1296..771bf4d 100644
--- a/src/components/mouseMove.vue
+++ b/src/components/mouseMove.vue
@@ -1,13 +1,6 @@
 <template>
-  <div
-    class="mouseBox"
-    @setMouseMove="setMouseMove"
-  >
-    <div
-      class="earthImage"
-      :class="{ active: gridIsshow }"
-      @click="gridSwitch"
-    ></div>
+  <div class="mouseBox" @setMouseMove="setMouseMove">
+    <div class="earthImage" :class="{ active: gridIsshow }" @click="gridSwitch"></div>
     <div class="earthLable">缁忓害 :</div>
     <div class="earthLable">{{ longitude }}</div>
     <div class="earthLable">绾害 :</div>
@@ -56,13 +49,15 @@
   let handlerPoint = new SmartEarth.Cesium.ScreenSpaceEventHandler(
     window.Viewer.scene.canvas
   );
+  const pickGlobeSlope = new SmartEarth.Cesium.PickGlobeSlope(earthCtrl.Viewer)
   var ellipsoid = window.Viewer.scene.globe.ellipsoid;
-  handlerPoint.setInputAction(function (movement) {
+  handlerPoint.setInputAction((movement) => {
     //鎹曡幏妞悆浣擄紝灏嗙瑳鍗″皵浜岀淮骞抽潰鍧愭爣杞负妞悆浣撶殑绗涘崱灏斾笁缁村潗鏍囷紝杩斿洖鐞冧綋琛ㄩ潰鐨勭偣
     var cartesian = window.Viewer.camera.pickEllipsoid(
       movement.endPosition,
       ellipsoid
     );
+   
     if (cartesian) {
       //灏嗙瑳鍗″皵涓夌淮鍧愭爣杞负鍦板浘鍧愭爣锛堝姬搴︼級
       var cartographic =
@@ -119,27 +114,27 @@
   });
 
 
-   Viewer.scene.postRender.addEventListener(() => {
-      // // 鑾峰彇鐢诲竷鐨勫ぇ灏�
-      let scene = earthCtrl.Viewer.scene;
-      var width = scene.canvas.clientWidth;
-      var height = scene.canvas.clientHeight;
-      //鑾峰彇鐢诲竷涓績涓や釜鍍忕礌鐨勫潗鏍囷紙榛樿鍦板浘娓叉煋鍦ㄧ敾甯冧腑蹇冧綅缃級
-      var left = scene.camera.getPickRay(new SmartEarth.Cesium.Cartesian2((width / 2) | 0, (height - 1) / 2));
-      var right = scene.camera.getPickRay(new SmartEarth.Cesium.Cartesian2(1 + (width / 2) | 0, (height - 1) / 2));
+  Viewer.scene.postRender.addEventListener(() => {
+    // // 鑾峰彇鐢诲竷鐨勫ぇ灏�
+    let scene = earthCtrl.Viewer.scene;
+    var width = scene.canvas.clientWidth;
+    var height = scene.canvas.clientHeight;
+    //鑾峰彇鐢诲竷涓績涓や釜鍍忕礌鐨勫潗鏍囷紙榛樿鍦板浘娓叉煋鍦ㄧ敾甯冧腑蹇冧綅缃級
+    var left = scene.camera.getPickRay(new SmartEarth.Cesium.Cartesian2((width / 2) | 0, (height - 1) / 2));
+    var right = scene.camera.getPickRay(new SmartEarth.Cesium.Cartesian2(1 + (width / 2) | 0, (height - 1) / 2));
 
-      var leftPosition = scene.globe.pick(left, scene);
-      var rightPosition = scene.globe.pick(right, scene);
-      if (!SmartEarth.Cesium.defined(leftPosition) || !SmartEarth.Cesium.defined(rightPosition)) {
-        return;
-      }
-      const ellipsoid = SmartEarth.Cesium.Ellipsoid.MOON2000
-      var leftCartographic = ellipsoid.cartesianToCartographic(leftPosition);
-      var rightCartographic = ellipsoid.cartesianToCartographic(rightPosition);
-      var geodesic = new SmartEarth.Cesium.EllipsoidGeodesic(leftCartographic, rightCartographic, ellipsoid);
-      var distance = geodesic.surfaceDistance;// 鍒嗚鲸鐜�
-      rate.value =distance.toFixed(2); //鍒嗚鲸鐜�
-    })
+    var leftPosition = scene.globe.pick(left, scene);
+    var rightPosition = scene.globe.pick(right, scene);
+    if (!SmartEarth.Cesium.defined(leftPosition) || !SmartEarth.Cesium.defined(rightPosition)) {
+      return;
+    }
+    const ellipsoid = SmartEarth.Cesium.Ellipsoid.MOON2000
+    var leftCartographic = ellipsoid.cartesianToCartographic(leftPosition);
+    var rightCartographic = ellipsoid.cartesianToCartographic(rightPosition);
+    var geodesic = new SmartEarth.Cesium.EllipsoidGeodesic(leftCartographic, rightCartographic, ellipsoid);
+    var distance = geodesic.surfaceDistance;// 鍒嗚鲸鐜�
+    rate.value = distance.toFixed(2); //鍒嗚鲸鐜�
+  })
 };
 const gridSwitch = () => {
   server.showlonlatLine();
@@ -303,6 +298,7 @@
   padding-right: 20px;
   display: flex;
   align-items: center;
+
   .earthImage {
     width: 20px;
     height: 20px;
@@ -311,6 +307,7 @@
     margin-left: 10px;
     cursor: pointer;
   }
+
   .earthLable {
     font-size: 16px;
     font-family: Source Han Sans CN;
@@ -319,6 +316,7 @@
     line-height: 5px;
     margin-left: 10px;
   }
+
   .active {
     background-color: #171e2e;
     border: 1px solid;
diff --git a/src/store/index.ts b/src/store/index.ts
index 532ea9b..d4f25e6 100644
--- a/src/store/index.ts
+++ b/src/store/index.ts
@@ -47,6 +47,9 @@
     editTemporarName: null,
     editTemporaryback: null,
     layerGroups:null,
+    slopeQueyFlag:false,
+    slopeQueyValue:null,
+    showSlopeQuey:false,
   },
   mutations: {
     // SET_plotting(state, obj) {
diff --git a/src/views/Index.vue b/src/views/Index.vue
index 7f2ab5c..64e8258 100644
--- a/src/views/Index.vue
+++ b/src/views/Index.vue
@@ -1,25 +1,12 @@
 <template>
-  <div
-    class="body_box"
-    v-loading="store.state.loading"
-    element-loading-background="rgba(0, 0, 0, 0.8)"
-  >
-    <export-map
-      v-if="layerExportshow"
-      @SETexportMap="SETexportMap"
-    ></export-map>
+  <div class="body_box" v-loading="store.state.loading" element-loading-background="rgba(0, 0, 0, 0.8)">
+    <export-map v-if="layerExportshow" @SETexportMap="SETexportMap"></export-map>
     <export-list v-if="store.state.setExportList"></export-list>
     <menus></menus>
     <bottom-btn v-if="store.state.isShowMap"></bottom-btn>
     <mouse-move v-if="store.state.isShowMap"></mouse-move>
-    <spatial-box
-      v-if="layerSpatialshow"
-      @SETspatialClose="SETspatialClose"
-    ></spatial-box>
-    <coord-location
-      v-if="layerLocationshow"
-      @SETcoordClose="setCoordLocation"
-    >
+    <spatial-box v-if="layerSpatialshow" @SETspatialClose="SETspatialClose"></spatial-box>
+    <coord-location v-if="layerLocationshow" @SETcoordClose="setCoordLocation">
     </coord-location>
     <details-query v-if="store.state.details.showDetails"> </details-query>
     <div v-if="store.state.isShowMap">
@@ -30,6 +17,7 @@
     </div>
     <plotting-inquire></plotting-inquire>
     <attribute-info v-if="store.state.setEditTemporaryShow"></attribute-info>
+    <slopeQuery v-if="store.state.showSlopeQuey"></slopeQuery>
   </div>
 </template>
 
@@ -66,7 +54,8 @@
 import plottingInquire from "./plotting/plottingInquire.vue";
 //灞炴�х紪杈�
 import attributeInfo from "./plotting/attributeInfo.vue";
-
+// 鍧″害鍊�
+import slopeQuery from "./query/slopeQuery.vue";
 import router from "@/router";
 import { useStore } from "vuex"; // 寮曞叆useStore 鏂规硶
 
diff --git a/src/views/Map/mapView.vue b/src/views/Map/mapView.vue
index 122a5ce..700643b 100644
--- a/src/views/Map/mapView.vue
+++ b/src/views/Map/mapView.vue
@@ -1,6 +1,7 @@
 <template>
   <div class="MapViewBox">
     <div id="cesiumContainer">
+      
     </div>
   </div>
 </template>
diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue
index c405184..9383194 100644
--- a/src/views/layer/layerManage.vue
+++ b/src/views/layer/layerManage.vue
@@ -44,6 +44,8 @@
                       @click.native="clickdTemporary(1, data)">缂栬緫</el-dropdown-item>
                     <el-dropdown-item v-if="data.shpType == 'temporaryLayer'"
                       @click.native="clickdTemporary(2, data)">鍒犻櫎</el-dropdown-item>
+                    <el-dropdown-item v-if="data.shpType == 'temporaryLayer'"
+                      @click.native="clickdTemporary(3, data)">瀹氫綅</el-dropdown-item>
                   </el-dropdown-menu>
                 </template>
               </el-dropdown>
@@ -117,6 +119,10 @@
 const temporary = ref(new Date().getTime());
 const clickdTemporary = async (res, data) => {
   if (res == 1) {
+    let son = estreeRef.value.getCheckedKeys()
+    if(son.indexOf(data.id)<0){
+         return ElMessage(data.cnName+"鍥惧眰娌℃湁鍕鹃��,鏃犳硶杩涜缂栬緫");
+    }
     if (store.state.editTemporaryId) {
       var id = store.state.editTemporaryId;
       var edit_id = sgworld.Creator.SimpleGraphic.SimpleGraphicObj.indexOf(id);
@@ -130,7 +136,7 @@
     sgworld.Creator.SimpleGraphic.edit(true, {
       editProp: false, tipText: {
         ActiveText: '鐐瑰嚮婵�娲荤紪杈�'
-      }
+      }, enableDelete: false
     });
   } else if (res == 2) {
     var layerId = []
@@ -167,6 +173,12 @@
       }
       estreeRef.value.setCheckedKeys(layerIds, true);
     })
+  } else if(res == 3){
+    let son = estreeRef.value.getCheckedKeys()
+    if(son.indexOf(data.id)<0){
+         return ElMessage(data.cnName+"鍥惧眰娌℃湁鍕鹃��,鏃犳硶杩涜瀹氫綅");
+    }
+    temporaryTool.locationTemporaryLayer(data);
   }
 };
 //閫夋嫨鍥惧眰
@@ -174,6 +186,10 @@
   layerAttributeIsshow.value = false;
   layerDetailIsshow.value = false;
   let isCheck = checked.checkedKeys.indexOf(data.id) > -1;
+  nextTick(() => {
+    let son = estreeRef.value.getCheckedNodes();
+    store.commit("SET_CHECKLAYER", son);
+  });
   if (isCheck) {
     if (data.isLayer == 0) {
       let son = estreeRef.value.getCheckedNodes().reverse();
@@ -202,9 +218,7 @@
         }
       }
     }
-
   } else {
-
     if (data.isLayer == 0) {
       var layers = data.children;
       for (var i in layers) {
@@ -224,6 +238,7 @@
     }
 
   }
+ 
 };
 const setVisiable = (treeNode, checked) => {
   if (checked !== undefined) {
@@ -288,17 +303,27 @@
 const getCheckedLayerPID = (res, result) => {
   var temp = [];
   var ids = result
+
   let forFn = (data) => {
-    data.children.forEach(item => {
-      if (item.children) {
-        temp.push(item.id)
-      } else {
-        if (ids.indexOf(item.id) > -1) {
-          temp.push(item.id)
+    if (data.children) {
+      data.children.forEach(item => {
+        if (item.children) {
+          forFn(item)
+        } else {
+          if (ids.indexOf(item.id) > -1) {
+            temp.push(item.id)
+          }
         }
+      })
+    } else {
+
+      if (ids.indexOf(data.id) > -1) {
+        temp.push(data.id)
       }
-    })
+    }
+
   }
+  
   forFn(res);
   return temp;
 };
diff --git a/src/views/menus.vue b/src/views/menus.vue
index 063254d..811fae6 100644
--- a/src/views/menus.vue
+++ b/src/views/menus.vue
@@ -80,6 +80,7 @@
   >
     <thematic-map v-show="!thematicMapBtnState"></thematic-map>
     <top-btn v-show="fullScreen" v-if="thematicMapBtnState"></top-btn>
+
     <div>
       <div class="setUserLogo" @click="setLogMeu = !setLogMeu">
         <div class="setUserImage"></div>
@@ -123,6 +124,7 @@
 import store from "@/store";
 //Router
 import router from "@/router";
+
 const menuOptions = ref([]);
 const checkMenuFlag = ref("");
 let fullScreen = ref(true);
diff --git a/src/views/plotting/plottingInquire.vue b/src/views/plotting/plottingInquire.vue
index 3c8089d..293d7d0 100644
--- a/src/views/plotting/plottingInquire.vue
+++ b/src/views/plotting/plottingInquire.vue
@@ -1,18 +1,10 @@
 <template>
-  <div
-    class="plottingInquire"
-    v-if="isShow"
-    v-drag="true"
-  >
+  <div class="plottingInquire" v-if="isShow" v-drag="true">
     <div class="InquireHeader">
       <div>鏍囩粯鏌ヨ</div>
 
       <div>
-        <el-icon
-          @click="isShow = false"
-          :size="20"
-          style="cursor: pointer"
-        >
+        <el-icon @click="isShow = false" :size="20" style="cursor: pointer">
           <Close />
         </el-icon>
 
@@ -25,42 +17,20 @@
       </div>
       <div class="inquireContent_name">
         <div class="plotting_list_tr_name">
-          <img
-            :src="require(`../../assets/img/${inquireData.icon}`)"
-            class="ico"
-            alt=""
-          /><span>{{ inquireData.name }}</span>
+          <img :src="require(`../../assets/img/${inquireData.icon}`)" class="ico" alt="" /><span>{{ inquireData.name
+          }}</span>
         </div>
-        <div
-          class="plotting_list_tr_wkt"
-          v-show="geoWktFlag"
-        >{{ geoWkt }}</div>
+        <div class="plotting_list_tr_wkt" v-show="geoWktFlag">{{ geoWkt }}</div>
         <div class="plotting_list_tr_btn">
-          <div
-            class="tr_btn dw"
-            @click="setLayerLocation()"
-          ></div>
-          <div
-            class="tr_btn sc"
-            @click="setLayerRemove()"
-          ></div>
+          <div class="tr_btn dw" @click="setLayerLocation()"></div>
+          <div class="tr_btn sc" @click="setLayerRemove()"></div>
         </div>
       </div>
       <div class="tab_box">
-        <el-tabs
-          v-model="activeName"
-          class="demo-tabs"
-          @tab-click="handleClick"
-        >
+        <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
           <!-- <el-tab-pane label="鍥惧眰灞炴��" name="first">User</el-tab-pane> -->
-          <el-tab-pane
-            label="鏌ヨ缁撴灉"
-            name="second"
-          >
-            <div
-              class="inquireContent_input"
-              v-show="pixelIsShow"
-            >
+          <el-tab-pane label="鏌ヨ缁撴灉" name="second">
+            <div class="inquireContent_input" v-show="pixelIsShow">
               <!-- <div class="inquireContent_input_left">
                 <div class="label">鑼冨洿妗�</div>
                 <el-input
@@ -71,66 +41,25 @@
                   <template #append>km</template>
                 </el-input>
               </div> -->
-              <div
-                class="inquireContent_input_right"
-                v-show="!chartIsshow"
-              >
+              <div class="inquireContent_input_right" v-show="!chartIsshow">
                 <div class="label">鑼冨洿妗嗗唴鏈�澶у儚绱犲��</div>
-                <el-select
-                  v-model="ScopeBox.pixel"
-                  class="m-2"
-                  placeholder="鍍忕礌鍊�"
-                  size="small"
-                  @change="pixelChange"
-                >
-                  <el-option
-                    v-for="item in pixeloptions"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value"
-                  />
+                <el-select v-model="ScopeBox.pixel" class="m-2" placeholder="鍍忕礌鍊�" size="small" @change="pixelChange">
+                  <el-option v-for="item in pixeloptions" :key="item.value" :label="item.label" :value="item.value" />
                 </el-select>
               </div>
-              <div
-                class="inquireContent_input_right"
-                v-show="chartIsshow"
-              >
+              <div class="inquireContent_input_right" v-show="chartIsshow">
                 <div class="label">鑺傜偣鏁�</div>
-                <el-select
-                  v-model="ScopeBox.nodes"
-                  class="m-2"
-                  placeholder="鍍忕礌鍊�"
-                  size="small"
-                  @change="nodesChange"
-                >
-                  <el-option
-                    v-for="item in nodesoptions"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value"
-                  />
+                <el-select v-model="ScopeBox.nodes" class="m-2" placeholder="鍍忕礌鍊�" size="small" @change="nodesChange">
+                  <el-option v-for="item in nodesoptions" :key="item.value" :label="item.label" :value="item.value" />
                 </el-select>
               </div>
             </div>
-            <div
-              class="chart"
-              v-if="chartIsshow"
-            >
+            <div class="chart" v-if="chartIsshow">
               <div class="chart_box">
                 <div class="chart_btn">
-                  <el-button
-                    :icon="Search"
-                    link
-                    class="linkBtn"
-                    @click="openDialog(e)"
-                  ></el-button>
+                  <el-button :icon="Search" link class="linkBtn" @click="openDialog(e)"></el-button>
 
-                  <el-button
-                    :icon="Download"
-                    link
-                    class="linkBtn"
-                    @click="downloadChart(layerData)"
-                  ></el-button>
+                  <el-button :icon="Download" link class="linkBtn" @click="downloadChart(layerData)"></el-button>
                   <!-- 鏆傛椂涓嶇敤鍒犻櫎 -->
                   <!-- <el-button
                     :icon="Delete"
@@ -139,25 +68,11 @@
                     @click="deleteChart(e)"
                   ></el-button> -->
                 </div>
-                <Bar-graph
-                  :width="'100%'"
-                  :height="'260px'"
-                  :layerData="layerData"
-                ></Bar-graph>
+                <Bar-graph :width="'100%'" :height="'260px'" :layerData="layerData"></Bar-graph>
                 <div class="select">
-                  <el-select
-                    v-model="layerValue"
-                    class="m-2"
-                    placeholder="閫夋嫨鍥惧眰"
-                    size="small"
-                    @change="layerChange"
-                  >
-                    <el-option
-                      v-for="(item, i) in layeroptions"
-                      :key="i"
-                      :label="item.layerName"
-                      :value="item.layerName"
-                    />
+                  <el-select v-model="layerValue" class="m-2" placeholder="閫夋嫨鍥惧眰" size="small" @change="layerChange">
+                    <el-option v-for="(item, i) in layeroptions" :key="i" :label="item.layerName"
+                      :value="item.layerName" />
                   </el-select>
                 </div>
               </div>
@@ -188,10 +103,7 @@
                 >
               </div>
             </div> -->
-            <div
-              class="inquireContent_table"
-              v-if="!chartIsshow"
-            >
+            <div class="inquireContent_table" v-if="!chartIsshow">
               <div class="table">
                 <div class="table_head">
                   <div class="table_head_td">搴忓彿</div>
@@ -201,11 +113,7 @@
                   </div>
                 </div>
                 <div class="table_content">
-                  <div
-                    class="table_tr"
-                    v-for="(e, i) in resultList"
-                    :key="i"
-                  >
+                  <div class="table_tr" v-for="(e, i) in resultList" :key="i">
                     <div class="table_td">{{ i + 1 }}</div>
                     <div class="table_td">
                       <span> {{ e.layerName }}</span>
@@ -215,34 +123,20 @@
                 </div>
               </div>
             </div>
-            <div
-              class="download"
-              v-if="!chartIsshow"
-            >
-              <el-button
-                link
-                @click="download"
-              >涓嬭浇鍒嗘瀽缁撴灉</el-button>
+            <div class="download" v-if="!chartIsshow">
+              <el-button link @click="download">涓嬭浇鍒嗘瀽缁撴灉</el-button>
             </div>
           </el-tab-pane>
         </el-tabs>
       </div>
     </div>
   </div>
-  <div
-    class="dialog"
-    v-if="dialogShow"
-    @click.self="dialogShow = false"
-  >
+  <div class="dialog" v-if="dialogShow" @click.self="dialogShow = false">
     <div class="chart">
       <i @click.capture="closeDialog"><el-icon>
           <Close />
         </el-icon></i>
-      <BarGraphAxisLine
-        :width="'856px'"
-        :height="'636px'"
-        :layerData="layerData"
-      ></BarGraphAxisLine>
+      <BarGraphAxisLine :width="'856px'" :height="'636px'" :layerData="layerData"></BarGraphAxisLine>
     </div>
   </div>
 </template>
@@ -569,7 +463,7 @@
     }
   }
 };
-const handleClick = (tab: TabsPaneContext, event: Event) => {};
+const handleClick = (tab: TabsPaneContext, event: Event) => { };
 //   const setCloseplotting = () => {
 //     emits("setCloseplotting", false);
 //   };
@@ -635,6 +529,7 @@
   width: 320px;
   background: rgba(7, 8, 14, 0.8);
   z-index: 100;
+
   .InquireHeader {
     width: 100%;
     height: 35px;
@@ -649,6 +544,7 @@
     display: flex;
     justify-content: space-between;
   }
+
   .inquireContent {
     .inquireContent_title {
       font-size: 14px;
@@ -658,20 +554,24 @@
       margin-top: 10px;
       padding-left: 10px;
     }
+
     .inquireContent_name {
       display: flex;
       align-items: center;
       justify-content: space-between;
       padding: 0 10px;
       padding-bottom: 16px;
+
       .plotting_list_tr_name {
         display: flex;
         align-items: center;
         justify-content: space-between;
+
         .ico {
           width: 18px;
           height: 18px;
         }
+
         span {
           font-size: 16px;
           font-weight: 300;
@@ -679,6 +579,7 @@
           margin-left: 10px;
         }
       }
+
       .plotting_list_tr_wkt {
         font-size: 12px;
         font-weight: 300;
@@ -686,34 +587,41 @@
         margin-left: 10px;
         flex: 1;
       }
+
       .plotting_list_tr_btn {
         display: flex;
         align-items: center;
+
         .tr_btn {
           width: 16px;
           height: 15px;
           cursor: pointer;
         }
+
         .dw {
           background: url("../../assets/img/dw.png") no-repeat center;
           background-size: 100% 100%;
           margin-right: 18px;
         }
+
         .sc {
           background: url("../../assets/img/sc.png") no-repeat center;
           background-size: 100% 100%;
         }
       }
     }
+
     /deep/ .el-tabs__nav {
       justify-content: center;
       float: none;
     }
+
     /deep/ .el-tabs__item,
     /deep/ .el-tabs__item.is-active {
       color: #d6e4ff;
       font-size: 16px;
     }
+
     .inquireContent_input {
       display: flex;
       justify-content: space-between;
@@ -722,12 +630,15 @@
       margin-right: 10px;
       padding-bottom: 14px;
       border-bottom: 1px solid rgba(214, 228, 255, 0.4);
+
       .inquireContent_input_left {
         width: 45%;
       }
+
       .inquireContent_input_right {
         width: 45%;
       }
+
       .label {
         font-size: 14px;
         font-weight: 400;
@@ -735,12 +646,15 @@
         padding-bottom: 10px;
       }
     }
+
     .inquireContent_msg {
       padding: 12px 18px;
+
       .inquireContent_msg_k {
         display: flex;
         justify-content: space-between;
         align-items: center;
+
         span {
           font-size: 12px;
           font-weight: 400;
@@ -748,14 +662,17 @@
         }
       }
     }
+
     .inquireContent_table {
       padding-right: 15px;
       padding-left: 15px;
       padding-bottom: 10px;
+
       .table {
         background: rgba(0, 0, 0, 0, 4);
         border: 1px solid rgba(214, 228, 255, 0.4);
         border-radius: 4px;
+
         .table_head {
           height: 27px;
           background: #0e151f;
@@ -763,6 +680,7 @@
           //     0px 14px 16px 0px rgba(38, 47, 71, 0.68);
           //   border-radius: 4px 4px 0px 0px;
           display: flex;
+
           .table_head_td {
             width: 50px;
             font-size: 14px;
@@ -773,7 +691,9 @@
             align-items: center;
             border-right: 1px solid rgba(214, 228, 255, 0.4);
             box-sizing: border-box;
+        
           }
+
           .table_head_td:nth-child(2) {
             width: 237px;
             display: flex;
@@ -781,15 +701,19 @@
             align-items: center;
             padding: 0 10px;
             border-right: 0;
+
           }
         }
+
         .table_content {
           height: 440px;
           overflow: auto;
+
           .table_tr {
             // height: 27px;
             display: flex;
             background: #000000;
+
             // padding: 5px 0;
             .table_td {
               width: 50px;
@@ -802,6 +726,7 @@
               align-items: center;
               border-right: 1px solid rgba(214, 228, 255, 0.4);
               box-sizing: border-box;
+
               // padding: 5px;
               // white-space: nowrap;
               span {
@@ -809,12 +734,19 @@
                 width: 50%;
                 word-wrap: break-word;
                 // white-space: pre;
+                text-align: left;
               }
+
               span:nth-child(2) {
-                display: flex;
-                justify-content: flex-end;
+                // display: flex;
+                // justify-content: flex-end;
+                // margin-left: 5%;
+                //  float: right;
+                width: 40%;
+                text-align: right;
               }
             }
+
             .table_td:nth-child(2) {
               width: 237px;
               display: flex;
@@ -828,74 +760,91 @@
               border-right: 0;
             }
           }
+
           .table_tr:nth-child(2n) {
             background: #0e151f;
           }
         }
+
         .table_content::-webkit-scrollbar {
           width: 8px;
         }
+
         .table_content::-webkit-scrollbar-thumb {
           border-radius: 10px;
           background: rgba(0, 0, 0, 0.2);
         }
+
         .table_content::-webkit-scrollbar-track {
           border-radius: 0;
           background: rgba(0, 0, 0, 0);
         }
       }
     }
+
     .download {
       padding-right: 15px;
       padding-left: 15px;
       padding-bottom: 14px;
       display: flex;
       justify-content: flex-end;
+
       .el-button {
         font-size: 12px;
         color: #d6e4ff;
       }
     }
+
     .chart {
       width: 100%;
       height: 540px;
       overflow: auto;
     }
+
     .chart::-webkit-scrollbar {
       width: 8px;
     }
+
     .chart::-webkit-scrollbar-thumb {
       border-radius: 10px;
       background: rgba(0, 0, 0, 0.2);
     }
+
     .chart::-webkit-scrollbar-track {
       border-radius: 0;
       background: rgba(0, 0, 0, 0);
     }
+
     .chart_box {
       width: 100%;
+
       .chart_btn {
         display: flex;
         justify-content: flex-end;
         margin: 0 10px;
         padding-top: 5px;
         padding-bottom: 5px;
+
         // border-bottom: 1px solid rgba(214, 228, 255, 0.4);
         .linkBtn {
           color: #d6e4ff;
         }
+
         .del {
           color: red;
         }
       }
     }
+
     .select_box {
       padding-bottom: 20px;
+
       .add_btn {
         display: flex;
         justify-content: center;
       }
     }
+
     .select {
       display: flex;
       justify-content: center;
@@ -903,6 +852,7 @@
     }
   }
 }
+
 .dialog {
   position: absolute;
   top: 0;
@@ -911,6 +861,7 @@
   height: 100vh;
   background-color: rgba(255, 255, 255, 0.4);
   z-index: 110;
+
   .chart {
     position: absolute;
     top: 50%;
@@ -918,6 +869,7 @@
     transform: translate(-50%, -50%);
     background-color: rgb(33, 37, 44);
     padding: 20px;
+
     i {
       position: absolute;
       right: 2px;
@@ -928,6 +880,7 @@
     }
   }
 }
+
 .btnstyle {
   .el-button {
     background: rgba(104, 156, 255, 0.2);
@@ -937,9 +890,11 @@
     font-weight: 400;
     color: #ffffff;
   }
+
   .el-button:hover {
     border: 1px solid #689cff;
   }
+
   .delbtn {
     background: rgba(245, 108, 108, 0.2);
     border: 1px solid #5a0914;
diff --git a/src/views/query/slopeQuery.vue b/src/views/query/slopeQuery.vue
new file mode 100644
index 0000000..ca84052
--- /dev/null
+++ b/src/views/query/slopeQuery.vue
@@ -0,0 +1,72 @@
+<template>
+    <div v-drag="true" class="searchBox">
+        <div @click="setCloseSlopeQuerty" style="float: right;">
+            <el-icon :size="20">
+                <Close />
+            </el-icon>
+        </div>
+        <div>
+            鍧″害鍊硷細{{ queryVal }}
+        </div>
+    </div>
+</template>
+  
+<script lang="ts" setup>
+
+import {
+    ref,
+    onMounted,
+    onBeforeUnmount,
+    reactive,
+    defineProps,
+    defineEmits,
+    nextTick,
+    watch,
+} from "vue";
+import store from "@/store";
+const queryVal = ref(null)
+const setCloseSlopeQuerty = () => {
+    store.state.showSlopeQuey = false;
+    store.state.slopeQueyValue = null;
+}
+const changeSlopQueryValue = (res) => {
+    queryVal.value = res
+}
+
+
+onMounted(() => {
+    changeSlopQueryValue(store.state.slopeQueyValue)
+})
+watch(
+    () => store.state.slopeQueyValue,
+    (nVal, oVal) => {
+        if (nVal) {
+            changeSlopQueryValue(nVal);
+        }
+    },
+    { deep: true }
+);
+
+
+
+
+
+</script>
+<style lang="less" scoped>
+.searchBox {
+    position: absolute;
+    z-index: 30;
+    width: 200px;
+    top: 8vh;
+    right: 24vh;
+    padding: 10px;
+    background: rgba(7, 8, 14, 0.8);
+    border: 1px solid #d6e4ff;
+    box-shadow: inset 0px 10px 40px 10px rgba(38, 47, 71, 1);
+    border-radius: 5px;
+    font-family: Source Han Sans SC;
+    font-size: 12px;
+    color: white;
+}
+</style>
+  

--
Gitblit v1.9.3