2026-03-25 10:02:19 +08:00
|
|
|
|
<script setup lang="ts">
|
2026-06-03 15:03:31 +08:00
|
|
|
|
import { computed } from 'vue';
|
|
|
|
|
|
import { useTagsViewStore } from '@/store/modules/tagsView';
|
|
|
|
|
|
import { useRoute } from 'vue-router';
|
|
|
|
|
|
import MapModal from '@/components/MapModal/index.vue';
|
2026-06-15 09:18:00 +08:00
|
|
|
|
import ylfbModal from '@/components/ylfbModal/index.vue';
|
2026-08-11 16:24:41 +08:00
|
|
|
|
import GlobalRightDrawer from '@/components/GlobalRightDrawer/index.vue';
|
|
|
|
|
|
import basicInfoMod from '@/modules/rightSearchDrawer/basicInfo/index.vue';
|
|
|
|
|
|
import monitoringTableMod from '@/modules/rightSearchDrawer/monitoringTable/index.vue';
|
2026-06-03 15:03:31 +08:00
|
|
|
|
import { useModelStore } from '@/store/modules/model';
|
|
|
|
|
|
import GisView from '@/components/gis/GisView.vue';
|
2026-03-25 10:02:19 +08:00
|
|
|
|
|
2026-05-09 19:30:03 +08:00
|
|
|
|
const modelStore = useModelStore();
|
2026-03-25 10:02:19 +08:00
|
|
|
|
const tagsViewStore = useTagsViewStore();
|
2026-08-11 16:24:41 +08:00
|
|
|
|
const route = useRoute();
|
|
|
|
|
|
const routeKey = computed(() => route.path + Math.random());
|
2026-07-28 18:28:07 +08:00
|
|
|
|
|
|
|
|
|
|
// 智能配图页面隐藏底层 GisView(避免地图叠放冲突)
|
|
|
|
|
|
const isZhiNengPeiTu = computed(() => {
|
2026-08-11 16:24:41 +08:00
|
|
|
|
return route.path === '/zhiNengFenXi/zhiNengPeiTu/index';
|
2026-07-28 18:28:07 +08:00
|
|
|
|
});
|
2026-03-25 10:02:19 +08:00
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<template>
|
|
|
|
|
|
<section class="app-main">
|
2026-07-28 18:28:07 +08:00
|
|
|
|
<GisView v-if="!isZhiNengPeiTu" />
|
2026-03-27 15:52:43 +08:00
|
|
|
|
<div class="gi-panels">
|
|
|
|
|
|
<router-view v-slot="{ Component, route }" :key="routeKey">
|
|
|
|
|
|
<transition name="router-fade" mode="out-in">
|
|
|
|
|
|
<keep-alive :include="tagsViewStore.cachedViews">
|
|
|
|
|
|
<component :is="Component" :key="route.fullPath" />
|
|
|
|
|
|
</keep-alive>
|
|
|
|
|
|
</transition>
|
|
|
|
|
|
</router-view>
|
|
|
|
|
|
</div>
|
2026-05-09 19:30:03 +08:00
|
|
|
|
|
2026-08-11 16:24:41 +08:00
|
|
|
|
<!-- 全局抽屉:承载锚点搜索内容(基本信息 + 监测表格),由锚点下拉 sttpCode 驱动打开 -->
|
|
|
|
|
|
<div class="global-drawer-wrap">
|
|
|
|
|
|
<GlobalRightDrawer>
|
|
|
|
|
|
<basicInfoMod />
|
|
|
|
|
|
<monitoringTableMod />
|
|
|
|
|
|
</GlobalRightDrawer>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2026-05-09 19:30:03 +08:00
|
|
|
|
<MapModal
|
|
|
|
|
|
v-model:visible="modelStore.modalVisible"
|
|
|
|
|
|
:title="modelStore.title"
|
|
|
|
|
|
:tabs-config="modelStore.tabList"
|
|
|
|
|
|
/>
|
2026-06-15 09:18:00 +08:00
|
|
|
|
<!-- 鱼类分布 -->
|
|
|
|
|
|
|
|
|
|
|
|
<ylfbModal v-model:visible="modelStore.ylfbModalVisible" />
|
2026-03-25 10:02:19 +08:00
|
|
|
|
</section>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
2026-06-03 15:03:31 +08:00
|
|
|
|
@use '@/styles/variables.module.scss' as *;
|
2026-03-25 10:02:19 +08:00
|
|
|
|
.app-main {
|
2026-03-27 14:50:35 +08:00
|
|
|
|
min-height: calc(100vh - $layout-header-height - $locationbar-height);
|
2026-03-25 10:02:19 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
overflow: hidden;
|
2026-03-27 14:50:35 +08:00
|
|
|
|
background-color: #ffffff;
|
2026-03-25 10:02:19 +08:00
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
}
|
2026-03-27 15:52:43 +08:00
|
|
|
|
.gi-panels {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
2026-05-13 08:44:35 +08:00
|
|
|
|
pointer-events: none;
|
2026-03-27 15:52:43 +08:00
|
|
|
|
}
|
2026-08-11 16:24:41 +08:00
|
|
|
|
.global-drawer-wrap {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 0;
|
|
|
|
|
|
right: 0;
|
|
|
|
|
|
width: 450px;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
z-index: 100;
|
|
|
|
|
|
pointer-events: all;
|
|
|
|
|
|
}
|
2026-03-25 10:02:19 +08:00
|
|
|
|
</style>
|