From c7a16ca1b6fbcb0b82a4a09c2e75014624082e37 Mon Sep 17 00:00:00 2001
From: Riku <risaku@163.com>
Date: 星期四, 27 三月 2025 22:45:48 +0800
Subject: [PATCH] 修复走航融合功能bug

---
 src/views/underwaymix/component/GridStyleTool.vue |   86 +++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 82 insertions(+), 4 deletions(-)

diff --git a/src/views/underwaymix/component/GridStyleTool.vue b/src/views/underwaymix/component/GridStyleTool.vue
index 76d636a..6d16811 100644
--- a/src/views/underwaymix/component/GridStyleTool.vue
+++ b/src/views/underwaymix/component/GridStyleTool.vue
@@ -14,10 +14,25 @@
         <template #content>
           <el-scrollbar class="content-wrap">
             <div v-for="(g, i) in gridCtrlList" :key="i">
-              {{ g.name }}
+              <span>{{ g.name }}</span>
               <div v-for="(value, t) in g.views" :key="t">
-                <!-- {{ value[0] }} -->
-                {{ value.extData.name }}
+                <el-row justify="space-between" align="middle">
+                  <div>
+                    <span v-if="value.extData.type == 0">{{
+                      value.tag + '.'
+                    }}</span>
+                    {{ value.extData.name }}
+                  </div>
+                  <el-button
+                    class="el-button-custom"
+                    type="primary"
+                    icon="Close"
+                    circle
+                    @click="handleCloseClick(i, t, value)"
+                  />
+                  <!-- <el-icon><Close /></el-icon> -->
+                </el-row>
+
                 <!-- {{ key }} -->
                 <!-- <el-text>{{ g.name }}</el-text> -->
                 <!-- <div class="m-t-8">缃戞牸瑕佺礌</div> -->
@@ -53,10 +68,25 @@
                   >
                   </CheckButton>
                   <CheckButton
+                    active-text="椋庨櫓鐑姏鍥�"
+                    inactive-text="椋庨櫓鐑姏鍥�"
+                    :default-value="false"
+                    @change="(e) => handleHeatMapClick(e, i, value)"
+                  >
+                  </CheckButton>
+                  <CheckButton
+                    v-if="value.extData.type == 0"
                     active-text="鏄剧ず璧拌埅杞ㄨ抗"
                     inactive-text="闅愯棌璧拌埅杞ㄨ抗"
                     :default-value="false"
                     @change="(e) => handleUnderwayClick(e, i, value)"
+                  >
+                  </CheckButton>
+                  <CheckButton
+                    v-if="value.extData.type == 1"
+                    active-text="楂樹寒铻嶅悎缃戞牸"
+                    :default-value="true"
+                    @change="(e) => handleHighlightGridClick(e, i, value)"
                   >
                   </CheckButton>
                 </el-row>
@@ -97,6 +127,10 @@
  * 缃戞牸鏍峰紡鎺у埗宸ュ叿
  */
 import { ref, reactive, onMounted, onUnmounted, computed, toRaw } from 'vue';
+import gridApi from '@/api/gridApi';
+import { useGridStore } from '@/stores/grid-info';
+
+const gridStore = useGridStore();
 
 const props = defineProps({
   // 缃戞牸绠$悊瀵硅薄[SatelliteGrid]鏁扮粍
@@ -106,7 +140,7 @@
   }
 });
 
-const emits = defineEmits(['showUnderway']);
+const emits = defineEmits(['showUnderway', 'onDelete']);
 
 const gridCtrlList = computed(() => {
   return props.gridCtrls.map((g) => {
@@ -138,6 +172,12 @@
 //   '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)
+}
 
 function handleGridClick(e, index, value) {
   const key = value.tag;
@@ -188,11 +228,49 @@
     dataId: value.tag
   });
 }
+
+function handleHighlightGridClick(e, index, value) {
+  toRaw(props.gridCtrls[index]).mixGrid(value.tag.split('-'), e);
+}
+
+let heatTag;
+function handleHeatMapClick(e, index, value) {
+  const _satelliteGrid = toRaw(props.gridCtrls[index]);
+  _satelliteGrid.changeVisibility({
+    showGridViews: false,
+    showDataTxt: false,
+    showRankTxt: false
+  });
+  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
+          };
+        }
+      );
+    });
+  } else {
+    _satelliteGrid.changeVisibility({
+      tags: [value.tag],
+      showGridViews: true
+    });
+  }
+}
 </script>
 <style scoped>
 .content-wrap {
   min-width: 300px;
   min-height: 600px;
+  max-height: 80vh;
+  height: 80vh;
+  padding: 4px 16px;
 }
 
 :deep(.el-input-number) {

--
Gitblit v1.9.3