fix: 租户和系统用户的主页显示差异

This commit is contained in:
TsMask
2025-08-14 17:15:18 +08:00
parent 7b7907616f
commit 7bd524976a
4 changed files with 43 additions and 19 deletions

View File

@@ -20,6 +20,7 @@ import {
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import useLayoutStore from '@/store/modules/layout'; import useLayoutStore from '@/store/modules/layout';
import useAppStore from '@/store/modules/app'; import useAppStore from '@/store/modules/app';
import useUserStore from '@/store/modules/user';
import useRouterStore from '@/store/modules/router'; import useRouterStore from '@/store/modules/router';
import useTabsStore from '@/store/modules/tabs'; import useTabsStore from '@/store/modules/tabs';
import useI18n from '@/hooks/useI18n'; import useI18n from '@/hooks/useI18n';
@@ -64,19 +65,28 @@ watch(
{ immediate: true } { immediate: true }
); );
// 动态路由添加到菜单面板 const menuData = computed(() => {
const rootRoute = router.getRoutes().find(r => r.name === 'Root'); // 动态路由添加到菜单面板
if (rootRoute) { const rootRoute = router.getRoutes().find(r => r.name === 'Root');
const children = routerStore.setRootRouterData(rootRoute.children); if (rootRoute) {
const buildRouterData = routerStore.buildRouterData; const children = routerStore.setRootRouterData(rootRoute.children);
if (buildRouterData.length > 0) { const buildRouterData = routerStore.buildRouterData;
rootRoute.children = children.concat(buildRouterData); if (buildRouterData.length > 0) {
} else { rootRoute.children = children.concat(buildRouterData);
rootRoute.children = children; } else {
rootRoute.children = children;
}
// console.log(JSON.parse(JSON.stringify(rootRoute.children)));
if (!useUserStore().roles.includes('tenant')) {
rootRoute.children = rootRoute.children.filter(
item => item.name !== 'Index'
);
}
} }
}
const { menuData } = getMenuData(clearMenuItem(router.getRoutes())); const { menuData } = getMenuData(clearMenuItem(router.getRoutes()));
return menuData;
});
/**面包屑数据对象,排除根节点和首页不显示 */ /**面包屑数据对象,排除根节点和首页不显示 */
const breadcrumb = computed(() => { const breadcrumb = computed(() => {
@@ -214,7 +224,10 @@ function fnGetServerTime() {
// serverTimeStr.value = parseDateToStr(serverTime.timestamp); // serverTimeStr.value = parseDateToStr(serverTime.timestamp);
// 用DOM直接修改 // 用DOM直接修改
if (serverTimeDom) { if (serverTimeDom) {
serverTimeDom.innerText = parseDateToStr(serverTime.timestamp, YYYY_MM_DD_HH_MM_SSZ); serverTimeDom.innerText = parseDateToStr(
serverTime.timestamp,
YYYY_MM_DD_HH_MM_SSZ
);
} }
}, 1000); }, 1000);
} }

View File

@@ -30,14 +30,16 @@ const constantRoutes: RouteRecordRaw[] = [
path: '/', path: '/',
name: 'Root', name: 'Root',
component: BasicLayout, component: BasicLayout,
redirect: '/monitor/dashboard', redirect: '/index',
// redirect: '/monitor/dashboard',
children: [ children: [
{ {
path: '/index', path: '/index',
name: 'Index', name: 'Index',
meta: { title: 'router.index', icon: 'icon-pcduan', hideInMenu: true }, meta: { title: 'router.index', icon: 'icon-pcduan' },
redirect: '/monitor/dashboard', component: () => import('@/views/index.vue'),
// component: () => import('@/views/index.vue'), // meta: { title: 'router.index', icon: 'icon-pcduan', hideInMenu: true },
// redirect: '/monitor/dashboard',
}, },
{ {
path: '/account', path: '/account',

View File

@@ -5,7 +5,6 @@ import BaseInfo from './components/base-info.vue';
import ResetPasswd from './components/reset-passwd.vue'; import ResetPasswd from './components/reset-passwd.vue';
import StyleLayout from './components/style-layout.vue'; import StyleLayout from './components/style-layout.vue';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import { hasRoles } from '@/plugins/auth-user';
import useAppStore from '@/store/modules/app'; import useAppStore from '@/store/modules/app';
import useI18n from '@/hooks/useI18n'; import useI18n from '@/hooks/useI18n';
import useUserStore from '@/store/modules/user'; import useUserStore from '@/store/modules/user';
@@ -53,7 +52,7 @@ onActivated(() => {
<a-tab-pane <a-tab-pane
key="style-layout" key="style-layout"
:tab="t('views.account.settings.styleLayout')" :tab="t('views.account.settings.styleLayout')"
v-if="hasRoles(['admin'])" v-if="false"
> >
<StyleLayout></StyleLayout> <StyleLayout></StyleLayout>
</a-tab-pane> </a-tab-pane>

View File

@@ -11,8 +11,9 @@ import {
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
import useUserStore from '@/store/modules/user'; import useUserStore from '@/store/modules/user';
import useLayoutStore from '@/store/modules/layout'; import useLayoutStore from '@/store/modules/layout';
import { useRouter } from 'vue-router';
const currentComponent = shallowRef<Component | null>(null); const currentComponent = shallowRef<Component | null>(null);
const router = useRouter();
const spinning = ref<boolean>(false); const spinning = ref<boolean>(false);
/**匹配views里面所有的.vue或.tsx文件 */ /**匹配views里面所有的.vue或.tsx文件 */
@@ -48,6 +49,15 @@ onMounted(() => {
useLayoutStore().changeConf('menuTheme', 'light'); useLayoutStore().changeConf('menuTheme', 'light');
useLayoutStore().changeConf('tabRender', false); useLayoutStore().changeConf('tabRender', false);
} else { } else {
useLayoutStore().changeConf('layout', 'mix');
useLayoutStore().changeConf('menuTheme', 'light');
useLayoutStore().changeConf('tabRender', true);
// location.replace(location.origin);
router.replace({ name: 'Monitor_2087' }).finally(() => {
location.reload();
});
return;
useLayoutStore().changeConf('layout', 'mix'); useLayoutStore().changeConf('layout', 'mix');
//获取当前系统设置的首页路径 //获取当前系统设置的首页路径
spinning.value = true; spinning.value = true;