From 0cf18f830d87664134f6e319abe44fcd59bf82c9 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期四, 07 九月 2023 17:32:01 +0800
Subject: [PATCH] 图层管理>详情颜色表对接调试

---
 src/api/api.js                  |    8 ++
 src/views/layer/layerDetail.vue |  146 ++++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 142 insertions(+), 12 deletions(-)

diff --git a/src/api/api.js b/src/api/api.js
index 735ae9e..7d9eb3d 100644
--- a/src/api/api.js
+++ b/src/api/api.js
@@ -78,3 +78,11 @@
 export function publish_selectSjColorTables(params) {
   return request.get("/publish/selectSjColorTables", { params: params });
 }
+
+
+//鏁版嵁绠$悊=>鏇存柊鏁扮畝鏈嶅姟
+export function publish_updateSjService(params) {
+  return request.post("/publish/updateSjService", params);
+}
+
+
diff --git a/src/views/layer/layerDetail.vue b/src/views/layer/layerDetail.vue
index 637eb80..755880b 100644
--- a/src/views/layer/layerDetail.vue
+++ b/src/views/layer/layerDetail.vue
@@ -1,8 +1,12 @@
 <template>
-  <div class="content" v-drag="true">
+  <div class="content">
     <div class="title">
       <label>璇︾粏缂栬緫</label>
-      <el-icon @click="setSpatialClose" :size="20" style="cursor: pointer">
+      <el-icon
+        @click="setSpatialClose"
+        :size="20"
+        style="cursor: pointer"
+      >
         <Close />
       </el-icon>
     </div>
@@ -12,9 +16,15 @@
           layerName
         }}</el-checkbox> -->
         {{ layerData.cnName }}
-        <img src="../../assets/img/layer.png" alt="" />
+        <img
+          src="../../assets/img/layer.png"
+          alt=""
+        />
       </div>
-      <div class="slider-demo-block" v-show="diaphaneityShow">
+      <div
+        class="slider-demo-block"
+        v-show="diaphaneityShow"
+      >
         <div class="demonstration">閫忔槑搴�</div>
         <el-slider
           v-model="transparence"
@@ -23,7 +33,10 @@
         />
         <div class="demonstration">{{ transparence }}%</div>
       </div>
-      <div class="slider-demo-block" v-show="contrastShow">
+      <div
+        class="slider-demo-block"
+        v-show="contrastShow"
+      >
         <div class="demonstration">瀵规瘮搴�</div>
         <el-slider
           v-model="contrast"
@@ -33,7 +46,10 @@
         />
         <div class="demonstration">{{ contrast }}</div>
       </div>
-      <div class="selectBox" v-show="drawingModeShow">
+      <div
+        class="selectBox"
+        v-show="drawingModeShow"
+      >
         <div class="selectTile demonstration">鎷変几鏂瑰紡</div>
         <div class="stretchSelect">
           <el-select
@@ -69,7 +85,29 @@
           />
         </div>
       </div>
-      <div class="selectBox" v-show="colorShow">
+      <div
+        class="selectBox"
+        v-show="colorShow"
+      >
+        <div class="selectTile demonstration">棰滆壊琛ㄧ被鍨�</div>
+        <el-select
+          size="small"
+          placeholder="璇烽�夋嫨棰滆壊琛�"
+          v-model="colorTableType"
+        >
+          <el-option
+            v-for="(item, i) in colorTableOptions"
+            :key="i"
+            :label="item.label"
+            :value="item.value"
+          ></el-option>
+
+        </el-select>
+      </div>
+      <div
+        class="selectBox"
+        v-show="colorShow "
+      >
         <div class="selectTile demonstration">娓叉煋绫诲瀷</div>
         <el-select
           v-model="renderType"
@@ -82,7 +120,7 @@
           <el-option
             v-for="(item, i) in renderTypeOptions"
             :key="i"
-            :label="item.data_id"
+            :label="item.name"
             :value="item.name"
           >
             <div
@@ -101,6 +139,20 @@
           </el-option>
         </el-select>
       </div>
+      <div v-show="colorShow">
+        <div class="selectBox">
+          <el-button
+            size="small"
+            type="primary"
+            @click="setColorLayerRelease"
+          >纭</el-button>
+          <el-button
+            size="small"
+            @click="setSpatialClose"
+          >鍙栨秷</el-button>
+        </div>
+      </div>
+
     </div>
   </div>
 </template>
@@ -115,7 +167,12 @@
   defineEmits,
 } from "vue";
 import server from "@/assets/js/Map/server";
-import { publish_selectSjColorTables } from "@/api/api";
+import {
+  publish_selectSjColorTables,
+  publish_updateSjService,
+} from "@/api/api";
+import { ElMessage } from "element-plus";
+import store from "@/store";
 import json from "@/assets/js/colorValue";
 
 const stretchValue = ref("");
@@ -123,6 +180,7 @@
 const contrast = ref(1);
 let layerName = ref("鍥惧眰鍚嶇О");
 let layerState = ref(false);
+const releaseLayer = ref(null);
 let select = ref();
 let renderType = ref("");
 let renderTypeOptions = ref([]);
@@ -148,9 +206,24 @@
     label: "浼介┈鎷変几",
   },
 ];
+let colorTableOptions = [
+  {
+    value: 2,
+    label: "璇烽�夋嫨棰滆壊琛�",
+  },
+  {
+    value: 0,
+    label: "鏅�氶鑹茶〃",
+  },
+  {
+    value: 1,
+    label: "鐩存柟鍥惧潎琛�",
+  },
+];
 let stretchNum = ref(0);
 let stretchMin = ref(0);
 let stretchMax = ref(0);
+let colorTableType = ref(colorTableOptions[0].value);
 let stretchNumShow = ref(false);
 const formatTooltip = (val: number) => {
   return val / 100;
@@ -171,7 +244,7 @@
 const getColorJson = async () => {
   const dt = await publish_selectSjColorTables({
     pageIndex: 1,
-    pageSize: 1000,
+    pageSize: 100000,
   });
   renderTypeOptions.value = dt.result.item_list;
 
@@ -180,7 +253,6 @@
     let css1 = "";
     e.content.levels.forEach((v) => {
       if ("r_start" in v) {
-        console.log(v.r_start);
         css += `rgb(${v.r_start}, ${v.g_start}, ${v.b_start}),rgb(${v.r_end}, ${v.g_end}, ${v.b_end}),`;
       } else if ("r" in v) {
         css1 += `rgb(${v.r}, ${v.g}, ${v.b}),`;
@@ -292,7 +364,7 @@
     val.data == 6
   ) {
     contrastShow.value = true;
-    drawingModeShow.value = true;
+    // drawingModeShow.value = true;
   }
   if (val.data == 3 || val.data == 4) {
     colorShow.value = true;
@@ -333,6 +405,51 @@
   }
 };
 const stretchNumChange = (val) => {};
+const setColorLayerRelease = async () => {
+  var color1 = null;
+  var color2 = null;
+  var level = null;
+  var val_data = [];
+
+  for (var i in renderTypeOptions.value) {
+    if (renderTypeOptions.value[i].name == renderType.value) {
+      val_data.push(renderTypeOptions.value[i].content.levels);
+    }
+  }
+  if (val_data.length > 0) {
+    level = val_data[0];
+  }
+
+  if (colorTableType.value == 0) {
+    color1 = level;
+  } else if (colorTableType.value == 1) {
+    color2 = level;
+  }
+  var geom = "null";
+  if (releaseLayer.value.geom) {
+    geom = releaseLayer.value.geom;
+  }
+  var obj = {
+    colorTable: color1, // 鏅�氶鑹茶〃锛屽彲涓嶈
+    gradientColorTable: color2,
+    enhanceType: stretchValue.value, // 鎷変几鏂瑰紡 0锛氫笉鎷変几锛�1 绾挎�ф媺浼革紝2 鐩存柟鍥惧潎琛★紝3 鏍囧噯宸媺浼革紝4 浼介┈鎷変几
+    enhanceFactor: stretchNum.value, // 鎷変几鍥犲瓙 null 鎴� 灏忔暟
+    dircode: "00", // 鐩綍缂栫爜
+    epsg: 104903, // 104903-鏈堢悆2000锛�4326-WGS84
+    ids: null, // 涓嶈璁惧畾
+    name: releaseLayer.value.cnName, // 褰撳墠鏈嶅姟鍚嶇О
+    nodata: 0, // 榛戣壊-0锛岀櫧鑹�-255
+    type: releaseLayer.value.type, // 褰卞儚-DOM锛岄珮绋�-
+    geom: geom,
+    pubid: releaseLayer.value.pubid,
+  };
+  const data = publish_updateSjService(obj);
+  if (data.count != 200) {
+    return ElMessage(data.msg);
+  }
+  store.state.restLayer = true;
+  setSpatialClose();
+};
 onMounted(() => {
   typeDisplay(props.layerData);
   server.layerList.forEach((e, i) => {
@@ -341,6 +458,11 @@
       transparence.value = e.layerData.alpha * 100;
     }
   });
+  releaseLayer.value = props.layerData;
+  if (releaseLayer.value.pubid && releaseLayer.value.pubid > 0) {
+    drawingModeShow.value = true;
+    colorShow.value = true;
+  }
 });
 getColorJson();
 </script>

--
Gitblit v1.9.3