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