Merge branch 'main' of http://123.132.248.154:10000/gitY/LinYeFangHuo
commit
055775db14
|
|
@ -17,6 +17,8 @@ enum Api {
|
|||
getData = '/api/goview/project/getData',
|
||||
saveData = '/api/goview/project/save/data',
|
||||
projectFile = '/api/goview/project/uploadFile',
|
||||
SetMainPage = '/api/goview/project/mainPage/set',
|
||||
GetMainPage = '/api/goview/project/mainPage/get',
|
||||
}
|
||||
// * 项目列表
|
||||
export const projectListApi = (params?: ProjectItem) =>
|
||||
|
|
@ -101,3 +103,14 @@ export function projectUploadFile(
|
|||
// httpErrorHandle();
|
||||
// }
|
||||
// };
|
||||
|
||||
// 设置系统主页面
|
||||
export function setMainPage(params) {
|
||||
console.log(params);
|
||||
return defHttp.post({
|
||||
url: Api.SetMainPage,
|
||||
params,
|
||||
});
|
||||
}
|
||||
// 获取系统主页面
|
||||
export const getMainPage = () => defHttp.get({ url: Api.GetMainPage });
|
||||
|
|
|
|||
|
|
@ -7,6 +7,11 @@ import { mainOutRoutes } from './mainOut';
|
|||
import { PageEnum } from '@/enums/pageEnum';
|
||||
import { t } from '@/hooks/web/useI18n';
|
||||
import { projectRoutes, chartRoutes, previewRoutes, editRoutes } from '@/router/disposition/index';
|
||||
import { router } from '@/router';
|
||||
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.meta.glob() 直接引入所有的模块 Vite 独有的功能
|
||||
const modules = import.meta.glob('./modules/**/*.ts', { eager: true });
|
||||
|
|
@ -34,10 +39,51 @@ export const asyncRoutes = [
|
|||
export const RootRoute: AppRouteRecordRaw = {
|
||||
path: '/',
|
||||
name: 'Root',
|
||||
redirect: PageEnum.BASE_HOME,
|
||||
// redirect: PageEnum.BASE_HOME,
|
||||
// redirect: (to) => {
|
||||
// const permissionStore = usePermissionStore();
|
||||
// console.log(permissionStore.homePage);
|
||||
// const userStore = useUserStore();
|
||||
// console.log(userStore.userInfo);
|
||||
// // const page = getMainPage().then((res) => {
|
||||
// // console.log(res);
|
||||
// // if (res) {
|
||||
// // return res.split('#')[1];
|
||||
// // } else {
|
||||
// // return PageEnum.BASE_HOME;
|
||||
// // }
|
||||
// // });
|
||||
// // console.log(page);
|
||||
// // return page;
|
||||
// return '/chart/preview/f0adeb4b-8f11-4cbb-84e3-7e03de472a7b';
|
||||
|
||||
// // const permissionStore = usePermissionStore();
|
||||
// // console.log(permissionStore.getHomePage);
|
||||
// // const mainPage = getMainPage();
|
||||
// // console.log(mainPage);
|
||||
// // console.log(mainPage.split('#'));
|
||||
// // if (mainPage) {
|
||||
// // return mainPage.split('#')[1];
|
||||
// // return '/chart/preview/f0adeb4b-8f11-4cbb-84e3-7e03de472a7b';
|
||||
// // } else {
|
||||
// // return PageEnum.BASE_HOME;
|
||||
// // }
|
||||
// },
|
||||
meta: {
|
||||
title: 'Root',
|
||||
},
|
||||
beforeEnter: async (to, from, next) => {
|
||||
const mainPage = await getMainPage();
|
||||
if (to.fullPath == '/') {
|
||||
if (mainPage) {
|
||||
next(mainPage.split('#')[1]);
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
export const LoginRoute: AppRouteRecordRaw = {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import { PageEnum } from '@/enums/pageEnum';
|
|||
import { router } from '@/router';
|
||||
import { LAYOUT } from '@/router/constant';
|
||||
import dayjs from 'dayjs';
|
||||
import { getMainPage } from '@/api/path/project.api';
|
||||
|
||||
interface PermissionState {
|
||||
// Permission code list
|
||||
|
|
@ -44,6 +45,7 @@ interface PermissionState {
|
|||
// 菜单列表
|
||||
frontMenuList: Menu[];
|
||||
changeMenu: number;
|
||||
homePage: string;
|
||||
}
|
||||
|
||||
export const usePermissionStore = defineStore({
|
||||
|
|
@ -64,6 +66,8 @@ export const usePermissionStore = defineStore({
|
|||
// 菜单列表
|
||||
frontMenuList: [],
|
||||
changeMenu: dayjs().valueOf(),
|
||||
// 主页面
|
||||
homePage: '',
|
||||
}),
|
||||
getters: {
|
||||
getChangeMenu(state): number {
|
||||
|
|
@ -84,8 +88,14 @@ export const usePermissionStore = defineStore({
|
|||
getIsDynamicAddedRoute(state): boolean {
|
||||
return state.isDynamicAddedRoute;
|
||||
},
|
||||
getHomePage(state) {
|
||||
return state.homePage;
|
||||
},
|
||||
},
|
||||
actions: {
|
||||
async setHomePage() {
|
||||
this.homePage = await getMainPage();
|
||||
},
|
||||
setPermCodeList(codeList: string[]) {
|
||||
this.permCodeList = codeList;
|
||||
},
|
||||
|
|
@ -360,7 +370,7 @@ export const usePermissionStore = defineStore({
|
|||
/**
|
||||
* @description 根据设置的首页path,修正routes中的affix标记(固定首页)
|
||||
* */
|
||||
const patchHomeAffix = (routes: AppRouteRecordRaw[]) => {
|
||||
const patchHomeAffix = async (routes: AppRouteRecordRaw[]) => {
|
||||
if (!routes || routes.length === 0) return;
|
||||
let homePath: string = userStore.getUserInfo.homePath || PageEnum.BASE_HOME;
|
||||
|
||||
|
|
@ -382,7 +392,12 @@ export const usePermissionStore = defineStore({
|
|||
}
|
||||
|
||||
try {
|
||||
const homePage = await getMainPage();
|
||||
if (hoemPage) {
|
||||
window.open(hoemPage, '_self');
|
||||
} else {
|
||||
patcher(routes);
|
||||
}
|
||||
} catch (e) {
|
||||
// 已处理完毕跳出循环
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ import { isArray } from '@/utils/is';
|
|||
import { h } from 'vue';
|
||||
import md5 from 'js-md5';
|
||||
import { useMultipleTabStore } from '@/store/modules/multipleTab';
|
||||
import { getMainPage } from '@/api/path/project.api';
|
||||
|
||||
interface UserState {
|
||||
userInfo: Nullable<UserInfo>;
|
||||
|
|
@ -93,6 +94,7 @@ export const useUserStore = defineStore({
|
|||
setAuthCache(SUBJECT_LOGO_TITLE, logoTitle);
|
||||
if (subject != undefined) {
|
||||
const permissionStore = usePermissionStore();
|
||||
await permissionStore.setHomePage();
|
||||
await permissionStore.buildRoutesAction();
|
||||
const tabStore = useMultipleTabStore();
|
||||
tabStore.resetState();
|
||||
|
|
@ -163,9 +165,15 @@ export const useUserStore = defineStore({
|
|||
router.addRoute(PAGE_NOT_FOUND_ROUTE as unknown as RouteRecordRaw);
|
||||
permissionStore.setDynamicAddedRoute(true);
|
||||
}
|
||||
const homePage = await getMainPage();
|
||||
// 配置主页面后,进入主页面
|
||||
if (homePage) {
|
||||
router.replace(homePage.split('#')[1]);
|
||||
} else {
|
||||
goHome && (await router.replace(userInfo?.homePath || PageEnum.BASE_HOME));
|
||||
// goHome && (await router.replace(userInfo?.homePath || PageEnum.SUBJECT_HOME));
|
||||
}
|
||||
}
|
||||
return userInfo;
|
||||
},
|
||||
async getUserInfoAction(): Promise<UserInfo | null> {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,80 @@
|
|||
<template>
|
||||
<PageWrapper contentBackground contentClass="p-4">
|
||||
<a-form ref="formRef" :model="formState" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||
<a-form-item label="页面">
|
||||
<a-select v-model:value="formState.page" placeholder="请选择页面">
|
||||
<a-select-option v-for="(item, index) in publishOptions" :key="index" :value="item.value">
|
||||
{{ item.label }}</a-select-option
|
||||
>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item :wrapper-col="{ span: 14, offset: 4 }">
|
||||
<a-button type="primary" @click="onSubmit">保存</a-button>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</PageWrapper>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { nextTick, onMounted, ref, reactive } from 'vue';
|
||||
import { PageWrapper } from '@/components/Page';
|
||||
import { useMessage } from '@/hooks/web/useMessage';
|
||||
import { BasicForm, useForm } from '@/components/Form';
|
||||
import { projectListApi, setMainPage, getMainPage } from '@/api/path/project.api';
|
||||
import { previewPath } from '@/utils';
|
||||
|
||||
const { createConfirm, createMessage } = useMessage();
|
||||
const labelCol = ref({ span: 4 });
|
||||
const wrapperCol = ref({ span: 14 });
|
||||
const publishOptions = ref([]);
|
||||
|
||||
onMounted(() => {
|
||||
getPublishedPageList();
|
||||
getPage();
|
||||
});
|
||||
|
||||
const formRef = ref();
|
||||
const formState = reactive({
|
||||
page: '',
|
||||
});
|
||||
const onSubmit = () => {
|
||||
formRef.value
|
||||
.validate()
|
||||
.then(() => {
|
||||
console.log('values', formState.page);
|
||||
setMainPage({ mainPage: formState.page })
|
||||
.then((res) => {
|
||||
createMessage.success('设置成功');
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log('error', error);
|
||||
});
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log('error', error);
|
||||
});
|
||||
};
|
||||
// 获取已发布页面列表
|
||||
const getPublishedPageList = async () => {
|
||||
const data = await projectListApi({
|
||||
state: 1,
|
||||
page: 1,
|
||||
limit: 1000,
|
||||
});
|
||||
publishOptions.value = data.items.map((item) => {
|
||||
return {
|
||||
label: item.projectName,
|
||||
value: previewPath(item.id),
|
||||
};
|
||||
});
|
||||
};
|
||||
const getPage = () => {
|
||||
getMainPage().then((res) => {
|
||||
formState.page = res;
|
||||
});
|
||||
};
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.demo {
|
||||
background-color: @component-background;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -73,7 +73,6 @@
|
|||
required: true,
|
||||
},
|
||||
});
|
||||
console.log(props.groupData);
|
||||
// 单击交互
|
||||
const clickElementItem = ref([]);
|
||||
// 双击交互
|
||||
|
|
|
|||
Loading…
Reference in New Issue