| | |
| | | import type { RouteRecordRaw } from 'vue-router'; |
| | | |
| | | import { useAppStore } from '/@/store/modules/app'; |
| | | import { usePermissionStore } from '/@/store/modules/permission'; |
| | | import { useUserStore } from '/@/store/modules/user'; |
| | | import { useAppStore } from '@/store/modules/app'; |
| | | import { usePermissionStore } from '@/store/modules/permission'; |
| | | import { useUserStore } from '@/store/modules/user'; |
| | | |
| | | import { useTabs } from './useTabs'; |
| | | |
| | | import { router, resetRouter } from '/@/router'; |
| | | // import { RootRoute } from '/@/router/routes'; |
| | | import { router, resetRouter } from '@/router'; |
| | | // import { RootRoute } from '@/router/routes'; |
| | | |
| | | import projectSetting from '/@/settings/projectSetting'; |
| | | import { PermissionModeEnum } from '/@/enums/appEnum'; |
| | | import { RoleEnum } from '/@/enums/roleEnum'; |
| | | import projectSetting from '@/settings/projectSetting'; |
| | | import { PermissionModeEnum } from '@/enums/appEnum'; |
| | | import { RoleEnum } from '@/enums/roleEnum'; |
| | | |
| | | import { intersection } from 'lodash-es'; |
| | | import { isArray } from '/@/utils/is'; |
| | | import { useMultipleTabStore } from '/@/store/modules/multipleTab'; |
| | | import { isArray } from '@/utils/is'; |
| | | import { useMultipleTabStore } from '@/store/modules/multipleTab'; |
| | | |
| | | // User permissions related operations |
| | | export function usePermission() { |
| | |
| | | /** |
| | | * Reset and regain authority resource information |
| | | * 重置和重新获得权限资源信息 |
| | | * @param id |
| | | */ |
| | | async function resume() { |
| | | const tabStore = useMultipleTabStore(); |
| | | tabStore.clearCacheTabs(); |
| | | resetRouter(); |
| | | |
| | | // 动态加载路由(再次) |
| | | const routes = await permissionStore.buildRoutesAction(); |
| | | routes.forEach((route) => { |
| | | router.addRoute(route as unknown as RouteRecordRaw); |
| | | }); |
| | | |
| | | permissionStore.setLastBuildMenuTime(); |
| | | closeAll(); |
| | | } |
| | |
| | | return def; |
| | | } |
| | | |
| | | const permMode = projectSetting.permissionMode; |
| | | const permMode = appStore.getProjectConfig.permissionMode; |
| | | |
| | | if ([PermissionModeEnum.ROUTE_MAPPING, PermissionModeEnum.ROLE].includes(permMode)) { |
| | | if (!isArray(value)) { |
| | |
| | | if (PermissionModeEnum.BACK === permMode) { |
| | | const allCodeList = permissionStore.getPermCodeList as string[]; |
| | | if (!isArray(value)) { |
| | | const splits = ['||', '&&']; |
| | | const splitName = splits.find((item) => value.includes(item)); |
| | | if (splitName) { |
| | | const splitCodes = value.split(splitName); |
| | | return splitName === splits[0] |
| | | ? intersection(splitCodes, allCodeList).length > 0 |
| | | : intersection(splitCodes, allCodeList).length === splitCodes.length; |
| | | } |
| | | return allCodeList.includes(value); |
| | | } |
| | | return (intersection(value, allCodeList) as string[]).length > 0; |