feiyu02
2025-03-26 da0d06cb06ef3fc55d88cb4a9a52505ac35c03e6
src/views/underwaymix/component/GridStyleTool.vue
@@ -53,6 +53,13 @@
                  >
                  </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="隐藏走航轨迹"
@@ -105,6 +112,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]数组
@@ -200,6 +211,37 @@
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 {