Blame view

Yi.Vben5.Vue3/playground/src/router/access.ts 1.11 KB
515fceeb   “wangming”   框架初始化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
  import type {
    ComponentRecordType,
    GenerateMenuAndRoutesOptions,
  } from '@vben/types';
  
  import { generateAccessible } from '@vben/access';
  import { preferences } from '@vben/preferences';
  
  import { message } from 'ant-design-vue';
  
  import { getAllMenusApi } from '#/api';
  import { BasicLayout, IFrameView } from '#/layouts';
  import { $t } from '#/locales';
  
  const forbiddenComponent = () => import('#/views/_core/fallback/forbidden.vue');
  
  async function generateAccess(options: GenerateMenuAndRoutesOptions) {
    const pageMap: ComponentRecordType = import.meta.glob('../views/**/*.vue');
  
    const layoutMap: ComponentRecordType = {
      BasicLayout,
      IFrameView,
    };
  
    return await generateAccessible(preferences.app.accessMode, {
      ...options,
      fetchMenuListAsync: async () => {
        message.loading({
          content: `${$t('common.loadingMenu')}...`,
          duration: 1.5,
        });
        return await getAllMenusApi();
      },
      // 可以指定没有权限跳转403页面
      forbiddenComponent,
      // 如果 route.meta.menuVisibleWithForbidden = true
      layoutMap,
      pageMap,
    });
  }
  
  export { generateAccess };