From 513e1bdf4b2703409d9e4dbb776e67ffa0c134a6 Mon Sep 17 00:00:00 2001
From: WX <1377869194@qq.com>
Date: 星期三, 13 九月 2023 09:52:15 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.20.92:8888/r/PM20230220027_Web

---
 src/views/query/SpatialQuery.vue         |   56 ++++++++
 src/views/layer/attributeList.vue        |   58 ++++++++-
 src/views/search/search.vue              |   10 +
 src/assets/js/Map/rightServer.js         |    7 +
 src/views/query/detailsQuery.vue         |   20 ++
 src/assets/js/Map/server.js              |    6 +
 src/views/layer/layerDetail.vue          |   46 ++++---
 src/assets/js/Map/menuTool.js            |   51 +++++--
 src/views/plotting/plotting.vue          |   35 ++++-
 src/views/layer/layerManage.vue          |   37 +++++
 src/views/query/CoordLocation.vue        |    5 
 public/CIMSDK/Workers/image/location.png |    0 
 src/assets/img/location.png              |    0 
 13 files changed, 258 insertions(+), 73 deletions(-)

diff --git a/public/CIMSDK/Workers/image/location.png b/public/CIMSDK/Workers/image/location.png
index f0f0f7d..ad1941b 100644
--- a/public/CIMSDK/Workers/image/location.png
+++ b/public/CIMSDK/Workers/image/location.png
Binary files differ
diff --git a/src/assets/img/location.png b/src/assets/img/location.png
new file mode 100644
index 0000000..ad1941b
--- /dev/null
+++ b/src/assets/img/location.png
Binary files differ
diff --git a/src/assets/js/Map/menuTool.js b/src/assets/js/Map/menuTool.js
index 6bd167c..fa94d83 100644
--- a/src/assets/js/Map/menuTool.js
+++ b/src/assets/js/Map/menuTool.js
@@ -104,24 +104,40 @@
     if (this.localPoint) {
       this.setLocalPositionClose();
     }
-    var position = {
-      X: parseFloat(res.lon),
-      Y: parseFloat(res.lat),
-      Altitude: parseFloat(res.alt),
-    };
-    this.localPoint = window.sgworld.Creator.CreateImageLabel(
-      position,
-      config.StaticFileBaseUrl + "/Workers/image/mark.png",
-      {},
-      0,
-      "鏍囩鐐�"
-    );
-    var id = this.localPoint.item.id;
-    window.sgworld.Navigate.flyToObj(this.localPoint.item);
+    // var position = {
+    //   X: parseFloat(res.lon),
+    //   Y: parseFloat(res.lat),
+    //   Altitude: parseFloat(res.alt),
+    // };
+    // this.localPoint = window.sgworld.Creator.CreateImageLabel(
+    //   position,
+    //   config.StaticFileBaseUrl + "/Workers/image/mark.png",
+    //   {},
+    //   0,
+    //   "鏍囩鐐�"
+    // );
+    // var id = this.localPoint.item.id;
+    // window.sgworld.Navigate.flyToObj(this.localPoint.item);
+    this.localPoint = window.Viewer.entities.add({
+      name: '鍧愭爣瀹氫綅',
+      position: Cesium.Cartesian3.fromDegrees(parseFloat(res.lon), parseFloat(res.lat), res.alt == null ? parseFloat(res.alt) : 0),
+      billboard: {
+        image: config.StaticFileBaseUrl + '/Workers/image/location.png',
+        // 璁剧疆璐村湴
+        heightReference: Cesium.Color.CORNFLOWERBLUE.withAlpha(0.4),
+        verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
+        scale: 1.0,
+      },
+    });
+    this.setViewerFlyTo(this.localPoint)
   },
   setLocalPositionClose() {
-    this.localPoint.deleteObject();
-    this.localPoint = null;
+    if (this.localPoint) {
+      // this.localPoint.deleteObject();
+      window.Viewer.entities.remove(this.localPoint)
+      this.localPoint = null;
+    }
+
   },
   //鍧″害鍒嗘瀽
   setSlopeMap() {
@@ -615,13 +631,14 @@
         // 璁剧疆璐村湴
         heightReference: Cesium.Color.CORNFLOWERBLUE.withAlpha(0.4),
         verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
-        scale: 5.0,
+        scale: 1.0,
       },
     });
 
     this.setViewerFlyTo(position)
   },
   setViewerFlyTo(entity) {
+
     window.Viewer.flyTo(entity, {
       offset: {
         heading: Cesium.Math.toRadians(0.0),
diff --git a/src/assets/js/Map/rightServer.js b/src/assets/js/Map/rightServer.js
index 134c302..475706f 100644
--- a/src/assets/js/Map/rightServer.js
+++ b/src/assets/js/Map/rightServer.js
@@ -235,8 +235,13 @@
         var url = this.getLayrUrl(res);
         window.terrainLayer = new Cesium.CesiumTerrainProvider({
             url: url,
+            tilingScheme: new Cesium.GeographicTilingScheme({
+                ellipsoid: Cesium.Ellipsoid.MOON,
+            }),
+
         });
-        window.rightViewer.terrainProvider = window.terrainLayer;
+        Viewer.terrainProvider = window.terrainLayer;
+        Viewer.scene.globe.terrainExaggeration = 1.0000001;
         this.layerList.push({ id: res.id, type: "dem" });
     },
     //鍔犺浇WMS鏈嶅姟
diff --git a/src/assets/js/Map/server.js b/src/assets/js/Map/server.js
index e3ceb5a..a140f51 100644
--- a/src/assets/js/Map/server.js
+++ b/src/assets/js/Map/server.js
@@ -240,8 +240,13 @@
     var url = this.getLayrUrl(res);
     window.terrainLayer = new Cesium.CesiumTerrainProvider({
       url: url,
+      tilingScheme: new Cesium.GeographicTilingScheme({
+        ellipsoid: Cesium.Ellipsoid.MOON,
+      }),
+
     });
     Viewer.terrainProvider = window.terrainLayer;
+    Viewer.scene.globe.terrainExaggeration = 1.0000001;
     this.layerList.push({ id: res.id, type: "dem" });
   },
   //鍔犺浇WMS鏈嶅姟
@@ -426,6 +431,7 @@
         break;
       }
     }
+
     if (!gindex) return
     var str = html.substr(html.indexOf('<td>'), html.lastIndexOf('</td>') - html.indexOf('<td>') + 5).replaceAll(' ', '').replaceAll('\n', '').split('</td>')
     var gid = parseInt(str[gindex].replaceAll(
diff --git a/src/views/layer/attributeList.vue b/src/views/layer/attributeList.vue
index dacc7f0..4ec72af 100644
--- a/src/views/layer/attributeList.vue
+++ b/src/views/layer/attributeList.vue
@@ -57,7 +57,7 @@
           >
             <template #default="scope">
               <el-button
-                :icon="Location"
+                class="el-icon-map"
                 size="small"
                 @click.prevent="spaceLocation(scope.$index, scope.row)"
               >
@@ -230,9 +230,37 @@
     return ElMessage.error("绌洪棿鏌ヨ澶辫触");
   }
   listData.value.count = data.count;
-  tableData.value = data.result;
-};
 
+  var val = data.result.filter((res) => {
+    if (res.apprTime) {
+      res.apprTime = format(res.apprTime);
+    }
+    if (res.createtime) {
+      res.apprTime = format(res.createtime);
+    }
+    if (res.updatetime) {
+      res.apprTime = format(res.updatetime);
+    }
+    return res;
+  });
+  tableData.value = val;
+};
+//鏍煎紡鍖栨椂闂�
+const format = (shijianchuo) => {
+  //shijianchuo鏄暣鏁帮紝鍚﹀垯瑕乸arseInt杞崲
+  var time = new Date(shijianchuo);
+  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 + "-" + add0(m) + "-" + add0(d) + " " + h + ":" + mm + ":" + s;
+};
+//鏍煎紡鍖栨椂闂�
+const add0 = (m) => {
+  return m < 10 ? "0" + m : m;
+};
 const setQueySpatialFields = async () => {
   const data = await dataQuery_selectFields({
     ns: "mn",
@@ -246,8 +274,17 @@
       return res;
     }
   });
-  attributeData.value = std;
-  fieldOption.value = std;
+  var val = std.filter((res) => {
+    if (res.field.indexOf("_") > -1) {
+      var str = res.field.split("_");
+      res.field = str[0] + str[1][0].toUpperCase() + str[1].slice(1);
+      return res;
+    } else {
+      return res;
+    }
+  });
+  attributeData.value = val;
+  fieldOption.value = val;
   conditionChange(data.result[0]);
   setQueySpatialData();
 };
@@ -418,7 +455,16 @@
     padding: 10px;
     height: 40px;
   }
-
+  .el-icon-map {
+    background: url("../../assets/img/location.png") center no-repeat;
+    background-size: 100% 100%;
+    border: transparent;
+  }
+  .el-icon-map:before {
+    content: "瀹氫綅";
+    font-size: 0;
+    visibility: hidden;
+  }
   /deep/.el-pagination button {
     background: transparent;
     color: #d6e4ff;
diff --git a/src/views/layer/layerDetail.vue b/src/views/layer/layerDetail.vue
index 755880b..304821e 100644
--- a/src/views/layer/layerDetail.vue
+++ b/src/views/layer/layerDetail.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="content">
     <div class="title">
-      <label>璇︾粏缂栬緫</label>
+      <label> {{ layerData.cnName }}</label>
       <el-icon
         @click="setSpatialClose"
         :size="20"
@@ -11,16 +11,14 @@
       </el-icon>
     </div>
     <div class="layer_box">
-      <div class="check_box">
-        <!-- <el-checkbox @change="handlCheckAllChange" v-model="layerState">{{
-          layerName
-        }}</el-checkbox> -->
-        {{ layerData.cnName }}
-        <img
-          src="../../assets/img/layer.png"
-          alt=""
-        />
-      </div>
+      <!--  <div class="check_box">
+        
+    {{ layerData.cnName }}
+    <img
+      src="../../assets/img/layer.png"
+      alt=""
+    />
+  </div> -->
       <div
         class="slider-demo-block"
         v-show="diaphaneityShow"
@@ -443,12 +441,15 @@
     geom: geom,
     pubid: releaseLayer.value.pubid,
   };
-  const data = publish_updateSjService(obj);
-  if (data.count != 200) {
-    return ElMessage(data.msg);
-  }
-  store.state.restLayer = true;
-  setSpatialClose();
+  publish_updateSjService(obj).then((res) => {
+    if (res.code != 200) {
+      return ElMessage(data.msg);
+    }
+    store.state.restLayer = true;
+    setSpatialClose();
+  });
+  // const data = ;
+  // console.log("1122223" + data.code);
 };
 onMounted(() => {
   typeDisplay(props.layerData);
@@ -469,16 +470,19 @@
 
 <style lang="less" scoped>
 .content {
-  background: #1e2a3d;
   padding: 20px;
   // height: 400px;
-  margin-left: 20px;
+  min-width: 300px;
+  margin-left: 385px;
   margin-top: 40px;
-  min-width: 200px;
+
   z-index: 40;
   position: absolute;
+  background: rgba(7, 8, 14, 0.8);
+  border: 1px solid #d6e4ff;
+  box-shadow: inset 0px 10px 40px 10px rgba(38, 47, 71, 1);
   .title {
-    font-size: 18px;
+    font-size: 16px;
     font-family: Source Han Sans CN;
     font-weight: 400;
     color: #ffffff;
diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue
index 647fa23..798f6c8 100644
--- a/src/views/layer/layerManage.vue
+++ b/src/views/layer/layerManage.vue
@@ -269,7 +269,29 @@
   // });
   // treeData = handleTree(menuOption, "id", "pid", "children");
 };
+const setRestLayerData = () => {
+  let son = estreeRef.value.getCheckedNodes().reverse();
+  server.delLayerAll();
 
+  var setGeoWms = [];
+  var url = null;
+  for (var i in son) {
+    var layerArr = son[i];
+    layerArr.checked = true;
+    if (layerArr.category == 2 && layerArr.type == 3) {
+      if (layerArr.tab != "moon:geo_mappable_unit") {
+        setGeoWms.push(layerArr.tab);
+        url = layerArr.url;
+      }
+    } else {
+      server.addTreeData(layerArr);
+    }
+  }
+  if (setGeoWms.length > 0) {
+    server.addGeoServerMmsLayers(setGeoWms, url);
+  }
+  store.commit("SET_CHECKLAYER", son);
+};
 const getLayer = async () => {
   store.state.restLayer = false;
   server.delLayerAll();
@@ -280,15 +302,18 @@
     });
     var std = [];
     var terrainId = null;
+    var adLayer = [];
     dt.result.filter((res) => {
       if (res.isLayer == 1 && res.isShow == 1) {
         if (res.type == 1 && res.data == 2) {
           if (!terrainId) {
             terrainId = res.id;
             std.push(res.id);
+            adLayer.push(res);
           }
         } else {
           std.push(res.id);
+          adLayer.push(res);
         }
       }
     });
@@ -299,19 +324,20 @@
     defaultLayer(dt.result);
     var setGeoWms = [];
     var url = null;
-    for (var i in dt.result) {
-      var layer = dt.result[i];
+
+    for (var i in adLayer) {
+      var layer = adLayer[i];
       if (layer.category == 2 && layer.type == 3) {
         if (layer.tab != "moon:geo_mappable_unit") {
           setGeoWms.push(layer.tab);
           url = layer.url;
         }
       } else {
-        server.addTreeData(layer);
+          server.addTreeData(layer);
       }
     }
     if (setGeoWms.length > 0) {
-      server.addGeoServerMmsLayers(setGeoWms.reverse(), url);
+      server.addGeoServerMmsLayers(setGeoWms, url);
     }
     //;
     nextTick(() => {
@@ -340,11 +366,12 @@
     return father.pid == 0; // 杩斿洖涓�绾ц彍鍗�
   });
 }
+
 watch(
   () => store.state.restLayer,
   (nVal, oVal) => {
     if (nVal) {
-      getLayer();
+      setRestLayerData();
     }
   },
   { deep: true }
diff --git a/src/views/plotting/plotting.vue b/src/views/plotting/plotting.vue
index cc61f47..a794809 100644
--- a/src/views/plotting/plotting.vue
+++ b/src/views/plotting/plotting.vue
@@ -1,8 +1,14 @@
 <template>
-  <div v-drag class="plottingBox">
+  <div
+    v-drag
+    class="plottingBox"
+  >
     <div class="plottingTitle">
       <div class="tileLeft">
-        <div class="titleImg" @click="setCloseplotting">
+        <div
+          class="titleImg"
+          @click="setCloseplotting"
+        >
           <ArrowLeft />
         </div>
         <div class="titleLable">鏍囩粯鏌ヨ</div>
@@ -12,9 +18,18 @@
       <div class="plotting_content_btn">
         <span class="plotting_content_title">鏍囩粯宸ュ叿</span>
         <div class="plotting_btn">
-          <div class="btn_box_d btn_box" @click="setMenuDraw('point')"></div>
-          <div class="btn_box_x btn_box" @click="setMenuDraw('polyline')"></div>
-          <div class="btn_box_m btn_box" @click="setMenuDraw('polygon')"></div>
+          <div
+            class="btn_box_d btn_box"
+            @click="setMenuDraw('point')"
+          ></div>
+          <div
+            class="btn_box_x btn_box"
+            @click="setMenuDraw('polyline')"
+          ></div>
+          <div
+            class="btn_box_m btn_box"
+            @click="setMenuDraw('polygon')"
+          ></div>
         </div>
       </div>
       <div class="plotting_list">
@@ -32,8 +47,14 @@
             /><span>{{ item.name }}</span>
           </div>
           <div class="plotting_list_tr_btn">
-            <div class="tr_btn dw" @click.stop="setLayerLocation(item)"></div>
-            <div class="tr_btn sc" @click.stop="setLayerRemove(item)"></div>
+            <div
+              class="tr_btn dw"
+              @click.stop="setLayerLocation(item)"
+            ></div>
+            <div
+              class="tr_btn sc"
+              @click.stop="setLayerRemove(item)"
+            ></div>
           </div>
         </div>
       </div>
diff --git a/src/views/query/CoordLocation.vue b/src/views/query/CoordLocation.vue
index 185c856..744aac2 100644
--- a/src/views/query/CoordLocation.vue
+++ b/src/views/query/CoordLocation.vue
@@ -37,10 +37,7 @@
             placeholder="璇疯緭鍏ョ含搴�..."
           />
         </el-form-item>
-        <el-form-item
-          label="楂樺害锛�"
-          prop="alt"
-        >
+        <el-form-item label="楂樺害锛�">
           <el-input
             v-model="ruleForm.alt"
             placeholder="璇疯緭鍏ラ珮搴�..."
diff --git a/src/views/query/SpatialQuery.vue b/src/views/query/SpatialQuery.vue
index e8f81bb..1668d16 100644
--- a/src/views/query/SpatialQuery.vue
+++ b/src/views/query/SpatialQuery.vue
@@ -77,7 +77,7 @@
             >
               <template #default="scope">
                 <el-button
-                  :icon="Location"
+                  class="el-icon-map"
                   size="small"
                   @click.prevent="spaceLocation(scope.$index, scope.row)"
                 >
@@ -513,9 +513,36 @@
     return ElMessage.error("绌洪棿鏌ヨ澶辫触");
   }
   listData.value.count = data.count;
-  tableData.value = data.result;
+  var val = data.result.filter((res) => {
+    if (res.apprTime) {
+      res.apprTime = format(res.apprTime);
+    }
+    if (res.createtime) {
+      res.apprTime = format(res.createtime);
+    }
+    if (res.updatetime) {
+      res.apprTime = format(res.updatetime);
+    }
+    return res;
+  });
+  tableData.value = val;
 };
-
+//鏍煎紡鍖栨椂闂�
+const format = (shijianchuo) => {
+  //shijianchuo鏄暣鏁帮紝鍚﹀垯瑕乸arseInt杞崲
+  var time = new Date(shijianchuo);
+  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 + "-" + add01(m) + "-" + add01(d) + " " + h + ":" + mm + ":" + s;
+};
+//鏍煎紡鍖栨椂闂�
+const add01 = (m) => {
+  return m < 10 ? "0" + m : m;
+};
 const setQueySpatialFields = async () => {
   const data = await dataQuery_selectFields({
     ns: "mn",
@@ -531,8 +558,17 @@
     }
   });
 
-  attributeData.value = std;
-  fieldOption.value = std;
+  var val = std.filter((res) => {
+    if (res.field.indexOf("_") > -1) {
+      var str = res.field.split("_");
+      res.field = str[0] + str[1][0].toUpperCase() + str[1].slice(1);
+      return res;
+    } else {
+      return res;
+    }
+  });
+  attributeData.value = val;
+  fieldOption.value = val;
   conditionChange(data.result[0]);
   setQueySpatialData();
 };
@@ -786,6 +822,16 @@
       color: #d6e4ff !important;
     }
   }
+  .el-icon-map {
+    background: url("../../assets/img/location.png") center no-repeat;
+    background-size: 100% 100%;
+    border: transparent;
+  }
+  .el-icon-map:before {
+    content: "瀹氫綅";
+    font-size: 0;
+    visibility: hidden;
+  }
 }
 </style> 
 <style lang="less"  >
diff --git a/src/views/query/detailsQuery.vue b/src/views/query/detailsQuery.vue
index 413c334..b418d09 100644
--- a/src/views/query/detailsQuery.vue
+++ b/src/views/query/detailsQuery.vue
@@ -82,7 +82,17 @@
     ElMessage.error("鏈煡璇㈠埌瀛楁淇℃伅");
     return;
   }
-  fieldData.value = data.result;
+  var val = data.result;
+  val.filter((res) => {
+    if (res.field.indexOf("_") > -1) {
+      var str = res.field.split("_");
+      res.field = str[0] + str[1][0].toUpperCase() + str[1].slice(1);
+      return res;
+    } else {
+      return res;
+    }
+  });
+  fieldData.value = val;
   getLayerDomains();
 };
 const getLayerDomains = async () => {
@@ -149,7 +159,6 @@
       arr[vla.alias] = valste[vla.field];
     }
   }
-
   tableData.value = sortObj(arr);
 };
 const sortObj = (obj) => {
@@ -160,8 +169,13 @@
   arr.reverse();
   var len = arr.length;
   var obj = {};
+
   for (var i = 0; i < len; i++) {
-    obj[arr[i][1]] = arr[i][0];
+    if (arr[i][1].indexOf("鏃堕棿") > -1) {
+      obj[arr[i][1]] = format(arr[i][0]);
+    } else {
+      obj[arr[i][1]] = arr[i][0];
+    }
   }
   return obj;
 };
diff --git a/src/views/search/search.vue b/src/views/search/search.vue
index f3b59ae..546e6f9 100644
--- a/src/views/search/search.vue
+++ b/src/views/search/search.vue
@@ -87,7 +87,7 @@
                 @click="setPointLocal(item)"
               >
                 <div class="table_th_x">{{ flag + 1 }}</div>
-                <div class="table_th">{{ item.enName }}</div>
+                <div class="table_th">{{ item.name }}</div>
               </div>
             </div>
           </div>
@@ -129,8 +129,10 @@
 const NumhandleChange = (value: number) => {};
 const handleChange = (val: string[]) => {};
 const setPoitCannel = () => {
-  imageLabel.deleteObject();
-  imageLabel = null;
+  if (imageLabel) {
+    imageLabel.deleteObject();
+    imageLabel = null;
+  }
 };
 const setPointLocal = (res) => {
   if (imageLabel) {
@@ -139,7 +141,7 @@
   var position = { X: res.lon, Y: res.lat, Altitude: 10 };
   imageLabel = window.sgworld.Creator.CreateImageLabel(
     position,
-    config.StaticFileBaseUrl + "/Workers/image/mark.png",
+    config.StaticFileBaseUrl + "/Workers/image/location.png",
     {},
     0,
     "鏍囩鐐�"

--
Gitblit v1.9.3