优化跳转

main
刘妍 2025-02-24 10:49:21 +08:00
parent 326e721771
commit a05daea966
8 changed files with 47 additions and 138 deletions

View File

@ -1,6 +1,7 @@
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore';
import { mapFun } from '@/hooks/ceshiFun.hook';
import { router } from '@/router';
import { previewUrl } from '@/utils';
const chartEditStore = useChartEditStore();
const ceshiFunction = mapFun();
@ -20,6 +21,12 @@ export const eventHandlerHook = (comonentList: any, elementList: any, params: an
});
window.open(routeUrl.href, '_blank');
return;
} else if (elementList[j].skipType == 'publishLink') {
const routeUrl = router.resolve({
path: previewUrl(elementList[j].url),
});
window.open(routeUrl.href, '_blank');
return;
} else {
window.open(elementList[j].url, '_blank');
return;
@ -28,6 +35,12 @@ export const eventHandlerHook = (comonentList: any, elementList: any, params: an
if (elementList[j].skipType == 'routeLink') {
router.replace(elementList[j].url);
return;
} else if (elementList[j].skipType == 'publishLink') {
const routeUrl = router.resolve({
path: previewUrl(elementList[j].url),
});
window.open(routeUrl.href, '_self');
return;
} else {
window.open(elementList[j].url, '_self');
return;

View File

@ -12,6 +12,7 @@ import { usePermissionStore } from '@/store/modules/permission';
import { getMainPage } from '@/api/path/project.api';
import { usePermissionStore } from '@/store/modules/permission';
import { useUserStore } from '@/store/modules/user';
import { previewPath } from '@/utils';
// import.meta.glob() 直接引入所有的模块 Vite 独有的功能
const modules = import.meta.glob('./modules/**/*.ts', { eager: true });
@ -74,9 +75,10 @@ export const RootRoute: AppRouteRecordRaw = {
},
beforeEnter: async (to, from, next) => {
const mainPage = await getMainPage();
const path = previewPath(mainPage);
if (to.fullPath == '/') {
if (mainPage) {
next(mainPage.split('#')[1]);
next(path.split('#')[1]);
} else {
next();
}

View File

@ -28,6 +28,7 @@ import { router } from '@/router';
import { LAYOUT } from '@/router/constant';
import dayjs from 'dayjs';
import { getMainPage } from '@/api/path/project.api';
import { previewPath } from '@/utils';
interface PermissionState {
// Permission code list
@ -393,8 +394,9 @@ export const usePermissionStore = defineStore({
try {
const homePage = await getMainPage();
const path = previewPath(homePage);
if (hoemPage) {
window.open(hoemPage, '_self');
window.open(path, '_self');
} else {
patcher(routes);
}

View File

@ -26,6 +26,7 @@ import { h } from 'vue';
import md5 from 'js-md5';
import { useMultipleTabStore } from '@/store/modules/multipleTab';
import { getMainPage } from '@/api/path/project.api';
import { previewPath } from '@/utils';
interface UserState {
userInfo: Nullable<UserInfo>;
@ -166,9 +167,11 @@ export const useUserStore = defineStore({
permissionStore.setDynamicAddedRoute(true);
}
const homePage = await getMainPage();
const path = previewPath(homePage);
// 配置主页面后,进入主页面
if (homePage) {
router.replace(homePage.split('#')[1]);
router.replace(path.split('#')[1]);
} else {
goHome && (await router.replace(userInfo?.homePath || PageEnum.BASE_HOME));
// goHome && (await router.replace(userInfo?.homePath || PageEnum.SUBJECT_HOME));

View File

@ -200,3 +200,9 @@ export const previewPath = (id?: string | number) => {
const previewPath = `${origin}${pathname}${path}/${id || fetchRouteParamsLocation()}`;
return previewPath;
};
// 跳转地址
export const previewUrl = (id?: string | number) => {
const path = fetchPathByName(PreviewEnum.CHART_PREVIEW_NAME, 'href');
const previewPath = `${path.split('#')[1]}/${id || fetchRouteParamsLocation()}`;
return previewPath;
};

View File

@ -129,137 +129,6 @@
const { chartEditStore } = useTargetData();
const funSelectOptions = ref([
{
//
label: 'ceshi点击',
// ()
value: 'ceshiClick',
},
{
label:"根据坐标定位地图视角",
value: 'handlerFlyToPoint'
},
{
label:"添加任意类型图层",
value: 'handlerAddLayer'
},
{
label:"隐藏指定图层",
value: 'handlerHiddenLayer'
},{
label:"显示指定图层",
value: 'handlerShowLayer'
},
{
label:"删除指定图层",
value: 'handlerRemoveLayer'
},
{
label:"跳转到指定图层",
value: 'handlerFlyToLayer'
},
{
label:"添加单个矢量数据",
value: 'handlerAddEntity'
},
{
label:"隐藏单个矢量数据",
value:"handlerHiddenEntity"
},
{
label:"显示单个矢量数据",
value:"handlerShowEntity"
},
{
label:"移除单个矢量数据",
value:"handlerRemoveEntity"
},
{
label:"定位和高亮矢量数据",
value:"handlerFlyToEntity"
},
{
label:"清除全部矢量数据",
value:"handlerClearEntityLayer"
},
{
label:"隐藏全部矢量数据",
value:"handlerHiddenEntityLayer"
},
{
label:"显示全部矢量数据",
value:"handlerShowEntityLayer"
},
{
label:"点击地图拾取坐标",
value:"handlerGetPoint"
},
{
label:"绘制贴地线",
value:"handlerDrawLine"
},
{
label:"绘制图标点",
value:"handlerDrawPoint"
},
{
label:"绘制贴地自由线",
value:"handlerDrawBrushLine"
},
{
label:"军事标绘",
value:"handlerDrawJun"
},
{
label:"绘制贴地矩形",
value:"handlerDrawRectangle"
},
{
label:"绘制贴地面",
value:"handlerDrawPolygon"
},
{
label:"清除图层绘制",
value:"handlerClearDraw"
},
{
label:"贴地距离测量",
value:"handlerMeasureSurfaceLength"
},
{
label:"绘制自由线",
value:"drawBrushLine",
},
{
label:"空间距离测量",
value:"handlerMeasureLength"
},
{
label:"贴地面积测量",
value:"handlerMeasureSurfaceArea"
},
{
label:"水平面积测量",
value:"handlerMeasureArea"
},
{
label:"坐标点位测量",
value:"handlerMeasurePoint"
},
{
label:"高度差测量",
value:"handlerMeasureHeight"
},
{
label:"清空测量数据",
value:"handlerClearMeasure"
},{
label:"添加三维模型",
value:"handlerAddModel"
}
]);
const routeOptions = ref([]);
const skipTypeOptions = ref([
{
@ -373,12 +242,18 @@
publishOptions.value = data.items.map((item) => {
return {
label: item.projectName,
value: previewPath(item.id),
// value: previewPath(item.id),
value: item.id,
};
});
};
onMounted(() => {
routeOptions.value = [];
routeOptions.value = [
{
label: '首页',
value: '/dashboard/analysis',
},
];
getRouteList();
getPublishedPageList();
});

View File

@ -63,7 +63,7 @@
publishOptions.value = data.items.map((item) => {
return {
label: item.projectName,
value: previewPath(item.id),
value: item.id,
};
});
};

View File

@ -30,7 +30,7 @@
</template>
<script setup lang="ts">
import { computed } from 'vue';
import { computed, watch } from 'vue';
import { PreviewRenderList } from './components/PreviewRenderList';
import { getFilterStyle, setTitle } from '@/utils';
import {
@ -45,8 +45,10 @@
import { PreviewScaleEnum } from '@/enums/styleEnum';
import type { ChartEditStorageType } from './index.d';
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore';
import { useRoute } from 'vue-router';
// const localStorageInfo: ChartEditStorageType = getSessionStorageInfo() as ChartEditStorageType
const route = useRoute();
await getSessionStorageInfo();
const chartEditStore = useChartEditStore() as unknown as ChartEditStorageType;
@ -72,6 +74,12 @@
//
keyRecordHandle();
watch(
() => route.fullPath,
(newValue) => {
location.reload();
},
);
</script>
<style lang="scss" scoped>