From aa75a9d46ee325f0a92e42f733aabb1f92103aeb Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期五, 28 三月 2025 17:44:29 +0800
Subject: [PATCH] 走航融合模块完成

---
 src/views/underwaymix/component/GridStyleTool.vue |  106 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 72 insertions(+), 34 deletions(-)

diff --git a/src/views/underwaymix/component/GridStyleTool.vue b/src/views/underwaymix/component/GridStyleTool.vue
index 6d16811..7429e04 100644
--- a/src/views/underwaymix/component/GridStyleTool.vue
+++ b/src/views/underwaymix/component/GridStyleTool.vue
@@ -28,6 +28,7 @@
                     type="primary"
                     icon="Close"
                     circle
+                    size="small"
                     @click="handleCloseClick(i, t, value)"
                   />
                   <!-- <el-icon><Close /></el-icon> -->
@@ -37,14 +38,25 @@
                 <!-- <el-text>{{ g.name }}</el-text> -->
                 <!-- <div class="m-t-8">缃戞牸瑕佺礌</div> -->
                 <el-row class="m-t-8" justify="space-between">
+                  <!-- <el-button
+                    type="primary"
+                    class="el-button-custom"
+                    size="small"
+                    @click="gridLoading = !gridLoading"
+                  >
+                    {{ '铻嶅悎鍒嗘瀽' }}
+                  </el-button> -->
                   <CheckButton
+                    :loading="gridLoading"
+                    v-model="value.show"
                     active-text="鏄剧ず缃戞牸"
                     inactive-text="闅愯棌缃戞牸"
-                    :default-value="true"
                     @change="(e) => handleGridClick(e, i, value)"
                   >
                   </CheckButton>
                   <CheckButton
+                    :loading="rankLoading"
+                    v-model="value.showRank"
                     active-text="鏄剧ず鎺掑悕"
                     inactive-text="闅愯棌鎺掑悕"
                     :default-value="false"
@@ -52,6 +64,8 @@
                   >
                   </CheckButton>
                   <CheckButton
+                    :loading="dataLoading"
+                    v-model="value.showData"
                     active-text="鏄剧ず鏁版嵁"
                     inactive-text="闅愯棌鏁版嵁"
                     :default-value="false"
@@ -61,6 +75,8 @@
                 </el-row>
                 <el-row class="m-t-8" justify="space-between">
                   <CheckButton
+                    :loading="colorLoading"
+                    v-model="value.showCustomColor"
                     active-text="缁樺埗瀵规瘮鑹�"
                     inactive-text="缁樺埗鏍囧噯鑹�"
                     :default-value="false"
@@ -68,6 +84,8 @@
                   >
                   </CheckButton>
                   <CheckButton
+                    :loading="heatMapLoading"
+                    v-model="value.showHeatMap"
                     active-text="椋庨櫓鐑姏鍥�"
                     inactive-text="椋庨櫓鐑姏鍥�"
                     :default-value="false"
@@ -75,7 +93,9 @@
                   >
                   </CheckButton>
                   <CheckButton
+                    :loading="underwayLoading"
                     v-if="value.extData.type == 0"
+                    v-model="value.showUnderway"
                     active-text="鏄剧ず璧拌埅杞ㄨ抗"
                     inactive-text="闅愯棌璧拌埅杞ㄨ抗"
                     :default-value="false"
@@ -83,7 +103,9 @@
                   >
                   </CheckButton>
                   <CheckButton
+                    :loading="highlightLoading"
                     v-if="value.extData.type == 1"
+                    v-model="value.highlightFusionGrid"
                     active-text="楂樹寒铻嶅悎缃戞牸"
                     :default-value="true"
                     @change="(e) => handleHighlightGridClick(e, i, value)"
@@ -140,6 +162,14 @@
   }
 });
 
+const gridLoading = ref(false);
+const rankLoading = ref(false);
+const dataLoading = ref(false);
+const colorLoading = ref(false);
+const heatMapLoading = ref(false);
+const underwayLoading = ref(false);
+const highlightLoading = ref(false);
+
 const emits = defineEmits(['showUnderway', 'onDelete']);
 
 const gridCtrlList = computed(() => {
@@ -150,6 +180,7 @@
         return {
           tag: v[0],
           extData: v[1].extData,
+          show: v[1].show,
           opacityValue: 1
         };
       })
@@ -159,61 +190,54 @@
 
 const show = ref(true);
 
-// const gridVisible = ref(false);
-// const rankVisible = ref(false);
-// const dataVisible = ref(false);
-// const isStandardColor = ref(true);
-// const isOpacity = ref(false);
-// const opacityValue = ref(0.7);
-
-// const emits = defineEmits([
-//   'showRank',
-//   'showData',
-//   'changeColor',
-//   'changeOpacity'
-// ]);
 function handleCloseClick(index, t, value) {
   const key = value.tag;
   toRaw(props.gridCtrls[index]).deleteTagGrid([key]);
-  gridCtrlList.value[index].views.splice(t, 1)
-  emits('onDelete', index, key)
+  gridCtrlList.value[index].views.splice(t, 1);
+  emits('onDelete', index, key);
 }
 
 function handleGridClick(e, index, value) {
+  gridLoading.value = true;
   const key = value.tag;
   toRaw(props.gridCtrls[index]).changeVisibility({
     tags: [key],
     showGridViews: e
   });
+  gridLoading.value = false;
 }
 
 function handleRankClick(e, index, value) {
+  rankLoading.value = true;
   const key = value.tag;
   toRaw(props.gridCtrls[index]).changeVisibility({
     tags: [key],
     showRankTxt: e
   });
+  rankLoading.value = false;
 }
 
 function handleDataClick(e, index, value) {
+  dataLoading.value = true;
   const key = value.tag;
   toRaw(props.gridCtrls[index]).changeVisibility({
     tags: [key],
     showDataTxt: e
   });
+  dataLoading.value = false;
 }
 
 function handleColorClick(e, index, value) {
+  colorLoading.value = true;
   const key = value.tag;
   toRaw(props.gridCtrls[index]).changeGridColor({
-    tag: key,
+    tags: [key],
     useCustomColor: e
   });
+  colorLoading.value = false;
 }
 
 function handleOpacityChange(e, index, value) {
-  console.log(e, index, value);
-
   const key = value.tag;
   // value.opacityValue = e;
   toRaw(props.gridCtrls[index]).changeGridOpacity({
@@ -223,18 +247,27 @@
 }
 
 function handleUnderwayClick(e, index, value) {
+  underwayLoading.value = true;
   emits('showUnderway', {
     isShow: e,
-    dataId: value.tag
+    dataId: value.tag,
+    done: () => (underwayLoading.value = false)
   });
 }
 
 function handleHighlightGridClick(e, index, value) {
-  toRaw(props.gridCtrls[index]).mixGrid(value.tag.split('-'), e);
+  highlightLoading.value = true;
+  toRaw(props.gridCtrls[index]).mixGrid({
+    tags: value.tag.split('-'),
+    isMixGridHighlight: e
+  });
+  highlightLoading.value = false;
 }
 
 let heatTag;
+const heatMapSearchLength = 4;
 function handleHeatMapClick(e, index, value) {
+  heatMapLoading.value = true;
   const _satelliteGrid = toRaw(props.gridCtrls[index]);
   _satelliteGrid.changeVisibility({
     showGridViews: false,
@@ -243,24 +276,29 @@
   });
   if (e) {
     const data = _satelliteGrid.gridDataDetailMap.get(value.tag);
-    gridApi.buildUnderwayHeatmap(3, data).then((res) => {
-      heatTag = _satelliteGrid.drawHeatGrid2(value.tag, res.data);
-      _satelliteGrid.setGridEvent(
-        [heatTag],
-        'click',
-        (gridCell, gridDataDetail) => {
-          gridStore.selectedGridCellAndDataDetail = {
-            gridCell,
-            gridDataDetail
-          };
-        }
-      );
-    });
+    gridApi
+      .buildUnderwayHeatmap(_satelliteGrid.gridGroupId, data, heatMapSearchLength)
+      .then((res) => {
+        heatTag = _satelliteGrid.drawHeatGrid2(value.tag, res.data);
+        _satelliteGrid.setDefaultGridClickEvent([heatTag]);
+        // _satelliteGrid.setGridEvent(
+        //   [heatTag],
+        //   'click',
+        //   (gridCell, gridDataDetail) => {
+        //     gridStore.selectedGridCellAndDataDetail = {
+        //       gridCell,
+        //       gridDataDetail
+        //     };
+        //   }
+        // );
+      })
+      .finally(() => (heatMapLoading.value = false));
   } else {
     _satelliteGrid.changeVisibility({
       tags: [value.tag],
       showGridViews: true
     });
+    heatMapLoading.value = false;
   }
 }
 </script>

--
Gitblit v1.9.3