From 0505efe728214e8976e918d93fa5e029cd82f85d Mon Sep 17 00:00:00 2001 From: chenghongxing <1126263215@qq.com> Date: Wed, 8 May 2024 11:10:19 +0800 Subject: [PATCH] Updates --- 404.html | 19 ++ advance/api.html | 51 ++++++ advance/async.html | 240 ++++++++++++++++++++++++++ advance/authority.html | 175 +++++++++++++++++++ advance/chart.html | 33 ++++ advance/error.html | 33 ++++ advance/guard.html | 117 +++++++++++++ advance/i18n.html | 131 ++++++++++++++ advance/index.html | 33 ++++ advance/interceptors.html | 127 ++++++++++++++ advance/login.html | 79 +++++++++ advance/skill.html | 33 ++++ advance/theme.html | 33 ++++ assets/css/0.styles.6e02fda8.css | 1 + assets/img/admin-layout.538ade29.png | Bin 0 -> 36050 bytes assets/img/auth.42fb947d.png | Bin 0 -> 41959 bytes assets/img/blank-view.d5483c86.png | Bin 0 -> 47560 bytes assets/img/common-layout.1680e466.png | Bin 0 -> 44992 bytes assets/img/menu-demo.6d51ae42.png | Bin 0 -> 57387 bytes assets/img/mode-dark.178ff571.png | Bin 0 -> 74909 bytes assets/img/mode-light.e460a721.png | Bin 0 -> 68812 bytes assets/img/mode-night.16c831f4.png | Bin 0 -> 87684 bytes assets/img/new-page-2.930ca3c7.png | Bin 0 -> 155793 bytes assets/img/new-page-us.60b25f14.png | Bin 0 -> 160954 bytes assets/img/new-page.4da2ccce.png | Bin 0 -> 34602 bytes assets/img/page-layout.a45de70f.png | Bin 0 -> 15498 bytes assets/img/page-view.5fe6cc90.png | Bin 0 -> 20027 bytes assets/img/permission.a4be38e9.png | Bin 0 -> 20787 bytes assets/img/search.83621669.svg | 1 + assets/img/tabs-view.64ed8eb1.png | Bin 0 -> 38934 bytes assets/js/10.700eec62.js | 1 + assets/js/11.45b1f56d.js | 1 + assets/js/12.01a276f6.js | 1 + assets/js/13.48c77c6e.js | 1 + assets/js/14.4f2e11ab.js | 1 + assets/js/15.288a0b46.js | 1 + assets/js/16.82c281d4.js | 1 + assets/js/17.100d788a.js | 1 + assets/js/18.5be3472b.js | 1 + assets/js/19.03245e8d.js | 1 + assets/js/2.8c76fef9.js | 1 + assets/js/20.3d708930.js | 1 + assets/js/21.c054b79e.js | 1 + assets/js/22.5db4e883.js | 1 + assets/js/23.9725697e.js | 1 + assets/js/24.ed3d58d4.js | 1 + assets/js/25.49453e27.js | 1 + assets/js/26.5d9fccfd.js | 1 + assets/js/27.13660c40.js | 1 + assets/js/28.826bdb2a.js | 1 + assets/js/29.fb0b9607.js | 1 + assets/js/3.6d23cf69.js | 1 + assets/js/30.472c91a2.js | 1 + assets/js/31.a79ce13e.js | 1 + assets/js/32.53b87dae.js | 1 + assets/js/33.09a90ca2.js | 1 + assets/js/4.1817d874.js | 8 + assets/js/5.b598fcf7.js | 1 + assets/js/6.24459446.js | 1 + assets/js/7.1b0a900f.js | 1 + assets/js/8.fe7f978a.js | 1 + assets/js/9.b6ba06c2.js | 1 + assets/js/app.1db8bb78.js | 13 ++ develop/index.html | 33 ++++ develop/layout.html | 72 ++++++++ develop/mock.html | 41 +++++ develop/page.html | 212 +++++++++++++++++++++++ develop/router.html | 126 ++++++++++++++ develop/service.html | 148 ++++++++++++++++ develop/theme.html | 147 ++++++++++++++++ favicon.ico | Bin 0 -> 2913 bytes index.html | 41 +++++ logo.png | Bin 0 -> 26705 bytes other/community.html | 37 ++++ other/index.html | 33 ++++ other/upgrade.html | 41 +++++ start/faq.html | 42 +++++ start/index.html | 33 ++++ start/use.html | 69 ++++++++ 79 files changed, 2233 insertions(+) create mode 100644 404.html create mode 100644 advance/api.html create mode 100644 advance/async.html create mode 100644 advance/authority.html create mode 100644 advance/chart.html create mode 100644 advance/error.html create mode 100644 advance/guard.html create mode 100644 advance/i18n.html create mode 100644 advance/index.html create mode 100644 advance/interceptors.html create mode 100644 advance/login.html create mode 100644 advance/skill.html create mode 100644 advance/theme.html create mode 100644 assets/css/0.styles.6e02fda8.css create mode 100644 assets/img/admin-layout.538ade29.png create mode 100644 assets/img/auth.42fb947d.png create mode 100644 assets/img/blank-view.d5483c86.png create mode 100644 assets/img/common-layout.1680e466.png create mode 100644 assets/img/menu-demo.6d51ae42.png create mode 100644 assets/img/mode-dark.178ff571.png create mode 100644 assets/img/mode-light.e460a721.png create mode 100644 assets/img/mode-night.16c831f4.png create mode 100644 assets/img/new-page-2.930ca3c7.png create mode 100644 assets/img/new-page-us.60b25f14.png create mode 100644 assets/img/new-page.4da2ccce.png create mode 100644 assets/img/page-layout.a45de70f.png create mode 100644 assets/img/page-view.5fe6cc90.png create mode 100644 assets/img/permission.a4be38e9.png create mode 100644 assets/img/search.83621669.svg create mode 100644 assets/img/tabs-view.64ed8eb1.png create mode 100644 assets/js/10.700eec62.js create mode 100644 assets/js/11.45b1f56d.js create mode 100644 assets/js/12.01a276f6.js create mode 100644 assets/js/13.48c77c6e.js create mode 100644 assets/js/14.4f2e11ab.js create mode 100644 assets/js/15.288a0b46.js create mode 100644 assets/js/16.82c281d4.js create mode 100644 assets/js/17.100d788a.js create mode 100644 assets/js/18.5be3472b.js create mode 100644 assets/js/19.03245e8d.js create mode 100644 assets/js/2.8c76fef9.js create mode 100644 assets/js/20.3d708930.js create mode 100644 assets/js/21.c054b79e.js create mode 100644 assets/js/22.5db4e883.js create mode 100644 assets/js/23.9725697e.js create mode 100644 assets/js/24.ed3d58d4.js create mode 100644 assets/js/25.49453e27.js create mode 100644 assets/js/26.5d9fccfd.js create mode 100644 assets/js/27.13660c40.js create mode 100644 assets/js/28.826bdb2a.js create mode 100644 assets/js/29.fb0b9607.js create mode 100644 assets/js/3.6d23cf69.js create mode 100644 assets/js/30.472c91a2.js create mode 100644 assets/js/31.a79ce13e.js create mode 100644 assets/js/32.53b87dae.js create mode 100644 assets/js/33.09a90ca2.js create mode 100644 assets/js/4.1817d874.js create mode 100644 assets/js/5.b598fcf7.js create mode 100644 assets/js/6.24459446.js create mode 100644 assets/js/7.1b0a900f.js create mode 100644 assets/js/8.fe7f978a.js create mode 100644 assets/js/9.b6ba06c2.js create mode 100644 assets/js/app.1db8bb78.js create mode 100644 develop/index.html create mode 100644 develop/layout.html create mode 100644 develop/mock.html create mode 100644 develop/page.html create mode 100644 develop/router.html create mode 100644 develop/service.html create mode 100644 develop/theme.html create mode 100644 favicon.ico create mode 100644 index.html create mode 100644 logo.png create mode 100644 other/community.html create mode 100644 other/index.html create mode 100644 other/upgrade.html create mode 100644 start/faq.html create mode 100644 start/index.html create mode 100644 start/use.html diff --git a/404.html b/404.html new file mode 100644 index 0000000..bd4fec6 --- /dev/null +++ b/404.html @@ -0,0 +1,19 @@ + + + + + + Vue Antd Admin + + + + + + + +

404

There's nothing here.
+ Take me home. +
+ + + diff --git a/advance/api.html b/advance/api.html new file mode 100644 index 0000000..fcfcd22 --- /dev/null +++ b/advance/api.html @@ -0,0 +1,51 @@ + + + + + + 全局API | Vue Antd Admin + + + + + + + +

# 全局API

我们提供了一些全局Api,在日常功能开发中或许会有帮助,它们均被绑定到了页面组件或子组件实例上。
+在组件内可以直接通过this.$[apiName]的方式调用。如下:

# 多页签

# $closePage(closeRoute, nextRoute)

该api用于关闭当前已打开的页签,接收两个参数:

  • closeRoute
    +要关闭的页签对应的 route 对象,可简写为路由的 fullPath 字符串值。
  • nextRoute
    +关闭页签要后跳转的 route 对象,可不传,不传则会自动选择打开页签(临近原则)。

# $refreshPage(route)

该api用于刷新路由对应的页签,接收一个参数:

  • route
    +要刷新的页签对应的 route 对象,可简写为路由的 fullPath 字符串值。

# $openPage(route, title)

该api用于打开一个新页签,接收两个参数:

  • route
    +要打开的页签对应的 route 对象,可简写为路由的 fullPath 字符串值。
  • title
    +设置打开页签的标题,可不传。

# $setPageTitle(route, title)

该api用于设置页签的标题,接收两个参数:

  • route
    +要设置的页签对应的 route 对象,可简写为路由的 fullPath 字符串值。
  • title
    +页签的标题。

# 权限

# $auth(check, type)

该api可以用于操作权限校验,接收两个参数:

  • check
    +需要要校验的操作权限
  • type
    +操作权限校验类别,可选 permissionrole,即通过权限校验还是角色进行校验,可不传(不传的话,会对两种类型都进行匹配,任意一种匹配成功即校验通过)。
+ + + diff --git a/advance/async.html b/advance/async.html new file mode 100644 index 0000000..6563a7c --- /dev/null +++ b/advance/async.html @@ -0,0 +1,240 @@ + + + + + + 异步路由和菜单 | Vue Antd Admin + + + + + + + +

# 异步路由和菜单

在现实业务中,存在这样的场景,系统的路由和菜单会根据用户的角色变化而变化,或者路由菜单根据用户的权限动态生成。我们为此准备了一套完整的异步加载方案, +可以让你很方便的从服务端加载路由和菜单配置,并应用到系统中。

# 异步加载路由

动态路由的实现主要有以下四个步骤:

# 开启异步路由设置

/config/config.js 文件中设置 asyncRoutes 的值为 true:







 






module.exports = {
+  theme: {
+    color: '#13c2c2',
+    mode: 'night'
+  },
+  multiPage: true,
+  asyncRoutes: true,       //异步加载路由,true:开启,false:不开启
+  animate: {
+    name: 'roll',
+    direction: 'default'
+  }
+}
+
1
2
3
4
5
6
7
8
9
10
11
12

# 注册路由组件

基础路由组件包含路由基本配置和对应的视图组件,我们统一在 /router/async/router.map.js 文件中注册它们。它和正常的路由配置基本无异,相当于把完整的路由拆分成单个的路由配置进行注册,为后面的路由动态配置打好基础。
+一个单独的路由组件注册示例如下:

registerName: {                               //路由组件注册名称,唯一标识
+  path: 'path',                               //路由path,可缺省,默认取路由注册名称 registerName 的值
+  name: '演示页',                             //路由名称
+  redirect: '/login',                         //路由重定向
+  component: () => import('@/pages/demo'),    //路由视图
+  icon: 'permission',                         //路由的菜单icon,会注入到路由元数据meta中
+  invisible: false,                           //是否隐藏菜单项,true 隐藏,false 不隐藏,会注入到路由元数据meta中。
+  authority: {                                //路由权限配置,会注入到路由元数据meta中。可缺省,默认为 ‘*’, 即无权限限制
+    permission: 'form',                       //路由需要的权限  
+    role: 'admin'                             //路由需要的角色。当permission未设置,通过 role 检查权限
+  },                     
+  page: {                                     //路由的页面数据,会注入到路由元数据meta中
+    title: '演示页',                          //页面标题
+    breadcrumb: ['首页', '演示页']            //页面面包屑
+  }             
+}
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
点击查看完整的路由注册示例:
// 视图组件
+const view = {
+  tabs: () => import('@/layouts/tabs'),
+  blank: () => import('@/layouts/BlankView'),
+  page: () => import('@/layouts/PageView')
+}
+
+// 路由组件注册
+const routerMap = {
+  login: {
+    authority: '*',
+    path: '/login',
+    component: () => import('@/pages/login')
+  },
+  demo: {
+    name: '演示页',
+    renderMenu: false,
+    component: () => import('@/pages/demo')
+  },
+  exp403: {
+    authority: '*',
+    name: 'exp403',
+    path: '403',
+    component: () => import('@/pages/exception/403')
+  },
+  exp404: {
+    name: 'exp404',
+    path: '404',
+    component: () => import('@/pages/exception/404')
+  },
+  exp500: {
+    name: 'exp500',
+    path: '500',
+    component: () => import('@/pages/exception/500')
+  },
+  root: {
+    path: '/',
+    name: '首页',
+    redirect: '/login',
+    component: view.tabs
+  },
+  parent1: {
+    name: '父级路由1',
+    icon: 'dashboard',
+    component: view.blank
+  },
+  parent2: {
+    name: '父级路由2',
+    icon: 'form',
+    component: view.page
+  },
+  exception: {
+    name: '异常页',
+    icon: 'warning',
+    component: view.blank
+  }
+}
+export default routerMap
+
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

# 配置基本路由

如果没有任何路由,你的应用是无法访问的,所以我们需要在本地配置一些基本的路由,比如登录页、404、403 等。你可以在 /router/async/config.async.js 文件中配置一些本地必要的路由。如下:

const routesConfig = [
+  'login',                      //匹配 router.map.js 中注册的 registerName = login 的路由
+  'root',                       //匹配 router.map.js 中注册的 registerName = root 的路由
+  {
+    router: 'exp404',           //匹配 router.map.js 中注册的 registerName = exp404 的路由
+    path: '*',                  //重写 exp404 路由的 path 属性
+    name: '404'                 //重写 exp404 路由的 name 属性
+  },
+  {
+    router: 'exp403',           //匹配 router.map.js 中注册的 registerName = exp403 的路由
+    path: '/403',               //重写 exp403 路由的 path 属性
+    name: '403'                 //重写 exp403 路由的 name 属性
+  }
+]
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14

完成配置后,即可通过 routesConfig 和已注册的 routerMap 生成 router.options.routes 配置,如下:

const options = {
+  routes: parseRoutes(routesConfig, routerMap)
+}
+
1
2
3
点击查看完整的 config.async.js 代码
import routerMap from './router.map'
+import {parseRoutes} from '@/utils/routerUtil'
+
+// 异步路由配置
+const routesConfig = [
+  'login',
+  'root',
+  {
+    router: 'exp404',
+    path: '*',
+    name: '404'
+  },
+  {
+    router: 'exp403',
+    path: '/403',
+    name: '403'
+  }
+]
+const options = {
+  routes: parseRoutes(routesConfig, routerMap)
+}
+export default options
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

完成以上设置后,本地就已经有了包含 login、404、403 页面的路由,并且这些路由是可以直接访问的。

# 异步获取路由配置

当用户登录后(或者其它的前提条件),你可能想根据不同用户加载不同的路由和菜单。 +那么我们就需要先从后端服务获取异步路由配置,后端返回的异步路由配置 routesConfig 是一个异步路由配置数组, 应当如下格式:

[{
+  router: 'root',                           //匹配 router.map.js 中注册名 registerName = root 的路由
+  children: [                               //root 路由的子路由配置
+    {
+      router: 'dashboard',                  //匹配 router.map.js 中注册名 registerName = dashboard 的路由
+      children: ['workplace', 'analysis'],  //dashboard 路由的子路由配置,依次匹配 registerName 为 workplace 和 analysis 的路由
+    },
+    {
+      router: 'form',                       //匹配 router.map.js 中注册名 registerName = form 的路由
+      children: [                           //form 路由的子路由配置
+        'basicForm',                        //匹配 router.map.js 中注册名 registerName = basicForm 的路由
+        'stepForm',                         //匹配 router.map.js 中注册名 registerName = stepForm 的路由
+        {
+          router: 'advanceForm',            //匹配 router.map.js 中注册名 registerName = advanceForm 的路由
+          path: 'advance'                   //重写 advanceForm 路由的 path 属性
+        }
+      ]   
+    },
+    {
+      router: 'basicForm',                  //匹配 router.map.js 中注册名 registerName = basicForm 的路由
+      name: '验权表单',                     //重写 basicForm 路由的 name 属性
+      icon: 'file-excel',                   //重写 basicForm 路由的 icon 属性
+      authority: 'form'                     //重写 basicForm 路由的 authority 属性
+    }
+  ]
+}]
+
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

其中 router 属性 对应 router.map.js 中已注册的基础路由的注册名称 registerNamechildren 属性为路由的嵌套子路由配置。
+有些情况下你可能想重写已注册路由的属性,你可以为 routesConfig 配置同名属性去覆盖它。如上面的验权表单路由覆盖了注册路由的 nameiconauthority 属性。

# 加载路由并应用

我们提供了一个路由加载工具,你只需调用 /utils/routerUtil.js 中的 loadRoutes 方法加载上一步获取到的 routesConfig 即可,如下:



 


getRoutesConfig().then(result => {
+  const routesConfig = result.data.data
+  loadRoutes(routesConfig)
+})
+
1
2
3
4

至此,异步路由的加载就完成了,你可以访问异步加载的路由了。

TIP

上面获取异步路由的代码,在 /pages/login/Login.vue 文件中可以找到。
+loadRoutes 方法会合并 /router/async/config.async.js 文件中配置的基本路由。

点击查看 loadRoutes 的详细代码
/**
+ * 加载路由
+ * @param routesConfig 路由配置
+ */
+function loadRoutes(routesConfig) {
+  // 如果 routesConfig 有值,则更新到本地,否则从本地获取
+  if (routesConfig) {
+    store.commit('account/setRoutesConfig', routesConfig)
+  } else {
+    routesConfig = store.getters['account/routesConfig']
+  }
+  // 如果开启了异步路由,则加载异步路由配置
+  const asyncRoutes = store.state.setting.asyncRoutes
+  if (asyncRoutes) {
+    if (routesConfig && routesConfig.length > 0) {
+      const routes = parseRoutes(routesConfig, routerMap)
+      formatAuthority(routes)
+      const finalRoutes = mergeRoutes(router.options.routes, routes)
+      router.options = {...router.options, routes: finalRoutes}
+      router.matcher = new Router({...router.options, routes:[]}).matcher
+      router.addRoutes(finalRoutes)
+    }
+  }
+  // 初始化Admin后台菜单数据
+  const rootRoute = router.options.routes.find(item => item.path === '/')
+  const menuRoutes = rootRoute && rootRoute.children
+  if (menuRoutes) {
+    mergeI18nFromRoutes(i18n, menuRoutes)
+    store.commit('setting/setMenuData', menuRoutes)
+  }
+}
+
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

# 异步加载菜单

Vue Antd Admin 的菜单,是根据路由配置自动生成的,默认获取根路由 ‘/’ 下所有子路由作为菜单配置。
+当你完成了异步路由的加载,菜单也会随之改变,无需你做其它额外的操作。主要代码如下:

// 初始化Admin后台菜单数据
+  const rootRoute = router.options.routes.find(item => item.path === '/')
+  const menuRoutes = rootRoute && rootRoute.children
+  if (menuRoutes) {
+    mergeI18nFromRoutes(i18n, menuRoutes)
+    store.commit('setting/setMenuData', menuRoutes)
+  }
+
1
2
3
4
5
6
7

TIP

如果你不想从根路由 ‘/’ 下获取菜单数据,可以根据自己的需求更改。

+ + + diff --git a/advance/authority.html b/advance/authority.html new file mode 100644 index 0000000..33a33ef --- /dev/null +++ b/advance/authority.html @@ -0,0 +1,175 @@ + + + + + + 权限管理 | Vue Antd Admin + + + + + + + +

# 权限管理

权限控制是中后台系统中常见的需求之一,你可以利用 Vue Antd Admin 提供的权限控制脚手架,实现一些基本的权限控制功能。

# 角色和权限

通常情况下有两种方式可以控制用户权限,一种是通过用户角色 role 来控制权限,另一种是通过更细致的权限 permission 来控制。 +这两种方式 Vue Antd Admin 都支持。
+我们定义了 role 和 permission 的基本格式,如果你获取的 role 和 permission 数据格式与 Vue Antd Admin 不一致, +你需要在获取到 role 和 permission 后将其转换为 Vue Antd Admin 的格式。

# 角色

Vue Antd Admin 的 角色/role 包含 idoperation 两个属性。其中 id角色/role 的 id,operation角色/role 具有的操作权限,是一个字符串数组。

role = {
+  id: 'admin',                                   //角色ID
+  operation: ['add', 'delete', 'edit', 'close']  //角色的操作权限
+}
+
1
2
3
4

你也可以设置 role 的值为字符串,比如 role = 'admin', 它等同于:

role = {
+  id: 'admin'
+}
+
1
2
3

# 权限

Vue Antd Admin 的 权限/permission 也包含 idoperation 两个属性。其中 id权限/permission 的 id,operation权限/permission 下的操作权限,是一个字符串数组。

permission = {
+  id: 'form',                                    //权限ID
+  operation: ['add', 'delete', 'edit', 'close']  //权限下的操作权限
+}
+
1
2
3
4

你也可以设置 permission 的值为字符串,比如 permission = 'form', 它等同于:

permission = {
+  id: 'form'
+}
+
1
2
3

# 设置用户的角色和权限

你只需为用户配置 roles 和 permissions 两者中的其中一种,即可完成权限管理功能。当然你也可以两者都配置。

获取到用户权限或角色后,将其格式化转为 Vue Antd Admin 可用的格式,然后使用 store.commit('account/setPermissions', permissions)store.commit('account/setRoles', roles) +将其存在本地即可。如下:

getPermissions().then(res => {
+  const permissions = res.data
+  this.$store.commit('account/setPermissions', permissions)
+})
+getRoles().then(res => {
+  const roles = res.data
+  this.$store.commit('account/setRoles', roles)
+})
+
1
2
3
4
5
6
7
8

TIP

注意,存在本地的 permissions 和 roles 都应该是数组。
+你可以在 /pages/login/Login.vue 查看完整的用户角色和权限设置代码。

# 页面权限

如果你想给一些页面设置准入权限,只需要给该页面对应的路由设置元数据 authority 即可。 authority 的值可以是一个字符串,也可以是对象。

如下路由配置,则表明 验权页面 需要准入权限(permission): form





 




const route = {
+  name: '验权页面',
+  path: 'auth/demo',
+  meta: {
+    authority: 'form',
+  },
+  component: () => import('@/pages/demo')
+}
+
1
2
3
4
5
6
7
8

下面是 authority 的值为对象的写法,这种写法和上面字符串的写法具有相同的效果:





 
 
 




const route = {
+  name: '验权页面',
+  path: 'auth/demo',
+  meta: {
+    authority: {
+      permission: 'form'
+    }
+  },
+  component: () => import('@/pages/demo')
+}
+
1
2
3
4
5
6
7
8
9
10

有时你可能需要通过用户角色来配置页面权限,我们同样支持,用法和上面类似。

如下配置,表明 验权页面 需要准入角色(role) admin





 
 
 




const route = {
+  name: '验权页面',
+  path: 'auth/demo',
+  meta: {
+    authority: {
+      role: 'admin'
+    }
+  },
+  component: () => import('@/pages/demo')
+}
+
1
2
3
4
5
6
7
8
9
10

TIP

当你未设置 authority 或 设置 authority 的值 为 * 时,等同于该页面无需权限限制,我们会忽略此页面的权限检查。

TIP

当 authority 的值为字符串时,会以 权限/permission 验证权限。如果你需要以 角色/role 验证权限,请以对象形式设置 authority 的值。

# 操作权限

在一些复杂的些场景下,权限可能不仅仅是页面层级这么简单。在一些页面你可能需要校验用户是否具有某些操作的权限,比如 增、删、改、查等。
+为此,我们提供了 权限校验注入权限校验指令 两个实用的功能。

# 权限校验注入

通过对Vue组件的实例方法进行 权限校验注入,我们可以控制该实例方法的执行权限,从而精准且安全的验证用户操作。

比如,QueryList 页面的 deleteRecord 方法,我们希望具有操作权限 delete 的用户才能调用此方法。 +只需为 deleteRecord 方法注入权限校验,按如下方式配置 authorize 即可:









 
 
 

 








<template>
+  ...
+</template>
+<script>
+...
+export default {
+  name: 'QueryList',
+  data () {...},
+  authorize: {              //权限校验注入设置
+    deleteRecord: 'delete'  //key为需要注入权限校验的方法名,这里为 deleteRecord 方法;值为需要校验的操作权限,这里为 delete 操作权限
+  },
+  methods: {
+    deleteRecord(key) {
+      this.dataSource = this.dataSource.filter(item => item.key !== key)
+      this.selectedRows = this.selectedRows.filter(item => item.key !== key)
+    },
+    ...
+  }
+}
+</script>
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

如果用户没有 delete 权限,调用 deleteRecord 方法,会看到如下提示:

无此权限

# 操作权限校验的类型

authorize 会根据当前页面匹配到的权限类型(permission / role),来判断是使用 permission.operation 还是 role.operation 来进行权限校验。 +如果当前页面同时匹配到了 permission 和 role 权限,则默认通过 permission.operation 来进行操作权限校验。

当然你也可以指定操作权限校验的类型,如下设置即可:


 
 
 
 


authorize: {             
+  deleteRecord: {        //需要 注入权限校验 的方法名:deleteRecord
+    check: 'delete',     //需要校验的操作权限:check
+    type: 'role'         //指定操作权限校验的类型,可选 permission 和 role。这里指定以 role.operation 校验操作权限
+  }
+}
+
1
2
3
4
5
6

# 权限校验指令

有时我们可能希望用户能够更直观的了解自己的操作权限。比如给没有操作权限的控件应用 disable 样式,禁用 click 事件等。 +我们提供了权限校验指令 v-auth 来实现这个功能。

比如,我们想为 QueryList 页面的删除控件进行 delete 操作权限校验,只需为删除控件设置 v-auth="`delete`" 指令即可,如下:






 








<template>
+  <a-card>...
+    <standard-table ...>
+      ...
+      <div slot="action" slot-scope="{text, record}">
+        <a @click="deleteRecord(record.key)" v-auth="`delete`">
+          <a-icon type="delete" />删除
+        </a>
+      </div>
+      ...
+    </standard-table>
+  </a-card>
+</template>
+
1
2
3
4
5
6
7
8
9
10
11
12
13

假如用户没有 delete 操作权限,则控件会被应用 disable 样式,且 click 事件无效,如下图:

权限校验指令

重要!!!

v-auth 是我们自定义的一个 Vue指令。因为 Vue指令 的值需要是一个 javascript 表达式,因此你不能直接给 v-auth 赋值为字符串, +需要把 v-auth 的字符串值用 `` 包裹起来,否则可能会报 undefined 错误。

# 权限校验指令的类型

你同样也可以指定 v-auth 的权限校验类型,可选 permissionrole。它的校验方式和 authorize 类似,如未指定则会自动识别。 +v-auth:role 表示通过 role.operation 进行校验,v-auth:permission 表示通过 permission.operation 进行校验。

如下,指定通过 role.operation 校验删除控件的操作权限:



 





<div slot="action" slot-scope="{text, record}">
+  ...
+  <a v-auth:role="`delete`">
+    <a-icon type="delete" />删除
+  </a>
+  ...
+</div>
+
1
2
3
4
5
6
7

# 异步路由权限

异步路由同样可以进行权限校验配置,它和正常的路由权限配置基本无异,只是无需把 authority 配置在元数据属性 meta 里。 +你可以在路由组件注册时设置 authority,也可以在异步路由配置里设置 authority。

路由组件注册时设置 authority






 





// 路由组件注册
+const routerMap = {
+  ...
+  demo: {
+    name: '演示页',
+    authority: 'form',
+    component: () => import('@/pages/demo')
+  }
+  ...
+}
+
1
2
3
4
5
6
7
8
9
10

异步路由配置里设置 authority











 
 
 




const routesConfig = [{
+    router: 'root',
+    children: ['demo',
+      {router: 'parent1'...},
+      ...
+      {
+        router: 'demo',
+        icon: 'file-ppt',
+        path: 'auth/demo',
+        name: '验权页面',
+        authority: {
+          permission: 'form',
+        }
+      }
+    ]
+  }]
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
+ + + diff --git a/advance/chart.html b/advance/chart.html new file mode 100644 index 0000000..816d088 --- /dev/null +++ b/advance/chart.html @@ -0,0 +1,33 @@ + + + + + + 图表 | Vue Antd Admin + + + + + + + +

# 图表

# 作者还没来得及编辑该页面,如果你感兴趣,可以点击下方链接,帮助作者完善此页

+ + + diff --git a/advance/error.html b/advance/error.html new file mode 100644 index 0000000..8cf5c70 --- /dev/null +++ b/advance/error.html @@ -0,0 +1,33 @@ + + + + + + 错误处理 | Vue Antd Admin + + + + + + + +

# 错误处理

# 作者还没来得及编辑该页面,如果你感兴趣,可以点击下方链接,帮助作者完善此页

+ + + diff --git a/advance/guard.html b/advance/guard.html new file mode 100644 index 0000000..54b82a9 --- /dev/null +++ b/advance/guard.html @@ -0,0 +1,117 @@ + + + + + + 路由守卫 | Vue Antd Admin + + + + + + + +

# 路由守卫

Vue Antd Admin 使用 vue-router 实现路由导航功能,因此可以为路由配置一些守卫。
+我们统一把导航守卫配置在 router/guards.js 文件中。

# 前置守卫

Vue Antd Admin 为每个前置导航守卫函数注入 to,from,next,options 四个参数:

  • to: Route: 即将要进入的目标路由对象
  • from: Route: 当前导航正要离开的路由对象
  • next: Function: 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。详情查看 Vue Router #导航守卫
  • options: Object: 应用配置,包含: {router, i18n, store, message},可根据需要扩展。
    +如下,是登录拦截导航守卫的定义
const loginGuard = (to, from, next, options) => {
+  const {message} = options
+  if (!loginIgnore.includes(to) && !checkAuthorization()) {
+    message.warning('登录已失效,请重新登录')
+    next({path: '/login'})
+  } else {
+    next()
+  }
+}
+
1
2
3
4
5
6
7
8
9

# 后置守卫

你也可以定义后置导航守卫,Vue Antd Admin 为每个后置导航函数注入 to,from,options 三个参数:

  • to: Route: 即将要进入的目标路由对象
  • from: Route: 当前导航正要离开的路由对象
  • options: Object: 应用配置,包含: {router, i18n, store, message},可根据需要扩展。
    +如下,是一个后置导航守卫的定义
const afterGuard = (to, from, options) => {
+  const {store, message} = options
+  // 做些什么
+  message.info('do something')
+}
+
1
2
3
4
5

# 导出守卫配置

定义好导航守卫后,只需按照类别在 guard.js 中导出即可。分为两类,前置守卫后置守卫。如下:

export default {
+  beforeEach: [loginGuard, authorityGuard],
+  afterEach: [afterGuard]
+}
+
1
2
3
4
点击查看完整的导航守卫配置
import {loginIgnore} from '@/router/index'
+import {checkAuthorization} from '@/utils/request'
+
+/**
+ * 登录守卫
+ * @param to
+ * @param form
+ * @param next
+ * @param options
+ */
+const loginGuard = (to, from, next, options) => {
+  const {message} = options
+  if (!loginIgnore.includes(to) && !checkAuthorization()) {
+    message.warning('登录已失效,请重新登录')
+    next({path: '/login'})
+  } else {
+    next()
+  }
+}
+
+/**
+ * 权限守卫
+ * @param to
+ * @param form
+ * @param next
+ * @param options
+ */
+const authorityGuard = (to, from, next, options) => {
+  const {store, message} = options
+  const permissions = store.getters['account/permissions']
+  const roles = store.getters['account/roles']
+  if (!hasAuthority(to, permissions, roles)) {
+    message.warning(`对不起,您无权访问页面: ${to.fullPath},请联系管理员`)
+    next({path: '/403'})
+  } else {
+    next()
+  }
+}
+
+/**
+ * 后置守卫
+ * @param to
+ * @param form
+ * @param options
+ */
+const afterGuard = (to, from, options) => {
+  const {store, message} = options
+  // 做些什么
+  message.info('do something')
+}
+
+export default {
+  beforeEach: [loginGuard, authorityGuard],
+  afterEach: [afterGuard]
+}
+
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
43
44
45
46
47
48
49
50
51
52
53
54
55
+ + + diff --git a/advance/i18n.html b/advance/i18n.html new file mode 100644 index 0000000..d7cf227 --- /dev/null +++ b/advance/i18n.html @@ -0,0 +1,131 @@ + + + + + + 国际化 | Vue Antd Admin + + + + + + + +

# 国际化

vue-antd-admin 采用 vue-i18n 插件来实现国际化,该项目已经内置并且加载好了基础配置。可以直接上手使用。

如果你还没有看快速入门,请先移步查看: 页面 -> i18n国际化配置

# 菜单和路由

# 默认情况

如果你没有对菜单进行国际化配置,admin 默认会从路由数据中提取数据作为国际化配置。route.name 作为中文语言,route.path 作为英文语言。
+国际化提取函数定义在 @/utils/i18n.js 文件中,会在路由加载时调用,如下:

/**
+ * 从路由提取国际化数据
+ * @param i18n
+ * @param routes
+ */
+function mergeI18nFromRoutes(i18n, routes) {
+  formatFullPath(routes)
+  const CN = generateI18n(new Object(), routes, 'name')
+  const US = generateI18n(new Object(), routes, 'path')
+  i18n.mergeLocaleMessage('CN', CN)
+  i18n.mergeLocaleMessage('US', US)
+  const messages = routesI18n.messages
+  Object.keys(messages).forEach(lang => {
+    i18n.mergeLocaleMessage(lang, messages[lang])
+  })
+}
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 自定义

如果你想自定义菜单国际化数据,可在 @/router/i18n.js 文件中配置。我们以路由的 path 作为 key(嵌套path 的写法也会被解析),name 作为 国际化语言的值。
+假设你有一个路由的配置如下:

[{
+  path: 'parent',
+  ...
+  children: [{
+    path: 'self',
+    ...
+  }]
+}]
+
+or 
+
+[{
+  path: 'other',
+  ...
+  children: [{
+    path: '/parent/self',   // 在国际化配置中 key 会解析为 parent.self
+    ...
+  }]
+}]
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

那么你需要在 @/router/i18n.js 中这样配置:

 messages: {
+    CN: {
+      parent: {
+        name: '父級菜單',
+        self: {name: '菜單名'},
+    },
+    US: {
+      parent: {
+        name: 'parent menu',
+        self: {name: 'menu name'},
+    },
+    HK: {
+      parent: {
+        name: '父級菜單',
+        self: {name: '菜單名'},
+    },
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 添加语言

首先在 @/layouts/header/AdminHeader.vue ,新增一门语言 (多个同理)。















 







<template>
+  ...
+</template>
+<script>
+...
+export default {
+  ...
+  data() {
+    return {
+      langList: [
+        {key: 'CN', name: '简体中文', alias: '简体'},
+        {key: 'HK', name: '繁體中文', alias: '繁體'},
+        {key: 'US', name: 'English', alias: 'English'},
+        // 新增一个语言选项, key是i18n的索引,name是菜单显示名称
+        {key: 'JP', name: 'Japanese', alias: 'Japanese'}
+      ],
+      searchActive: false
+    }
+  },
+}
+</script>
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

TIP: 后续开发建议把这里改成动态配置的方式!

然后开始往 @/router/i18n.js@/pages/你的页面/i18n.js 里面分别添加上语言的翻译。












 
 
 



module.exports = {
+    messages: {
+        CN: {
+            home: {name: '首页'},
+        },
+        US: {
+            home: {name: 'home'},
+        },
+        HK: {
+            home: {name: '首頁'},
+        },
+        JP: {
+            home: {name: '最初のページ'},
+        },
+    }
+}
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Notice: 更多用法请移步到 vue-i18n

+ + + diff --git a/advance/index.html b/advance/index.html new file mode 100644 index 0000000..66d2d15 --- /dev/null +++ b/advance/index.html @@ -0,0 +1,33 @@ + + + + + + 进阶 | Vue Antd Admin + + + + + + + +

# 进阶

+ + + diff --git a/advance/interceptors.html b/advance/interceptors.html new file mode 100644 index 0000000..f0a02f3 --- /dev/null +++ b/advance/interceptors.html @@ -0,0 +1,127 @@ + + + + + + 拦截器配置 | Vue Antd Admin + + + + + + + +

# 拦截器配置

Vue Antd Admin 基于 aixos 封装了 http 通信功能,我们可以为 http 请求响应配置一些拦截器。拦截器统一配置在 /utils/axios-interceptors.js 文件中。

# 请求拦截器

你可以为每个请求拦截器配置 onFulfilledonRejected 两个钩子函数。

# onFulfilled

我们会为 onFulfilled 钩子函数注入 config 和 options 两个参数:

  • config: AxiosRequestConfig: axios 请求配置,详情参考 axios 请求配置
  • options: Object: 应用配置,包含: {router, i18n, store, message},可根据需要扩展。

# onRejected

我们会为 onFulfilled 钩子函数注入 error 和 options 两个参数:

  • error: Error: axios 请求错误对象
  • options: Object: 应用配置,包含: {router, i18n, store, message},可根据需要扩展。

如下,为一个完整的请求拦截器配置:

const tokenCheck = {
+  // 发送请求之前做些什么
+  onFulfilled(config, options) {
+    const {message} = options
+    const {url, xsrfCookieName} = config
+    if (url.indexOf('login') === -1 && xsrfCookieName && !Cookie.get(xsrfCookieName)) {
+      message.warning('认证 token 已过期,请重新登录')
+    }
+    return config
+  },
+  // 请求出错时做点什么
+  onRejected(error, options) {
+    const {message} = options
+    message.error(error.message)
+    return Promise.reject(error)
+  }
+}
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 响应拦截器

响应拦截器也同样可以配置 onFulfilledonRejected 两个钩子函数。

# onFulfilled

我们会为 onFulfilled 钩子函数注入 response 和 options 两个参数:

  • response: AxiosResponse: axios 响应对象,详情参考 axios 响应对象
  • options: Object: 应用配置,包含: {router, i18n, store, message},可根据需要扩展。

# onRejected

我们会为 onRejected 钩子函数注入 error 和 options 两个参数:

  • error: Error: axios 请求错误对象
  • options: Object: 应用配置,包含: {router, i18n, store, message},可根据需要扩展。

如下,为一个完整的响应拦截器配置:

const resp401 = {
+  // 响应数据之前做点什么
+  onFulfilled(response, options) {
+    const {message} = options
+    if (response.status === 401) {
+      message.error('无此接口权限')
+    }
+    return response
+  },
+  // 响应出错时做点什么
+  onRejected(error, options) {
+    const {message} = options
+    if (response.status === 401) {
+      message.error('无此接口权限')
+    }
+    return Promise.reject(error)
+  }
+}
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 导出拦截器

定义好拦截器后,只需在 axios-interceptors.js 文件中导出即可。分为两类,请求拦截器响应拦截器。如下:

export default {
+  request: [tokenCheck], // 请求拦截
+  response: [resp401] // 响应拦截
+}
+
1
2
3
4
点击查看完整的拦截器配置示例
import Cookie from 'js-cookie'
+// 401拦截
+const resp401 = {
+  onFulfilled(response, options) {
+    const {message} = options
+    if (response.status === 401) {
+      message.error('无此接口权限')
+    }
+    return response
+  },
+  onRejected(error, options) {
+    const {message} = options
+    message.error(error.message)
+    return Promise.reject(error)
+  }
+}
+
+const resp403 = {
+  onFulfilled(response, options) {
+    const {message} = options
+    if (response.status === 403) {
+      message.error(`请求被拒绝`)
+    }
+    return response
+  }
+}
+
+const reqCommon = {
+  onFulfilled(config, options) {
+    const {message} = options
+    const {url, xsrfCookieName} = config
+    if (url.indexOf('login') === -1 && xsrfCookieName && !Cookie.get(xsrfCookieName)) {
+      message.warning('认证 token 已过期,请重新登录')
+    }
+    return config
+  },
+  onRejected(error, options) {
+    const {message} = options
+    message.error(error.message)
+    return Promise.reject(error)
+  }
+}
+
+export default {
+  request: [reqCommon], // 请求拦截
+  response: [resp401, resp403] // 响应拦截
+}
+
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
43
44
45
46
47
+ + + diff --git a/advance/login.html b/advance/login.html new file mode 100644 index 0000000..dc468fa --- /dev/null +++ b/advance/login.html @@ -0,0 +1,79 @@ + + + + + + 登录认证 | Vue Antd Admin + + + + + + + +

# 登录认证

Vue Antd Admin 使用 js-cookie.js 管理用户的 token,结合 axios 配置,可以为每个请求头加上 token 信息。

# token名称

后端系统通常会从请求 header 中获取用户的 token,因此我们需要配置好 token 名称,好让后端能正确的识别到用户 token。 +Vue Antd Admin 默认token 名称为 Authorization,你可以在 /utils/request.js 中修改它。





 


import axios from 'axios'
+import Cookie from 'js-cookie'
+
+// 跨域认证信息 header 名
+const xsrfHeaderName = 'Authorization'
+...
+
1
2
3
4
5
6

# token 设置

调用登录接口后拿到用户的 token 和 token 过期时间(如无过期时间,可忽略),并使用 /utils/request.js #setAuthorization 方法保存token。





 


import {setAuthorization} from '@/utils/request'
+
+login(name, password).then(res => {
+  const {token, expireAt} = res.data
+  setAuthorization({token, expireAt: new Date(expireAt)})
+})
+
1
2
3
4
5
6

# token 校验

Vue Antd Admin 默认添加了登录导航守卫,如检查到本地cookie 中不包含 token 信息,则会拦截跳转至登录页。你可以在 /router/index.js 中配置 +不需要登录拦截的路由

// 不需要登录拦截的路由配置
+const loginIgnore = {
+  names: ['404', '403'],      //根据路由名称匹配
+  paths: ['/login'],   //根据路由fullPath匹配
+  /**
+   * 判断路由是否包含在该配置中
+   * @param route vue-router 的 route 对象
+   * @returns {boolean}
+   */
+  includes(route) {
+    return this.names.includes(route.name) || this.paths.includes(route.path)
+  }
+}
+
1
2
3
4
5
6
7
8
9
10
11
12
13

或者在 /router/guards.js 中移出登录守卫

...
+export default {
+-  beforeEach: [loginGuard, authorityGuard, redirectGuard],
++  beforeEach: [authorityGuard, redirectGuard],
+  afterEach: []
+}
+
1
2
3
4
5
6

# Api

# setAuthorization(auth, authType)

来源:/utils/request.js
+该方法用于保存用户 token,接收两个参数:

  • auth
    +认证信息,包含 token、expireAt 等认证数据。
  • authType
    +认证类型,默认为 AUTH_TYPE.BEARER(AUTH_TYPE.BEARER 默认会给token 加上 Bearer 识别前缀),可根据自己的认证类型自行扩展。

# checkAuthorization(authType)

该方法用于校验用户 token 是否过期,接收一个参数:

  • authType
    +认证类型,默认为 AUTH_TYPE.BEARER

# removeAuthorization(authType)

该方法用于移出用户本地存储的 token,接收一个参数:

  • authType
    +认证类型,默认为 AUTH_TYPE.BEARER

TIP

以上 Api 均可在 /utils/request.js 文件中找到。

+ + + diff --git a/advance/skill.html b/advance/skill.html new file mode 100644 index 0000000..3c71110 --- /dev/null +++ b/advance/skill.html @@ -0,0 +1,33 @@ + + + + + + 108个小技巧 | Vue Antd Admin + + + + + + + +

# 108个小技巧

# 自定义菜单icon

# 隐藏页面标题

# 关闭页签API

# 权限校验PI

+ + + diff --git a/advance/theme.html b/advance/theme.html new file mode 100644 index 0000000..c8531ac --- /dev/null +++ b/advance/theme.html @@ -0,0 +1,33 @@ + + + + + + 更换主题 | Vue Antd Admin + + + + + + + +

# 更换主题

# 作者还没来得及编辑该页面,如果你感兴趣,可以点击下方链接,帮助作者完善此页

+ + + diff --git a/assets/css/0.styles.6e02fda8.css b/assets/css/0.styles.6e02fda8.css new file mode 100644 index 0000000..9d027d3 --- /dev/null +++ b/assets/css/0.styles.6e02fda8.css @@ -0,0 +1 @@ +code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.theme-default-content code{color:#476582;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.05);border-radius:3px}.theme-default-content code .token.deleted{color:#ec5975}.theme-default-content code .token.inserted{color:#1890ff}.theme-default-content pre,.theme-default-content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}.theme-default-content pre[class*=language-] code,.theme-default-content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#282c34;border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:3.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;-webkit-user-select:none;user-select:none;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:3.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#282c34}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-docker]:before{content:"docker"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-makefile]:before{content:"makefile"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}div[class~=language-php]:before{content:"php"}.custom-block .custom-block-title{font-weight:600;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{background-color:#f3f5f7;border-color:#42b983}.custom-block.warning{background-color:rgba(255,229,100,.3);border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:#2c3e50}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:#2c3e50}.custom-block.details{display:block;position:relative;border-radius:2px;margin:1.6em 0;padding:1.6em;background-color:#eee}.custom-block.details h4{margin-top:0}.custom-block.details figure:last-child,.custom-block.details p:last-child{margin-bottom:0;padding-bottom:0}.custom-block.details summary{outline:none;cursor:pointer}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid #ccc}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid #ccc}.theme-default-content:not(.custom){max-width:940px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.theme-default-content:not(.custom){padding:2rem}}@media (max-width:419px){.theme-default-content:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}body,html{padding:0;margin:0;background-color:#fff}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;color:#2c3e50}.page{padding-left:20rem}.navbar{z-index:20;right:0;height:3.6rem;background-color:#fff;box-sizing:border-box;border-bottom:1px solid #eaecef}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none}.sidebar{font-size:16px;background-color:#fff;width:20rem;position:fixed;z-index:10;margin:0;top:3.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid #eaecef;overflow-y:auto}.theme-default-content:not(.custom)>:first-child{margin-top:3.6rem}.theme-default-content:not(.custom) a:hover{text-decoration:underline}.theme-default-content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.theme-default-content:not(.custom) img{max-width:100%}.theme-default-content.custom{padding:0;margin:0}.theme-default-content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#1890ff}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:1rem;color:#999;border-left:.2rem solid #dfe2e5;margin:1rem 0;padding:.25rem 0 .25rem 1rem}blockquote>p{margin:0}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.theme-default-content:not(.custom)>h1,.theme-default-content:not(.custom)>h2,.theme-default-content:not(.custom)>h3,.theme-default-content:not(.custom)>h4,.theme-default-content:not(.custom)>h5,.theme-default-content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.theme-default-content:not(.custom)>h1:first-child,.theme-default-content:not(.custom)>h2:first-child,.theme-default-content:not(.custom)>h3:first-child,.theme-default-content:not(.custom)>h4:first-child,.theme-default-content:not(.custom)>h5:first-child,.theme-default-content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.theme-default-content:not(.custom)>h1:first-child+.custom-block,.theme-default-content:not(.custom)>h1:first-child+p,.theme-default-content:not(.custom)>h1:first-child+pre,.theme-default-content:not(.custom)>h2:first-child+.custom-block,.theme-default-content:not(.custom)>h2:first-child+p,.theme-default-content:not(.custom)>h2:first-child+pre,.theme-default-content:not(.custom)>h3:first-child+.custom-block,.theme-default-content:not(.custom)>h3:first-child+p,.theme-default-content:not(.custom)>h3:first-child+pre,.theme-default-content:not(.custom)>h4:first-child+.custom-block,.theme-default-content:not(.custom)>h4:first-child+p,.theme-default-content:not(.custom)>h4:first-child+pre,.theme-default-content:not(.custom)>h5:first-child+.custom-block,.theme-default-content:not(.custom)>h5:first-child+p,.theme-default-content:not(.custom)>h5:first-child+pre,.theme-default-content:not(.custom)>h6:first-child+.custom-block,.theme-default-content:not(.custom)>h6:first-child+p,.theme-default-content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:hover .header-anchor,h2:hover .header-anchor,h3:hover .header-anchor,h4:hover .header-anchor,h5:hover .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid #eaecef}h3{font-size:1.35rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid #eaecef}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}td,th{border:1px solid #dfe2e5;padding:.6em 1em}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .theme-default-content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px;width:16.4rem}.page{padding-left:16.4rem}}@media (max-width:719px){.sidebar{top:0;padding-top:3.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}.theme-default-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.custom-block.tip{border-color:#1890ff}.theme-default-content code .token.inserted{color:#60bd90}#nprogress{pointer-events:none}#nprogress .bar{background:#1890ff;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;-webkit-box-shadow:0 0 10px #1890ff,0 0 5px #1890ff;box-shadow:0 0 10px #1890ff,0 0 5px #1890ff;opacity:1;-webkit-transform:rotate(3deg) translateY(-4px);transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;-webkit-box-sizing:border-box;box-sizing:border-box;border-color:#1890ff transparent transparent #1890ff;border-style:solid;border-width:2px;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.go-to-top[data-v-5fd4ef0c]{cursor:pointer;position:fixed;bottom:2rem;right:2.5rem;width:2rem;color:#1890ff;z-index:1}.go-to-top[data-v-5fd4ef0c]:hover{color:#5db1ff}@media (max-width:959px){.go-to-top[data-v-5fd4ef0c]{display:none}}.fade-enter-active[data-v-5fd4ef0c],.fade-leave-active[data-v-5fd4ef0c]{-webkit-transition:opacity .3s;transition:opacity .3s}.fade-enter[data-v-5fd4ef0c],.fade-leave-to[data-v-5fd4ef0c]{opacity:0}.alert[data-v-0c5327c3]{position:fixed;padding:6px 8px;background-color:#fff;-webkit-box-shadow:0 4px 8px rgba(0,0,0,.25);box-shadow:0 4px 8px rgba(0,0,0,.25);border-radius:4px;margin:0 auto;z-index:999;top:100px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;left:0;right:0;-webkit-transition:top .3s;transition:top .3s}.icon.outbound{color:#aaa;display:inline-block;vertical-align:middle;position:relative;top:-1px}.home{padding:3.6rem 2rem 0;max-width:960px;margin:0 auto;display:block}.home .hero{text-align:center}.home .hero img{max-width:100%;max-height:280px;display:block;margin:3rem auto 1.5rem}.home .hero h1{font-size:3rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.8rem auto}.home .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:#6a8bad}.home .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#1890ff;padding:.8rem 1.6rem;border-radius:4px;-webkit-transition:background-color .1s ease;transition:background-color .1s ease;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #0082fb}.home .hero .action-button:hover{background-color:#2f9bff}.home .features{border-top:1px solid #eaecef;padding:1.2rem 0;margin-top:2.5rem;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-line-pack:stretch;align-content:stretch;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.home .feature{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:30%;flex-basis:30%;max-width:30%}.home .feature h2{font-size:1.4rem;font-weight:500;border-bottom:none;padding-bottom:0;color:#3a5169}.home .feature p{color:#4e6e8e}.home .footer{padding:2.5rem;border-top:1px solid #eaecef;text-align:center;color:#4e6e8e}@media (max-width:719px){.home .features{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width:419px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box input{cursor:text;width:10rem;height:2rem;color:#4e6e8e;display:inline-block;border:1px solid #cfd4db;border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;-webkit-transition:all .2s ease;transition:all .2s ease;background:#fff url(/assets/img/search.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#1890ff}.search-box .suggestions{background:#fff;width:20rem;position:absolute;top:2rem;border:1px solid #cfd4db;border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:#5d82a6}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused{background-color:#f3f4f5}.search-box .suggestion.focused a{color:#1890ff}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (-ms-high-contrast:none){.search-box input{height:2rem}}@media (max-width:959px) and (min-width:719px){.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box input{left:1rem}.search-box .suggestions{right:0}}@media (max-width:419px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.sidebar-button{cursor:pointer;display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:719px){.sidebar-button{display:block}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title{display:block;font-size:.9rem;font-family:inherit;cursor:inherit;padding:inherit;line-height:1.4rem;background:transparent;border:none;font-weight:500;color:#2c3e50}.dropdown-wrapper .dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #eee;padding:.45rem 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#1890ff}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #1890ff;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .dropdown-title{font-weight:600;font-size:inherit}.dropdown-wrapper .dropdown-title:hover{color:#1890ff}.dropdown-wrapper .nav-dropdown{-webkit-transition:height .1s ease-out;transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper.open .nav-dropdown,.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper.open:blur{display:none}.dropdown-wrapper .dropdown-title .arrow{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #ccc;border-bottom:0}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;-webkit-box-sizing:border-box;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#fff;padding:.6rem 0;border:1px solid;border-color:#ddd #ddd #ccc;text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#1890ff}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:#2c3e50}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #2a99ff}}.navbar{padding:.7rem 1.5rem;line-height:2.2rem}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:2.2rem;min-width:2.2rem;margin-right:.8rem;vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#2c3e50;position:relative}.navbar .links{padding-left:1.5rem;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:-webkit-box;display:-ms-flexbox;display:flex}.navbar .links .search-box{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;vertical-align:top}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}.navbar .site-name{width:calc(100vw - 9.4rem);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}.page-edit{max-width:940px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-edit{padding:2rem}}@media (max-width:419px){.page-edit{padding:1.5rem}}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#4e6e8e;margin-right:.25rem}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#4e6e8e}.page-edit .last-updated .time{font-weight:400;color:#aaa}@media (max-width:719px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.page-nav{max-width:940px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-nav{padding:2rem}}@media (max-width:419px){.page-nav{padding:1.5rem}}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #eaecef;padding-top:1rem;overflow:auto}.page-nav .next{float:right}.page{padding-bottom:2rem;display:block}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading:not(.clickable){cursor:auto;color:inherit}.sidebar-group.is-sub-group{padding-left:0}.sidebar-group.is-sub-group>.sidebar-heading{font-size:.95em;line-height:1.4;font-weight:400;padding-left:2rem}.sidebar-group.is-sub-group>.sidebar-heading:not(.clickable){opacity:.5}.sidebar-group.is-sub-group>.sidebar-group-items{padding-left:1rem}.sidebar-group.is-sub-group>.sidebar-group-items>li>.sidebar-link{font-size:.95em;border-left:none}.sidebar-group.depth-2>.sidebar-heading{border-left:none}.sidebar-heading{color:#2c3e50;-webkit-transition:color .15s ease;transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;border-left:.25rem solid transparent}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading.clickable.active{font-weight:600;color:#1890ff;border-left-color:#1890ff}.sidebar-heading.clickable:hover{color:#1890ff}.sidebar-group-items{-webkit-transition:height .1s ease-out;transition:height .1s ease-out;font-size:.95em;overflow:hidden}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-size:1em;font-weight:400;display:inline-block;color:#2c3e50;border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}a.sidebar-link:hover{color:#1890ff}a.sidebar-link.active{font-weight:600;color:#1890ff;border-left-color:#1890ff}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #eaecef;padding:.5rem 0 .75rem}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar>.sidebar-links{padding:1.5rem 0}.sidebar>.sidebar-links>li>a.sidebar-link{font-size:1.1em;line-height:1.7;font-weight:700}.sidebar>.sidebar-links>li:not(:first-child){margin-top:.75rem}@media (max-width:719px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar>.sidebar-links{padding:1rem 0}}.alert[data-v-0da1f1dd]{position:absolute;padding:6px 8px;background-color:#f0f2f5;-webkit-box-shadow:0 4px 8px rgba(0,0,0,.15);box-shadow:0 4px 8px rgba(0,0,0,.15);border-radius:4px;margin:0 auto;z-index:999;top:100px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;left:0;right:0}.color[data-v-09dc489b]{margin:0 2px}.color[data-v-4d7d65d2]{border:1px dashed #a0d911;display:inline-block;width:20px;height:20px;cursor:pointer}.badge[data-v-15b7b770]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff}.badge.green[data-v-15b7b770],.badge.tip[data-v-15b7b770],.badge[data-v-15b7b770]{background-color:#42b983}.badge.error[data-v-15b7b770]{background-color:#da5961}.badge.warn[data-v-15b7b770],.badge.warning[data-v-15b7b770],.badge.yellow[data-v-15b7b770]{background-color:#e7c000}.badge+.badge[data-v-15b7b770]{margin-left:5px} \ No newline at end of file diff --git a/assets/img/admin-layout.538ade29.png b/assets/img/admin-layout.538ade29.png new file mode 100644 index 0000000000000000000000000000000000000000..8261bcab5014887dcd492eafa16cb0b90759b915 GIT binary patch literal 36050 zcmd?RWmuG9*Did|FmyN4f;7^CG$JV7-O>%xNR6O`q;!MQ(j{HeEg;>}-5v7{_`G|6 z$Fu+Le;bZthPmUad#!Vw>s;3mqNMN^6O9xN002yBDG3z-K!*Q`kdJ}@e_QUwX@b8& zEMCdK0)X;J^xJoc@XsJ;mAB$R$q@M#{7OJcPEE38=r40TtbXb+``5%CrwUUXtZn5A zc6JWq)?kT;!G8ck#>3+?7>@>kL40s@3Op4f{tAP=GK5je?jN4)9h|@bUfB7?&fXy` zvv_y^X!r1BYiECXWqosd4<=>+qmkR%I|T5aU0vV6fS0i3{2h3s)Utbbu%qq0gToV; znBnr;CM>(`5C+@ch4*m2vbOnmb>jjC+uYiPi5kJKuJ$+9VBBhp2S+eo?Uj@B?WNVV zg=P3`0DO87F$;iB1q8zuRyMFmSSDtc*0=WtMkb3Y8(NWs?Mwk!7#>NFm1rdR>^UEtV#ZXLzkcfy#074F*HsA}p?;q~& z9cXRunqrZ<;#8rbp}C!3g0*(-vn!B4VLd&+3JMN^{iuM6n}o(^-rU0&nV90@6EiZt z-T#@2NzFYwI~)Ezvd5(&EUP^}IYY}MsjaOIi%9YfiIbF+%$tKLDk{w{EaK3EDfm&7IpfvPVZpDb`gI8F!qeH!v#Mqe~cp?`^hqF)S$d)X3T@dyVn?{RM>F)IF5H z33f(A-)8KLq4upiCdI#UJFRg?_2W3~YV%TD|A}=geaOPd?BUYJk@yG<>6H_#pdeb> z{%>`I&{$y*+%c|PR1{Q?kI#=!;J?Sm4~GB$&d>c|S>+`FPy^BuuhcwdcAGG@$R^WZ zv!~O$cd)l@ZPGKjO;$1D?k7UCwl&goBDa+n5pQHh#W*l^$>^cEP;~>eVlxo$666O8 zP7w}@32tj_m(&yqIR^=TSTVt*UuwtM2b;;Ru2qAEq59dE>~?(8d|UndO&bH7W~Y6H zcAuIvo{d`aaFd?=Rczi!UF6TWrcxecM^0Zj_JbM14qzbo;F3M=(+pcq3lc5Y8(M^J zVe@BGcNdFrP^13h!FfP&cCC1az5OwNwH(6SYUsW8(a$T&i4OpvjLU}mzFQ2i7?i{E z!~;n>WGZ|_4|fdsna#hQR4u15vyvclbBi}rH-1<8kpNXK87fYZ2c=YSh;(g1hLmX3 zp;(z@4RdHJ z5G~wqc50cAL|hb}?7i@tym&TgM%i9URXgp?2LijGAAY=nWjOd@K?&tU`WZaYg-S2@ zL<@&Xi&($?xuV%GEE*Vw-8vixWZYI z_J@EBWhG@598>o+L2%z4v7C8x!l2<7z$bhy=eO&O5JU^dQ6suEc?|vVHQqPx%GDNM z`n-A?WBa?4Xuu%=9ylDi{Zm8;2(D>dmXmy|4YaBiVa+OM5uf5EP9P_*5te^`O2PhMbd*aZ6wfF1Ot2 zi^w=lu1UkMA5Gkj8*35?Or@}cNw$UVy)N{nz27dx8Blq`Z4L}+E#`=BK0Z!H*MBXB zmXdN}8ETw1)g`siYvYzvY%XI!X=kUG2(YaEurZ(nX(0LPxk`T^t(*R}y}j+tzN-H2 z9e2}CcBcGK#E*QmZWKgACge<71-7-`9Wj?fp+s^vZU+L#h7aQuD`O@3;34bm=rd#p z9ej23hlr__+Qi~GrTv0-=ry!NNbfHebnCJpSngQ({swbQ_BFK~mQ;)zrRPz~!~Lz^ zh?_rujY1MBtGM2M1sBCI6X*pel;|OW)*A$|QeITY9X zmb`J-m-y?Mp_eq66~jP%iL_LkBzg&4ghF7{D}&y%aXP6l}R&V{hSOBIR&C_FC<95A5Xg#YsVh zo2n&<==axeRb8bL%)veQ7I`Jvh`xhuq)ftlpGEo((Kwhos>}#OQ_u$KTFnd8*q@s+ znC0`Tqi_h|EnU!on!U0=y^jQA(zn{cUJBksPSWI~#@^h$KPx@kPB3WpzB<0@N9b@% zLNHx9UP~}k+3_nDx%a|C#esIBbId&(_tiHZbdpxPR?G21Or$ba>m7w?p@96w=6s;` zp!;*F7e^U|h&-9tha=Ntf)TiGsp&pED#>D%m7@1AUcpAz`eB||#~1lP3xmCHcHWKX z(2&6zcur}ec{b>r>m?p*2EejWil8~@5t4`aXV!F!&`1a6E2}*8YSiKtv^A(kc&wGY zmjNs^DtC`vRI=~%TRF3`!&gwE=fw6C3WvrKu`={}QC|d>u`#S@Zmy8dK$hT_M~rw$ z+-ZG)F!$Ru^|WmY0`gzOH<|~#{N9Z-_;>)tj|5&-R)aoiRPZHm#94iVBsM#O zzR=y5EJ*51DMAus)7R~f-iPHAT-e^C) zQjUgfY9f2gA|3kho?^S`#xp?0cIET93XQis!~_U){~84s(}F^sXGS5))gw} zq(XgY3aJd4H>2Iur$yW{TX2yU6!2==A-_^@@PcSP`B740oX%a6eS`JsJ!+YN7*x6$ z9VdG7DVtVE-H--^Hl@&d<6AX1gN}}luC9(kYSN@SyBF;e?t6~>S`vw zet^7uIo5V?nPPh6UF283^8Jez+hExNAG1@CKOv2nw6)cE^CyzNr2PqlXj@(@D$x38 zQey!{&}fq3C<_>(#W)`!2dzL%)zf`y-Z2yaXaWqn3@L8aa#%yIdMl=5`z#pFX6|F( zx;*vH{l*b9&;^Z928vc&#;CjE9e|Y-gIA89E)$xz>lhkgpZ#rTd zEUhjr*1`OUj43qFO=TG&9)QdhgqTH=?XdQoY{w&5EP zZ@QTbwyoQHBR=1>)2dok{?py!ua z?N%jSKR?==o2#!*`2Qte$C1=fV1wO9fQ`6!bNxw65-~bI(CwqN<3w^39rk`d0tE6E; zcgudT=$trnuKyckicFzE0^0QXa$%9?i|&kmAo?Q8jELuFp{hTBs_^#ol58_pDzelP z1~!t}hpTBC1%dtA`?fRe48`liL_bJTZ=4Q?uB5X2Mm(qb8a6lP^B9KYF!dDiMYeVq zm#{A|E;9N~mm8G2op_yG6TUGuGAhNA>O!B%<{!B}>J8_eK}1GV1;4rKA{W0Q-EQ7` zZnvClh&ZqNS(5+c)eqqNLd4L=gCU8D2`3?mygxo-=~&xhnaj3y@DKD3-AW{O1asZ z4WJ|S2>r1F)DxhJJbb)9#$r; z@oCE16*sYswxe<|?RFEXnT%xVcJ;=qOlovDJ9h60h>=f^401GVX$GAc5_=lx7DTJ`$Q`W@c3$i;3#;x} zBlskmw)&(LVyRU}SLvpVip{$4xnr<3qw?^o9^KSTlp4ZL3gNJt?sv02+#6csTiS!M z$=Vo%Vxz+|{<$5)8T;rD;_-M$T6(i1^4&3M?mW`KkZU72=h0jyh%qvJ&5OvZK>H`odcXNcTTuQ9fSZYcV&!f^$yaAIgr-n z-;R~&%b&Jj9Y0&J*S;a1ZK-wM=ruO43cU5y?L~YuTUakR#AW~oXa0=FvmwEQ+gnXF zXv;PKwD(R-YU?YuyR?qJpwH-4bg^0-26#)a%XMOQ#=7Py-0s>tf*g3i2;l1~&{cHj zY?Rmzv(*5SX3cNeE^mgCW^2fm0`o{k=(ke~SJ&*3+9IG2{kMg}8yeA~VYPA+-_(wk zwWj1WqZ9l%w9IAtJ0VrhT(;=>i2!N}c8I#`i2^i7ei`x7Kk-83c4bn(cMrimVF~>y z@CzitE< ze0rj6!2{x2X-7)Fy=RbIaiwjY z&p<=EP%^jL20)aK`Ak)XuA}@nYMB}yb!9<$L-lhPDkDN^_jHlg!O=apNG^5cq11wz z?$pe|rYtkLG5cIvU;X}G4sfcCaO>`_;sV2r*ZK9;$z%o{*?}LPE#B`t{?$U8zGr^S z2nUB~QCRD#BYTs$PwKWQv)j^(eDKGg5H7`x-JZUFhJ8G3NZ)X&_5B##yQM^qUd+ku z3A<1y$Hujl&1U#s6h=t21{MiYvc2R=pM3XxG{#Blb(c@`FqL>O@5kK(9c8np7ZZgfiX&GYWI-u=k-&InhEMw$hKkvvd()3S0aXF}}Uri*oK9 z`qMpoV*vq$U>H}J&2MI0BRiY%^<2^fKo&V=n=Hkx`@lw^;S!FxxBa>fO(zqT!}ouQ zhec$07p_COEbS05-Kt*OYi%B*92VIAgv*5$yr#3wl-Tx<_K3cRa>@~wE8ElyO*m1o=01SqJBF$oG|4~%)h|R%<+u; zzz~t~R&xB`%h$yhUu*haYna$tlNQ?vi=~KRS52flhJSnto@+d?Z4w0S7j82OkNo-b zXXN)t69i<=Eb0p@u37kSetl-qJ9b0G!X2PlgD*NSO~!lE1ojq)&(__JyL9j=e4BdH zsXjt|XDETS_mt<%LItFw5B84PU!*ELL5pG@8zc}^z#8u~wxVN*ef75>P@qLPU^N$#n*i6LyY z-hsl%4)=NaLMK6FZk1aV1#?!`K@G>AT}+mIm(RDAwV~sPpgRlyZ(!Tv0;~Cf-K>!# zi9v<+fuV>|*Ma&V;zfu|9>hnMCv&r<1`F8`Nol|e5>T?(#&K3Y21Ydxcj@_333F74 zm}iqe{##<{xFttm=74Kju5OG?J}TKSE0}aRq5EP zUK6_IJ06U)B+qFiTZpdeTdbt#{Lv??> zjocmKbJ}K=kz_==^(p-Y&vx}eR-bV;{G*M6+Go3zg2b%!`mx-YJW$_lTzy!>R z3${l0j}o;i3)J}3FQz_k-ATABPP;fvG$1k>u$3SD`pk37ArzVv5y91 z8}WY(7(%Z;f>{qoq+MOj^d(=ZjHZHPk>1hMooU3bdTldqXUm=;WuRAa6#@DPqVr&a zVfyA0mI3xH%-Xc<1pzhG1p>+fOp8Lq5+vo>5oN&(|bKoJ^C%9T*DKbtzTuam>qaiq1C{I8pRyb zyL@wV)o$9}HwJD|xyI3fn)TC)0q`e$(nN_$(^|#fZTf-BFx}R=Vj)pdncAUKE+&5wiuYA~B=#|Kh95jwus-AL*_C)x@#qFEUF@x3}lkSLceNlQRA5V>dOtkDB z5Rxv2^yn?Q-?w2yXnAr=qvF}c{mlVP5`UZIJ*9$x7+w7NJ#KR=M~bnlgUtOrwfx+) z;>`*DrfFK0n1A``5lj8<-80tYsxjlt$JH4QT@ntEFv?4_@KE1>;qza z1`1-;8BzH&%RH|I{PgULr|FjCub|ZM9GXM}>iO-<5(1*uQ&|^T0;3!`s5BSoyssZK z0515UkuLuzKOlQvZHE^n+{l-s#) zi+mv??Jk|^{jI#b-(*j32h;Ho0R?Z2&y-k+!1H4MWfxMc9VEGM#V3KiOhH?8SQZEF zQRrqC8&SjvNiJ+kpFQdZrqDEK#W3}T8d(Xb@wg~~H5{1o20koPs|$tE|;rti8w@@6vL>9F7ZH+mwt(wPL&+Q2nR zmLstGsH(%qUW>}(_<5$jDzh^C3YBBYT)(m=wg-~PR!V+~RwnUt)i9am6I|ZytjL6r zq@>+V=uS`LPy_vRtui%$zReY<^msbrdlq7*);=8Wl$=h8`-mP~KgP=}LgneT_@!J5 zq?m;+(AQzX7Y5ENY|oe53kUpgsB3e;MQ-Ry$t^iiCCO34ry5E`lgOLt)^v`>aldeO z)&g-e9b)BTo?AUj5gcS`<+;-NM7Sl5L#-tb9+;-`m7;@-*8Y$wmUy1n+KrW>s0BJSt+0~w<@*22zXwFBk}!n+c=31biCQFz#eq1@N=Ee=vCRz$y*$XXrPDy zw15Q{yq6|W%R1%j_7zH* zCY#vwt2WIJ*QN|!Lr~vBety23a}s}VDP8sNdFo^~7PC{?udWMFk_e$&Zvf?CR&nAm zI9J@epEW#HDb0KGr-p&UK>?)E5X#(B@RaEFHfH^)of+eW+U4+{=LM|8!{19j3fX&V zLT(UVLjn0rIL|UT7RLAJ+g0AcwA+$)%IKMxjX~uwV*8EeFlJso`)O-@dBx(L3Wp@( zd&Tq%+Qwt2@aC`8P5Qt!ECFT;Whd;q@h)rtB-W z)%}JJyJXgQx*SBbr_XDF&L}P7+}YvC=&0f!pOk&&Z^Z8D`uGhdQ%E|{M(R7uWkRDg!)d#8J5x- z8v34>$)}E#@+VVCdNjgmSdiyML&NX_9&SNV(LiYlo9z%jnJfB{D%jq<5CgJ_YxK(< zwtfQ4i8Zzq!DgCz>SfRcwvPX^aN>Zwr6#Gx zs3xLF`6$C(`##ON?(1fLQOd(@_DyV_}y!(Al7!8%JDTXb1Z3c^yL^M(6Y zU>*zsSU-M(cw>rnfZ#?8065iP2?}_{2LMJGTDzlw5J2=Mt~3)J2LQf*amSzVf+XVm zbbNt3nf}x*pWn&VFiaR;SkRBR)uyFX{f0t@?!bidQ zaGlg+TL22j45G&{3>99-9<4(L>(v6GEAXBq1Uhk+#1TC;6o|Kk zbUOtfNJr(Je)|^ARwnkuU2$xr?I1+jY8(V_h14)8k$MV(PpzI?Mo;M z$oJeq1imAQnue)%r|l4oA&e5Z;;|<&9HV$HXXzOc^I1H7Lt7*GL^CnE^1aNo^UHM+ z>JpES3PbNa%~;U!ltb@ntqNsYN&41T50{hexgJovV+r8>9(|s zDAMRzTZzQW1-bORg@6Dt)8jfx^r*|ot-1DOx!rVyH|Ao+;qOXpjT67V=uK5&uv91S zwyN@1V0xLzrtzD(ny5=AU0OW*rqd!$Y+)l-CoTf=Hm#L8@hF8&Okrh_0}fJv7!Nv! z8a`v*=t9zznFT|xmY3$=G#$mfw4p8%t#L~Hv0fWUN_)wulTPvcJA4mh?nVm_F=}w? z-=OFIU&g-PA@~R4tF15FzUsy7m=3fP;EDL})h zmv)%MBS#aepg~ub6BbTElkwX~wmRvs@zn4;GsqS;ct&M=Ms%tAi1!DF<9_!w5(OE8F zvBl;dIAMO5Sl3$NGXV8}`E}fGTl;m!=gJF9HBt(}PA#am%hg~hcN;$m;Ut?)pgaaRdVU1T*E(W@L|IX-o$%*V^p(nt~|r3Z8aK!Lj0O5L2Q zta-teW`!>iy*@6xfPA1j$YW#g{EkHsdtH$NJ%7pJ5h+HeM+YnPAJ|rXwV=?g54rhp z7ed59m>ENNkfQx`-yA(k^sPvWE7yj{gRfJ!mZ5S)IIx<%AkQ0npZaC~ihyc^Ff(La zh_gMclHMFz-6>kYsh8>Wq^to#((T>Wg@wOD5M#m3{o1vgew1E`p^(BzMzyzXC}kG% z;|a+`fm;1C2s2p>?!90P7O@B_dhKxHcNAgMswh%Bz)El2Y>cO1I}ewfuxR@(tBFjn zvZ|1vM2gsx_0WL?+s34K3S8I+%l(OI?i^wIZ&M3aiw90D5>xb%d$u4n&f%Hu)Nq%B z0vm~F^1Y;q%!LpWqqv16qrg;d`uFrCZ9)bUYa}y_E@!b=OsdZ{Zn|E$6^2(P-}ITY zg1b`$W#tk4zc|My1r{Ta?i`ZZXSw}g9r14a8kS@PU*n<EIXh;pUXP$0$0YXsMcf++!W!lT$fHYvJH8w~ zoRUZa9D*L9@&U#lp!xwaA0CuODKG*-dw_5}ICek0!(abd#^WpX<5glE=!d-j0>cBA zKUyWuBgz|{q2ahb;`l=t`A=VjdZ*v6hBQL}{)aBUYeBsxY{NuUU>A|bzNcNJ|2g=? zTjR7%1#}+^=j{MBGa@6Ve{YXWxX3fm@nbu7;M@0LvbfvRwZsHzus0gKS12Q)(JvFx z+cxa1NUGb5P)_#y3v4{H2Nw?(2aVGICic4>svPMly{B6@^gXjxWO|4*%E^G??U5`z zNbF58eGwV54iD{Ws^R|E$o%r-!b`Sz2fRt=WH_0Z^0zuU~rB=4(*3 zJg#6cDab&mM59!_@Qj$f;Osl(jB=txbH^;7{c%Y(egMQmC~thuW)gkx#tTgbrp9G8 z*?&YvQaE$|)bQEjS)1ZK+KMK9SmiQnyvz@KR_3u0`?2BfMx-R6qJ2DGq2gYS1A?Ry%o%ZYh8Crj+64mT4i1B?K;*?ouPw{#5r zI7{g2N}QH8(LB@S8;Ptt$MBhRQ7>L>)2kP7+uf!!M}AmmqZg=$G@MITXVo^91J%rMF;ifIo#s-i;3`;cF~`KM6xDCo#l&j4{)!-zd}6zwfO@t^O~7Ex0zS)=2!LD zaH_^mFG~}nSp9otzuhWdWNtUXTjpy|B!`sE9%wDYiM%_|*WqR&saSGq?YhjWG! z6+Be^EYr)XwYs}WTd~;{_tB=3A;E;p@YzW;|KCCd=%zgMK!_~-_6ypf_M>}iKv5&_ z4v|NC{8~s({`$eFAG(HG5>OW-{BN)J>!TMzeBc(b^sU`^Tq=_iRJX8u<$*}wguw2>&dU&oCSN?^o%@G(8U{wU;+u$@h`u)*}@T=J^vqiYsdEH*-F4_|Tg zdZl~q*D;*`?%p_mRw`{CWIZ)vAHU`qZ}6FTrr4Xg-{BFu=Sc7DW~!_Lp0yJ1U;VPU ztqm%xh4f%0xMD|OW4U2r#q&?SxW&iBa_dMoF4x*s%r5CQF3uS)_j+T;`Y_%lqDu#S zx_iU~pvCck_%;)-$WRR|=kv?HoWw@X?)y>nbOG+f!teR{>3Mx~b5FPL<>8;&+V)u~ zA6CN={ghbIvkHnTB%T;M@ZFBRzP3Zz`DZtR@ z%tn`T0k5Y%2c08nkENJ`*|`kgY<}KM-P>vLQ&#^n$L#Yb$fR~ckIRsI9huv5UAcIF zPSt!BbaT*r<9qz)CMdHp+t3)iI(VLpAJe;Q=^m5SpPJfNI!${lVLuC^eY})sh9a>Fu!4~=K19Qj8F!_#rP*7?BX zq^HbcLA4pKE(~xz0s!oDVZp$TG(b*!wEqT$4GlMQ19BEMTG!3ypU@oh13$I>c~Q{& z;#B`Sf(fqJJvtiFZ({Z@ zl#P9<6Y!$x!{JRS=${YP)xOB@pFWU3xWYj#R)DSKm(2h3{4eMCSN|HuAp{e={Ya@< znA2M}ZmKGRM(__QtI?ExAgC3x?@hfA5&2JxmN-i-^J~edZ+?U4dot0h2cGrlfeHwCpma={ z)+Hn1M;Z%{8>Nlczl9KkAEQbuGwxFEr7=xw_kV7XNC9?A8$T?LU!neo)E1F~MtOgW z23I!yQ%P`yk-`{o4|l1W;if|VI2h_55GgMZ>@cse>hL3)(u0Q+GqjpIdH>i+RTI&k z=|+F#C%Oz`OyG%(yYs>fO0t_nGHjv4aO`gJ_sUJRB4Qt<*!i^y438;kkDd-!?4}Fb zKr{l&9;3A*H*IDjCgLt?atj>)A>R_ zotAt^&k1dSkPXT5)eADj36Wow5f$go>J&r^#yKK0)W~ia4Z+K z>rz&!?^zr20rTZd!o<~44*R_OVgeD9SUQFERQrh+>GjkfR+H|J`yuhls!m+}6*el` z?@W%%#e!Fhx5J$=r1q;to|{6nWB1S9 zU1M!8uZyLnKbD03$3hwPffNhE3);HeBDD>1@^JAIjz(yRc&N>X{P3cE)8S{YmZfeB zl(S)0aj3RrU?8tmY-m%twIY$A&POGsD?E?CIzTDG6zAR<6wI9?Hdv$1=x^+!avPaQ+qDsgS7U zW*KaT{HT7_$bBRuk%kUXT+BWBB#Fx5N$bF=?H-Atp46AVG#PcMslGx^YBudA*zaJ< zV2${*PrB-n+|;^aHG;r;G0Z3(ZWOFGJ3q^d%A5MGKP7G2D>fv#VJQ4LE-Hxp&rD?` zK=hpMm-l=7{%D6kJI6usco)+R7l*r1ZKG*@KLzK&i0 z#<}9OUn(nli#$yuqs*pF95%um?Ce1T3T3JdgU^3`dh!tX%jzLL<{0tC@3eoG3chfq z9Zqhz`t~ZF7%_36!V8N>;it&>zE%Ji94i18Ehsu$fE3YySwrZ#9FIJYn{s#g`YY#v zq_vA(x3U7V6yAhA-pT?ywHAY2o3wFghZz%M@OyDO!QSF+l2pkD-Y?b*Vc8F{^wjVh>C8-%0(y1Qz&5or66<3rLS40{Z_;?H}>c z0QCJa68tv{rY1$~VS15V`x4XVbpeLAX3nu~S3xX!-fydyk0!;8W0WfMTG=sGrZBcQ zd@Ns$Ic+ePR#EMPOiFlYXya*uxF_irU_8c)aMU7d$9ib2qRXRjf? z>eqe48o`y4*RNPmp0elG&?ZJX;1>Rc+jZzPEb=1EJ^5w$o5H`bieaZ#Rt;NyTLh~F z0%`s+ln=`aR}FbT;(?q<5gBk`)5F?T2Jbtz=u=-4o13#?@H4o)XPymyoyA4M!~8Z< zK4+D}EG=z?9uJGc-w82CI8-u6?FTCn9Uk?Aw%|-Jra*gD+D+qFag^a-*UxFo#ZRtp z{wk+;pL~0hE2&-}P@qyB?VWXp@%xuO{P@56Mlu2`Nm+G@JB`#WAM_2lHbs=#@7HK6 zk!Nkx$7%aB5#xM$c{v1R=a%PeZEbFD-N%IL_{J!xsOYCN9ja0RS4t64=(wo{)4!=~ z5M)kp*>fgndkno(_Iw)@5h;inzVW6@9x1>|tSlU3hexCE4WE#47MNTURU;3l<~yXP z(`qpA+tUDTvLKQFjDXt4RRv~M+wrb+C|1W{Md%{6tV%}3f@|bCNJ*-D|!P+|e3pL99*^m}Qp&i$~XC3-J?AeT#SCYwks(kl* z-q}`Xg$-u}Ua~wj6rT|P+&^vBAFe$*zi?&t*=t@!$o}(Dj!%F(T8el#lQ$&)MS`1~ z4r2PA*Fv97b-P*G%F0UG-`A1azunHteT3W12V=DxzSH|J$LeHU+5TI__Hod0BQ;8+ z2EABZlOhSFCe{U0Dy`eAG8b2Vax4M*KO^I2%BcQ!o64Aq8On3Ftfn=y*so?u8Uq+*00b%`B4|Zuta->K^SNh(oDqUUK(RT4T%!_r@n! zgntsSdacFV8&Nc0Qg^lDwCibQl;! z@yHX}JbF_1uOdE#aj5Y*%1mU72sw7qBF4iLMB(dt*2g_U8I2lW#-#H~dTw z@469DQ0{IAA9f}x0le_f^vBdp3dxoM%wukf_;K?sTPwnI`DM$!!&4BKu7b$l{-m}! zr)XTol9O3KCv;&UUkmuRJe*X&^tp@vt!a3_f#kjOsH(O`GqUt?<&sQCw1piX&yCDb zlQSRVE=A{?sj5`C4Zr?nPuVI$*I?NIC->qISlBcG|q4pa6IB+rkMb;EkL z4He#j&@Zo*!r!#K%G@M?JU&3#Y~ifFChdv$##O~q8rMrqAw72dBjpZ9S!`rqe#O;n z{7j3Zn(MeGx$z2Zwqao?DegPYTza9e7-H}s$!DJiGyNP0EARTfOq zNm+kwW0O@1gkrfuvWkU*f$%kZ{=O>du-zHOpVVRx@ey41?7Z91SjP$=aR@UKu|DToIfXgcKUR3*WBzFl=d{xRfUV|7C*BgkMmyXjq)4a z_a2}x4mIXId12FWYedwzaP8t>D^59aq#RlK18J|n;+lky*DSF2qh}cV{XLS0-}RSgHs6-Tpd^xncVG0J&ovBUZ+1t zJCv*4VK;!Tb-j)WVvLDdWrHK}qXDx&FPSa~0pQ-wr;KHa%dL;gR}j69w?ym^281uX z@RY`aL;fShiBEW2|D+Tst>tr`&2DO_Afj${wTM@RGObCD{^2pscm_dvOv~*tz5}wQ zMY`^b(<4Q(-+!iAOcV<`=Q44C;?t*^*n)x5T@huGx~Gl63IlNh5E=#F`T&3E@a^V_ z(Z;siq~Ug>YJcopD3Aq6yA+`mwt+{#_W=-ZxvhOv^}YYI)=T)7pR9rbOdmM8d~hry zPyXM^+qg!`_R3$U*4C#naF(Wj&K>Jr=&^Hwepaq^=`D6rfFYM< zuKPeUwanej%j%xb?{lHRddt?#aPVB>+#&;3eV`OYBR!NTEMghNjGvGTwV;n_G49Bz z6>DCoI1VU2uWFR;eF_#~PAu70ZWVb+Dd3K)T#*uha%gI=ETjC!mwt;;TMd(Z=sRD$0?l10#KsT%}rC_p_$F2e_}uoF6_{} zCql(}bi@8ZYE&0(ih;&{YD-zG_&l=Vw@}SKXVt#SK5_K2DJe6-Nzs)6VOHs@ z&@PE+!?*o1HBWM&<3HI`VcQi4-+m;`&Qo#v8z=*RwvJgZRShIkPf>6w zVs8Q9-(GIV9e)58AOD{jfi21pqoX{Y!9s-9A2j%8R3y9rvufY_n0KnL>Pt2h?KDb8 z5|v%3RFmVrcILWNIiLyAt3ByJ4Fez8IP0Yh$WvPn%}` z-{gBjEAaX{yXNLPkW~Ng$^RW^Ih$~>1`t(Z*=}Ryq<0j+M6we08$Eq=P`b#1y%QEDW*l8Ka$au<+}E|@fy8LKi(cBS zx&?r*S3%?IrS+%h7h52V3i9ZwyqDWBeogBz+d9si)cLnJsM-Q;Ix?O}x_^|3B%pFe zV2P(f@bXAi8aK9(MYV{N-5m!N5a~ubq`MowjrZ?&TG!K_8X2!4%~7&pNG?UppmkJYW!?R^QbO~GNU5(a5J8|&1C!iu-x+g zlJWpkg>Rm+o|DV@`FDYj;p)4Q<-NU*L~jCdAJ@GaOl$k32Gbx3C&a*)dI5ANy0pM1 zHNKJDjbPRp)Msn>$x1#^KHm9w?dp_dbX9AqG&b_1Y&6z8%O8)(b-)5HA4x@)fd?Z7 zuX7G|e;Bj8@n7KVD=dt6qk&{+QYPKMAydE93{rk5chLpbkPTpPdbb->C4IPCo}{2z z@SJgyO8tx4@My3Rz@kn=Wr@|&_21fB<+rP$0ahyE#rIMPOlXWr3xz9c*YKFI2 zJt}w)R`0RmdW225*O2R!X*^2c8TG&$pT5t`8E#9=z~>a|su-`?Uak|QZxYrL#am_e zmbZ5QIeXW#Tzr?Yx(^mLS@s?>PRg)zp~XI#D%=?Y&M?Wnj&gPNN{shr0wqAz@u1p< zvl5Y*0!nUK#9sq0CWVLs(4ZnCiqv~Z?jnczt15v=r-pTp^A@1XnqaEz;p zm-t?tF@M-QpmkjVt{XD)LXMTE0=EoLC2NVN*SYU*A?r%zO97a8(HgWwUlsbyfxPIa z>7$Ftt^nXMGXAUs;(Pp9_~f*WrzeT`%Y%CO=X$)dCv{IC7s=X|P2%yk6L-$(87smb zjTcrMY|%zqZr&qMuYM~`U|i>Dq(O#D3|4OwB75k8wB|L&mAvOwB8#w@hY~0c zaw+NG@QxZTCkj{$F$XnEJyu^g<`MC2eDUP2idjv8Pe&FQpghuc|H788DmcR>n#+V| zT6d1IG+bRpsGH=5^SZ&0IeEY-<3cWx{)ev4hdy1)b}a7>wqNM<&5rkCh>UktGg8#L zl;7(j7cEi}Wc)Ck_-RS}J-ScNlP%{TQ6X(jk%m()5^^*ZT7jHoGoRCofrM#;`sc-x zR;F3613zCV4F`$TAAf5msycNGKqtv4z}*$N5fqOr-pLHqdSFXwy{)Qy9yIT`D!%|V#;*LC` zLS=HBe0B?+zS4|x?6_l>Hp|-(6^M=pzILNnRqZ;u5N>`fcWjXRe}l*VPdwfH{Ezec z_jzL+Y-N4P)l>N2+5AW<643%Ka|trJ_&yyK+V< z1CZ2=>+sY>8kRv~oz5P5&@`!^Vjg^fcgy{utD}%{ciSORG&6j82Fpw`^Ps6eF|}si@;`J@(&cw<)+LTj-GZ2Zya5{^9PAV zjLxaFbd(N@jBWY2c!xJw?jz;gd(5n!>}MEIivdjC;HU3CF8rQ677aKpTI(vSW*}O@ zlNC=%p(#ru7o|W=&IBEhFB-aI?VcDy7!ne)$oe0y>%I`$t?==gF;uLTHl1AF@YfUe z=$7!I63Vj`77h0%6&A|1MJbmOWq(@UBI|GMI$9{{DP6f_bgxH66 z?Kh78BEFY{U&&=~oR@aDW2kok(z~fp$#U^Db>*BLyWp8FagNW6Oyw>|Sdn=fcK}$X zsMIPO^~VG}PZkFYc2cKbIP-79lo-W97gKI*$Gg2PjHSfJ^ejdag;u@x*QzYfj(-Pn4lLx9#B+YoQJVem-hzC?J*Bm+k{~1eMqDW0pyqgGf54tU~O%YnB@l?)?lzC z#7=yx1@{s7AbGY0`7BP1`TWI{0GBA&i~!fr;+!S4(p5L-Jo~B4>d?Qqt)du7s^4oU zya?&pgDUln6kXySnP;oqj*c+^j-({f8=_Zg_%@Qt6Co5t4R>AR`QT4XXOb``Uf z)FDUA)`wpSzP9D17+k_Z3emM!J7y7^3s*@6R@vBN3OWD)NZ~5OX|)1X9CRI1(ITCD zuqBy7Xc>QT!`RtDWV%Cn7GnC1pF7|d#>62oo+N%!(G7?f${M**-u!#mesdT*QLdw2 zRQOQg;SuBy9<%JvoZ$aQHP$W0{E@)@pD>~k=N}-aFKRgJwH`rHRG}65+Q)k5IPi~^ zagdKB?BOD?RLS<#bTZ#Rdl-kQD; zT;ehM=IecuCRpWqk>>!NB3bxsa*He=|4WOoZC!k(QkSxCZ|}qK9$3M2)H7L@l;DS; z`W&-7q@}<2yN8SxU}em-ZiK_Rshlmyy81O&LgAt#GZfpkLr?PQ??mV)9r$Ck*3Gyi zqLX%;$!6D$R&_$O8oTLcHrizzvFEmU3VO8nxmU;%n+^!)syU(9gWuPi^Zp|aX9n@S z&i$ADjGbdmA*uU#1|OfM*rd;rC619Yi7(6tAv62f%|4Zp*{uuQ`uOU1DFuE;I$%I9 zMBFWQA7VExw?Ef<4=PMf2W6LmV@ygA`lW|LiLPbJZwOhaQ+3<@Yo+wm! z$*O#+7@ZiRY&-2`wX;#ublgtC4r!*92tPlLIf-OX00NOm0w=*kqW&;msF=GMdM?se zKCyEX9HKioFvOTCfkR{~>tupFe8KiUr7P{s6!WbmyN5u*;%qg7mr(g!tx`y@Fo>VL zHPu@onHyaq&QQK!`$IQgjUgSrb=*Vm7wHVsgHL`zcPOY?HI9Z(RrB0$MLE^Y08aks zn4KHqwZi7zwv=qk{lL zw!B`JZwU}__+w-;B7Hd83X`~#!4%ssX*Cv!E zV%czhK7(_SFQf!uiL)ylO%i>#$`f-Jr_aSy4{zIdE8=s>cW>e)b=!1ZbBG;CCRO%t zo}0-SeXA>0m*3Su#y1v+DxlxVc+mLy;EwV4IC8>E|>2*5FZjR+tIKWx{L2 z=03y__QDv19fXYm~OgS6}BtIm27pZ3m@e8L#kf|pPp8Bp)WeFpbJ5kF&R zXlv`PAS(T!{YZq3jiaQlu8xz;)ZfrhSJ%r+L4mxP$(R`3p~U6~m(rcNE8JvIZ!z9c zyhF|IB7e8M(Q$dZlyYCZ17)Lsc(~tvsRg%XV`GD&eATCY z#O8=-ZlDd5vz0@oml=UiuMCE8dBd_|eXa)zVc|pCT*&C3SRg-0G*wm?>Yog}?6wqz zKEvb)k8I%F7gB|ba77k7zcCO6o1`Fj0@G*dKfW~ip?aG|L$S4I`xp?PUAATfkZVc7 z-BJOVYb&0;Fm!Z~96BJGQ~jx2sa6^p3Vl|lw*>uF$qV}ybh9daLh}je2w^1&Y+Ya> zk5sqhN$JZ-`0N+=I>0JcRCGR$^VoawnS?mi6~$xoR~WR2bQqXc1S>6iJ*Q%RAFP#Y z1&vc+XcOOZh~h?n$}>kV9?W@IK8&37fF~e{P%*n#DYmcVtG~-JKXO*zFV2Ty0w}B2 zg~+7y=3MFzaP1PzW#m1+J^^vD`av{E4AtU8vR6=O73or;kXITpfC0+J!sp&$CJcu! zzv#t_nxZi|=iPlp)QDcbm`z(r>0R;hi}thJ`GD^uzd=L-L!2pQl3W^m04!_3oLn44@P1W0sstvbQ4IFvN;c z+Chh@vP6>c6NVdh7Iimg7B4mP5<%EGbxvUx0GBDvW&E{_2WP z4C3TC(GoM^y4a6~P8X3GT>0YoHGy$VI!0{F7fepDUOFZ`=V)OPNi!NCo>XG?A(}Ig zNQnaCbS0pbiHsFiTotG<_vKb)+;fTvP0*i3po zE8~Q~_#=kP^5$G$GwoUw6ORYG(BK8gzhd29X>qV6J^VoywXyTLl+r7i2Ll< zxc`GCC-k(M2pR^hv32JutCvA%6h~pgcqe%mIaC)C)>0Ga2Q5fT2e-yc*RQ$Obd$^p zA#2J*4?`u%*keh)E!~IIcYOcmXkLbY?as=<6Hs2g_Xf+CD3v#U#6dR?Z#N-{xgtK6 z&$^jJWh+A)U(ZB>H>H`R8hat*(nlc}mG0f489|0Ml&mk)Y#SDG>4~mF=@Of8hYTny zCDcxZz9qumQlk}a>0uzt!=_VWzyO&s42RsZC@S(77ir|>mhWHP=^!Tr-L;qlR74^? zt=SffXs$IeQKdp3q&~=zwb{P%5WjStYgU17y6SQFaUck`26z~f*2I&R@u4mn2AN&S zk2iiG`@{Ryst2W0aC^-f-y@|iV1G88ERTi!Wu53R)xdDC0)8Xx{F1{gYk1H$Oqdn zroO>@cgu&-zJuw{h<2fxZq=5~Lf^RBqZ|7jKa&Z$9h9h=hRKnU!04>J4}_?L@m#6A zTSfe)pA77FNG8`gWzDm^PkulvV?^R!JpNQ=iqA{n5T)KrE!i~ACu61jkA92Ig61Jl=D#F(>8Qmi@^=8P&$o6 ze`GUXfOz?&`RxwF?qC39ssT2!eX)er`;;1x@e1cMA>MQ3}*fX?yzi4eSGcqo)$v#Arw5KPMJ|8FoW%26(Pc z6R~B18?N6COZlcDUi)~*i!|6~(|)Jn;;~LA>kP7b;yo;uT+#w+A>?%?`0}vp&x4Hn zaJ>CKX)15NZ?3fmD_E4<5&+d!djYk^WWCdwJnr1*Phjhqa~5qU(_jzjKpMw%uag7N zaV|%~c_C+Bci^qnxZUI-4z#s3$0(*ZNjK3DsT4pcdAjym7U;~x=$vBHDT`ldd5+P`?=;&SK|Cq&d_3P|^G zEC!s_Hvyus=9jz>sVn6E&A!ul2y1=l+q(sM?d|(*T?a@JBV$}$CCJWZeD6)BpwJ^R zi0GrPL5OFZP4sBHn)5qdU&FlF;_SjbI{~FcqxPI-=$0WMpCk>aia{t}vWkB7 z>qq9-7M%7~J3O%{v02nWL;R5c7(wIllP9AYs_oU#)K||=YSg*Z4@Ab#*3N5o8l^3; zwD_FQ84lp~dlMPNxrcL13R-O=kv5d9$I$N6nKS4P_bqF$*y6Dvhs_$Z0dT{6#6>1^>wR_c% z$DuINuh*GYVgcu=K#wi!XAP)}F@RNL*P>5d_QRPVj%Lv((y8Nmv>P=kq2>Me=!8K4#7VPrzDax^1}hbRt7N1hsTd zZBO9!bX#}8m2$aO6V>3EC^h6;G7-W%c=xR)yMZRgTvPF-LE8{h4OFTKZFd6=&EeAn`m>M~(Md6Q zRM@qX{&nSi@SUd!G-;fvqt_CQ`(}0@-x0y>(ra5kM0+-QateQJ^>L$1gab zVaw4iWl}{Uwn>Bd#3$^ryXxep&}2{@BdB{i*x*LfbswJF3Pf(DKCXRMPUAcaC~eKu zm2A#bnGo}lZ*EZ4x~Kr&UEq-y8M%ub-);Sb4C4#RY$}&rB;i#AfBU73158J6ex*j7fIu&uaWcw za@gali})-uLeG*0TVj!3v;b*4Y|W;t+X9%|q2cG48FlY<$X4atJ`2Cx^ipwCO&Ayq z*{(k}z%6=_jzo~IDN0wnb9NT<@lf@nzd?w;!v!@&iVf8vLs&3fSP6KNQH_)+b}p*w!>}E zQCGxu{S`bggCU_jw)F6iEvy=5ufjhOaLeQZ=)Sw9FAI`Ri0MB zoEN2#AW{Zw0ZCN(jkW_!>Mw3hsDcXzF#;)G5KS9+qKLLj!9k8N*>(eO^hM!J$dtcm z9(z0n_00p)TIz2keSK}9Z4?5KQBi0pIaUV0KjO1(2`l`p11N~!j)g=*UIB#Sb0cWG z_ewb7?d&SJje)lpa4_cL7M$U~@Q~jDP@}qL4rVxML9N#}0D44*C?OJuhVs$DrTNjc z8Q@I`$F4`~BU8jrF3xKo5`stL-P^5)@?U46?G7I3OS-^mh|uprkee3(KPST!nob&x zdvJs^@-79~^rv_v?ZLbmQY_;UwDV#@aZU)>ca@beC!92@pVnEh@R;9l_8LNY4}K4h zjL+W=VZ95H#y!PGqYTXT^8H{4MTcs48X8}IdG0PmDJdC=nlt?v2;i7z3PCP?8E~-v zSaJaZDLi*f*C$UQZ}3=!APz`7o}zL%KDHTt4p14|dyZ1Nm2@O8I+EL0G)!-67fu(o zw9X&iaTG+qw>!vAUD=dn`mCY6Pe_4^1Yy|R-QPL3xAAOEZcSlga%kk_+F5I%l=oIEgMq^NvtC4z6gTdXi^WMqVwHk3Y< zZny_ZiG_@yqXXA4w{hIM_M1B<@~&sR_{9!8E9+4L+V0+Toi?kRFGKCbj*9}vlulyv zfy?>c;g_Lw?<3s_vG2v6RJb`~zBcjVR3MLwgL}XXK?a~6 z9;?VNPo~mc>T@hEJUoTp|?VJxYE2TgdnT`W!99#hY}r!Q$vf^oXS8 zr>KkX#u^CS%GqPpFM3f+PW+CqH?J;!%9d!^FOO2?SR6O!Txp~94{WD?&^Jm?*{ePv z`_Fh*jc^3(YpUy4Uh#!L6%X;wZMaxda6dV+RCf1o_&U>EUhlQi3!b9VFr5hO@HY)9 zpKo=*;OC@UsUOnPn5PpY0mz&p?p*T;k_$Fib?!Mq73tPDUFf~@An0T{wewBzIg|PLC@HWD##@n-~WnP=Ozpi|Nbvi)~fWR?ICy>Wm z;#~!sl+!#?dpAc7d#;zdH>a6?RuvWf?6B6`U`eanJYQcwJY4S{b+XBAZKxb=s`hbi zZ{k@L(IkE4INmfaA(_w2zI)V^bd!2XL@Ks+|=;9DnSr&}%pAi9cl0 zvtSCDaCd)J%<6OJK(LW7VI`$bl7NeP=a+9^Y(*@NWMtMw>ryhcg^fsQUw@3Vq=#=seh^scKd)zU8=7~kQ5H3D_1MIj zxvpE2}~tsB4d>FRp)1ZncH1JDE9;pV$GpeSVRbSi$Q86Vn}6#~|(i==a=%nBc(fYn0!p z1qF!iLGHr=aS-Yt$nbNVd-56JUAM@0yNqPO-vGWi6de>Qcv+Joxcrb*bxvw1G|J{ zyaNbtXZnv0Syx`VlNgo@ZAE_K<4=u54VhfK2g-i}JLBuxk(Y>FjkLe!PcG?s9^8{Y zs>qLiQ5{3+^0QN}HDe-t7BxiT0OBF2&dJ7`TV;2rr&6wenHM${TBMB#;kp<5&usks za2>}sJ)Kz5x}9q1UhJ_W>e>LxC4+eb>>@jsGmG~ zSnAI<2kui667glKUw8C)F)%Jy>TlV)xW~(n4nBPhT}{*9_Zm%z-^TN_pRu>+Fr+xD z^p5Wpcs;ds4)BvEp3N;^F->1>I~SzAzCH@xZfG5k6=Gpwi8QIeTz?5>;Ye&Fa&ARE z7a*VE1!y%i)WpY|H#BI;L08|}`u4ZD6gNHhYBxFQRq{?#DlQV5c3#nJN*n)~e5IT~ zO3lG)nl6~qVKEWjmg3gHMN+{9Cd(nhHqexr^N|wsg!pW+(~-fvRy1dv4s)oBkU5iyp}mb$b*mycQ2_Nm z+1x~GXJ>F+Tt{rI`)C+7l8eyJ6wMaT6=N+@u5j-u?m-U41! zU3zIBw~J(>POf#`-ES60wzEcZ3dTx=MD&y=C!+>P$fO(G&7FLGo!TdRO>UJQFBKro z&Y{^Lnmas{*h5~`!4ph*3Z$kntxU~iRanPb>nVfNV{Y%&xZS~LQ65D~LM`S;seeS7 z4y|wE8XDpGCZ?u-4Xz(f9W|VsP$L}{f2$F8qleq|{g7rkHa=dP zFtS5AT4w9>NR4zZC@abuxxkW_*JJ5;N%Z#XmcEW-{9)AXGMPKrgdP>5P)SBkA+Nfb zj|o4laksPconCZJX;^a<>Sc5F7M^xbKR)q}99in8bhAGTjJZ_<<0Atw(7R^x0z}e2 zd;+Tb4BRI~rVF~n+<9wF#-_)#n8d*M0PLKM_Z2NeS05g~abh3?5PP_De7LoQ-Cs7( z_j{7NDk_x2i;)){@ak5ow?z&6iB@*KG+%WoYnmf2Zcw!vZHRo`Srly@6$@Q5HwrgQKIzI#(mJ2oKrz;&@R zJo(T|Cbx=eDT2Pv6t@gSr=z9f;6^dK3!yJUU%G`Xp3Y*wy2TQo?F&eK>P3-*U_`7N zZcXw9sH5wg@F@anKxGkfiTYon5#a++Qy9fT_yQG>@D`eW zoCE>&7JtF~C3so92ko6A=YIiwI#7mx^#A+*Tet<`AMf4?68Oj8ff*d%|6X7QNA!mf zd1%CWTk-$#rBym0rWo)4TcJ_py62g*Zlo9Prrqjv5fSck?fz=Xq_L<8t~r> z{o-Gf0*>z&<-g|dZ>sbY8FYsJW{t$D(B3hq{Imbxs`sZgbQ1fQwFJkP@~`>(`}`&w zgI443O1lV@BmZ`u{$>sTD)jAtS{dl5@G)rN*gc!&qechp15i9oXo;D31mzH~DK$Z+#r z*<$a7fS3C4d_s6!fLsF__Xu=SqB$&Nl~DUDF3{qf$IIUsIYCbwA(h%bgBPGVVU!gO z4+cc-0bB3@M61*YK-3>Jg|6YhEz`_6@aPsSf3N@DY~=ricldv?WB;~G|1qV1g}VP- z`Wrg_uUO&F@Zm2g2LSGxy;fq=@3E*>eIQBfIg)QERaQyzwr=oo`7U6c(L5xG&8}5N@CD zv4aNwzd!S)1`p?6vN3KdfOm=u1tPP)UausBG0UI9(M;xlhui_@JUmANv&fBiA-`jw z2Tng4BX^0LiT-dI>`A!b^gi^zL$+^wRcAH_-{M#T7Z>T(>&wc@`nujmtd-E*y-Pzw z+32+JZMh;K?~_hRjl1zd(Dh!s9;#RRl9BJ%)!B$kj$-}0V`BE(L=o6&a}<&1n7<9H z)#yr}e|Tj;Qxr9ex4I*6z>-0qwe#?M4J8=g;pbifX)s^;=c^k$eh&?+qSbx69)l1E zlA@LGo3m>8;p!T*OLu0SZl|d64dj;)E>s2xsK=Na&Qs5651)OcLV%bF2!KFC1+hU1 zq2IHDYs8xtw875gu2a$;@dhj(!^tnij$-0m9=4b*4d+dntC%pY#t|h4hGpi*lxx*I zl=my?0*N%1MnoUvc1WjTor+(}+wv>j)|JgvrMzPI1y1r$|V^7T1|s8T!s94nmpBPo_$U5Y=;(^Q~JE<9068Y*(_Y{(dR$ zSoqs3{PvLiFf(_iT1rYI>_!--7%hH(DXOC){9s_tQh-V+XGN0Y+&lX!04pwiNv`d) z@7c>U{WsR(cc&Msg1RhxXMmXpkwqhg9|xm{Tjn++ReoHf<_)xE%rRkt-XuCD8=THp zaY!OuMQIZjs^~d)lxYl`@`0VM|kx8(P*pH?Km#lqGKLu5nDlAC9 z&MUy;2EK&r(2CguvyWaeGKaxBH3{~*@~;z?uc{;7XPc44K7|~WX!={lF=&*ZD&>5R z**oeAQ>Gz38e=XDz2#VqZ-8?HiTiwB!?9}e%3UbT)K$48*0Ecu?(9KVqIGS9rm-U) zGC5~gA3PJ(mMRXnoq3c8D$0B(h$A{at4$ueC7(A!E~_^ywEJYLUlzbF$|prMb#~_0 z6r^&U7Iek6HL{r4WqH%R1Sd8Jb9CBZvU|0#^!GwGgOS(S?xz^Hw61YFz<3#>9QR08 z11m?3B)vLSwk`Ofz2&^hgF;KoC*}Fk&kkL<@x_Qn_3J`@79SqtVhej$*Lf}kIokG7 zEMHMN9ctOwiBha?QB{5?9SlEbQr8$^SjcPh)G{&y?6DIU7va~me0G~C{Z_&^{B%A= zx)NQcP`Wy*!2=cw2sZi?VqF;mCdm)BiaRqtjByxYy(&`QC!R7=DTQXn%hp@aMEunU4aV+cumf9OTIq2tZJS+F-9H zi`2gRn==uUw6;+*q?V-(OMl&cn#ty)h&NZ|Vqxl-)`9HU2>pKRp+$}$Cx%JA`tXj` zqFh3XlwLxcZ#npTc8rd}BPuH%D48JhE7}5?pdLU}NCHsS&W!ATq4MiGW203U+x1XG zgwBWuPWpDG<$Glq$>PSu&&V)wIX4|FNM)!@_St58Bz`Lnv*%VJ?9P%4EZ+t>SVhe; zdOAKB-8%nE6xnb5phj%IE|bpEsLY0XDL(p||LOeeQ(%Rt{>(uXZXq>VvWe<&fDUPV zp~^b(g04nyDBpkelR0%Dzb^2^4yup6YNVx-E0kA3mndjygE^fHWX-)^J_%71lJlS^ z+P-6(msYKyANPcxby+e@Ig{rN@LOS9FgS;&20rFD*GSKhlBh_bq^7Qx zlBi?oR|x4pWPN>AOpoT!Pgk(^#MdR(hF4ZfJ>2qWl_-O5$t@t8d*B5!XIj`gq;d;Y z#Sz0_#@^V4Y2v5P)6i<;2hQ07#I_TW=o&a{M8-15bzhM2J6M0a^!!Q?g$rjbSnOLs z&Z7G080D>N|F7zJB1|56k~}6_FWy(GYc^^y+_{MLZobHsQRbmMm#LM>&ezpPyi~qW zmo{g#c_a#^xM{!+8_U{{G}rW@TR?jRO5bWDVK*j03rSTr-IsK$`0}x3jC;3anS(a) z^=?~k&~Sa?9TE{gKih}%gJ_b9F-4ji!MUQ4iDw^CNh@fwA03b!T%MVCZc+Z2et@h} zmytz(y^5k`N?$>s8Al=AM3T$OeIUmfj-hc=|7@|WGj%H>1Ex14))YN>`5_`xMaoHa zh~z7sM^CzpC8;1O(hL5oq81)D!pZXcmH1J=b1~o=m5a`>!FH8XFP9$lCc_B{%2v(+Qj6|AR2|ZVjq!usmdh|XLR&I)8Fy!a)aY2q#tGy!(%Fn}J zOCc`s0W0GU_K)+iENrGpA2ntE+`e=A(P8=&IJZIDNYiJ`f<5U07)3%|wXVJdnPeJE9!g-R=_CFUR~f5E?>GC6 zSTHONt>eI4``DLi1qvOcR4mxfXET?*5P7x2_zEWg&MEj%AHQ$L*2ITRQ+ zXVy;=axcLY@V~3R=#?F&c*Cdi<+&_bf|Po2n-$TQ_A29BTkSCXp`SA8a5<4Qb@cN~ z)n~MK`-()L&p3W$g)cI-cPOQj7hq?!W#{kV>THj98c1w?hg4D?+2Nm+@ZNMg(Z+NJ zRS$`3iaHAaj&DO3`|=Y>2P=PsIf`XYXZ$jPVa;uKwuAxXeDUv!>X_oS2oU=mlV%af zi&j+|anRef=ixbmW) zVR5J+mhtsAJf0LYL#K}!3f7}RWdK!Y2zQ|SVkl%v*l|H>fNI`bo+JP1@5WWQAU3QG zk5(fF6+bp8Z56*K*@E`q!A+2sneM@JSANHzpO!^fl+w-~7%otGAU23JKJlVL^M^lL5u(hT+F+H(KU(ZNU-QN2Wpi&>)T5Hi@{2*l zwgvgabde!{1CY2HX{11QxPSX)jG||J09z7S^aIj}(Q-hv;54^&I(G|&^9FWszb#J^ z`cnP9yN{^eK#7L@-YmUr*eblAkBsYLrQcIG7XW>;3im?pb9#y>p>E8!|8Grhu!J=97U zW!{JwZW+(M>`4il_!gB2B?K+dvuZ_>eC6EHz!gUMkScuH@S>~-j!ioSZ)|Tk_QwLs zbb3#Cj+Jfh&JL$@)+&jx>gu`vev$d}tKerUg^Dq11z-uc5 zzMe?v!Ecvu25~KGrE(CmC?T2)w{m&NywB0_>YBs^mGUR|+pau?Z&Uaa<4m2!h6jXW zMF6v_=&ktv%JI|{!h7*$aUp;Qq-`k8eNGI#_Pe@dTEiVT8uX3kX<(br- zB=!YiF2pEGkqGtK+zfv3L=x0yTk$uZAo9|DWUeTDWsULU7OvFdZ@ji(=l$AH- zQk2j*EDt76m#t$A}VGEu}B~nzz0U?%Dc2Ji}w? zM=y1lBpSg`VkYSYJTZQlf3vXTWZ#f$S&UUj>P>o6ybxKdw!Id0&{F@=VvJ!;XQ)N= zXSRRRe0D?z?@ibIyb?2ck}_({!9lCB8rB8`y9#}Trk_dtv!~Vlkvwi50~sQ5!ry!; z3{9LN6QgbU+)j|LaKep|n3RN#px5TUl#5Wlob88~!!(8|_83nN`D{!F=PS|AiSls# zD>BX0K2mMr`35@}C|D=A(Nf$=GOEYNMyH2cnLcEfn%n95W|_3w8E0=?@yS2JWZ4AH zw-4cNmJ6TN4`}MIjy_X4z+(Hb@zK>n)Q9c8jH%k24Az1H1x|7dhPNf-iNNQ(Ez2j? zla^2!=m#Lm00&!TWR;p53w=TiK`0is3Quxp_|or zbPlBjCms*X)uU>_hq?-sG}%%LB}eHo{P= zR_cVpV5C;ls88dU{={j@nL{7i;Hndn2mnAAl9hV=%(RN9%4J;lN;a=5D^J$0C!6Tt zF^_0Ti^%#S)0MgAEq`fj^y98G^nEb8xgdkieoh2&7i094reKYCQVl&_;<}2D7vTO# zBwu6X3*Cou<`<&e+K(EqB*h({NH7r-)E*}2bxw6Bc=z0388$t1cmX@nAc4NDc*B)f`;P58w5%yhWBWU5>`w*$nV1pN zHbUH0=fb_0A3wDWR~Kbfy=6<0&Ey;W@+0cJN8#RW%;;x&@KC%nhBDG-2R;40T&Rk~ z_ZOlj1lKm4nX3@WUX)T#db$}cNlRb1hW)~t!{-eYV$*4)bXy5hE{=wmP8p|)^iP2$ ztRy3uFFp~hTS{+`_Qc2n7ifa$y1W2-Uth87tQSh~>yxmn%)CgXZdovau8CC zFy+?IHy10Dp90|22o=p6tvxgYIrRt3ZW0#XN?UkRMsjqZr^}4HWT@|MDQ!xkWp)*< zbKPV!AvP)FhjiRcL2MsNVXtU?$ykv&=`QndnZ4N@tDGi(z^^0A`RfSo>_vEfgzXPU zEYyI$Zti>p*B9Z{8fN(h$%TrD{tEf)cU@-sLuO1w`0Y;&x}*1X?QE-MRT*S+>kKmT zO*Nb#&%S(g7^i7;pj|())`exRJsw8NZBe&t$?eJ!`-$NiCN_%1uMEs?BHxlo#w`RY zaz;agd2Jc%n5^ejZ9yt;KiOEkW@sasIQ?)xCj6@?b2HhU)V!_t%gRQqeX|wepBCTZ zJ3S?$njAYM%X-DG%8h)?o*k?>C?@#a&0azCD!Ar~eS|sYMl|#6idOON%=cA}Q-3SF zR|CbVyuAY*NYOIfgmNA9^^upzxoF$I8f)JT^xOGQjfG>`k{q=;xy2}>UcdUpc1M`% z(4UV|wCOVg`aP8UaIgeoAhj1yNH+;~C3r%0=}NRq{8BX&o}KlXy+BcfV)RvvDUR7^ z-Fih^&9^4lBn(NmaZB?y`kI9SaB|#m{|BA3Z&VoRHqOFLC3f^zQ~DSQ-#C1;P(7L1 z2)Fq*HvEaV&pN5BC99^B5$!-ecQ(yl)i-(yEo;S=tuv@Kg-Fa&UOJ93IjQFqOX7N{ zIJH|xmX|~*B79ux%bE*a(^k52&R2||E3>;R9Cs_8gGHtL7LRr^Nw2Q0F`h3n8I(l! z|IRyQctP0mVHj0;Sy{5g>4ux+3A>8vRqQIwbK!@g#gYW`*gy=UMkA-VtcCNxQ+b!z z#U~-PQp*k)@yvLb82g+Yv4z2c@++TRTaHS%S(ufqPYWNO@Yxp&X&%}3usOwEUuYLD z+iQ|L6%_3U5A_$Y$CA>&smR{y%z=VghhI>gIm%@eJ7XhgZi z)x=eP25q?^?L&1j+6_b;@Hw;~-@1K(>kMK{4@|pJ^1%1Rs6~Gc=rhwG%mKvn9~7s$ zShoU&%<*vV9+Cde9(l0gu*%PA8G?R))E$KQJ#sOT%jee8Sw4Ue0E94G&t0RKLVW~| z6KY5i6(Y7@EtIM?&yTXNsirPnS%5ils-iXmpDUEYF<_#F5=>t?~&9bOQYB_t0*z@c<>>P{ISswQp#@^0-fFy)O%m_kTEPhKO|Q9#18gwMYLqW>Mu z;ZyQm3j_X>V)rnTrA(lGG)f}br{lVg)h?h(VpHcD&T|RcNpin zu~-bg>};!q1+Fz~d)W!T+gS*JlODF@pI)<^^c1IaH#g~^K`L9;fv1aNLen~~P@iP6 zMqn3{?sT2vG<9~Y75U{&K6G5?Ivr1J^9t9R1W*YK&k#HBMd0~+2LZgblTjik2|X9H zGe1x`$u1v|&su`btR1Fbb}B;vX;oVmg*M#85(k>@6|vJ+yr@!)Wezb9q$`*hgc={w zJ9KlR3;@#AJC30x*R0>X_aQ4dSVYDqCSw$`;LM|N?y6Q=q=WQwBqN%NjYV7Bz}ypJa{fjw#MG1L$CxjLlu){r;bNYF zACisV0^5}kz;M_O>JA>-Qv&aBK)$RHyV<#!zwz0Mx}K)6{cktE=N!Iu+B+n*Vij z$<=_Er}NbS$Mr&B&W-j74}j>pkRG`l^3T6HsXe3V^1rgb5mQwdOVz-$AOXN1*(XX; J#S+G^{vX663J3rI literal 0 HcmV?d00001 diff --git a/assets/img/auth.42fb947d.png b/assets/img/auth.42fb947d.png new file mode 100644 index 0000000000000000000000000000000000000000..132dd4123263c6b172e1d50110b30c167a643984 GIT binary patch literal 41959 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 z zRX7^P)h&eH+QuY)x(HnYPCsWpm|#g;CKKVWgcL;63_MH9AZgv~!!Fbf$YZb**CQrm zEeVKLj_&1!@_K2jaHk9*6G*}_eP)NPyAAlH>Bb7oh0A6rSU2vq<( z^|y1~HoUpg9i^cBMbJ=k_kJP^MVP++m8|AD0aAuTsCeSPP+;#k(o!$D*~I&Bej(>Z z<(HF`4RzmR|F%d9NIoNn6tM$nOR4+YFs?=oK#i}4TMN|5*og)d<&qZ$L}P;UZHkoP z`sz_H)wEQz75`%sX*!(_N^5kqlETEV4L~)D%&*LTM3*+LC|i8Uc)HvADsSICylF$b zlW}K{BgBhxY5vfLRSAhl(FY3Wlfl>_c(VzQ&l2A{#96qI-fMsK|3r$?8L@CO3UKid z5K`9D8^H9qSiSjp8Yw;covT#9okA)!3S#!Uj4apcBI}Hj)cnP$kpe{Hk3pEiA9LJ4 z+dDMxDR!zm?`zyyL&fS--{&2tt0z9-=-}vPyoVRh6=G$1{jiM#`kt#@pO-H~Bk+^S zv;xrCC-(5Es6vD94hwQ2&<|Ds9J5z~iiaVp?1V1)bk4xMmX?;2&es%5 zHd+n^TL=28+IWt3hq}Viq5lu)(PSkv23o3dqO%~%`#DRPDO1R^Zp#_wX9#NJV>4F< z>+PkP>nYt*)pJ`5(Z1WTgG1=L$7oW7d`5HL`ZGrKAFQaoaBchnjWE%q`aD*lvoq_F z$aakckKhKQ)D?UrV&)5IpGR={pSX37bP!6@13-$vMVfYZnz3$v5~!7mlo)sND(9lr7u1UC2{gw5O8!665*i@e7 zXFg9NX1?V2UVb@=240fiRh`Dw$*RM4D7di@`h$11;~|nqZE;)2idnu~ zTCsFfrT4?Ta1j5OZU;|u5BW1T#pK*dl_}2+D{DOiXpm>gtz7(`-*qY3*7Q9PS+?w@ zZ89hmHp9T4Gx>BF|dL>iGHbw$|MQ8oT5zMa6oSQ z$b0HI(9G$|aYU7Aq@%1XYf*#3a}GJ>XYB^Nv^?dusncDK6=75mi!PD@GwW^R*6mZi`PDVxBK6N2$^z{Qrvb#K4=L^0;; zqbzdL>SnFo`(UG!+3B^`FS%`3giKTEB?#h)gxfnYh>+jOiPL9T=a(odA$Rygrw#jlDYY6t%Cv}ip>d^NtlmvTxh_24G&mMBjEJo6 z6oL+VD{WCZD8o6TsVoKAO2pRA4OEq=o*jE6{~FOQ&J|7{FE7pO3)QM{qT6A!*^vpW zImHrDSn_=ijy`R zVl|LKrCy48*-RZaGq=vlK83-@I#{AaPV`Ywz_g9qBsEQdW+J(3yVGY0OwqSsteW+1=c6U8p|buA)y^W~7mh6ou6W1h)Qx19 z_a4-h?PI4a%R3%UC{EtjFNf{53^s$nyb3gd4wr@y88q>+RJx_iBGIoAn-k_lhq#Z? z85)KoReUGsFF|cy4xj`qt9vR}3L7AF@OzQ2MWjU?hXG*q9s`A7mJ%#FlKAoxM=jhcz# zC8R#6SY+g2GVl_L8m2C41g>EIh<>T@%XjN-!)=mO^%M6Wd1c1gnn@=5=HZg+Itz>$ z)cv^qE_M1}cjYHMcpxP`I{H#oI92P*AdwS4 zg8eJ@?&$?6P`#;tY%y3h-gFFl@XcGhbH?OSnTO;H;^LL7x{MRj{`2Xu&9gO%Z#dld z&u=csxm4#%M;)6_dK&bR>`{9JHiymi+UFlV9FMp&M-19V{kNEJm#N-#;(62+ z>l+(Yd7T88IqUXz(bhmB?6XA*JokbHp_orq0@D*Sq1PWdHk`D0!%y};ZKyEC#@F#E zzCJE7ZJ~}#QW+mF;zc1C&$rq%X%Z}v(B-sGTw1vjeoA(IY~W?eO-kC^o>Nmk4`*ah zlV;MuoV?dIZ10JBD)s%{ZfL)q7(X`k`sn+5dSx;2_)TSPZO!+w(KlUQVp`as33hgN z_G#kvNzuvaGW&TcTYMxzI5ZAAjviN5>I0-lYRX~h=vOv#yA1*}gp$^d?%;Gr^`li_ zcAHWb=OaNbe<5S4dc9DK5dLkAu0U^}c_VVo#NJ{r6wC!XUdkt$Z_viJ{Skk*SLg`* zGTZ6mBz?OhGDLpyqITI*%ic8{N89;mt@F+|Wd1JvQZdM-Af$u!hn~8clOJgj@qnZF z;&WzwolHYpY{j3`x%i<6qluRC3VZ$dhA*8bKL*-uDs)3%JwDebi>%=}Ah{1ZDdTx}JmOgYN`xC4Zqk0KOPAY7ZXKdHt?h7HP6gp3hVlW z_xDZQzUQY`lJOejooa=v0XGIvh z#)Yn(YGNunL^7R;F0kJUZ+Vq^>SuYmEv|w_veSjMT{u|v$(F$3yFpW=XkfB*;2=dJ zb9qQ6vY7He_PLFzVa|9CH6()z=+Yv|X}@=F?{)u&nMxv^x`$GAcT4vnP5@?Z%ihbvGU0jJPK6Y-4ZNWo@o!myj~t69 z;d}^)po|LYoi`)|p0hv&e#okO2u)sbrctc*hrqIId*l^te0AS?XJ5$au7lV2g@KE0 z4eoXgS6&d`fVn&B#>95dm(B_$b{1|9@?eefx7{jJMcdl36!Q2XbBBG zS_TG;P_y+mcOJdH8lwR*HD1pfYlUVhg#XU6fnSZG^N*biahg zq_jEs_V4ffn`62c2mj6LJb|frlY#mn4c-)Bw@}4;i+~zr0(WiqE<)yrZ&|VB!PXzr z=`C;3V!}S3gz<)}9!0F)vUZuH3gh9*FVDVz%i)V~@QTxC4OtuNEi2gD}#=Z?TBmSm2$6 zrxv2R4{uo`DF51L$d}jqFZAiZup;h+%|YB*c+TN?%WA;>7tQxS4qEIz&Z4HKMStDXunR*RpWl2$46eG6emDT-EtHg~!6<#)QE<-exHiuX1ntVIP*mHAWV1(>(;H|{Uj zQxRF-aBiE(KUUu;kxG-_(&|q&-f%o|MT5fMS^z!;wl_=3h1ieNnIK1%;;kATL<85T zyCa$ThqtUvNZ?3ULOGWPyftySe+EZd(H45_-*d@7#=PJUE<+bTg~Wf{`_D^a#lMnz zC^84uVqX-2adf=Hd1ig8Sbjklg+x{I*19Uk4d|bL2I~&Dg9-Lz5v7{>jD%FV& zbl7e3Xt;=SPVycl9i5dRL_9~*vqht5>3&_O9kutNB=$zA#dfxIORb;=n(2p!q$ruW zmby|BR3~ppXHQewxrJtd%6flJb*=`RmdDAIYglap?pyj4Lr z>80Kmw%{mW2<8!dYPT{@TDxSees66C^n zVHar!<@*)_4tYG$1Et78X3O0tkAmNQBo&WS%Thw1Sn#e%hsEiSuj-G>M2*UMHN)4RoCtk?6dXod(OUJegu z9W7VhwlSyLrs!oOR8XYJ9gBbV9EIV-`^^yUFOoaGPF9=E<86mO@P#(n{gencYvEUHH@3RMhmL!Ks#jmCS7& zIjP!SUJpFZZmA8?ZddQ7s>A2TPziQmqI3eytih%}R5f0@yHjT}s1UZEabs zLSf@F^gBk^v5+aTW()_3UK%p~_L++k?OffWj7YJ&^ay2(WKUIpVM@73F{0dn+Z zE*Gb);-nfM_Zpz?tg-{`xNuN^ZZL`?ys<+h*_e;_6Mk#{8qkK^RK)83pV4kdgmDE zuP8Uy1>P3N>!QTHzP~5t+_cK0McM2vyP#jDxr6*D&$?k!xy_wOvQbz|Sl7%w+LQTI zCtMG&0hCUbb~Xon+lIz{^WO1Ce^`s4z4fyy8IpzK^u*=7j;?rKq^tBRG|HupmkUnX zxt{N~N+yIfgOQd@__b2A(3x>%$``Pu-8m+hR0RgwRC#!fXmmT6jdZs8CT`ATfe+Jn z=UZ#D$=~O7;wdd`llYyl59TIz9FHdIWepMYd+7&0_AeP*qMpznaDn; zhGS&KM!}Qk6a}CU$A0gS8kB;$^N1<5xrhg}sA*bWkqtBq{?T~hFp0}4 zaV^m2Xeig_aHpFh9kVIcKX`&9bAT2WhD|Z6kI*0eq3t`vo2G8i6~`_%g%gf!2P_>x zemK`RBV63<4)9Xts#JS$KS^z#D{s~oCFSds?v@$|tqH20PJv}$P zZ`TY?L^9+%kCPl01Y4cgjpsf{afLJIj|Glr<85a`g_g*5$6Acmo#z9Bi)2 z(K=CWpJ`=(&J409*i4@iZoqbrCq%u`TKlUn|ukQF*aW~!8Tv`8?fo2Vpv$0ERqWBDi) zPJl;7$NXe;MYYqE12=nAJUL-GAe(&st71`k1|^jR=?jQ$c__`&w@z-}T4Lk%-SXg$i?kvZoJfg!GkRK8j@YKhQ$^p)^n)TH`S$z5-hzcnb$G18 zo1>bU3U?KzFKCD4HUiE(*BXs2iUpcnrE{^4M-Vul@RjOeRFoxU)9HezZ2$BG!aqMh zvzd-^yV9GdZCfq0xnCML0|xU4v9d=tj~nIj-3kVq7|NUQZ6VI2RJxiuqgv7yfv4phSoT&jpZNCX zR^1&K#qZ`x=f z@t=HpiHRp&Kf^KY68l+d2Q_{#;%F#3 z59%3HDQ#^ah6AcGdeZFrs=SXFVH~D)(rfEnZBh>^0qpjogmj02h{qc5QX;*J@Z-=t zY3!ZP-L0=C46=s_;9C@?cbKYBvayGV?(c!PM&~P0Ru$=Eft+1FnVJnZ6}gx0rXMfh ztvWi2HRl=md68l@xa63{Vx?hvh3ju1y7r-1wOM(S{ z)JldH?-ApS(TfH31g|gSUkv1zARr^-sm?U9UQCI_vKNyU$I}St1P|bady4p%=WAYi zZ(Mn1*+B9h2b zYSD@1yRPn#o<9EHR7^Mey6z+q*+*_`BdE-zIvnu zqprMZ{E-ZCNjq)esEZx=3ss{Yp;7+o>RFiY;B)^crPeb|PPuWs-H%018SY z<3W7V?RNwh4_0RK$KBm>CAj?8lhawMZ0Jg#2WK96p=&i_`-9n8;B#Vo@o-f2>eU@r zuCJ7wk71ID_%pjKT;*7lUfNd2K!#M=VA+9Iv{S*b@2TK%5?`M3XPS*_z|U7w88405 zCnHUX{qSiec-+i#{(dWUi*1LXfV(bN#J@pQq82sv&HUABuT#qWZJ; ze94h{>l%Ijv;gfsjCe%0O>LlZ#T*-fV~ESz0&axGL_*2M%B50{9cVnMund|Xo5Fy4>89>a)# zTs=g3qOLR0UYJtBbS^z8a2G&O`-3)QXSQK!ltsKq0EBb2GRa;NiNc-G`Sf$S5~q5vt0) zua_GA>3rmHKAh~Jz+)`^q)v>$dH_QV8#+j$OFwA`2$mQsU7-&gE3!LMlk5k=&plj& z&;SP;FY?3ELJ!3cTS6KzNLnAnHscr+MLp|mVsC3QjKeu%JfyiCWiu_S)c3OF7RIM6 z%HNylAAI5g)sa{oYt=#0t=8jBw??EMA5bMQ0Bu!9N}2bn00f-5&i8S2ntAW{V^r;Y zSuO5oe>XQ~^ZJko_C=zGak3BcnIO`F&b4tXiLHszqi!>U&BVQw@jrJ_=15l0cgw zHY8b}hQsDVQjA3n#j4Ohd@BX`iulrjs7PQipx!;IQ+J-P%1H&~9@J=yAxW{7Bh~Jw z*id+6X7*em#SsuhH{db|)@_OP6UzJ{u_mnTUJpEBNNi~&Z~M3&mRK3yiAPcL$m_c; z*UYhSqD`_!yU^XBg9#I;(4__So>&W0w4_1@D)&U%9B$6rW&cqwqdvGj-P#Yz$cdeX zM7cau`SY^61?Ho6U-CA89CcX43XQT|0UT~*_XV$^4--lr!mp;Y#AHuNqGAt0vek0iMJN{n9 zyjGTuwv4@wCGh8`y`t>L=}KyE+qvuCzAK<1R;4%rG03@nb;pj)=GW2M{WC}I%cR`O z49?!kHU5FT;gPOS&|c8rC|xdECr4ns&ewDG_jF2ac&;r$)yhSHh}{B2LV(l4I3_>k z__D9T!o+Ng{16`=wCpDMEC*OE*!}^aGixZr%k9I`92XmeZ=#)rX()3BGk2u5$2Irq zhxx__Gk*dqujUUvusX6w-;splkMrt9VgPYO%xCNvA8x{wIRJ-pOT_zMQ_!GBg&4eQft^=f-~6SKJEsRMH5h z*)i8CY2@8;&Z)PiA}EsjO;*D4Y*qAZ)$8DFc9aIXD~0*!vXIb6iLc=+s`B$*Hhaxs zg<-1-|H9Mg<2_!Ojg-&(^#tHpbFMZSADY_@Mq-s6`s(vXvxtD!~p`~=f>B9(123sgf=>0mD5C)f~8 z@-k)Cchvg++M>J))q?w7E7|jmwbdKEEAu!%5CEAxODtT)AxrONsO)u$v~{tN$+hUr zP?Uy4xL*(l4Rb?Q)KZaWbO@TW<+66KswG`cK6;5qeqPpJA;-(OP7Hf4(LsR$FZ`-e zW0Ip_MGfJ;F|+IH#>ZN|6ChtQU*b0&L$i^TBVGDMubaRG)Ik37tc7Gvy-!E%W$u#K zTTV}kU;%X89MTzz)bqtA+51jH3>r+L%8W3v9Km#n=1C`!;1CdG!>1ZDe_^0erl8p0 z%aRp(s(#pEy6!iYCURiX(>Z)85@d~h9RxvG%588-k4Qwi>`O0yS818IHcL{QwGRfi zy2^)*T5}l}oX6~)DZsmJNCDi*c z^+A;&=y&89!x|%jCT7-!9*x%4;Cj3n#;?qSug^e`s$Z;-!MZCfiYPkB4=$Bumhff4 z5oLT`yE4>bKNICP6-fn?rnz$>prq>eq}yWU0o!SH$F-L%r;xk01o%$`?C%_E=wyRL-jH?cL|Do*0fX2){FbzW!6(iaS7?6Ow4JgFc}o& zN@r}cwAqnI3O@h9;%g&NCb{Ng^xi5>oIj77E=hFm0|v!P8|Tjuu7u2)9+F=Sob07a z!QAq*Y#a1AH3W z2fX96lizx{$b+`xKDMCdrXU`fhZKSa@K0eh2r&$%cZ-V}+`;`JfM{J_Bf37*RQgI` zDpuNO%Q4e{#`zc-dTDo>nKsQ zZDzvFI=i0fz$H9<)y+RW3<`Ezs>}L_LeNA1dIt?EgUw{0L-Am2Z3FJXf>@}znkD%z9CjG!s>$T3$x74P^z)239jj$@x(+8U z-`77{VmF_nKaV6UrrRG+OBT%@iO*2#?!y%{+doaF${x&5i`TB@U0e~vu+S@3{qo?F z)wd{n&N_DXyz($Tp6J`-6z7LFyYizJ^*9gJrUHx#%9n?CuHSM99WEd_%M@7bM9(jj z7f+r9{>G;cDI=JhW_kUMQ)6X5jg{95@DA2d94(n0_l%GwCg3k88hP|%A6ps!$*`f{ z@2jDM>{6GA@Dsff(4!i_CWXZU^POCYp0@OQ5~IR-W%?KP^yvdFwiREE>qXd{etCkO z#HSZ;sIdvLu#e@X*2T;Eq{y!g5*+2j`^2GO!JSb=mt5xz@8PoHMuyQ5Nb&P4gFF!GmL1%_^S-6mHaCfW^So7mmH=E%ld zB`4g0#sQ;VWm8BulSP~5J^KORV0b;vCx95yxs`-1WP7@2YC}h8q)R;FF>$-4`ptXu zb17VU!=$D$OCU(q+IBR>St>SZZL(rFUM;3oF_k<;on7R4 z7o>O>o4H@5_e@VyhUK#p|J|sM7iV^?S{vvL=B;2(9)m5%M{-EVm zUOtu8WE(~DKM$9eB8taSY(wV^y3yEyjmc)9pqctk}Zgao+p&V`cbaLgsJ{!7?Sgy+MNmci&M7T|9Rk%`72~RWx*HZ!vmcQ0v{A9QB`!#Av z!C6yPq=~VCpW-_sVH3I^%+V9)|GCz8zQZC(eXWJ567%`xtDc!=*@QmXm#^iK(I-iD zzstnyaUY|06XkjBg+F?HU~MfK`O@z5@w;CuTpCNJsz1;$Bx*f;;Hfwr!_q7S5xi^j z7xU+j7v8lqQbI00*p31a!vsNiC?Z&{nmeH&!u224epxG`r@j@VlSOJa19(iQ&enF% z*@Fnu6O9zjTIP!tlKBL_4ALF>l?oUXT|th;YD^lx%bXhjtPIF_$j|mynaCoy>KX6w zeQ5(h=YTh~BU-0Db;oo-Pa2=(jN4NJtSAQ8b6=JVWU+covV>d*hmQ(cUH3&t@(1$; zu5Y^Sv-tUl0Ij*1d~OZ(_3dE7hez+)C|ZD0!G+6uF-DaURrDX+;=eALgWw|42;{Sv z@#_x>z%OIzf8E?K%3g0<;?|qMJ)Zg@NntcUBn|r(n@7wn1xZ$hm?`Ludzme=jstpA zEf7o9MR-Ftk%IdcDJ$Fo);A0<@QJp*W$hY71FIk0`)A)&b6g~X)ejx(ILmKpBP6oG zwCf;S;fKG8r+G2Noeow%WU+9(NsfAf&txZ5xdplYUw8{%8eK$` zynBn2-KGOGwqEUQb#H1T{&oCJ4)HB2m>3AwH|!i{=Dw+oFxdV}{lITz`8Q|!Ux2>< zO9=oxML2#__Clrz7Pf5Ts6xF(d=F}ZS>$^UGxIlPFWBy2>;E`tAC(3~|JDLP_ctT9 zZbk8}8X^4?|G)D|*awxG{k>6s)xu1W;M3X9r?#ECk8dGY45+1t4a_r$n7;-UMi9Lj z4QgF*Gy*+On;qXuIX})`xBr65-zcLqf|H`B{Z^OfEdYe^e)Ii3+W(?G_?QgN{>^pI zO8mFRn}c{x@MbOq%0k!_+n)+(f;;^Gp5EYpM1b_)?}F#O|NDPLU@qzf^JaKA!PQN> z>N%14#>@lpu8yPw>hCE0^Q$@b;B3Y?Y2O=uQ^vK7vhmi~iItkbW&81V-D&5oABC_9 zIsGpI{CmLvAA!waHAMg6e+wu6w{YVBXTpiZdimglhF_UaED$)HKIrVukYn|9r*TXx z2Oe|i_*$GCY9($e*za=n_l6+Zm$%Rr(L!5NC~ zdXkcvf-Io8=EdQLel}?d=`neEnHMyTv1`O!|7KNkUlL+yNRUOIxrM;Q){n9D+|z2U zvOsj5bh{ESRUz;hCUq{2(S%cnGpx~e@boE>29a5|Nt$tA1K!WpfA()N={J9wIvb6w zTFEGB{Y^K>?^WRh+#us6Frf(b_2cWicj^RMJeWW1 z{A2%G|3pq;rDDM>Rj#DHz65Ivr1J%2c-SHB>YS?jO^``(A!&qYsFIXY(DecTHD9wz zgH9vg^;qS0J>BQ&e0DFpOf>k2m9Sh+@gp`O#k^HSep}jJa!HoadI^4J4LTz*rH0`m z)6Da(fXUn9>F(V2U_|7wLOPzEOO~+3_S_nWE-{iXrCqHiu<&h(sT6_f@m3 z43&@TjZ#(o>Qg=a_rmZP=aD%&h0*fA8qrqgo5?wgk)kygyN7#hy&>r|Mc=6)$96pN zokKjUG$YLGyN@7!%?n)ZedpKfoW>tNNb`yAL5smRtwo2K=IA6SlhC*~t{SuI4YS$J zTAMigP3DjuGE%Yhv>UTiHAC{aJb%IiBAorIU@Vp?g;EP-T?!ts^6^(lf9TvVBuIZN zTu$_uTLf9oZC8kevp42?lw86`^nQYPCyO0-9U(jBA@Q70d1S7!`7YeA6nKo=8(1^P zu8|P*(`!#2Pm{K$=<=U(2|n2*GE(4se6T7GfRf{s_&)zA?hlsRh0#pgyywwLl~1Bu zUGXpDB8ER10=UKFu%e|i9=Nh`{$oBaJbl59Omlf{J{}A89JFkDvq~5~mpbhs?L*J+ zp08sBgA*08bQc;#@3(!}918fY{s_w+ZF?}3u~C>1+D(NIg#}6AEbt>s$A(_W z6!TV4v>OM9#>P6~T?4bdN&4Az*SuV^{FDBke#`mIZ*I-3#Jb<@ruT|Q`* z>-!f{W9pUs4S|kN-_pBz&*W1A47mgSvW3BWY6lJPWo&dUjM077cDLkyD$Fybk;X*?1rW^`#pgDFh3PdcAjqFW622-?@EO8xj}6No zbo8xDpQl&>9ylBwWlOR2ud`J*^lPYEoHncVa%x3M4<8(0G}fAI9b!Xrl#MtqKmOSt z&vBtlP-F&+z5T((iD3T$BXPe5@M`X^tXam!w5+to+xY{OSJToxw}D2OqV0=iMX++5 zv#pbJImb?}(0ecdYFo9jl7HMMs4tnvG8b||3!k=#YGAan&nGLp;Tf^K;@0v#&^Z_u z$Cd%9a$4NMKz=7VJE)mG7{0u#v!x7c@Su7m%42zaFw{gA30>s zUMgUuoLU;%yXNcrkiMZN^lWi3#zn!{?pmSU#9VI{ooPE3?*W&tMP+fAJ5tivGUrX( z-lAL)m0$!j81f6;8ODV1YA@^ZM7WA#G3x#~JaQ^pnIQ+Z?vABXjf{P!6z{mx zMY8L(`Q1b((9bP}5K>qYjZEk`pQOj_^9R#`zs@VRyD(`*CTdqr(%t zRB}P^M^@NqcQ_8U)a31`w4kN}7!%d7au+kx2hstJ*fy{%L9J@^Yx@O8X;Vs554iCo zk^B#Vgz{ek2~cbJgF@REml_bgkii*Q64p>^{lNjIW#l`c8tMQ5e(2?Utu0IjUK$+kYnKyNBNVd1 zmJbeKdBq@I&KgeUoud=D;Y9cgV3Mxzku)&CLPB*04V#&@iHUAi#mZwBN^^}p)LYA} zR7!PsDr%*B-)?^iIMpaFT|WBTTB^$Ll^hx)zuLfd zd~`l$D@s@@DGv|Zp9_}V#E0ZT9p$nFcDnVT!E=a^fstbOVO7FYQST*qe@H`43L zlvK&7#1GFz7DhW4&N&h$m|txJRVm?z$=f$m;<^%!9x9b5%gm>9S=nIfiyjqtVaH+)Dc9i17`*UA^ zNtnn37NsPQJg(^T?2uV6>6qay4aM-+jOee^@CB!_)}M=)-pS|nL?N)!Kfz)3@<4;g zl{QoW%X8Y#BGNkKqGM4m9<0qG6-Y=5h8RrqgOg@sAiBze@f?G7%CA-TbCxg7Tk|iDjt*OnRv*9jey20wi;xC2exl4dmCC z(}Q0kRrIoxQ+bLG2YYdHOd+yQS{F%CK2j32CG9Y?UPbUbx0&eizRV}ZzTi{pGSXaY z&haiNwCX(+OTF01u`K8$dO983;E*aC+7 zd7I}(%vjqdzBzsRUYth%UaqSVa->iRsIsa_%R1t#Q+&ut`Fy{D^7z?vezHb z4M!xL;}G}$<)CK+A>a?%3M$`X%3{_-g5(PCeD>lxV`|%bt_FArx>kS(<&?%vv3n-Y zPd8Tu#!k=imZ%1k6km9{|AW1^42r8=*L4#@f+UdO?(V^Z6Wrac3GM`U2oT&oxVyVU zaCaJ);Luo*MjG3lZ?136CCu|3={SNy8Y zvgURTaQY|1d+No*`JM}jP zO87*1`95Swezc~nDAR#@Zs9> zRSt9-O(Mo5lV!k6VqpBe`x3IzN7{*ZwR`P9K99L<*0t4Bcuh!7c*SC%>ALT3WB)#- zwh%_^k5WbpHA(lmo4l17R}o>*8>K;$-5_$kRLSQtF&~Q1dgNt`VxEEnBD*}!H&>PnsF!BY$kxWT)r4iXibs1 z4xj=iB-i|&1UzO<;qmH(c2vZVma!PKlvMld()1TL^l&fOffnp$)z8k=pGK87YPW2A z{3FJkmM(3^=cMRZ?#Dl1h{Nwlm+Jo=hFFS}bkWK|Zh)hWcZJ`U`x}N3`TrIS;ZBE| z24_rLcWRKPz9z#J>@WBRMr&>=k-y=U3C;>+b;V+b+Ab{rMu}h%x;6eb`K^;=wOxC$ zgy8MXyHt8SiVM1ElQ6?P>-0mT8MMyo{ufRnIiiZwk6!f(lyd}LSl4RmIP<5U!%8GL zV2Jh6s(dI}@Q!4eQgvUGliPrnID#)w-wP^D=wcQBY;bp%6@IA$B7e~~h{wb*$7J=St+dirJzV(P$ z$}6YG!DM^Oiq(3d7S#&>Ewg?aYyVHf54~LmqvB<0!?W7UP+EoZu?AAF zv?)q|#wtD_XD^dBJX+sbudB@!FqTzD`i9F96Ce~TP|IPIA7iu^6(SksjOhqm?CIG1 zwX81k5#n|0AtmlfQsHOha5tS=E*9|U^|U1&CvAHND$@j{b65*~wE5TQ1380hgYvs7 zza_dLGWcyFL3%I#=;ku}vx@~n{K_}){5(ZLdaL;J?<<%Lf`c|P6448F6(LvN(|W#E zBa|b8l5@MTw7}BsG^k6&hQQ%l@;bRRw-E((IVQfDKimT?CDmu>@!=98Vr`A}k#(j6 zNRqR2p9a**_uxkJTjbN8*T`2 z#5Hr%`Z|vKD3;Nfc=$%z2jS?`23?lfux<4yvFDll@fo z7?>A$k;LD+)u7!E;M%_KM?dF8Uyi;$oEXumh9Uk z6Gh(r7(0$8Xbyk{wzAmsKD*J%njUZaV753;-Zs)IS)YpB4HBp zsyljLG)JHI!ZLQz@?omG)aem&h>kHkYNi18Y z8ri0IC{+tENZjbK!4iKZLzQs1q6PbY%0QOnaF=3(QV;FBKSXM}G@Gaa{AaohVhHZ? zlGkWX*Tupx9?8w-xo~P!Qtw2`x}%*9(e+9wZ+q4vb3{>LppbMhea(&}m1go%jp(Z3 zxJj_0Y}CZN0ZEn=A89ESNl8fa-t>EcGVfdIc4p0K@fGR$xt6EmD48vR8v1XzGuN`y zHHwD1?y*-{@f8g6v?k=;mAb8zeI^Z1KeR3MH=n95R~Y(d7Awc?r63FG)vnh znb*kMW;6qclKc(uvz2o*y~}EltEpPXk1UN=DuWqW)-gRo%Y_(39LSw%#Or{}>@+lx z2NoL;L=?2;3zYl``11g`NfDn_(^Slm;td7ysSW^?NBJ4l`m-9%0lR|@ohExVKh>g` z-wu1ehDAO`j@9hO430({ks36;D{~wW4$!d)a_+8ugfRfo{Y|Y%w9I_r6{x5b?8m)7%Tacck5ZQ*C!A2v(EPwBdZN#VWIiV#eC&wFyfjoH3Aq z%Tm2whWUC;tZ4$ic^D1>*Y&?b;e-WGk>`N8D1mR3Rg?(-jZff;Sa;kD(m%HPz?mMc zLb>s$(OiM$8y+PqedNq(F?Dk9kNmi$eJn@JzMw45o$IK0PuDEO#ZZ`e=se429w!53 z1!6QlaJm-TD|`(PoxLRkm{ek;w1xYVT&G+jCy07+K^m`;2AE;ry{xTHy4iOF4hX;d zy31KG&zoGs;d0$~gG{8z<$RCUnYSd?_<*!aB5#z)Mf=RWX;ZU;}KOuTU{LqfcFjiDodedH#%%b>pl{6Sy}`>bPxSpIvSE%l-U0Ke6mZ!^KzW#-y`MzEZ56x&&9L z#8lGxSB89g-&qHBnq&Bd^b6Lr6EN`ZN<)oCDSw8O-rv1R$qWf@_Ek+lQeBo_0)dur zRgJiWITE7(j2r(fLLL0Q5dT;i8yUL#kWgWJAA0)LfnqsX3{dIzi@z58HQm_?J1CEhA9^%CtG21hCdgASAMW@z`}nZ*B^tBVLYav+Ut1&1{V*>jraJt|i$?V> zHr=51h?G@{XvAh;?LxAoXSGlUb(A(G%iCd*3N$!=IbY$O7!Q2gc|P=6`z)s3P?>7* zfQD(BtL5u`&yciKA!7>oahbVVuH^8MliheYKE|@Q%O5UjdAV~(Z77R%R}HC{l&SO9_S^Z}Z(Z($ha@)*H}AEV`(;nev8NK5u%JEmdx>3X5 zn57$&P=wGj+GyVvtkH?Aybj{+>urosfQL?&p0DctlQ(E-$bY%G&s~>H`?p+!P3kKd zH*FG}{?`m7KH$fcyUZ+3d%O()6v1IGiEmAyPiBpyA+kY4wXQv$5$?=Piu>6&%n(}l zI`xAlz9Z#`3HP;l5v^%wVdIi&mg7Wp7vl4{b*Lq3;&DgewhCpwG1L+OdaO(+?BRd7 zoG~1T+3SZe?c9Xg)t%WD1qGJ!oveaJZsz_)a$UZJ6?EB+>*6X04!bLfbwF zGO7KkAa3;vPn`?()_m$*(kn80TP1C5oxYMYHHW3J%Z8ej$bcl86SkLq%g?1GLR_0! zX66n2IK7$y+MT<*>e<-K)cRnugx*o%h$^G3$)n7A#L=1(?dv{Z&N@+LDMHzyBsMP| zg5-2)B_;*kOiJIhhjAP-ezYHM-4eSB>^9R^n2J`q2T=xfC~E*8QHxubtC{T_xbPM6 zAL3S1HM~wonpEufmA5gXMkIGx*S%T&5gc$+(fV!tcysK=pPQ+)H0=lZMyBJ&^D_88 zNRTX7Ywme)&(w=Kq1uX^zK;D7_p0RTTRIDRF$SBaplMyLf(m9K|AA@NY%P^+G}7+6 zfRCOg%p|n`+pl}TSFy{W>0Js>InU@tzM+Ls<5JY=d@vpGHF+)!BTP#7xCy16Qwp+2XwVpBj@bD;xZ ze~W_uQ9BhR{KF{pqzc77xB8PB>feA%F{$#b2g7+ZRHY?cLr;NyPO=mWfieozz6H;E zFhmFaVHAEBOp-r$O+HHfVH6P9fd5fA{aau5<%N1M#0PN(P(I5jC_?=k*rc+GpY>qa zCV|S)ylpgW&)UR?qe52|VPv26U?6_~hf&y&&6a#lfYpzOPKHOInw30TAU6ppqwwAq zQTACzAy)*-D8vgYKWne?|5Vx&am9|mSpX;r{r_H>e|~C|by=|s@)&*j+zmD;4--(J zAASjTUz!Xe^8S(8n5OnzZCFrciz_KCJhdXFHtKH%P_M7*c**%t!Sqp<*$% zW6ub*m;~dSw$1#tn|;3Ve6IT>FqqA%9PP< z%F^><*BSS}m9>%Wf>1UfLQ($LU^V9u_t^0`XKFYhtZ zq%QdEPM*D;^7A68#bU_h-WaBWTlZea`mr7a1?WQhCW*;2)b-qqFLuXn$0FuF|8oCO z#7M(P3uw$OFgKJSC_%vy8%qOJs%%K-`{ zEm~VXC3XRS=CA(xF8LWDB6yj_pzY{yX$fa`Ra#yg+H$!Yq{KuREJ;HvpA4HhL{9k7 zrVO0R@0_-f`jOi(o3CmL+G7qtVy4zr%^x0_A$8SlFVXWDQ(wYYRV-LrvJnb@8N(z; zw5FcaF@bchI}&c-bZaEIJ&lF;po47oW$GrJ1n_vCG?C7OC2N0J-Y5oR%Amz>?ML9g zv*m9KNN&u#RMTc?zB*VG9vC+rC5_>pr{S3@6IFKlf<`%!UJ)toAQn0t_6>Tgoo}KB zm7}pA0XO?id7Y?rUG zvTy>ed8ssJ&^GsGN6YvQ&NBX<5w%YoEamB)tqkR6>7<%KhM(#pNx$%TVOvFRu3YAi z%)o!m8Dy!LY)lg^yJ#Fu>B!Ex6WkzB^4Cf4q(XcrM$22O4GKJ?{5$o1B=MnSRF4?( zjh3XlFp{=YfTF_gV~N0=2N-T}FxTln!3Nj(SF4&&4$DakAikSdFawV|U4`xGRzG2V zH$VA)`*8EiUk1CbIa(e*StZ$qt$l4Iz1XxB455$Xs&C`~8`v}d{{%H)QPF^+22Q7W zf1w6$nwO<2i9mYx5evu7;Ybq$uF(>HHR@Tq3RpQL)DJN}4!W*?Kx~NwqPsWJo&%)7(ZF zth9%P9YXd32HAIeDon4?+$-o(y{5uC=zK`{RXAJObSg)Mih=wdt3#=#T_g59Mu2yT zvvv(W3Kzp36I5AA76jMOP&G2utLh$_t`x;mVz6L|mWdKO_yGTb9lTka%JC~*b-0q{pFUa-rEZjLZ#Hekrxr@XqmvQ>0Zgo{*~Q(nN)llRaJuJ4LW0ER(RO? zib|J%O-;>E9F_JLJ4zw$e#Fz`W2iTSi+?km9mfN-ZK->AH0>6ribuRk-yO|?#qDEq zA6o+*V3=6{KsN$4WNp3n(lrH+E{O8kaGfI-(}TzKf577ma~!xt*?#|J@)2(Jc-aE) zNYO_5I4W@nF)N&d_>Y$K!M9-P3TXW{eyM4Cka`i|R`8|pfXf)5B1dB>MOoSrXKHXB zj1%vbHmb|?9ha( zxA@NLD;e5v)-Pa^A*JA`L@cLz?u#7E-=Y1WH!hnqtVqbSO8@T4P`+m^YA7qbDPlDi ziMTq`peoS1j1OfG5*FlFdvhF9!sYKEi7oahfzjyfH2ghMzkr6tz=Q+##J(~7`T`wr zoe4Cl!6LrGdiL$u8p}|h`#xQz8*bc`nTkh$4vQ*UNbA$%C1+=`H)Liu)mBQ!{aCC1 z>lcd&LY~zWDljTXwcPZaaFVjEQ|XD4DfA-v(83hAXVk7ZTeoy{ApXvR`+s3pU@ZbLmGB-IvmrRv;*F6|$`X4j68 zKg&q`8zJy1X2=P96Mb-?*CvkTcS+t`$ehr81`&Ajw@I5VbT=ye4vISNven0(eHTd}o|q}E74;-` zn<O@)*s<+bJco6x!t?_t`dd(b<9TVP^#;tn6QHzgDh7 zLqT0?pWrfG8y`J#b$N)TxWmJ7-ff$(H8C}Pyx^VSGD4@iqh0n{+h3~A*3-oY*B41x zt3fS4Zb^SPct%8M|MXMt4}=oX>G z_D2Pr7Uxhv)|wU+7gP7l=*s4)eJ5YhRlSJCE0eYDmH8mU7U#ah*CVFE5Gt>^@)zEq z-8+bHw5zR;Z=ocD?=`T1j^kjZdU}(vYVw9{D5MqU04u5*(Ml+b7G495%PvtT>2ddG zn~Fl5gs`ez9d>V0(og>!IsNoT{eec8xQC>X zbw6N+c&NmsV>ye}E5JoN5g{%mbEGsmqs4M11WLMAA!A_`Znx!Quo^ zaH@0+MGXqGeD^v(4R!CLr5}RxwTCO7-5m=!u}My#cM%!*WBbtSeY1KxJC*xITMf!E zOoXlw<^6CDrfbn~lQtC~k*96WCbNjEL>D)t%Ac(y#|H~M-O8IERJ5Md&{eBZ=qf4I z8c;|t%px0eR_X?8zcbG_t4G|Unb`={YMc$&D3LaEj|s~{Qhl+aHB|7X8EBi$>OGOh zIf28sygq*}!@!b4b}0Rsc++?1Sl)IkG?_9+lS5QTrB1XFo^7)o6#yejlR>f^DZfY$ zBP->Ew-3=E9jNVfhKmb-O$=5$A;ejBIQdmn7KqHL2meBQwJAfgq1>j%h)&1-y$hQz zJ`rH;{CD67UP_Tq+h(a$sO&c zly^!bWcXs$n37P8L5hM{fRsS?oI?JQJ8=nSCl+?|x|I1~OoC%b>ny$_I}TN-y0z0m zuu~F5a5Tx{e&w6e41zKZz*&jbj3HUkX)OW%Z~F}n^`~075h7IGNe)BTN>eRm^NhaT z@;)W}_mhiH^_Ir9zqg2ZLQ2(kywA}liibz4zPRVaO$v}u3eZ5&k56OMLi)8^^}9i* z%&A%*OB`uDx9~vX0!lu&(l%xijc5KuMYcZLP|Jq{`4Gx6UgM6b=<(HUu_b3(?1a6S ztbcF@>+=gJ&d~XL@b;r;?3iRr#x1+agN}%Gk<9_Bs(R<+bn#YFO`y|(m9w|ns_3vV zUI~01I6zJ{h}L4F*vJMT)M-f-g#>*!Uhedj0!FwA49P6R$r3tpWAC!QpVgW+d?-Gw z;P%!Ye^sW<=um2D%G-K+y=Cn|z{J}5{pkbYimfhR(?jvgX0oF*>3A^B2ktq^)B)T+ znS-U-ZSDidDlQX6Rkbkm3Iv!b2i<{+SX(7SdrB$3^yJYjP8^Xbg(-Ik{v4QPXK<}6 zrk{jLC%`QxOO4H0N&;Q}tPElMh#VF(S@5Po*qiJ_;BJC<$aN{rF7Mfwn=g0A;W(O= zHJj|Y%ixaX$|N(L2{|pMHM8b2@B(lx_=bVcgZu;7*?Pc;>E`UkvL;e2obNEatBt1O z`x+zRoWh$gKC#ITk~E$dsnD;%t(qd7y$vJm- zx^(Ec=^NDEKVP#qa*;eqO8%DUblF~s^-WWy&+LcxX*ez1H>TxyWh&~!UcBi>m*XDp zD#6~Wp(W~MTiTiu747weiiY{o-AglF7h|p~g>@>W@ z5iP~J!pMmpJGK|VI+K3KDAK!{6e;*OE%>SdJxYjb&r@5u-JbN9MP_jFP}p!(FN%4z zD!iaRA;Nd53eTj0e$s;Civ>v}4%Pk#i$IqjaN{y`b_|mzqcKZ-R+OK@#y-Wk1);Wf zaU^M8pLFX@JoI2(`!PA!XW~5NKMh-d^f4=3DS~_1@KA75<_6P`JD9D{5NI#()EtLv z)vHrPcu2!*a(;w=^|@M8EqqK-I7X=0Sxj`eKaR*v#0z46qTU(n$mj9k(pkENgjC4g z8j_$~%WXF)hRbp+QyQgWV%3Pm-PpxxXTfpjy_wZuADa4k(axBcdl}~7Nt&KyXmBpj z3Wvt|ApFPWzW(RNd#mzbWo&y z-}c-y916A>`}F!a@M(?Z>Q{v>)QLO8Rxv>-jvT%ho}BR)1f$w++7W6VQ{VfW%H!(A z-N{m>-@q)#hT;SPq#d-DnoUE&O$wbbD@yxzzfFCsTC`oRx0CM8Wr^7d09%nftTx18 z-j|bR>N2_T1ST6KoA25%qor}N%8B3>0dDn;M#Ng2QRAJeU0!_)l*-ng!-d6YUYbY? z<6!wc@35+^ZO}fTZHNa`iwZC6jmmFqK$lnGa5}#99U!QZpgwVj_gI)Q;f*{}q6#8< zQW!}rZs6eaXotmy9NW&Mdg!$E#GlufuY}kwri~>Xw-KRB8jypr_|FHP>R=-Y<-s)4 zr|u22KMU#Wf3@}F#S${=K5akVB{H5y_2wvM;3jZ$8B#4CL1Ztdm>V6r3uk1Lo=oYc6fyq= z59Wi$2N-T@*_AW1&)g7HPOW=yRryy~aaNafQ$N_{QDvn_l7G>!spMr0o*BevQC%P< z8a2tMZ;l#c#>-ZqcP?RZ8E#HR#>&RR_%8lI8=i1FHENeS0el7xgdcKKii2??0Y=OM zczCLYh8v~=bWs0wkgd-QS{#Npd7C3Y(S7mt*st|QOu>hM0o*#P*>z>JNtAd*H`a7$ z0?;nc!`1Qfv{A!qGy~ef?S*!Q^1|^%Xj6+@;1|sn5xl zlxt{8X>(u`##?uV6wwGa>oS|<6a;%rR@?WLkgDRIn{?Pl$?R>bZ=u0x!g@MbGT~M% z$}lG$fNU*M0it_H4)>i_L6)Fc1?j0ArCp0K z3>dblX}IKBJ9o)(&SH3{bcSiTCc-FD{kRN7%<&g-WSy^HxjpRsCaZ$HzJYr0Vg`Ow zBpFxVw++%lsz)&!81BhPfQe&@n#oPnu56~RHErVwK8Gd5~Gt`bFqY#j3@4Omv% zUXL2Oz)$D3)n(;^EXYAiN=%Xn7SXMwHr_lfLSS#Hj$Th1A)=ze5@~ar$g%0!MNXKl6F4Oyy8_Pnf9lXkZ1FWwE z=7U}o#3yN#HZ4!0Rjhb7 z+Fo;g+r=M(bw3A5X4%pncr!r>TSqu+VsP0;=u7hEQ!3=Gyg*!ST&uV}X{kK5p}Vq~ zvO$UAk|OG%>6+KD6+B3yv$i}GDZYr;nafT_@68>adFE3^07D#e4BAV&OPag!dr17E zhR~b~Jr{B+A@nQubs~eV{heB`j9IyvXy$|n5Z@=Kn*CZ7uk3;pakYcr?lWJVvD50< zdpS`{8mHSMI|S8Ps6$=0bm3a4T6v2Tw0MN5cX4yuY`G7~PP|DH3+T5_X%uajEoM3x z%lO$r_+?guYix$Qz@PK|V6qKSF*fMa+n(%8h3*hlLW(#K; ziB(PwU9>FhzhbHT${m&E#bh?Jo#*T(oe4)vt-TalO;|~VZDd|Yt(x{T^ec?V)=zA& zhTw6f(?()-`>mf%ImVUg^5Uk0^OMDUScy2++cc!ywpq6+y**mjd`?w%d4;BVfUz+* zhW$hgc)_2j`#gN?n71XNfp{G(zKVUYEGO#iKjhYqD}B1s>Zyu3NR(f~x{TGXvwFn6 zaIO7H9#vNTfk(Y&QN-&q)+Pw=-CC;f7?BRhYrf1w!dHv@cNQMn$mb6TO=z+L(Gwwq zq?nwFW7O1HrVh4=woHlo*?y-RX>)%nw|wo=cE?G{uJ61hn+^7a z7)A`6g_CaSqb%O1c=WVkmAAIRUT(!Vk#N_-ePMZfd3}vn;i-PrAQl$1OjCKIrK#bm zp1rbz8T#B>OeLkFW03Umz@-k!`7d46fJ>A(MBmpG#CunSPJ_yxM?<V+^w&Nz{Z9?O6Gh5Qf22$U#o*M5p&<2DdH%&482(T%q<`HXy`7JNanDY^YsNy zJ}UP#zY?#LnB~aNl`0(jl6mMu5?(+)9ov9sq4q!!kd7l|9vWy9d%4{3V4$@b|g_2Epd&EPMT?&47t4UOfhbKqZdao6z=$T0Q-_l8U=pZ7@Ky zoPAl8gB)~2=$ruCu~PYDx@&SC zx{UL|NTD8)lK?U~gyhIEn@(=MK|G*j4odq0Iy0WQ%44uPOCpqsu*+gy(xfl_J{Ek* zs(lcI3o`P%ZDiC{QhT9wx8Fd)S(&bi*I2(s=QnhGcq-kZ=GTS;vITT{bFJ;>vkqAA zRINaNFPb*Un8uA;scgLb){^rw3~+B?WVBsBuSaKD35~TJy1KeD&Gdp={-Qr)ZT?GI zMt|zatmOMf&hcsY5>orkX4r(l(|w26-Eg-%?h@&%z0tADS%fTC%bJt6=&U-{4CN#ROCW-~vdVlcIe^p_o9OMApHxn1IS3On{b` z`rWgb0R10KKomxn^BJ*FFbffi38-#-{vz?*s(uU<6JS6!Yk3wEP=#UwMTqYag`XA1 z!~S3bF@iJCVgf~^?pzChvj9R+-b2+@0sC1RM1vf<8U~wU^V}sB#DLNuCEfnr(a){^ zB!$u-TI7?C&(a_ze`pX4LUgE;)iVXb{6m9~`WE0lvqr2C0OdVOerJ7rmIkSkfUaU9 zu&q8zgZytRGd)7TlEUp)7q1NpG{t5p1qjj*u-vG~l`t$$$ul=XX0lk&}S63~O ze!t>rz~_G8VnU$P?P9maoy!Yy8OGFcGtP4wuNv0<&m#UinMP0QOQqr?zR}yYQo5He zm$?RT-S#{QP)`%#DEaZT+d`Q1T|{^|@7+8 zGCsU<(WL_r(ScfLc;b6nDYc27z4r|Q^SqztoPp-7)IEr>9cD1&2#=!g10VlpB7Oj1 zkdOir=<C$>JF_+v={ymykf6r?(*4&i;NVl!JEnq4q^!N8039DD= z6tAEfkL50>oZh-_-Ykv`1(MOcw>H;Rb-C!th3>1#)viI%i(|m7;@f)x&4fN)Zmeu+ zX6A|A00ts_GKLd6j)U!E;hY59XhBtnizl5)0;8nQ&w%Dt(kmz?E$ z&K+|kR);o@)viPG5~|&IQa}ql3p^Ta5#u4*8?t;J18<1Zl*Nt1LvlVykP!nyb(5A2 zO)XA$DV^*-J(Q-*!JGeG))h%uk@wK!`1?J4IOhwfL`ucvD0<*~&7N^5EM@2*L(2<}w=ky({^fL-2)W24E4Nm#9s~7$j)P`a zkh-~pt24R{KPwpl2sN?`CU{7b))u!}j?KOd-H*msdV@<(JML_12BB}qR0*BVd?%;$ zB=-yd+(H|hl{v@C!o-yhX1Dv%{88H2VoTlMh~?`wQk-gy_fz#Cs~VG>;t~lB4eKIW zXS=mG*#Iy{2#Lrv_UFB_;C!BmA(p_fMGk_cH4;zf%nM~m+c6uGDu!>D=bgWO%`r&z z)rtR(;JR`N^w7}siM%z&83ge#wQ{(RX!gY9aq78%dN1U;YmBDQ^pomC0+Xp+=xTChyO=2OH~t(jjjkdQ9sl(;yYBCyZ_9ab>=j zg+q4mhv`YheNLD5nXP853bQAAWg5=-2?B{yo0(q2!|FFot&6swZ5z?g8O}+7s@=T< zbbwv)FY}D`4yGrQB;d>^&6}?G_L<%#kwn)^u5G!Kzp#-oj-mM#0erR=YRabFvYM$? zi0b5H3z(t}(z*|g(6GXM>7+OLg}R63fp5mfhJ_oUk&!CS1KKtKEK6bvlh59|xmUqv zbwXGg&<$sS2Y)iJ_ZX86f4T9b7D{a5YRkc1*?LXO$rX5Lt5L17qQhrvNt&i57EqVM zKNUF4hYM!#fV93*PID(kTFj(#3%0(teF6)gE@)`W2q2a^o@lr|{&GI`6;VIMIZ*G* z@aVB90}}dnWS=!;ME10!sV@tWrN4mQPrc|vki>RFLl6I)kc4EBVIeA!6XLOjZMs^o z)|1(N@eb>lsq!3tVXU7uXNi+uLm5%Y_N6wEi;xMrEFLNbICPx{z4aO&E zPPr>4hN^ppTddvp^6JB9`nt=iS~T%oD|AEnbfJZ|-0LyWQ75`9aR*9yl7>2UQ^FD} z#DDY71DtqufjM0&n_Gu(HmH|SaRR?}Y=+?7IB&hFsLUiV^rxM43k7g^d0ruF%4S@l zjTWK=&Nf-Ag^t=>l`d=AO|Nkset~Tq^OEoLxjn}4D7tz0#xEJa^6dv|%SJ{_lIl&Y zAjVVjS7$#Y_;}%8;8$Grl~o5aW{l*dgEPb5cin_=X=y8axu>+I>GV>taf${1gjrPA zB-l1ImJSfj+v>_^#CNV_@C87}h|>!Hgjw+Y6=s1yF}5Z<+c22)C(I%=vKxaf{vaMJ z-d;T=H8qI|U^6o<^W8C0w$u4|Y5nQZrP2Adw&kgI!}b-`JX3PX(u)Hdl)$>?$^4M~ z<&@M0UdMyT-%w))+S7#zoivq0rF3^c=WVLIT$=MYJw}7MN8cWgLwHGGF)oMoJ6PM4 z4-WCy*yhfD(@(U^d2v_-{S@?eoF6pF&#>fVkvibX056!Iq)FM9l*Q^si~vV(L*ls& z-cS^_yX4|9mr2m1$kcR4H5AMe)y8<}fD&X^4As1NJqvaY|%hrtV*3wfTNBtpV^ zI)2(RjaWaVLurxy^Zl+p2=7)-*L`;SrmW_yneDG;VV>=?gRi!k-(MXbovvxwhOcjK zkL6CyCj1T}*864+?HXCZEXl}w-?d%4U5zZ%w5lUv&La$;KKcvh!|DmdEdv!@m$X)_6yzI=iZ{v{ zNDIUQJUgA)c)o;&fhXr5@hxP;ausuvWsRNU2JfyK-$GN2L5-bb1U!^(0Z+F?;4#}> zJue{L^(E_4fNWV@9eC35q!$DHgZ2od-imtcif}ISRb(e>JJvVx%4sxrb#iAUN#OBj z3y#qB*C@_B8x2cE1RiH-tLA7Pbu3^UlyY~XY40%nSJs6ExNB;w!*+3}b|6XeSN0qO z2pOLDJBP}+Vp5HIkeI6cz}zJf@v7QsMIz+482OU>y0X@}xkqy;(^rjP6Y=@=4({CW z9WAyPCwL7Quk_<&YLNh|R@}3&A$s14WU%i=l8uJItIqbV4M?(s4>%)N`f!~224y5{ zGoc=YTW6k80e&#vb^=5XA;QMOx^tReSInBeN!@{t?*ThFDS5aF*B0}84Vhg-KguHO zWPlc1a;lY89*wYK4KlSaXW~%X%}ws3&4C@mSH{H^1b84|-;{(;v1|;~$|3%Yy4Y%j{ZZr1yJb;!X)fj|$M_>Sn-`R(e%Syb{1t0f`~t5i^~K z*~%XdgWWw85+5R*93K@p#vd(T&ENp>=(;tC%z2Xo>9(Jirt%1c?sK8k0 zaW~)jNI{Vv9?CJtI6oa-^m*y-=w#Vq2sAebtWE@})!S&N;MP&A{SI3Z!J|#>NN{aS z`WdpsJ-9#Wx-CYom2(;qMnDkbf-=Qx`tbSo<<9FG|L;hK07FBi*O-F#{`ChDKNFW( zSf*q^2|ns*e%k1nHBB**3t+RYu>Zn7AaivTxZDrhu)az$>U)K=j}>)>Yb8wVFL+u& z>82tHG<2LBZ9=0H6kuX|J@FQ2jIy>YB<+*5m<)EB5+vU*MFiJAtLmjM7wX5@!+N@G zKVq1EdZ`n9kFsM>tqwo-Q6nLlPxpm&j`O-M ziwPQ~v5Yjun$@usRu(}usq>7z41sk@by@)z@dsZ;%e6t>Ux5^C?SrC|fwV7d(%&li zuUK3shp)3<>x#rw^z{|wO1@)MBGL$*C24*GFTz{Z)_!cQ!#qRIGD0c97L{iiW`knZ z>p{^08>+-B+(3|7qY0Z558{{vSBpfNh8!bP;=C0Em9OxzH0-T(DQY4S*tC6k(a>VY z7iXotYBZ$QbV+z(*7AwJqitscY1NR7$I~Ia>V@TpV3d8WTA{JD)Q>M&cr~X`@C{+w z-L8V!zi_Yu5Jc!cMTtQ+3fJONtlr{me9S4Yf}U^V<@9$;4yVF(p=nrBH0I!}Nw%ih zk%DFC^+`#D?1j~JuB>%(FtW254xbwyS~;5oaOy<0q&UWzFD^AyvmBg@L^lxX(2$8x zNQqZ3ll6Nhv*f*iBYc@IU1|W)(}JWm=?%Pf1p!D5WCUO@EZh=7bT8<2x4iUiU*1QG&3u>U0!ksCP;yQ; zD0da{zW>4XC;uWY6PkbV5FkDtv=L_|Hw_-GWIo&@wGeiaPAY1FfRp41I^)^Pq)lrt zYC()jgi8vdS>>GeCEO~C9xX~Yf{YXW@WL1lW%;3Aw^#gRhmPS9Wz3N(kVvT$e^h>! zj71^EPm$}17caEyq*!vHEJXP~SqP>VucLO<-`n_D2zI>Y^A4%u7hMKvP+1dNqO;~( zD#sn>&2;Vl5LMM=P-=PukL^^DZyMEGyjsEV_Ht2!t)y;%>`ZSd&Ep(9?q-_ng$JBC zZctj0*siGGIq#IxYvsb19MB0TH!_9J^DZ~b(gM6#%L3Sicbl*nhA~Z6ly4z_^ANF4 zJ?H@IYvu66Majdy!@{wv;&pRLg-^|`EYcJLXthqC`C+9jTn0$Nn+(em!j%@wIbW+k*Yx2^wCBJzcZx^s z0$V50&+!~_4izvH^`hBJku=w)=s_>?3!;=p{hbh|HvgT)q7XlG38oJ7d4XK=Q zNC)w63;C_gbn7>#*s;d-UGt8FZ6&+>4fuN3zuYcvylO5IF*HOuMCgRg zgwCvG851zjyTAOg!&uIGUL%VKn{Z&hGr~dRHI}jcUnvOAW)>@i@XKk}Mj3b14yUyC zI9CM4ct=kFLp(SPVFs8zUMREgGM_`M7iJBO$z$E>yfh|YDyc*Gr28&%Yxh@xP*SB# zuO&-|R%_=|(wGYM zu9iE4E3<`-zsvhnHxffuIit1gUYn{hIV+t0}U zuAo)9)%(!@a3uBQ4gvuK0PQW~4Amv|P6?SgruFl2Nvg+w94ZIdXBnj7udNoun1f6! zd+7;h^=K4B;_uy6NqGavzLY1z57JyT{NVi&OmU){V)z05bIvJo z&=GcB9~F%`I<81C!#EBoY>bRj$a74w$3rA7=4jbZW5#)Zomj2SWgVPtd*K;Y5}!i; zS@7gG*Ukd?6ENXqYkg*oXt0rAKJxX&7{90yf03*4ajT^dB4M1F@HXKe7DC(8#6OEp z4f+I0A@s^hI`WDqHlt43tS(7#nWv|EEy|oW9`2kJ6-VAgrXIK-w?&VKqs2h%wwS#9 zj~VCs){tJ{b_6<&XtgSC#hzljrYLC&pq-g41PT_z3dLo9mrq_mEIwFi&2J!YkvRcg zoK3s)-*M5Gsula(3o~dJEG=Cgfl>AM8#`rfPwdX1ZV&Sf_Ei1G4jh1n3vUJTkeFG( z%^=a!4C*I$USJ`8`{AO}tIV2NzYAPj3HK()hqycFG2n9d%#5u-qb+;ZS4DkO7s#H* zW5LFP1GL?eu@u@$P`hjy9j>I;VRzPB3(s@lo3-sx!`){M=tTW`5FHsXDpnc62&Y4;>%)EMq$P895nFe;3(fvcI_ZlF@Nl&Lsc%n-PEx5d$4aXFno4z1~z9P?f$|5gDW zn)^KTjp}gVc-^LKD(qrK`Yhp*A9iC-j6jlulZ^3Tc0NRZ7-3PI->36VM_}hx9Xy>$ z<;I-A5ojOWdo_U$xdU!ds)sQ>oOSM!Vo1yIJ4um~fCmJ2kqL$$PM;DrB(dVUA#7vax<5YrJTb#%&^dD^3MxY)OL$bsG0QUK6dl7b|pi{wXa3-=V*2R4W)o~|0?4* z4D#Rlcpt{f7(RjTW~t_l`!qpnw#)nbqH;Dst1P6kV})STMQ9fZQbbbvqZ3&kRCrQU z?dLT{ilTV`6Vs-#Jt%i#yT8GJ@+xDo{HNL&D*W+A1T7ooXEg93&sHLn!uI7d<1PnS z+oK;@oX8UVZqY*bl19U0QW{>*#e4!eRSDI}T4{rc3@T_=DwlcBIqiR)677JYs86FN zCv+HU^bAoV7tDfx>G1M8VyRC4^EH%Wh*SGHUlO6UhtrlE;y}I)BDr|YjG1KsR?Y*O z)kLywcc6Z(E+qrN+GR9hHwr{F{N#pqLAYK*tr+)Ox8>3`-L}{@mE}uZ?dk^0h5C(I z->UtF8Db)zv0&@N_kN&1Rrd1+sn@PqR#iOmF@P&1?Wr#ZEGRi6LfIbgI*cOah9Joj zm7i&0rHJ(@uVS(JD#eFGUyh47Y#f+gZlBmT*`@a=$x~aq&nWyMDYjJSH>J&*x60MA za|RA2g%rZbP2VS_ss zmD`Mkf3Owg|DCN6J4Ub=5it~x%9I@BM^!AUcXC>VN~ZvY_tu)aE)KM6yXT8rX!F2! zS#3hZl#=NLmfkAbRevUTjq|t$I^0FMDDgYiLs!O_DjHOhPh>iP^@HN-c4y}|wF2Y3 z!+=Y|X&>;1DipbRi^bLD`dZoT3^rRIzL8dL-i8Cv_ckTgs7eTj5IZlZrKp{gXXPYz-kOX8SiMAskL_wUT2 z;!|77oWIXn8sU7<1~{ZwTRZnxjg``$6KB3`&#w(ylQp9bJQi;>`;qmwReomrEi?b! zdb;_&?)__9vQGcn?zi;GuciAwoWBFy?k}Dv;NCAMD!R7moA$a0$M}%O19Ke@a5z6p zTN)`BG5b>K!YAuyWIfECtgo-i{Y&%U-wE>rUZqFXWE?Rd*=b)i&%bff zcIThJx#=QseMQ+D==zGXSIhoLUkYOPwB*o{W3=41+I#S>&GmZfAM2gBNA+@V=f^W=`PJ;BFK&60Y`u1dz5h&o znNGGVHRq2TExwtme(TGv-rMiO-?z58?z&MspZ(Ot6aLXr(rGn{C*SXwa$e~B_9@FY zolY>Ha<)B&BZQZc^X!hFy?(+M!+0)lVRZV?wf2TY`m%K^Ma!+tvTvuQ z=D01Hf78qUih^C@W&$nCIsc*kd_P5h?ES+Eb z?dGPeK+tJyd^;UT9%``<&x%h<8b z;jabF;eS10fc4gi4Ie;r`11^HvCfre0dJiMS?k_bh;^w(t2%J0#)qDlSZ|#O0o^*0 zWoy)fb>dvd1}NK_?!%AGKMSHjOEq3kOpL)M3-m2;sfJB*6>301*F{_f-a4@&s-Fk@ z83x?`2`3MgJ7Tpp;T}g!#Qw-zZb-5~u)2dnY;=YWf}!`HPi!3qZy$2;T-9mrc@ z)^A1I;@N!hlO~uAZ8hW{)i=I7|XAVj)xKf&a|zc0aj39H^bXQNN<>5iq=|s^-UXz0B1L-dJ#<2E zp#`${#ozaxbH01ly6fhTot4S7clJB;&htDoq3Wt~B!o1CSXfvj3i8sLSXj6iEG+Cp ze4LvUnr3d_o3Go}k}8r|SmjYf*QU5Pzi+u|%Du)a9elKfg@uEquB*xIwyN4&3 z@!7M139bYXoLf9SJq2aVz?4Gpkpg&v0-2RTu{R)q0q2&$$$2p6mrMo--1H-}bZu=- zJ`1F3Yd<UsV`F0p z2?<*$5Y(}cijI!#0PQQlHMS!fI+h zMT0szI#|D3gMxzOdV4(Uz|D(uiq(9*0+?ZWd zR8(GG?&0GLqP1R99CYH09ra zp16PeW6t7}%CY=WQ~t zzp*kIec7bNd&9N4NHipL?v{3v!fAA|)u=P`&8VLRG1*XHJ&%!|JU z&vpHtyap@ihGN~sp=n6|#Z#$o?yYQ$!&bx3o#Cg0AW#kQj{6NpNoGX+q{2lZj-NF~ z4TFCu(nE*genX~yY2lW>-HFa4IX{56e#2H{Ld_qVNMF)I9>zO!NUhi0VDFEN|@gk$L_bPJk=7-W;kh~U6pQS0s$Y6Iuo8FIm} zA@^`dlfzVe)a`>A{d@Ioe~8|`AGUgMaD{`Btd@dN4ou{N;YPjZZyx)%ymh-b%y4^F z9tB(B-~2I@4c1c)AzJ(|R)m^-mb0U#Z!`Ey`<<%|B3e8y#@vXuq9E2<-w4-@eT+V| z{9$9?Yk7BixYwQ@a4ZVyUd-I5x;?j66>ZL#0m0X{L?epUuAp^)ya*TqfJf=^AA#5v z^~_6@HH0bSiIfP0(`4s<%QK0P@8V3#%0unP@Sn|x*YQT{ad>MF@sXt1IthTg=%61O z#{P&L6&ej}DqT4zjDhS6K7kM|g6Z0De_~cNk!s~S<>@Xd(Hs#KE*&02oE^=*e+q{J zLkRXe>q;p2fa#@f;hm+_ckx%XN{bLRn4#&supYKJ;;W$EWcj<((9uLE7pX|(41~Of z%85Xj@NPm#jKp6Xs`$}R4DwGnN9R!77|1O1@^l5#P#q00P?*9>rNQ@`-BXBKv1KH=C}BlDG|VWq<<(dZou8Jytz4&?sYKa_B0;_ zOPgf==pt6Dc-J>{O%%h8&(&LVf6&b%GJ_=vyh9aiE15x}1bcWuS|o{va^{02uF(jt ze8|CK`l==wdQ1W5V}MEgjKeR$Zp&d)kwUioJRw}{%{}4E&FMPzLi)gK?7#z3>=GPI z{TC8Ba5MPprh#z|=#%LS3%`<5)8yC5aQ|lHr}r)f7$RzWeeG3$ahp~&E5wi8=9?d1 znc=O#4*=sZ%@*upOl^pvMd!Fu2o2NTNOXI_H44|}e01|1r&T9s*rPhbdWT{&|KgNN z^~Ijfcu5i-T%zs-Vfsn_&p2w+p({sFM75Voq;g>RN!K*KoFC!G7a=oVk1(4Ny*_~q z^1?9G(1cIB!lg#~$I085PTXnMLj?XU8HSmVjvKd?g;B27Dxx5wkYTQrJ&)q~M($CV zDSX#)mi{U2<ylfH!P8v(D|N5EuD6!Z(s zvpl`R0FI4jNaF^=ALSL^4EOIQLcH6vb*PYT(tquDjxQYn(9(fDcREpiA zDx^0V)IS2QWR2B!KTF><6Xyd?G+aut@Nc8=0w)sys*U^S*RCz#9xje}sQ9|DGbw~8 z3Lt8TyIfyD-oL|j920O%h4zztB?bF({lP8@7)p=}*eDw|;9oiMWJQ4dA~W`jW}=&Q zvaP|FsC3B6{R8p-H);=MSA;`MZEe&et^jU7oGPdHrlHEWcC;yTA+;*L{zp(n*gj@Y zQ`57CYNkP_1}Xsy$P97qt88wpRg_alyIEgXRV6cmW?S}0A@8cYgt~tc$^f+LYXb4h zRQVtgchjA?RrFT1%q8674^|6g$43ixmG%1^miA^k(f;B5V#TL}D3bm?3o4)IGPWj5 zx;td5*dlBX4Gq6yh6`K%-MFuCq{J=Y80*|FH13 znh8|-?S%|#$USsm?wUEdwx=cPs1p)PLOBOs_nyPSUdV}CeK%la{95-DfPi5m zy`kBEWPQN^Z_DdaP-Ld^j&c~TsvTM`(VM;)6k1lOZEABGTmJx19~WhrfUCW%K$rU3 z6g5920CO5Q3dd8VuJn0w%>d&esIfR%HH~;#1q^6;Z!0@1t!m{WuzQab{E` zpu)JfPT`<937&?1rAD$Fb{|}hS@dJLCVH&IM+)Hn&MMRoXQKN2v*;(puf#P5w%3Tj zUHw_RtoIsZ0B6o6cGzPyO%xRGC|7$K*E{O z9={g%u&Bcj`J+dRm(Q&Cr+}148IO|@SqfZ)W0h2bU5=o~2nKdA*T%PbsNmyIt4ANL z6L&hwECU$5P4eKsu1)hLN5W&qf&SPy6!9>O1pTKz{NT;S&ieL(49C!GBo!4ze`Ol} zgv#3zSPcItMkW5yL0>wIErD0mX5q2Vv5=1?T95vK6orR&p4FXtiN%xw8D{VUySg*Z zpYL$|uxg%b4c7z`WvG?Z)(<>Dv6)YQK4R z@{18rP7L(&@*oYnBsRdr;O)a-eyP;-9Pmi=!VuKJavt110In$S;orud$OEnpN=v^1 z5I?&<_?1?Hcq07-)xzcpeYJLO* z@~@>q9{>s1O*p+-cF;GWRswbtLH_=63lj+3M3b91`+sFZ;kExe*DwPyShq#GdXrBA z_Ti=mznh}}RZk#b|8$#~XBaG(XSTybLnuR~CBO*Fi|sME7)MuG1!Hcqrrde;GKBb& zhJdFReevDkI5WkTisx%iO9hK%==L7j8=Wm~`>e8C`z3>VXPJ?)MT5?tbREZ?hU$w{ zVFo?(>{Ofs*>>;6l6qPmTq(F!lD^^@5YGdMxl>y|*9NodxrR@xB1W;Q|NpV(#1J_Y${h(*ozX_3Qx8b%awof+WF3Tfezc$TxCNO@nuy>O-+I3 zMggS#s?)K>fxm33RyPXZ#qsnY=hy6XDOdf&%iq2$JFeb@$ z^uNB&IhMSC<0)(P+rbPqwtV<0fcc)Xl13-lxE&oqXvfBDR~fMd0-m6+)!!F12D;T+ zOU5Y1P)fN?AQ?KZM`m~9ALgmk zil+t1o5k}T-!WgUpQ-Ynb*#+!MVpt59}+VWb6!8YO$5*kK1;+eETX!!C9xd-MVesG zAZt{tMAd!i-k`5+-R2w@nKAoqByvao@oRCOaUev_LEg^W*O#+r3@JUk>7}Z zrF7b0)ww_W=}>@8Q22)&gXCKNf>qS4;8e1wNBj$c)j@6)+u{W8dFOt#RY`|3D0?2y>COIsh`XQV`a$r+Mr|6PQCDc4(*LTVNZ<=moQkNb`l*7C29B3@g)YeId=LFf!5_k>2^W zP`gD8A!99j`MvCH2`v}!P{e-6v+>b0KhtKG0(T2{yRj5f3hnxgA*!lPf77qxi6U8} z#TteJ+}Uza?)?NJYixQ2loE>)-d((1|A9F*Ja;c%d6=E8Br=7IUrb~> zO_E1Tj5=*(%(LLfS;%eXi7YsmwQY4L_Uf4g^BajGk={u^=9uoCXwIl4hsY6XrP-`n z8&2Dpp3(^YU14o`mSS8Uw`p|DmLw-_YAkizlLRqyUTXd~YjS4!1Jt;VPM2BVJkBx6 zn;gqn05`v?{Vk=3uXaMHKlj88M~N?;;G(#oEfLZI53xTMQjL!bg? zB=m!lDJSvI*eo@S&vIs6S9+;Yw%Ea*qj>1{4rGfyjiqBEE6-K%ZZM9 zf_m&)WPQ)JtH)nid*|d*IZ}fhE%|arbIp31FTr-KI%|vCA}o_{F_C6Kkog-Q9aBCL zRoj`nc*;G;7Q2MobLv0%8w~fdJn|vDD%NJR)Fts29{lFvw=0B){dl+RMi^?3hCZzmZn>8=t+MOwtjl`$0dJb{f2S+`=(bHK-daQ*{37 zdC*IKzxzdgj*h&E3sZdaMT-upJYUo9a>;A8^zIJqsKOHQL)B@n#0^qd8or1nP0HXS znd>f;EG*`GUI2)xPfs?i9@@I|KS|bE-(f#CXUoKsi5!J!R(F$ndSd68)1~vLzTIM= z3>8E`ZM!14jFj`oHnx8N>>@-=+g?M1H*vwHZRD%+zAhJiV6=^BI~o|J9xLD@k5;nW z#tLdX6XDrQA+&rI*uX2g`O(g{{iX3u)m+DtyVGwc`+vPsaDxai#)3rQN z-{}!l)LF8In0!a;DOvlBIW-&fH6^n_PK{g@PwgUI>Mv=5xi5mjsqcjom$JjIrz;!q zE8e!L43iB{UrN7MvNDVR#L{sYDsk_5bm!M^f0$=&Of0A)81)(=or2FKzp)Ss9~u}m zn?U`De&l3*r>F8K*X~5A4asCX%rk^m5mXQ6=@bWfh^>sN?ikV#QIHxI%flXYTkaa` zlA~Fwan}_xt-d?9yc?%4mtmIVA)jgM4zXqBM{f5WlD!X_lg}3!Z7h-lmFZb=;Ul77LJKLxP$6)FO%$Z-dvmJpdDWWzNlvZ(M&D|RCSGM^=xQmnNF;@S4@vn zQJKrrQkVG$aToG)5E`k8Y*?#P!iN0au3v?Yb~z5T^iC9+5?^mKzAK>}!2Nhj&y8*j zVaGTKNj-RE!~y&gM(58je$khJafBs)SS0V8#!*aJWmopwQ*MncGkG!H;bD29i{k=J zIF2)CZI3|9WD=D-E!nx7R8tcY6nTM)=$lFfM)32Zv4a*fm~S}+v(oeoGg@;6dd+&2 zXxB5Ayi=*u)TAEwk$WQ}8MAj+m2Mz3w{0 zk|&*&@v~CqRd2GKvHP9eh2EQv+J*`HImSzt#98D=7VGieeo1^}&oL&?>{PRQ-u^k7 z><=5M$16i^Ddde^b4w{Ja%cpwJUUXQxvQlObM7Od{?~UUT2EUd- zd~QP<#2Q<^TuP#fHKCw$mXoX&4KFXTJ4_)?$Of71;SqnQxNSxFIROfabO(kytxP|V$)yuoZ2*KaYE zuReivrjg6~B4*dO?w~;wgpsFJqQc1w_lTC{m3nLyD$^-fFWG_?P5MRp%|~u}&SIW& z7cZA&k3fuzXyERvt-HUforT+X?l=m^^-|IO!~#7G5Ky}T!%E{%x4;;E7umI*y(cRP zwY}eXU(A0^vMi~p4XA3NX?r;0*(hdb$o!{h^5T1bx1yfz%I^Z9?tJp;!((0Q_=?b` zUg?6gSC3lbYeN#`%Qex@$7M1?yZOv0>IWX{CSbXB042oaMz+aniWRcshSs0;48APC zR1%ze4&4lSsQJv^o|gWJxhVB37N;)q{1;kD<>t8-feGt=97j(R??$zjF;|&RU)!3q zF@2ff8?kbr>Z|TJ+zNA4(OS1hT(su-y4RDBmX1$ zKcUb6V3z+c_W2Kh1V2LlC-MP9a$!%?QaD=(o~&l}Qjt#YwaH;}P$tr zsT;<*a&HarnmfIp@`F6pxW17vhpMllry+5idiFz+#;ll^ojHvcvfB#ikmpbOWKVCk z8fkDm5O`15wwcmMyfCR*ymHRzop&XN%1;beAsuV+PT*hK5AvM8c3ZHYTIJC@us$X zq}^#Qn6=%IErubmdhT$DU&nPZwu4cuP3lk*r(+QF6KZEhq9(z|$O-X|R#6sr9c<)k zDVa9<=^_2r+bdN%z~Z8Iqu#OqVqejgdHjWpcm9{2tM|5vmSP?RB_4&#wAClxpU^C+J5z_+iSfNLw+H_kN1aOd?8rc-Qje0JEf@1$}i_mSt34|yGA8Yc_(rhizF;r z{hs)`HY;93IH)1j>0L=WC`T|1qkHeq6W{E2k(vLxh0I~+locIoJVu#Z_Q}vJ#s4VF zT!@+dyi!)M%u{06kI`XU?feMURjaut-s(5e+;acN9cJ-s_2rRejZxx3R2=f)nJ#&t z>?C)ahYbU5drf3Nk?F(mfnW8!_@<9#u0=6KmK0LW!we#c5w`_e_vekF$?yDEG_{1;zZwZt81#Pj z>i=^^iGUI0J-iGRIP0PS+6G($XTc1cHXSAsFyChx)aL%IQiTeW^KAHJ zS3m1x`z*3)3#_ObLWZqlv^QcNhM`(3Vq9{aSgS&8JNjhjPX-RDGg5fqy^q|h?f zk2b@2TbAuf@b7cI1VZulQ7HG9GyA^m{)T!N`>psf{1r)A%?NMr_=#UERqxT}IA7%p zceKjAis9TJhJSqkK1$ep8-;u1jBBv8-6QXC`cV+*OxS&;`1NE&y$eeXMoZOD{1WZ9 zr%vvxq<1l{`rHy0syZ_IBLv$wVJTimR{aMat{h(1>8PeTCudzw>ijbfjHN$?bB%BY zJfSvz@-0=}*KMB`c%JJ68YFb@2(7b&A4&5Ef zlT|iF3f|>Z+&CmGg#SvrFi$ue9v(kx5V>hu3-x>T_$zmu>|(+X=?k)=?t1dwIJr}CW6yj@pM)C8*~!m9fZc(k z+%_gg_va^++OkN<`;-cLeyi^k^s_^Mv^M)@<>m-->!LmYNu2??mRNe5nEmDVS&*ZJ z>;g5xyvlF2n#9QHmU64o-LVg!w3d<@sCpz6ya-GUYO*^A#~7^9pJtYXQP;xIVETW_i=$7AW z$yenw7I`B4Acy<0frBrX68OX+7l>Yz050mR z^flG@&W7BUEfWtv(Ia#Q&oqa*!fvC6mcFiqK$3R80NLxAf#cHNXjKNNLeb0-FzPxN zG#LjFdagN|-%)r#Dg$%k;~SLc5AS};cvrN%vlBPdfXpXsh!y;3>K?TjR@}@U#a4htLT`-90OZ?K)-kKBMSp-~mRpHgJ4~!upYe zDmvV@mNWGrI~A4@lNd=NGd`w!^IwLPX-p}!z$)a zt*t+vxoQD1-B~036%Tl@4jFJU9xN=od?lSNF)=c}hP_DV)rEL6^A`Q-Sn*(QzVW)J znDVh%6N_j{f-SX9?)SOZDm?n!sDtH=u2+%Yt;9K0V6o}xEh0-xZwfnsEvs_TCn=%= zQ2>sKM~tMHygZCR{0$_6aI2f~)X?6(EFR#ub8)KCP2XigB6c^57h3i;#3{#-^txYE zs#bRGi=;vE?3(G(w<1_!D7Lt$RALc3Hpfco=3&UIGQH?rSUN-$ZYnDmD9?CNxrp*I zy*Q7lSU`jvfiF;O>k|w|iKym?>ux+@xALfrLbm$1C3kqoShAShL~J@Yz3;>!A-rvF zeI~w@je07eiJ7-UyttXqfz&WUru^Xe&o`OTF8y}%zVk$?NZN_ulQB1o3XkZf*kfY$ zQFwE$i-az=cAhG-jO}w55JP!$w&q`F0b~L`J!}D)klf6y3!=+JQLEW#r^3OA(O`J1to`jX_s*lW=P1&&GoDO^Ew^v152kBI&3?z>~@_iIF*{6(gEjmFB zlu>>FZm^;>hwiY#q+-s!TBZ1W2*G_99y2MIl<3BX?WpgaLf_3DJ~UJPScztO#c*){ zdGe=yy9k+UT@_fUJX6eDtFGwRBOC^4fHIFn*fGo63mS=ylu;A=08^OZvjqIz#&8T8 z$B&|~;8UTUV`loqCtHdr`a;S0 zN3GZgqeG8po_wS1nu<7%1#UJMC2_E#nx@O_eE-MGKF^7bR3!~!xFvI8Vw7YW;?8MAaNCf5dRyB#wBs%Wnn#^ zdN-A#aBNV?wo@{&Q{`1) zJ=ihmh`Wu}vu%PELRl|Yl;akW;kl!cvmuQlLPe1N7nJu4IGgsEG+IrL` z^v3m*{Q8SGY^Wi!AoJ|UJ&40&6e&TTh8qsh$E4{~z?nL>o=YT-Iz9R9yt_lIo@G^7 zrH{9^69POjdpD2VW`kvCS#CL#4-y@69m?&66IaU=*nav-O6SBuc}ZrtHYT6>o%d7@ zc4}7gsQMk#T!3Lkko(bn8Bnu*_(t$J!@RT%KQM^Tg*8S4yRYwRR;#jR)V}ziPjd_owPasI zGVMC^cVbIf*|3o`8;o>7KZP!>Nf^Lodgg7*)$J}Ut8Q_U+paB!F_GjtRZy7AFupr3 z{$g~9L2W~LLT;_=nLFl2L;oXOsiN+=u$!ZfHwitfd zR98;pClQqJn;E77o`FP3=6XfcPyh6!tWT86L<_3AarDzJuD0rgAhJ!77cifZ^`d%K zn647Y!GC?*iI7CuzPjA@vI4~xJgbK-yd^c2&|p`+-i}F((F`Wf(T;r|EVI#WUErf$wV4*uid0p&eb0Xi{dCbt**knr2x39m9b04xeUAI zGT1%US=OA-x7ggTa6=mV;WbTrc4b-^QO-*gIe^zLJ7mCQYqh`>s3hw+G3$<)7=h=D zZbwCITg*ZH4g_gOcI~a26U1viwEYG{vOvSMo#%#CWu8nJ8H?|sh!u9}9zns`URKNr z&WLoN^4#iY@pG5T5F45juCfE@3xa9AM{Tb=qlH=W2##yvs%g93&pNbj+$lCG%jGw{ z=LlK4|Kr`Ed&Qr5pD3yE*a-{@sab4GM-8l1KBQ8`rq8%-UYSuoM8-88-u`;$Gmy7# z>~srL=`J`|^-OTFODlOTc*LytM>y$Q#<}cU7K# zQ~4R%NLLPq5CuQ}v|l{H-?8eB#rA>!N@l=}$+ER>**kMdlZ?WBK5^EE_cG~stGrSt zH1$lFS90Pfrajj>grRU-YBTpRzP_`#t<{0btwI-c7;8}5^6txrs3q@46^`O3gK zpbB0m2jycGnNz*D2^A!Akk%nKIxK1~_pr}`nT^B#kXP!ppw>5x~Lzq^|Ovo@44ccjt2-Ib13zFB{9irC8F$;a4=8XDu-{Zdv z>c86b7U6MEu4Q?}{K`&-PUhOPNfc6SwzxUgQ17_Cz6CHFHFXj%6I>)y>~DYmQh zMN;kMtcN*NNqd&kJFk$R(-u?~WN6Bd>+9`;<H^f;S*EO{j( z%vCn4@(hhvd>m2f&eOO8Ns78P`<_PA&%P1C|H|3_4<&p!2}$bm zPoe)HpZ+(=^lwh;zms8c)z%IUn@SR(+|Tm+0)?uNaM3}(&;N?!gdQnQ)Z3z-W~9Sl zOp*EVuGyZ({u|4A+` zt|Z|kA+fwbd}(F)7bSL+u178LhJ@tg5QhEFQ2}Rdbh|e!12(ZDo=WoS!#@LnByE8W zj6j>xOp{aPrue0yF7>&Yrc8jq{NV}37>Jx!Eh?|vdFuhp+o#dr`a9kNFEOMh(EQMp zupqhw5nAzGeIlVq_g8%5*nplgxMKu;GJAfke+us(po3(vAsRO5$#32x8Txse-+tnh z322r00eB?`;`oZF{S3khb28btqu$1$qtX2NwK3gw9GK^Yq;q**|qb}X)tUH=J&jH zd+NNosS*v{Sc()t_Ozbk=}=?zxtry;xC1ssdY!K?f?aQ6?4tk@l4(fUKBjrob*hlO zIHW;XccKA_w6oEF0Mgpc{~coZ<#O3?axFB7Vm^&! zJYQ1t`|ACRc8-}-iLATsE{eMRaz$*an37c71G|Pw(^Ly2A_PPf`_P&>hp`+*y zG7Nd=s7ArvS7&vrJ0oYpE~#SYgnqa;9H}|{M_4vo9!0?V&Zdylig5Ve1ERX z;zI-`>lw|)T({riTG1l~#m0kQxi_qSuxO>C-FDD_o!_7uRT4|r6-nw*{dSq#vwn4{ zJ)__Z39~pRo>&W|7=aCmpVjrmd;Gc@e&Di@n)Jb(fTjYZ{Om$lKLDVEh+bGJLclDNZ`hzp zROatyBXki9e6kNKqSbI|D*id(LRgDa%6;yA|Hk`aFWb|l{a;*B=hYjyoNgKg0BIkG z8Lj{|2i#WT59Msh)7~@eaps+d}P11ZG7R=PPRXb zS9&w~ILZb~CzN%gIZl^nR*8IRg^e0i-^>x*%&)1k&8X#}7ySuPcEruGN+`R%qrXRH z8Xf}fxur%e>VDlZU6h_xCwM*M1{L?*)t6FAoP(ZSp4tnL($_DJx)v>Gj!)FL4Tg!a zMZRfi^2YT#d%x}?o0`Ct{sxLZXsS9VA8Dl9kpM{%mO~5mw=oo{Y%|jNQ-MGiB4cyW zcMBPYgw!Ow>Lrc50S5|U2oT5(d50-q1s|WRhblD!8_uxmbv@XX0C))j5sl)-ISY+? zH^{M2S3mUe{G8Qsq%>g#`^~wzYQ0>_RW5B)kD!_dm&W-;zGy8yFXVI#j)>mNJgZ&p zzR^YWJ>AU}n}f&xC7hh8B&5Zeabkz-R@Qob>PmV_a+c?su72f`c~UznV7cR5Etv|v z5gr;kt2WdOJJ3WSe1kFAZ*DB_d+r&NVMx=2Is)?V-b8?{C}4A_qpuOz`;l_Y zU8bg@;)+V|c)!_+-Rx$5zE3fD>UiquYv9w=j&F;xDw`?cNfx8I!*p<4)$|pA9Kz9f z$6vcQD>)Ok)+ZC#E_=qlApB{3&9SQFWl5!jhJ~#_8V6 zz(HwqeRb+?={vflASq6gDE-vuiOTOj`szzqPlez;_YbfbxiP0}G8up(x?E2$gook5 z&GVC`xk#8TZL*CG9TJv`dsXVCCkx^z83fV5vI&| z24>}DSrQHCW~)78)!hF2qi>alnuQMaN(m?6tC8DhKCExA(cv4{2FFwD=OTNAbT{D<%=>;(3%eX` zABJ*)r;CNpcO+qzP4|dH+FM^_Gohk-IJca9l}k`&XnW=FfZ5~7!kM+1y0K872tOQ8 zgSU*Ic?V7XH3K!9Th;??2Y&-3xIM+mE!$1*2_|YL%@+@D4T8>uLcWd`QoT;yDL%1o z4?{7Y+N3D%yFR-#!k&8{)=Xb-cQp#r(udG{A~y+^&x;R#{J@b4*E5L<0`OGlEvm&c%rk5iwV?R@IARH(2$S)vNTTW^S&EtCkDtAOxrT7h;?mq-YXw@vLo zrLd)@>DIrz<*fEe#e%1o&$IROL};{D$Q`kQNaRpRVB~@^f0Juv=8ksz>PR~$t4qdw z1hqtd2;)EVGh!8(cI1#5H!Xagu{PQVb0F`YZEO`_gKgH zlUSLmS^qi=XK2-8w4Na}wO&dp)7m=dJBrcCqX-AJX;fvLl zXLCER{sX;E_sCAiob^socc_E7_-zoo({5=dxPC~K#E%<5-}kZ_@!%_xjwOKk*ZUg82HC5&8!2iYou z(F*Gf<2w7T43(=xUI4wpJO<)hZy9rm+Z72F zS)8dh-or&fzXEcG;*af+kBrDLQE7G=T?8BUSQz_ozzcSA#sDnO!F{X;P^7dk12bGc zjv`Vf5*6OubL1X{$RNv6K{jOA}~qt2kHIl^<_B@a5}; zLs&OeHoSr@s#D5FSXByyfnMN;?J!^(1HLo$#_U$d$A2ct%$)~W!u`9nq&P`mHWDM@ z4>4tG^vuGQnBO-6&C^Om%<1@Mx#i!2gQ>L#&1bXCwFm?IHM#i>Pulr?)3pgE9b+et z?L7@PCxQZbB`htyO)@5nEv`>iV0SVJP+k>%-Ux(SV)l~M=XE6&?i}gor zhy~2VKCPE?(+yALb+YQvp+Fbr9WDBB%r2kW);L(&q;b;WE}O^K-qok)7)~4$wfX4* z#^7XW_i-0<`FcKj>lCM~dt0Xif}dwxBseg1Nd&c!`(ZC!8|5m#96&LsEo;3-rh2>Xk_hrkv^q&SyKIWdY z$t@#KeKf(13B7`CUku=wi*$9~^-S5fvz^u#p3t=2IH)fDtRe|JQq?t=3j~U@An0uH zjA2_o>_8!Y>|8Nw_lF1lv6%kMx3prFbr_inr zsT*ArZ@6x7-_?u0*&1!TJ^T9NdUUG*$8?t`s(1QUc9FJXsGUyKXTY7hE`CtUf_z%N zy;Ca~In)|II3Nk)T(tnaBQ-bMk!>VtQhq`Jc*P1SlLqrmr12uNvf=et6K}2$1j-hC zul9VQ^KV#hu7}9L8VK*{ws&ezL`iyUc1b~IDf&HTwlqNK@7mq3=#6N zrMg*#F%+fP;#UI^wBSag^8yxniU1=}rCOcR@J#;)(&|;xQ`%2Jqu{TbeFP4s_-5)D zlVCtwJ3H6y&LCfXQm1+U&HV*D*3G}T7xt6Ju6_`b<^3}|mnP!D-#xFE;`JO{`{xe; zB8^w8rYc@{zEmwA|!qmj;bW8HBu-eh)-uZud*$pdq4|AX3P1Ovg?I3&W5Eh>-3f zRQWEMhT$94(?8Ny7 z=wE(Nsj9AOI|+1bM3(NcTHGxUy&I?N-BKT?;+`iBmhSDECfwZB>0rHS>0V=gt~BiI z*Bhg7rObVyn=Iq%Mcvcfzs&VQ0cQvE`*HLde!GNMzA*JH@a{g*ce_T?vUhN=p=*RM zE)qV1gz!~kf~GuSrxW|N5btp509~;~29*95jIgSyX!i;VLERZCElaSu=;UhHiGJq~ zYp@Ra0EjGF+$WIrs|c+jm^?>xvXWl_yX&7?KwbV3&s&(V z|A^E}Tk9nhxbIgIkvF@en8+05qdq->o>`ak<=Lu+afKByrC#U0WGbo()s4btI8qI*r`TnGp5!0Kw|zMJ_i4W zAP~U7zC@--;CaD3&Qrbi15PJ{Na;oE&eQi_mvR54ZSG;Con6u39)!vLf&ZbN^FrOx zB-H=iLG_KNHq*ZM|M!gqSnL?6ce7xX!u*fhNxR+4ZXEJrrPCUAI`ih{cG_R!Nu_dh&aXe{$ToY50ltoJpaQ1kr$AwusvgHAT&VT)osln2v#Ji#M63~MHV z<718{fktP9@8QzooR{;@^`6MDMFdsYg=;!lu$K=5g5&jcLxH`wm)j2ma#2(Qf$Mq} z-i2l(n`o2zt3P=9xxpAc8CZD%T@`j{hfWq8n;6R4SN0ts|K;aF4A(>}{f>YB(of_F z^ZbU(*k4FD9XPpW+P@*4zFbLRVXpwmto!h%7)0wV$zLllw_Zzt!r3sHzn3=txr_mO zIShTh#SK>P693nMsT)<4(8c#<&=%>gg%o1(^)pA222!9+E%mVJ~#_dV9X>rx4X z(Og)sK>?^%?9$&Gm^a&K7)B5@qd}XtI3y;etRW#nLiPX6pd}{(k5NHK;CjN;`Q9cH z4g=RH{<27a`8MbGn+&U9&jxoKxSn1L`1K8y0b{UMbQ#g1?I+h~tND78FoHK*D&wkpu8wXo34G_*)`j7K z!ZO67kWEAOlb;VDNO$>*?ttn!W0bB8EclCIT2h%9;uDnZ^NgB>=CSajRq`j~ZS96{ zek!xSxGF+&6OBOvHTIiD3w~MQrsI{oo$$znKlJ_evx6M1`#4LV#aY(!BG-VeY*5dh zd%<8`b3|FM&yEoM4%Xeu@Fu%|%|;l55*fAbn+A6)hXCY^&Ilr&&$rp6l1-YJL1~35 z`GCGD5(Z@wadBCQ#YpznqC^r^~@XLg4WuD+z{>bI86k(#2ZvpKox zn!SwWulrkQ7lx43OaW`00W zHwn>d%yV(D7%y*xR~I$;Ij_9h(^Cb1BqVj%tc2HVnZ0}G^Nrwk+v2{2;Jv{^%J0Mi zF4Y}R+bJE+IB`(W#N{}qs01y|5OqOY{^SLw%9-reyt^_4!q+olay1n~ze~y%xlA^a z3uktItWN9DMc)3n^~-3Lo-~nU?`a+rfvAx7%`~Yw+b;JH`#wuW`k4Doy$G~ zNiM~z`C3CX3bsS{Rv*8*U->fUkoJ8OO*Q0z#=*nv?klfGM-Bf`vWcN;=6?EGrouSI zW+AH|eGw9*LNeoOCr{TyY4H@q)W38^+^u=7?vX6iRLG}L)+MCk%DyGgu>K16{O3o& z79Pp2VC>f!M5n5xW@ToD?OZkIdmKugK9}C3T+2kAv_m;C%}k~=FM&KzeemmegB;V| ziQn8j9{`t?8K6D)4N*$q?U;~&EmGB+?|V)Yq3i4Bmd|367pSH0(r!qr24*oy*@*7D z)JeHn(M@%#pfPv0si`plaXF{`>d~WNm?bLV@+Etm@)NDXijHXhp#shA?(Ssr0OPd< zeoZH_XUn&Q*h(@g>EjuNveTvM+cwtUk$t)9j>wH%oO504TEd^BxG(sA?gRl}v~8Z#4F|kETIas}@-a1H8XMEr z4^+F3X9DZhdWQSFf{|)}*U$HeIAJaYkG{o!t8`B~?K4ERW|2YTAgtdkJ3sb0^MX9N z7KGv;f!|Rn+QN0<6#s7)i%5spLz2lr74y1I{;9a@w1d{>sE{JD51k7Wuc{QBWaz)@ zB>P57SSPAkB*I9&oH-x5BJ7jP%_GAo*x*``pYJO>i zu!Zi}PA);d?SHDO@v5U19yoEErxRRf&#-c0JeX+xd>o!LUzkr4RMt%P1W)LX$mtM^ zsqV`!p+0TRuBw~V4e$IQnZ2zC|HT40Pgvws4Du?9-dk>2ea=W6ydt-_+^9n{356l90C$91N~e92uFO4;MKnS94=)t(ej!O6EN=$ zzM&1%rU=I0_4!=z=XN_JN{*qz)=BUyn(oFymc=(WlzyZLg07Qz@~OSQiQ!6zb%E#Y zPF5l4oQq~04&2n7ylaVVPv5Hl)+XOcwDu?M_k1 zIJ0O78-h_D$g}pGpncod=cjtkECB^wG4xJ@pdC?Qn>pw9CJBx1G+jeG<6)f*HpSce zFK6dHeOtmbp(0KOzYnY)5+AtU=NK#xU(KWbCNar@dHK$|E;eJd&&#qmn;JhXGz{5q?(o(?{OroENtrpBsvCL z&?~-FPv7llwMz>ti)HP6xbT$oKFqpevj&+&r0aMv%ysoQQD3xAEDj&tnCxLLb<$`@C10nwS)3fGBz=!A zMr=QMy-t`e@*_r}RfR6@?HTqk_XF`s6OX=g?$@l3b6WBu2=2JlQ;#zuR?k?$4$TyKJbMe#E&;##j8))7Kv5|ML%E~(@UE={AUH{Z-G_{`fI} z!)hF!K6}VE_7#)tm0mq;XV_9I_7xLcv?9Cch{%Z(`vDc%zMuFcjK1O~(vg@zCT{bJ zG`yY~E&c_6!*uJh2ZN^Fo}O8PYKZs=MSQZ0*t${w+xgbBFamFTA$$o6+PXgOOvLmL zri;s53Ds9WrmfF+e9jlFfVMrj6);9$IrwGD+I`BX$0-%r;^PuqD7NBywx9sxRRK=o z`(6QJc`aQ0hx9$718`vg!cx31QpSDi($iZykM?cy?$QUL94gi2_+tb!uP)HM&SV=_ zl{5`Od_~K51Q!F>hjA&Liu5iKdzHgG`~zzc%HqS7`cQQJE&Lor zk9o|{i^K#XT^%R4U}gV&DVmZd^slulyu!v1+n(c&3s)~l_No3hI;mEOj&Mv|NP6V3 zqQbg`;+_5Q=Gz~_`+dv$6yh?}=_UY$N~UHCx?Y}=dBIe#_nETdzg%AgmvGl6mvG)h zO&{n|9FwsXxkZIm>*Px2l<3%MtU=GUCrSmrgPT~pnf$7KJo zHe!Q;>$j||mzNUscuRo2Re7p1tv)&mYW|68dLfs2x%{-Ge^%^&QV!dw9QR#Gyz9gh zr>t1nR~24AeL)#EbozD1>yDuWA>Sj7LJAGe&d$_fMhSpjaa7qa*h12(-lZcX2{S`$ z^DvNKB5Pz%*RikPgQUiwSVyGk;0baqS4Lh*n{L@Sp5c)j!Rp?HWrEpiJIIrXR)EC6hqEsg#MnKLh_=c8Fs{XB5F-a z-=$2EA*AknSc^1jYj@%M2W@hMqPw@LlmbU9_m+Cx#gA!w34B(7b=K0?!R~o@T;0>K zN%)fysT_%;eetP`+o+gZ(ivWd*yN93krV`DvTbX=Og9?;LQ_l~btOSwO<{KEB( z*Gyj^UfMyM;<8N0;-v zpLFk_Eotp6JfS+{to|>&`;XIU@TZ8|ZgL3A`ICooiicDO*k2SP%1t7zn@R#{9MYtg zbDU|lhm$Kd=J}=(lu6t|U(!Ufejg=@-$A!O_BNQQQRlWid(QsibLApL$vLT?VXx3x zXWO6d_nQ410^%VS`=hZYQk1f-J!Gz+|DTGAF!`F74r0T(GT*Qx2OGs=Z$_hiKME8U zzdD>%b8i#)#-`v!_>~4RG87onqdhA1R&Vy$Ej6Ab?xix3$@Ix%yPil4^6%!w>zE1b ziUy48%k@-yXD4x6GNt3CjU!9+RI&P;LGCovKhu*a_;I$-2*20o60mN;m?pMYYM3li z`k4wevfX%4|W!dyKjtUN|>tCvxiltC}&FF6Z9U++mMZqvuO^ zB-RBJa+pshP#7LD(NCI<5=%_a<WbHj&;Nl>I>9r5-Z*B<}4i+r+2pN&zATC+{T%Q|MMph9=y|IMiv}eKt!KTS0Lt z0z9c3+F7a|AHFMU(=a-U&TSDBA-RYW_VymJHR7W!?RoIF5p{&-M)W^9t53{g7_!aQOqCt$qOkn#!&@-Lb zE_w0L`NyEi-k6B+Tb4;xizLV=qbSLHS;pkoUXGlOPF$QfW;WLEvk)JoLbuk5MB3%8 zjyDF|1=MR+Xp|KsX^u~)l1%OaT!Tw=)DE6|ilpB;&e*>zMY25WH z=6arU-R3<;H}8V(n(2Ztp!pVNtENBBY`E_QvwWyjBSBi|Eey2sPVXa9W;C@u|2h z!F1OYM10^gNWH{?P9)=FNBqJo9PrbG{&KEjr(o}QL_-k!{QglvMl1{smZUh zUqJ6X8Ii0=(x@qFw(Fsp>o!)z@=1b*xDH_7&6-x1?JDmIMAw_9Jfo>SJp8=nrk6Fu zjxfsTLT1qMh@Y(AWLQ5y*F5^L`?Rr`L_3P`!8&@lv_P&7550>!AXoU>XpkSGO8+!2 zD(%z;0sTJLfj9#eS@=Q8tLKDh-&A=c5C*0-%~C{#$nKtRgDi> zN?7gSH3c17|4Xm&A866PXV&Vhk;*%Gx40TyN&|;3!DU|lhj8Oxtj+%&Eyvyr6OlC= z45&>6vtE$hG>=;)(EZ#imH6viS7C`{z*JYAQdBNb4x)txqJNJJpuia7>((APCJwN1 zesQ^ur7TAVdkf!}zo4hyKYPt6Tfi)I<2a2vwTS>1p6?CdjxeTYi~ z-TiPhb&2CC!ttE^%PWGTLZiCnEy8`qQ9a?fh;9j&{;h|jZn|YdK}O#4rQtY9{w=w! z_Md{~Kv>M#zg7NCV%>g?V=wt{184FnrmfpjqZn9>mG!Minj1{4fZHx%g40->D%%HG z`rGbYwCT|xQ?DJhV!bX{Us;PBJT;TzwqB)pH;k3@iqsl8FUos?2HrT~$4z3(ZreO> zE(77tCjavJcgRXE^v7vzh%OGM#r(J&b0CO=8R3NfH{JH(IWA!az_t0Wws^2QxpiE+ z4A;pY)c;R6mlVw7OPmqD$rJ-%$cX36dX`AcR)xj~h{5#sM zT>mk_e~gbS!8OB)aa%x_h!I-9{qGiM_P*B6ED^hv&--nZgnS>DH>iZp{aFY^O z|9{L{Nq9R+|4;4z9njgX!cxMbHRaju11i_y&=}s)%ENGZ(mlPM0eWGT+7H2uw~8N4 zz?okCn6M^8+jQYfvrJ?g4MFb5#r(Q8$hTmli|@txz;M}H!EdehuTD5E0hMs{<#*F} z{%)kLcKg&yc6gegjnzgHKzGIBW{uI$uz&uop4hc;`D4e6=!WfJ&j?Q@{O+kTSbH z)L7#zz@R$8kdEct=LR#Jz(#yIIB>$W6oh^9%;J*k@?=fC+3$2cHRSSJLV&K0PIpKJ zWMpS&c4r6EEO{^Do`=gqTi!}9^&0mEa>iM&IfhVfj4TV>=j~bo5ZYtjv7|~Bif`)`5&ZRMh)~>n#e4u0zm?Q46DxKNZG9NnQMzkL^IEUQp`mJPQuL> zk3fQ(DeVRZmbSzX2e?c+LVLP~V;~fU>$@TxPXsb~K|j)!4BO%@bR5oY>gJ68URyk{ zkX3Jd;N`9w?y(MNcAC)ft=S!#g_C;ioh(T-Z=csgGC409!K<-3ahW7}>-GC3!x^rY zs4@Y|4%7H^+2avsqVU9Z9JVAbC*&vhsCa`J`q_<)6A51I&xeAm5auL3ym74)_OT1i zCbIBr2mez#&G$Dy<{41o@6Jc&Q$0^sdQ2i}yFVmYgk0{rs!evrG5NlslizzRAKmuG zY0>{@0!OW=arp1%3J6!NpO!yEdrRQABNjHm=ev8gZO^xaYp%Q0<98Gvnp*N{EV3(T z0h7n)*u^V$V;$Me@1e8)={u-?=4zE^z?*E4P$H3R!r|yg9v6kO!!Q+wLrUj`EoWd`_$3)clyvu~8X;Vz|HM*W`0FCQrP` z0T7m6`Y`2njdzR*)6~0mR>Sk4*V4f}>AS)&z~9d2g3o02@GLAhmks6=5h}UGFwkMvb&-)0DIisTQMny zA%f5~>|RNC$l&}7VARKFVl3=}FUdTj4pet#ARi~v{5%VLdXk-6A~(lP*s0WPHP@VC={_r zfR5H-ou65wDKG(!j&X96Fc)Cxt*fuT)xVtDa!DO)!D?BBC*+W*d-7ws*_DRpG^=ZA z&MS;g6Pr4?!Oje9+}=r1ylG73>X1qB++EL;R>HcOcl`V@*hCNL$qQ@raq;Y%Oi#_@ z=a*ej0=`@O9W# zdCQ+NETZi!CeBBvQ?i^)Z6d?1@*2eKPU`T%YJ!Th=H9D9^~%P=`>{7o3!LZxMk#qe z_v7WAbjuZgcMvOoXBah1&8$>_;ZQ0(l!!qt(ESKgaL@Vts(ILDlBvM?li2qz+MF>6 zl|FJXB``6w1Yo;`jE&8mQV=E+cHE4{`*1(h{Vffxi`1Gpj3vI;0^s}cXk@y(eg#n& zkXXR$D>Z&*>E!8e(K+vRaXj6FtxY{x8$I~VaYB@NNsl|$1M~Cmj?>9kU0JdlsC{$f z322xfB4sm-=d|Z} z_Is6{{n`DYN>ze-1D@|)FRy2JuaEmdL+<1qq zSE!&)q)v30!v~qWYz~Jq=O(c0bh#tZ6$TeQ3O+6AG6W+|#HT&MC@TmG&_f z6-@9g4)d~xUKrWXt-P<__UJsjtTN65JP>oZsIW#KRYW`~X_SB*!W&;io%&JvGUS=(xzK8A9dlLfwRztu-Gc*|>| zl+8mzqB9dguLgQo#fy1ie!f_}TNKY+7Fc8w=yZ|8lLHkAA#U!9#n=HR9^LVNo z2QKy2cPmFiBD2g=<}t&n3LjYj_}+5hn{F8j>}c66qa_HMeF3%^3jOmK?_4h<%OpkYx-FybCOq>9QSp~`SLX^LwFlM6P=#3xzPA`C z9D$mbxKayHFrId0-y
7MX@xt|M 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 LJt>fU`R@M#Si_RY literal 0 HcmV?d00001 diff --git a/assets/img/common-layout.1680e466.png b/assets/img/common-layout.1680e466.png new file mode 100644 index 0000000000000000000000000000000000000000..0a75d85b94f302fbdf28b8d04e6fb7b863884ef0 GIT binary patch literal 44992 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 literal 0 HcmV?d00001 diff --git a/assets/img/menu-demo.6d51ae42.png b/assets/img/menu-demo.6d51ae42.png new file mode 100644 index 0000000000000000000000000000000000000000..5db55eeb7ce64031f4979752dcfdea45454d68fe GIT binary patch literal 57387 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 BQK0|; literal 0 HcmV?d00001 diff --git a/assets/img/mode-dark.178ff571.png b/assets/img/mode-dark.178ff571.png new file mode 100644 index 0000000000000000000000000000000000000000..12804a20a7959f9c2df46bbe61e7d7d71d3130e1 GIT binary patch literal 74909 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 literal 0 HcmV?d00001 diff --git a/assets/img/mode-light.e460a721.png b/assets/img/mode-light.e460a721.png new file mode 100644 index 0000000000000000000000000000000000000000..c801aa65b1d0db1d1fd77789307e2f78c29c5c7f GIT binary patch literal 68812 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 S=1hoyAJwOtPfC<5-v57Xb3fDo literal 0 HcmV?d00001 diff --git a/assets/img/mode-night.16c831f4.png b/assets/img/mode-night.16c831f4.png new file mode 100644 index 0000000000000000000000000000000000000000..f342c8c895db4cc9bb8d4d1403f8bf8cfb0d4057 GIT binary patch literal 87684 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

A6^EU%XY70!Gf6Rkn+L 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

IRgCk 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

MnGLSUo*#>WIG`NiNxqh%c z{^Umx5c0WG8e3ZD#CdPGisFL4?ZT}vMj+VOlDiuJ1!iz6 z-fhS}srUPK{ic9W_DJVJWACk^v6Rn#pGJYtCt$~FMsE}<$by4O1jZX)OxC|&OHPi6 zaH71tL(3$!XfJ5nK7)Qv(Fr1dWt)f^B%M3nmPkIs!HFbIF2pfZ(ooq;@mlSf0 z52*49#>TgU>iFa{ghjewv0;umHU6BHDLv}WJ;^=f=(ukUSV2((5j zjoRw_#Q0Iv{9faSw1A-l8*_DdZj_e45-L(6+yPZ~^t2Qh4}hCm{4PhI37Ubdvtw%1arC z#I=mGw8rFfJ8o#5-e}0Dj#m_?K1~Iiy^TIwvu)YH<+>pL%dp*g>=pf|Pql^imu?7C zkdqh0sY@O&L~V-6M^YWU1S&K(gSfc3)?TcMG87wCPw}EACMG=WbMm(u=FuALgPW?j zxVUloDw6Xk;2XO>(DvWsotdBSJm$hH2AL?HGG-NG@>ElVDw~fmoPgb^Mn-Jxo$5wob;D{61)Qq-!wsl92f*sAu56=FqdS0Xk+NPd^k`Tldi zf3KtGIETu5UC-CIm2Ayj$A~;;Lleu!k(!fCADoGh>2p zZT2h4{tXj=m;4YB5L>tnZH#v1t(bI>l7?-fH$mdXSd zUY!@^J(aw?7}K05VE)MF2?_?8K+cv%iin6PM$pZ>O0rXMaGhN%E0)C559+D#!nT?k zkBA6$UQ6+FzkeD(5I#*#Nf5U|$@?p~DSMAro)?XqMJc>yVbBAVl~_wus-M7ha~2W$JI48M)~l$4ZR>kQQXM2!Qg zWp6L(XXP-EgvDDPm@SD~8x9c+o z9#>_u{m(T0=__WHMXqKkr2PN_5%k@t@9OG$dS}bvv=dv%LKHlwqHxN5j+442p-X>r zJmNcm>%P9n2(9hy@db9@%NW41loAO}^Jrrqg=>0uo{6-ZchR9dz~<&eCz$1;`JMCx*=XdQ`- z9+D-$Ma2Sv;@{CJ+D=~`w1K`Jyr6F;HhTWY0K)Zjqqe94!Q$<1GL@j1Sh86$56Yp3 zl}D_q2vMeezsByT?hMe0*Eld30?+a6IXrn5)9Pc|WoK zHG)PnsmU2Om_KM7V*6_}Q^AtXT5aWQyXQMKlxlIG^IBml9=7OC8Xb*^iQ#63H8uHj zQ#BJ2(so5fLhJwDeA$cJ*MmT`ZWgz_yc*mdMLN~m|3^bplYC%>5qR+6k-FPZhOA)g zo~yBODhhYnokKoct_Y;R^AR>5M5}u|289nD9i)xqyrlTlb_WP04Ss$MkvrLH2Xq`2 z1uehnaj!Ptsm~nHup~WZ<>xOeuZ4~mL-_Q|IkKbVjvw&xIV|LcMiYul%Bn^)7rP=- z#T@ipRdzDaex`v(%Yf>7a(}CXMswB`$B#Bmk8>p+;1xszXAjHa8&g%mA=ET9Wf}WU zPEObnzK6UrNcLL0F)p^g!9m%#1;j-~H&wU$w;nIx?E6>vv2VP4w@4V>hc1XAxm8D8 zH%PC#AV$H<%NtUdm$wY=_>liG5O%zYYcFKf<(~DDB6Z_QaCK!xHMfZ`Ec68PbH1H`ps%T18X3~}!VxAkj zR*ziGz{qmtzQab&+Z~lX#biuez}J2=PZBS1w@M9limXM~zA9lB5AQlo7%!24qJM^k zOdCxb8&9`qJ#zaSNolN|)t-)H>r!uXPn2yNR;l_DpSvtA*7)t?O(mwWzGgo^AYX|C zA~}n`rO*qnDBPE^r?T|ckaOy4?`#=>l`GG3z0lsK{B^Uu>G@&v=V9&h@0?6zsg{>l zC>f3JB|1Hr6}5`ka_=%cRMSi|@_W={y6g}71jKy|EGS2Kz0EOE~o8eGjUu6Ho#~m1t zF;PBGy;~!PqfqKR%sZ^e@o-kBuRP3)cg5XAUivp@;%nFTC}$-KzDeDQICoatXy)`=wee*sbZKd)+DMpH`LqJm{VI zWLEaabNpsH6_pTI_z$-}LwX6h7?;KNTJyz$H?N#TZIx16vrczAPb+82XA(aOtxTkM z^3(?@KX-g4qHglY#OoWk3E_4fe(eU&i(ib6P*Qy8_U#?!%ZG+Iq=-M_W5TRyTHUgK!pG}b z@(B#A%-|w1ca@jHR)=fU(2#}6+iH_W-?Jy3c1c~sGuO|u4f zL$w1pI?x0Hx_W=AAQM0N^SM}(T+@^LuS`wLyI6$aOjm;r^fpYI?f1W2XPlmyiL%ao z76N2@kc8*gr0oHT+EWuJlO>=G%d#*Tdni>ede$Lr+J{ z2oj0Jb42^u+S)$AXth}NgTkBe{Q9*^pTLmMD{_zW65I(5N^5@Ms{UZD1u=3EtRqY- z`PEP$((zeHpKLtnKAjvL*N+<@iPoPZdRR^aVW{Z&cLsT%yFKn2$7>h2O*HB~xIO(d zpc|+L8e6_J?)Wy}xpRjRGzN`c&hV#h9;{if9$=epJu92pr+P%mj_s8SXMO(Vb->^_ z*1J3M?`M~rnbKiHt251h1W*wi?Cnbswolz#hrwDwUoG%m&tc2=a;T25hJprD7$Cz69`#(C!&qEV$=U)zf@#y|<^O%?r$(Naqs)9dkuDgY2 zAS}Ce!!3W^YN>I))(UU!hfzmEvP3%9=u;)Dhm)&5+vOO@XGihC4oc-M4D=*_sJDDqgwYhK+6+6zc3p$xUaF_BnR{-eA;PCG&#Wk zD{uHMVM2Y)xdKJpYLAj3th+^X7pNt>?tV=2;pyAe7pLPxS{rO5o)5%wJx<;=}J&bnqM_Z5n<(?c4Z?LhCQ|U#W13YeC7$U{2b@)zzStrl zO`6~~X+#H(HX z!)k49t)gYeJ|Li3OwLVdWgOEi#VcE?3xR+^G`F~zcW3EvbUV?+({Ran(8O!*&efn< zD8U&KOi6OSfduw_M20qxLf?DSp4TaVtytD7TXZZN|=y7t5=W1zjm%+YAHKs2w$0SMJXM_DRGl8fp1h$%;syeKF*52Q2 z1xs7M!U#_Qn(9?k4=zFZp=Ecfk*yeNvDERx+95TaZ}OH-*;uSFAxMW5ES0KA&0uE_wcHs(C)p8oF|bOHcCwpy!e@ z+w)sg$_uaExMpH^(lZ_gFUj2Fs*E-s`@*?QsW}LDF;Qv@agn=qiiu)fZcHJ*6CA%b zcRRaAtaO3znM$G#%7g3kIz*|?U*D~%;nz*-a3Pb+BN)L!XN_YWdKvoR284k&RHL?k zdA-+UA%>LOa(5@kmAR&Ge8Z z_wiLg(Y5%W-6VQQj?nF^XiwabzDM9#=MHdfnR?+p&OYT8MDu{u)a0Z$+5=T$Iv0Jg zKIPWU6ne~&= zFl!Bzr84mz2`WhUO!1gIK7nUBwpYjIGr4>5Kr+3+0MJ{5AfA$d){1S^Lzai92-g5G zxy{i=1>KgMlW-Bl4}^`SB@%_A_~*kZk+8b7q%dbSQ|pAi&rSHgE8Q>s&v*2JB}%mH z`+XP?96t*=`=yl?#W}FF@~MLtyJ6_^(|*C$@KRM31-Z-$2P;FdF1+WF~Zl+ncTEV3yE&x!Lnlz-aHa zue9vs1$zxgY(uvjq#O+94}8r-Xhp)UiQ=x(PQt3A$=JBq4Z z%3ptFR3zCkM2xEoVtD?+XG2-s+$Y-KhSPaX8@%aGym0HBRR@Q%vgKm!L(Sz}`E2fBVyGJoHI+^jnJH@>sA$u@Uy@TpOALDroNw>wFC&OP(Ppa16T z8Bt2SON-XVD!~qdpT?Xo19CW8`cbKH?>u=PMMzP9pH$1g!T@A^9^vyx@aDb1n9~d_mL|RH2J;Db+OQVIUi3>+dG?zZFJ55C zZG^5!rV`vSc<)(GaGyY_ijqG#1PG|K@7~`G$Nd_VDR;KWkj!G58-j;kOWVwhJOq=g z4Mh909gne)o4k8V^w27-9psZ^nC@{^VWBP9q%27w~+M_Fjsb>E3d3mad;^N|RhbW58dIB?B1Bhe*1EH~V z%h78tyx z?a!E|eAz#70JGO?Q)RQ?c$mnT+z@8@uMj(*9QDXRvIux`hHSn|^DoQE^ZR-x1HkYl zv%4pPJ)CvB@%7h)g!{m^l!?<#>%gaHGTG3=pFf3o&oy}9^l%Jiv5Q?%I)^UU8cSEspiK-cD6oB_}7F zgpCw;I6s-(>0l}k4WbO@WYU)D55V~KmxpXu$Z5O<=^k8Cne0#3iXY5ObxIxzHg8;v0 z|6$Mnc*mq-ww)`N(;>0h+V`aU`&oQ#=K-Jq#sEcy@o{2^?fmm=tr@I>UWhcw3)Se$ zRn~)Qs_G`ywpyrE?Xl6(G3`)W@7~Kemh|179cx5NO_e_dm6)iwn3(5Sp6^_fkJi6s zzN!a0*Sxdep_%6-rN^q@J$G8vA$N|seoRH#7V*sEts*MWvP&s`9MN$dxwkuBcgAv# ze4wbffuHP2*T`Q}z*;L7Hy6h#25??^dTOQ+>*4s-z1)g3KR$O=OxGth$m~)6_BTF5 zO0{6Y|*F83tO9{W$8;XM{rWy~d$HGVdoCL`0o zw`pj6b?-uFCxy0E{&p>?UYWr3pPaPllbN-IPtc!i!tRWTp6&I>ZGhPvpCY(cfK?$) zno#MZKUh&*Y*g!bl)ZY_>((;Oc!4?ghQ7fs0`O=e6TLgUdA4Nh2}(t!ZDQ_FmC7t2@CLYN~e#Kp(&FX@nLN4o&evr#ybL-t0og#Im% zKb`8%^v^xc+QgXUVAV}sdmT%j?-dnf`2N1aee#Ehf`Uc0+^4BNh7@(0{E?-gTWkJ_ zLBt-}Q#j~`0Lu%ai3dhj#kmeT;uOEU-_dfSgwt%bCw>~>?D@I5N<5I!=#a{)s*3uR zl%B@JQzjTSxb+$Wo`|ZCd7vMK_b^W>=t^bnF`TBX(#o=24Fdc2k8)g*U6DFq5E8m2 zTmLSET@AZ|P1tbQEF4Tum_9YqyQ1xo`$Ehd@SL3t6KGIM zpQ>}ox%%GJXF1+vW{_qie~@YaRSxs>{v;ub7Sxd|KMzl`kVO}o?B#VI9DM;L{rPlL zpzeFlJBy=8*M0l?onk(2jkH1y(68TQ6kjKkPGAbvPQ=>s^RLcu*XHefMs@<%=O29^ zO?}4Wf!KM&AV8rP*n!V@3hEKQiYC|Jq1^7LH=b*`j9izP{eIQ{?(N&*jPe`h(wjR+ z{vV!v&(G%)6pRuQcmMl}ZHL2K_nhwOB*erdy*OJ6Aiq$Gw19)DRZl%Qa1KAD*K#EX z5NJk#X`4M*7LaE488n(QE*r~kWdRx~qH81~;D-KT6nA`l6c-y77RJMdGHzMKo%;(m zOv**v$2w!UqwJb7w_!W7?diX-Z#n>6#a=$m?an#;xEtJtkl}%wC|YC;bpJFhPNkkE z>H@|yy}y#9BQpO*9JbWQCWn&}fUD8Rhxh0{pZCf!b{hOYCu0rLa{WZv)W`M}8s%8syzN#( z6#QPo2hNwDCP!xk_O6G8^sMfd85||Y+pWa|dJLI=?dndB6m_>sn8f5vVmnJLbaxSkZo)4+{qzpr!Ka2zRx0nT-+{5#mU8WV{6n!3o@=HAq`ihm+vow&lcaf z0lA87s5oX;rVOY*P=$nU0mm+Jj&S2EGZ!bP>{cQXI7t4b0yMp`-nqR&35+fUVb(87 z1!lAYvms45&D=mDMd8(#S#|C0w-@vqO{V+4mJwai5Pg%W_Uq(h6q$*>Yg82Phau0g z1d=J(ic4o5tb{QByZj#SFsB5?@s#GBKE8=k)6+S>O*kB0ar|~1Aa{xigM&+KB1-XK@;$1L#+o54mqS+ z!|P)rqartI(yqP-(R+ovpb1Wv^#lIORyBn$=17mb7|!gH@&*+T=1tGC=a6$AQc^7o z!y67!GJ<)tKP@PjvS)MRcFrIPU0s7Sybr|q0DRdim6VHMO9az0`i7E{(vPn?yihpt zn8lPljA3TWHfd}Lj16b7R#sOZycc7rZ>&FllqlFo0G8&$yne4ZFWs7Z@`$U~c-w<- zW=eTrK{pcm7d!|s-)dD2W=de}3p5l`^3z?hJRmYkj%pk=?p3z!L#KxVTB2Z&=5f5I zF#w}_zOjOa3s8nZw?HRZ%A0$S*Ce_*2 z_LXLJrB(l3vG#AJtl+;&K&Nd_wT;^w(3biDFw~Uaua?RXcS<=vH(as`C1jwne`a?P zHKUn*hue#1U9qNqAcNS@|1MB~d>ZKGOJ!)Li$gq=;KhEXe&`y2gT1t|8dhB$2t8Rv z2i=ria+O@1yVg=&?cSz&S7r|$tb56QB>M&NV6zdZM54UAS2O%HOa#wf0075^OJGfM zx2K%>|0w6F(nt5jE4O(xFWT_bq30Q3;)@Jd%<~W&E?xCG@0t=~xTc$4qu6XLIw)Cr zmS{g5e7O4Fm5o~a?`uA#zJo6(%h%&;tcNLu(jCg(6XGnK)hmzO8Dp2!Dmj-YP1YJL zW$sz0Sr!jUa^=)LkW{ru`4%IRf89|wCp>&l)y7Mg)Zl*b0@kuhY7V|^a<9v6sMVHf zsBvd!7lF^WMQL5VI5;==;&Ku0q*?PoW@kw;T}0g`vqJXQ<3{(1tr2$ZV9SOSY&f3a~Y6K)H==uSzvVMi>a|Pz8)z1jexx4CP8x1%_H#2NK`X#g6 z+d&zgyuR%Hlk9x8;&>a@UmT=h_WsrPwgC+-sA7j0LLmFW7;=__ zn);gWd@u@N6{vKtA}}ksAlOrTWTb{>geofDrZ@&uw*P*t5hZo8#1f)8iOIh~Z^7sQRa&3U` zM7DwVuz|E-Tr>!t3T|ogr$uOCS=nHULVN&|G}LkJP@8Squw~5mk=Mp-kvKiQ9|Umx z3;MLiWLeO^fLAgk&wLu}TQYz^wEX#f?FRX>J8{;~7=JL8{Ma1u(E)+~+a_z9m;f$G zNx^MpKxBWk95Z`VhC{uK65&j>MYf#e7AXP6jb;q8R!!wWj_5)_?nDR?~3P| za_GVJRIH>8Gn}8N4VscIzZ-ta7AbfO;X~Ft2PBb`n*?JgjGJ5K;<$N}^Ox)V8*Wnw zAkt7UJ^YnO=E(m1`6A>Z61N{n^Yy({y2c$xKqdqr-WyRV^F5^FyS~4V{qrj5STTyZ ztWN@rs=#u}XDJCLqYQEkDCJ<(wmogwH?D;`**gNVBO(B6WhR`RsV0E zQ7_3^fg_cbl>ji3=Ww`ep>|mdERa1NO~2+j;6(0b@jC&MA>(>Y+&=x~iwyx~Mt)m$ zveB!MTdz?2Q286hC-+wUl_qZCmH=$1aC`jITxH4I#J&S2Ed4+~IMc&M&vOFY$CT|M zzJ60cP&-j(%tz1#VO{_J^P#6}8U2;AAF!Fm$hK=Bf3L5;e>55_jK>Pkms`FJ=-Ok}JUoP#Z-17@5*bD>N5eNPn8VGgy7M|iQ zd%z@>FxbMQJT;&aoHE3d&;R9MT~J^@9`9-sYBzKn!(V?MO2$H}cRf1})2*^F#6v-%VYSRDoV(dIL9#Nn9*O zm=$C0H51}8>ailR`8g*4*w8P&hYv#>`7=-^25*1;JvBNX7oxkM^MZAp z%xp|Q+!Cq+>%zr2r9*H{PWVqU=lbYrUZw{jhKBeAG0FPGgo{IGy=Thg^?62fknMfrPIxEmuWA3=xVP+# zEf_#z01AgWV2`Evu@$hrf_zQ_$mc`@hG}K65nCWnw9|DvkTa;X46T{?VQ$6^m1Q0R zm=3rAl=MPu{ebM%*wAZKotKw4BYD03m0@qsyRBkKiLTpG_Chuzw63lAcaNmt!-prG z_*U<&iksr1q98EQ8QlPZcyh483oQ66P&0TNX}(9Rt}O02fRu*V?j?;xJEO@YRI7u7 zL#Wd7tDsvjfZAcXSc6nh&4dlV;)S&z^X)5$bmIQ!R0%B`XW+P$l9g>H?%J&t*IGS) z{>j&G+qao~*ezcgQ}U9%@(tFUEq73TP|N1+A#GVx(`zPoW5=3RhobOH&5Pe zU+YLMc;;FImSad#NMG2?_ePB^>{Y~{&|Kx%Qnrf8s)-STNQ;-fVEH2(WKg_f&&2AmWSu$!qNJ=?5 zfie$aizCxozK$6N`~(qw=vZKKFoGV=N9l??Om3Omr2FWZYni*cYCn7S_U+q+JBem4 zNd4jKd#g^(QSu~(bhGNeN1z}P zH(Cj{p5w#A-=A3nb}xEOvmZFz%>tGo?T;837=F+HQ2Cwbx$&bx^l|ARW_xr<{5XxEqyn2vp-=-*gKUKmhzrBkBhr>1oP~xz-QU@)HsMB4c`1?y~i3uRh zVugc)qYe!PTlbEtAj(Vc7yb%gxZi}K&GOQ{9aUnk4qxLlwsK9N?hP>#udw9V z*f_X0jX#i|-44!htkfSe@$~eBK;q5mz#PJ?x%YAxs(Rz*7w-RtI9v(^5V`b5T~2ki zZcWP`#R-tL7K{1k0=+M?x*AlVV2V`Ll zLKTLv0R5J9hw)HVZNk zXbL=IFU-`r#7ez#0;f}GBclKWbL-i??V$ti%!iP*As(H48B&Ku^kUiDY#|#bSHQiY zTawpj4YO`Ec!pVrN6>?NGD!$?y5R-l;LSi=BTqgehy49?Qw|92A3j`fvGUP0P#&C} z-N3~NcY(G>cetvyRxd!?{qa3OZbn2z099Zaf0=TxvKC?br$w;TgU}FKW4n>2*$sK9 z5!25ym3{j!Lvp9#AwU2lWYrf}*a-4O7(Tio*vDLrYaO*HKtx%s##L5?3=ZVpCw1*u z^^ccLG*6ToF7ErLYpm|Ajg14StR+wfNWQg~HM%1*sO&iS9JY6D`^kS_eszGj&9gSH>c-*7Pc zz~LqDH^EFht`2mOXU+wnq|F?HSNU@@ounN+b(z`{LB z&HtJtDS5$746b1MAC|q;t(eS|gj&b7(b3WEPmeB410`89X#ih)RM5ZNH`tHXZywqt z0OB-B0=C)Ok(eOUksuMXiMe}Q``>Lk3+o30K#iTnY} z!CX^aoF-xZ`{F)#rd#0gT0xPqJn8RZ;dZ_q37|#0?KtN;z)~X}i_@j322y% zl_kW>!;jYlk|Z7Sk2Qmi0O4wp&hzkC%CIqSH^93iwIk?-}o;<=X0hS9{ySpRB zR$ELVOQoLlh?V!L?HvJpeKfnGQHfWx*u5JPqGy+Tz~5soy6~1?K(jVpbMp7X_ZOWn zuy6D`%b^mb<#}ag{5!dj*!|rhIeqD$2uc>Y*G&EgYc^Q2>b+v+fSdaV^;N&8K+lol z^KN(}^)bela);|=S{TOR_l z^Rn=0n4g*PB#ESxohS6;VDZ={Fg|d3bFAf*&+c>RgV#FHTBNH9d@Wpicm2gS4_!wH zhq6wR09uZ%=AG@^1Odq^yO=skRr-XO$7?A9J}%EDdaD0P+;|kklNWArSk=-pUxUJU zmOpX9foBZ+CN3?=mYH8o%<6kJ0=#?E4F)R^HML&OT7swwaOSO0(yqGu&vl-H(XgwNq&Jm8* zBoTWhNV{F2H3q~RGDo6GM92Gk6|SKY1{-W9%+by`gu2hape_ECdAfd=PdWbtXGS)y zb(Ew6oweZ$O%~Yt_Lyd>%dwq^sULp7u&DIwM$XFslljr9BZboAw;rf*!X}0cu-n$1 z9X?Q=K@Q67z5S#^|CaJ8L!M<^MQb^Af<}Qz<>;zidgu(m7a(^8_*r0kKT$Z&>;cx~ zqa!ogj+*Q=KnFv0baYVoGJ}?9Ovd%#?5_IPG+b&RkfB3Wu;sQ7ZRQYRItGQ@rnkwk zOQ(J2h-pb@<9(|5^XnJu8@<)#x)9HB$^b=eyQY&9|8e6cV^D5-xiiC0ROk17$@?9x z$n779us+0ww{sNs9P`znjDVHo=jwqE+Eu@l@Z+bNSHWHslJXAp%bWE?;G<|+eU&xC z?E3f~_B&1{Roponp|}3B>LS$?{s5e+MICKU2Rb!x-9x|L1x~DyoHzMhNxj>p5dUw*V6OUhU7&0A7Kxi@C4Z-uL~ zNXdu|6-nM`vABnn5Pj%#8o^o7x;;l^IreW>ePVd^+BL-}25`2n5`2aU80WeoRB-c3 zcVwcekiE~-qmC{`>W2#j{NjDj+wCBD*p>{Om(@t*?~nd>PId8r{6+_wU7h0@O1la` zP796;go0Hk4TxBDt*Oc%aooBrDlRJE3mvIJnJ|j|`Oqr!u8=6VeYnW`{;#_fNMDlW zB8GNIngJ^frg4P`iZ$>)jNoT#(}AMSZfy;0nVZeTjIX99@7j*sRuMHDu7E3t)*YWg zj%r{AC6phL{-sTWjVg1GPmBkEf~FUO-Qg3^r_jsX@Y`&zaNV2(-YXzQcbaQDS}Vwi z?DOcHctL9d7{Ejz&6%B>BcV562at}c0HZ!UI$i17SunxHVs!Xz&|0Uv%4UcJl!eL) ztwj7LATQEMfTFqqE-FF89S}!btTDZrd+tU(Q*9&4W+BRFv{e z>glx^K>PaLQ!N)QYjE%{DJA`mGzPXAaOcpi5zU?E{cMQ|$a(6`+b^;4^6~ir^P4py z4aDYDgM3(hGapF2$3R~ngP47sSW9K4wz@~5YgF+?N8mErFE`cKFW7h+?-*{GvI3l! zp|<{ZgivkO7cV-S3A55Jqa7f_72W9R43riSd+=AJaHUnqq=5mof-!(%fx(6Oc;-0> zXaz3|1BYQ~Ghta7-%aP!%*gFH7E=JW1#FQh#v$WC;GnLoQB+zA1Zjd0^*&%@%Xv5i zG!yj}#2f!dIiGRI1_qB^JCuUQo+>c*i&Ja4xcs~u2G0ll3>FZL&JGSURenRCU;*!T z;(7r_3}Ufs9jCJ87TgdZk!QBhFM?j$dYrbTAz&2X$YxqvSCa%EXS zP7~PLII@9ASt7v+MuVfTMPsy7pOc`oKTP^ni2l5>Q=-;~`Oj_C|@ zHvREEvlc}`l)6w9*a}YZ*sS?#%A+c8Xr!m-d2Cnk@_J;JL6B3nkfOG|a&m@FIb}29 zk;mQhR^c@*Bz=tjX4t`9iy^&o97hm?TE}P1rsU$zo+Ozw;?@{G3tJYUc_K5bTTm~1 zL-=`7XA$>+b`_yNBg$L7BjgIAZf517Qm=qY??H`T%I|L}irTJiY1)En2wt^bPn-su zuw{i`^vxe1Kl-yx&!pPFKW&4e@-_O5nn}N?UJ3)V-QA}uMa&jBnWDm+3}@%Q@P=6H@jO#C*ct(+2#lO(W4hB!OHNU} zkEL=b5I=hUz_3i3nwlCL7X+#)Dbb1T6x#RirD4rQ9KuU~--6W9*QnLijiH|`TLWM-->tVYJt zS7G8v7G$9>xK}(=Ptjh0RRjVj$Ei{E=J|TJRU;2&c1`9&N${BG+aH~Y0}73YBnkH* zgCl@sfsw*8<&Oz3K|ui;rPKYtmH7&Bv9WHaH!GsPQiIqVfGCrJyo5a))K6zjt?Z6o z!I%$vAN3+*s@jeQ?0}vna{jmPoa5)^twb0=EZkgO8zL(vr=ssy`-XYpmUJ{oKxlpa z`gN9oL#-vBMl`dBR^n^lUVs!oQ2-?m0x^UA1~g_*@8HzWX0J}BYuB!|?xHtkhyztf zv`EsoZ;zZwO{VITw+b2AaX5FRj>zBQ*vIc$Q-7C`0nDD_;emeN^&tD#$#@=?y@bo*4rKYnWM1t{)&>O18a(7k* z*qw`V)rFLW3*tj#d`q+wdorhO8^ATT2b-s$Cn=TAaeo? z<~1H36E(NAfYuC2!*z3#%c&u74+uz7JV&d$^11f2vYMJsK!;lXP7Q z;m-8$v#(j-_U6*eIB91Ld~7$`(bFb>wD$4i?~lL~`OND4cu#7e{}@mM`0RUCu(BZx zmj5C_p8K}Mep8<&bRZzxDjYHPjFK<88za{3OWTDXVPbNc^_Y-j0DW}6zSf#?BbwBMVKD^&9oXu`TwSrHsfWOr;A#A1d!Pz2FxYQ$ zf?X(wP>Ki(mp5ViK7RaIjMx)OApcCCPsFC!z%^Kc(+*hJyQuQ)|!DB5=6-3suX+o##LPG#mh4x^6 zA@)6L{h$Sg3H11hE-$CfgTnm)Q6HQV8=|7B3Mhf*GonJO@_F!GGbx)$U&0UIr~}0R zQ75fwxc@J1wWN0=owR58HaPHQ`+1-}FF*h3#yBQ`SOy1Y_;jwhYh(x?fhqHceIK)n zc)4N4%qQmH()Ci%+>>&mD0h__ii~ON0A|`FN$7fnx;hnE9Jv31O#t%s zdnT{X{uDxhAMLj5+A3><0A>NUvxsGVTERK}WobA~s0zpTsBb8AStExHUsXBq&KjAn1Q_6#13!ns@TL|r@X<-yUkCA3S@n@x;IozcKI04!mE`2ttNYk^jb znMt!Vpo#&h=b;dd2Vg03 zt14XF+%HXA`d%}0d0NwT0bYVg*yL6Oeb>~~lRC!1V_gi}y^YZnVHEL72e+>&kpP%)9+&Bhwh>e^9=AImIONGt#M}>L~L5nshEd@+$Eu8?7Li! zu4m&jjF~4ePqQ2h2T$j`s)fp!WeS&i?9@HA&v*uSx|ICUN$P?zaTkXNsUSse=-bvl z7W@6i^7iWNT?WrS)j94NvXAa~l+*tnuIpMbx!{hg#gn~;PECd~{SbyAjGqm=1cWJv zBnlP}rV}$bM*R4X9Qd2h36{t!FRV3Tr9f(Hkj7K?GJxsxy*KH zF~~Xo1@cyxP}PG8aE=6EY{20p5*|DubUb3508Lo{)8vO~6lz^umhNh|CGUP`G%$3R zwB`VlR2Z$G+<u&-aTqQ!@n765^@+!s~TDW7c0y$b<);jbOb% z@AO0!au1o{KTLOqnQ>+VBY>(vGY9r8!J+sQ6j#7|dip=(f)KBupr9DP`knK#YR5V* zie9WNuZYD`eG&1Ig3a!TJi9eJlkR~OF*m^AsooXjnK8KQlbB-zzpk_pCKNN8AtAij z6~r${?$xPjV~OD!OS&E06r4}PUOqFMa``W`yEK(rljJ$;05d8zDCnxO)PJU-t$6>{ z5SP7qzp5AM-ZwIZj0R)VqXz1gC?K{WB+QzZBAznJUu+q{+e8`6CGe zzP$WmV))Oxt@5w*&CHCAX~n}qePOFy^L_U0nURsbhG%X69k~2A@P6w3zg`1~=Rp8a z*oo8&eXJjyh;^FWWO2|11HeTqDS#sK(>K02oSiDZ17vM&XB_|*rIAjeykKO~Ib|<= z4~q@RdSwgTK@IBiAT32VMd$MN(Q0NZX&PrgnI!b7fkXU1rc_Feyu8IkeiNXdL4n9* z&;l^qPgdrss&Z4lj;<*8jN4RFS4|aJ9c@Q302x8!!LdU>7)k_9wOd3Q9Q-poa~W-- zKqLv)&c_aQn&))nb`URU*Ou`9Y5q3_aPnceDpmX9Q0|D1b| zV@)&23);?43AyYFioaV|_!y8CftQiOzzD=e7e2fnTN@Y}QdL*w19E>Jo~L^>mqd7$ zfkm@WVq7Z979`3j=)N*|1D~-FTirI_O&A3JXBOXwiTNA)KyK)^A?e(FbQhd&SL=UN zxeR#3HFt3diEAU9&hj8AJ6%Vm^m}&oW0jx`&!q!F2ynTMOFkFc-Whp=k=ac;J_+_hmUW_ zdWTl);Y4NR{cNj;1DDtD9Q#|j_q$yP*Nk1cy9$D1=k;UV+X(a5 zL4$fpl{!D2JX#~Pr9LjP>6pBX=jm3y7tHX*`F-TaiTw6>B9)6wa=<&L=;O{IH2b>4 zzumPcG`jcHrJBvIQ=m4oJs7!UzjmU1DB%f8npbH5U+qGlU+afh5AYAk%oI>^@NtO$ z6r=jV;KQdF-~9Z)<`5pXX4!!hQX{@dZF^lJu|gsOONBCWn&$RVEcH8ahiIZoML>m^yPwVNv9Yu>qCG3srwZY ze+^`~gz*@Eju~e`ZuvkEI=^cZ(8Js zD4Jb(Rx@{cd-ruJeu#J6L8L#FRdBrA=twe67japhoR7KHMtY)*ObMSjm=Ka{jcsa-mN++=a>5mj*hn=fv4BFoA*zqt&gd|DzvTFIe|^ zByGrwH+YT#Z|meV%UmZyz5hApc=Y^+-;2fn|3ea`;gjlLo1^B2Dk509I};^BYwXMF}aXoSPYy9(d3{a5;! z$B;KhO){0>@5(lw_@|^rbeBW-w0Tq%p&kKVVpXkodBc}zx%%S-3qfxn;-Hx8XabTM z0~qUYL_|cpe?2=N_sweTVPtCBKpY#X8*_*}*$*AW>)(O*&&h&SF6F z#b_0qt!@yx5djwsb!&W!(ToJ!fKcGSlEXeIhz%E`U)gP|4-s)1ALA zxZ}n@cxQba!Z7nH#FBRY$&4tJd9-1dJbF%QVso$U?*-FSq*KqgW*x;d5H zQSYR!NUv|&_1xBz8-EQd@s#8Y`csK`FM_+cN2cw~5Au#?*S8ot75{a?c!_x!o}mAI z>0oIwkwfnVl9YrMRYcOiUn71yDT5hb36Ecze5fjtzW>3{^&-_b#TwFDIdM3ikk7Xop#O`S|mw;A#GiG@QQ&ehLoN@nUS_5gs&T_Vh z`@!WKPc3?n99gg6IXxw{7yIjbMCVVavjlqY4;0%hM|r#k`cZzqu9ntLoKS%Go~U%q z;?X9St-5PEreTk2mwF(4ne|Xlf>>VH- z=hNg_y_6xqcB-Hcc^&vpA>L*Mm{}>+N{mG}+&7ExwuMN^q^X z-<4pKlOkPUTKQqU|90Ed)VaH-34OL06go4#E`jef44i)-@^bS#)vD=oY{$!eZ`r19 z3?(dfr41|RJIg;LJ2kGG^uIy$?>BJM(Jl6-DaI_w$XLuhXzI9lkuzOPV-ItcQ160| zgD>jjVf^dpc-}u@$VG!x)6IFy_QhU+y^YO++v_oYY|n+i$*yIc5d6!|+JQcPU9(crP?m;eki~>!aaEhDhA} z&o0&&N^}5)-A$2?hrPoe4r$Eh9(4Rug-lLj5ufC8?~QsA4m0jwhfiG_^x5NnpHI(! zMe)zmI#C81(VH@BXa!kvX>A2M%+i*u#>Y#ukLLpA41(y(d+#L`=C4FU)7icP?qO7Ez7B)jU#fofN#obY{x+N(5 zM0a!!(SM#<1_`@C8VO0yZz+c%XXP>MxX{EkqE70a1%`K`M}CHRevjIa2D0d*u5N;o zJNkmjuKS!s%6B6Yh3NZ|d?u!47hjO!#m44b|LT@Ox;h(G4%O@cn>KSHd3No@7bOtpN~#XU#ajEq-g)1^@++XBNdq|eC4_W z?5%CCYh&nNTCI0`+6{;$UHIQeB*e!yK1LW`y!`douVo<@vo~*?N{R3k9uWPX0iteC zPiJ0M=2TuXH=B^(n`4)j8t0g%q4t^I&@44lF6kL!qNzDchj6FTqoQ4?+Gh8Zc(`NI z>AxRtU32J*!nR#f??ZX{u7sYoN~LKC=}wUk zWqm+{d?4ZYPGq)L%SopuJjzWw@D!e}0tCl@9paOzWMq5|4(ejn4I!e+cS(sF<3(gk zh8By1HM;I?pXM)TLizta=$ig2GG|ktt%cH~OAg_-l6eya z!?xcwpY@r>yc%iGSW~kTu%|B5ac~w@-6Z=fswKLoef#F_ZCD_%d3RaJ?@?pIV!mm+ zaBYv=@89Vu8J{|wnCxV1GUJUf4%Y5TsxonCKi4P{WWgB^7TQsnZ;=y5q^X`O1md5* zl zvU~r{UrAL)Ll?@)OO(y3PA<0!D^XKyZZu;Q5_|A!Mk8CnD-<<{IGcL#TUaDX++iMp z4r`VfphCCOM$w@Wh=9+;<|K*5ges>hF1$J=A7g0YNi8nBIk{XGBd<>z;PU!Wt!NAa zaV3vxV}32tcI>w#B*A*~2G9Q6>qKso8Z_jfjJ#36CZresq-d z)BGMoLf%jR^qHtr#~aHI4e6B+i_}z$ZJLW`ZP;2vaxsB_Wz$Lm4vvKsR9~lOdVdu> zxar>S(*J^pY2?_Yt{Ug0-CO9qVz1rHB#oh~d@>fF6wbdLP}Uyse≪nyL+RWi~KG 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 z05

Mbho^6vU>C%m>-D$ZB*+!@ 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 literal 0 HcmV?d00001 diff --git a/assets/img/search.83621669.svg b/assets/img/search.83621669.svg new file mode 100644 index 0000000..03d8391 --- /dev/null +++ b/assets/img/search.83621669.svg @@ -0,0 +1 @@ + diff --git a/assets/img/tabs-view.64ed8eb1.png b/assets/img/tabs-view.64ed8eb1.png new file mode 100644 index 0000000000000000000000000000000000000000..a209547f825d9fc1536d90311cc76c4339ff031e GIT binary patch literal 38934 zcma&OWmp_d&@Q~YxFoo{Taci^JwUJ!AOv>{8k}HDu;A_<0t9!r4elD;gS)%zw~*(3 zzjOW__PSPPdaA3ttM0z1s)peAN-{4{iBSOnzzaE9sSf}E66`D7FJw5_$7&yD3+w~l zTwGBc0H}yWyEjCD{RTRIkdXkC4wLS{S_0lHs7XU-moA4VE320*0+uZTmxY<$z9D

VI3lySuv_nmiwv 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 Z|9>7(gD3HP^}_%F002ovPDHLkV1fn4YfAtC literal 0 HcmV?d00001 diff --git a/assets/js/10.700eec62.js b/assets/js/10.700eec62.js new file mode 100644 index 0000000..0b82d25 --- /dev/null +++ b/assets/js/10.700eec62.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{350:function(s,t,a){s.exports=a.p+"assets/img/permission.a4be38e9.png"},351:function(s,t,a){s.exports=a.p+"assets/img/auth.42fb947d.png"},382:function(s,t,a){"use strict";a.r(t);var n=a(18),e=Object(n.a)({},(function(){var s=this,t=s.$createElement,n=s._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[n("h1",{attrs:{id:"权限管理"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#权限管理"}},[s._v("#")]),s._v(" 权限管理")]),s._v(" "),n("p",[s._v("权限控制是中后台系统中常见的需求之一,你可以利用 Vue Antd Admin 提供的权限控制脚手架,实现一些基本的权限控制功能。")]),s._v(" "),n("h2",{attrs:{id:"角色和权限"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#角色和权限"}},[s._v("#")]),s._v(" 角色和权限")]),s._v(" "),n("p",[s._v("通常情况下有两种方式可以控制用户权限,一种是通过用户角色 role 来控制权限,另一种是通过更细致的权限 permission 来控制。\n这两种方式 Vue Antd Admin 都支持。"),n("br"),s._v("\n我们定义了 role 和 permission 的基本格式,如果你获取的 role 和 permission 数据格式与 Vue Antd Admin 不一致,\n你需要在获取到 role 和 permission 后将其转换为 Vue Antd Admin 的格式。")]),s._v(" "),n("h3",{attrs:{id:"角色"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#角色"}},[s._v("#")]),s._v(" 角色")]),s._v(" "),n("p",[s._v("Vue Antd Admin 的 "),n("code",[s._v("角色/role")]),s._v(" 包含 "),n("code",[s._v("id")]),s._v(" 和 "),n("code",[s._v("operation")]),s._v(" 两个属性。其中 "),n("code",[s._v("id")]),s._v(" 为 "),n("code",[s._v("角色/role")]),s._v(" 的 id,"),n("code",[s._v("operation")]),s._v(" 为 "),n("code",[s._v("角色/role")]),s._v(" 具有的操作权限,是一个字符串数组。")]),s._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[s._v("role "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n id"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'admin'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//角色ID")]),s._v("\n operation"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'add'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'delete'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'edit'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'close'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//角色的操作权限")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br")])]),n("p",[s._v("你也可以设置 role 的值为字符串,比如 role = 'admin', 它等同于:")]),s._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[s._v("role "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n id"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'admin'")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br")])]),n("h3",{attrs:{id:"权限"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#权限"}},[s._v("#")]),s._v(" 权限")]),s._v(" "),n("p",[s._v("Vue Antd Admin 的 "),n("code",[s._v("权限/permission")]),s._v(" 也包含 "),n("code",[s._v("id")]),s._v(" 和 "),n("code",[s._v("operation")]),s._v(" 两个属性。其中 "),n("code",[s._v("id")]),s._v(" 为 "),n("code",[s._v("权限/permission")]),s._v(" 的 id,"),n("code",[s._v("operation")]),s._v(" 为 "),n("code",[s._v("权限/permission")]),s._v(" 下的操作权限,是一个字符串数组。")]),s._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[s._v("permission "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n id"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'form'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//权限ID")]),s._v("\n operation"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'add'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'delete'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'edit'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'close'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//权限下的操作权限")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br")])]),n("p",[s._v("你也可以设置 permission 的值为字符串,比如 permission = 'form', 它等同于:")]),s._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[s._v("permission "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n id"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'form'")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br")])]),n("h3",{attrs:{id:"设置用户的角色和权限"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#设置用户的角色和权限"}},[s._v("#")]),s._v(" 设置用户的角色和权限")]),s._v(" "),n("p",[s._v("你只需为用户配置 roles 和 permissions 两者中的其中一种,即可完成权限管理功能。当然你也可以两者都配置。")]),s._v(" "),n("p",[s._v("获取到用户权限或角色后,将其格式化转为 Vue Antd Admin 可用的格式,然后使用 "),n("code",[s._v("store.commit('account/setPermissions', permissions)")]),s._v(" 或 "),n("code",[s._v("store.commit('account/setRoles', roles)")]),s._v("\n将其存在本地即可。如下:")]),s._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token function"}},[s._v("getPermissions")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[s._v("then")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("res")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" permissions "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" res"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("data\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("$store"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[s._v("commit")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'account/setPermissions'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" permissions"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token function"}},[s._v("getRoles")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[s._v("then")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("res")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" roles "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" res"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("data\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("$store"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[s._v("commit")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'account/setRoles'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" roles"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n")])]),s._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br"),n("span",{staticClass:"line-number"},[s._v("8")]),n("br")])]),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[s._v("TIP")]),s._v(" "),n("p",[s._v("注意,存在本地的 permissions 和 roles 都应该是数组。"),n("br"),s._v("\n你可以在 /pages/login/Login.vue 查看完整的用户角色和权限设置代码。")])]),s._v(" "),n("h2",{attrs:{id:"页面权限"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#页面权限"}},[s._v("#")]),s._v(" 页面权限")]),s._v(" "),n("p",[s._v("如果你想给一些页面设置准入权限,只需要给该页面对应的路由设置元数据 authority 即可。 authority 的值可以是一个字符串,也可以是对象。")]),s._v(" "),n("p",[s._v("如下路由配置,则表明 "),n("code",[s._v("验权页面")]),s._v(" 需要准入权限(permission): "),n("code",[s._v("form")])]),s._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("br"),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" route "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'验权页面'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'auth/demo'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n meta"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n authority"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'form'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[s._v("component")]),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/pages/demo'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br"),n("span",{staticClass:"line-number"},[s._v("8")]),n("br")])]),n("p",[s._v("下面是 authority 的值为对象的写法,这种写法和上面字符串的写法具有相同的效果:")]),s._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("br"),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" route "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'验权页面'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'auth/demo'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n meta"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n authority"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n permission"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'form'")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[s._v("component")]),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/pages/demo'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br"),n("span",{staticClass:"line-number"},[s._v("8")]),n("br"),n("span",{staticClass:"line-number"},[s._v("9")]),n("br"),n("span",{staticClass:"line-number"},[s._v("10")]),n("br")])]),n("p",[s._v("有时你可能需要通过用户角色来配置页面权限,我们同样支持,用法和上面类似。")]),s._v(" "),n("p",[s._v("如下配置,表明 "),n("code",[s._v("验权页面")]),s._v(" 需要准入角色(role) "),n("code",[s._v("admin")]),s._v(":")]),s._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("br"),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" route "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'验权页面'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'auth/demo'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n meta"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n authority"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n role"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'admin'")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[s._v("component")]),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/pages/demo'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br"),n("span",{staticClass:"line-number"},[s._v("8")]),n("br"),n("span",{staticClass:"line-number"},[s._v("9")]),n("br"),n("span",{staticClass:"line-number"},[s._v("10")]),n("br")])]),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[s._v("TIP")]),s._v(" "),n("p",[s._v("当你未设置 authority 或 设置 authority 的值 为 "),n("code",[s._v("*")]),s._v(" 时,等同于该页面无需权限限制,我们会忽略此页面的权限检查。")])]),s._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[s._v("TIP")]),s._v(" "),n("p",[s._v("当 authority 的值为字符串时,会以 "),n("a",{attrs:{href:"#%E6%9D%83%E9%99%90"}},[s._v("权限/permission")]),s._v(" 验证权限。如果你需要以 "),n("a",{attrs:{href:"#%E8%A7%92%E8%89%B2"}},[s._v("角色/role")]),s._v(" 验证权限,请以对象形式设置 authority 的值。")])]),s._v(" "),n("h2",{attrs:{id:"操作权限"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#操作权限"}},[s._v("#")]),s._v(" 操作权限")]),s._v(" "),n("p",[s._v("在一些复杂的些场景下,权限可能不仅仅是页面层级这么简单。在一些页面你可能需要校验用户是否具有某些操作的权限,比如 增、删、改、查等。"),n("br"),s._v("\n为此,我们提供了 "),n("code",[s._v("权限校验注入")]),s._v(" 和 "),n("code",[s._v("权限校验指令")]),s._v(" 两个实用的功能。")]),s._v(" "),n("h3",{attrs:{id:"权限校验注入"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#权限校验注入"}},[s._v("#")]),s._v(" 权限校验注入")]),s._v(" "),n("p",[s._v("通过对Vue组件的实例方法进行 "),n("code",[s._v("权限校验注入")]),s._v(",我们可以控制该实例方法的执行权限,从而精准且安全的验证用户操作。")]),s._v(" "),n("p",[s._v("比如,QueryList 页面的 deleteRecord 方法,我们希望具有操作权限 "),n("code",[s._v("delete")]),s._v(" 的用户才能调用此方法。\n只需为 "),n("code",[s._v("deleteRecord")]),s._v(" 方法注入权限校验,按如下方式配置 "),n("code",[s._v("authorize")]),s._v(" 即可:")]),s._v(" "),n("div",{staticClass:"language-vue line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("br"),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-vue"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("template")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("\n ...\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("script")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),n("span",{pre:!0,attrs:{class:"token script"}},[n("span",{pre:!0,attrs:{class:"token language-javascript"}},[s._v("\n"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("export")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("default")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'QueryList'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token function"}},[s._v("data")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n authorize"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//权限校验注入设置")]),s._v("\n deleteRecord"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'delete'")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//key为需要注入权限校验的方法名,这里为 deleteRecord 方法;值为需要校验的操作权限,这里为 delete 操作权限")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n methods"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token function"}},[s._v("deleteRecord")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("key")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("dataSource "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("dataSource"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[s._v("filter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("item")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" item"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("key "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("!==")]),s._v(" key"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("selectedRows "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("selectedRows"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[s._v("filter")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("item")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" item"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("key "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("!==")]),s._v(" key"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br"),n("span",{staticClass:"line-number"},[s._v("8")]),n("br"),n("span",{staticClass:"line-number"},[s._v("9")]),n("br"),n("span",{staticClass:"line-number"},[s._v("10")]),n("br"),n("span",{staticClass:"line-number"},[s._v("11")]),n("br"),n("span",{staticClass:"line-number"},[s._v("12")]),n("br"),n("span",{staticClass:"line-number"},[s._v("13")]),n("br"),n("span",{staticClass:"line-number"},[s._v("14")]),n("br"),n("span",{staticClass:"line-number"},[s._v("15")]),n("br"),n("span",{staticClass:"line-number"},[s._v("16")]),n("br"),n("span",{staticClass:"line-number"},[s._v("17")]),n("br"),n("span",{staticClass:"line-number"},[s._v("18")]),n("br"),n("span",{staticClass:"line-number"},[s._v("19")]),n("br"),n("span",{staticClass:"line-number"},[s._v("20")]),n("br")])]),n("p",[s._v("如果用户没有 "),n("code",[s._v("delete")]),s._v(" 权限,调用 deleteRecord 方法,会看到如下提示:")]),s._v(" "),n("p",[n("img",{attrs:{src:a(350),alt:"无此权限"}})]),s._v(" "),n("h3",{attrs:{id:"操作权限校验的类型"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#操作权限校验的类型"}},[s._v("#")]),s._v(" 操作权限校验的类型")]),s._v(" "),n("p",[n("code",[s._v("authorize")]),s._v(" 会根据当前页面匹配到的权限类型("),n("a",{attrs:{href:"#%E6%9D%83%E9%99%90"}},[s._v("permission")]),s._v(" / "),n("a",{attrs:{href:"#%E8%A7%92%E8%89%B2"}},[s._v("role")]),s._v("),来判断是使用 "),n("code",[s._v("permission.operation")]),s._v(" 还是 "),n("code",[s._v("role.operation")]),s._v(" 来进行权限校验。\n如果当前页面同时匹配到了 permission 和 role 权限,则默认通过 permission.operation 来进行操作权限校验。")]),s._v(" "),n("p",[s._v("当然你也可以指定操作权限校验的类型,如下设置即可:")]),s._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[s._v("authorize"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" \n deleteRecord"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//需要 注入权限校验 的方法名:deleteRecord")]),s._v("\n check"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'delete'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//需要校验的操作权限:check")]),s._v("\n type"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'role'")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//指定操作权限校验的类型,可选 permission 和 role。这里指定以 role.operation 校验操作权限")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br")])]),n("h3",{attrs:{id:"权限校验指令"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#权限校验指令"}},[s._v("#")]),s._v(" 权限校验指令")]),s._v(" "),n("p",[s._v("有时我们可能希望用户能够更直观的了解自己的操作权限。比如给没有操作权限的控件应用 disable 样式,禁用 click 事件等。\n我们提供了权限校验指令 "),n("code",[s._v("v-auth")]),s._v(" 来实现这个功能。")]),s._v(" "),n("p",[s._v("比如,我们想为 QueryList 页面的删除控件进行 "),n("code",[s._v("delete")]),s._v(' 操作权限校验,只需为删除控件设置 v-auth="`delete`" 指令即可,如下:')]),s._v(" "),n("div",{staticClass:"language-vue line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-vue"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("template")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("a-card")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("...\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("standard-table")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("...")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("\n ...\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("div")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("slot")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[s._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')]),s._v("action"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')])]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("slot-scope")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[s._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')]),s._v("{text, record}"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("a")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("@click")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[s._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')]),s._v("deleteRecord(record.key)"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')])]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("v-auth")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[s._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')]),s._v("`delete`"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("a-icon")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("type")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[s._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')]),s._v("delete"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')])]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("/>")])]),s._v("删除\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n ...\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br"),n("span",{staticClass:"line-number"},[s._v("8")]),n("br"),n("span",{staticClass:"line-number"},[s._v("9")]),n("br"),n("span",{staticClass:"line-number"},[s._v("10")]),n("br"),n("span",{staticClass:"line-number"},[s._v("11")]),n("br"),n("span",{staticClass:"line-number"},[s._v("12")]),n("br"),n("span",{staticClass:"line-number"},[s._v("13")]),n("br")])]),n("p",[s._v("假如用户没有 "),n("code",[s._v("delete")]),s._v(" 操作权限,则控件会被应用 disable 样式,且 click 事件无效,如下图:")]),s._v(" "),n("p",[n("img",{attrs:{src:a(351),alt:"权限校验指令"}})]),s._v(" "),n("div",{staticClass:"custom-block warning"},[n("p",{staticClass:"custom-block-title"},[s._v("重要!!!")]),s._v(" "),n("p",[s._v("v-auth 是我们自定义的一个 "),n("a",{attrs:{href:"https://cn.vuejs.org/v2/guide/custom-directive.html#ad",target:"_blank",rel:"noopener noreferrer"}},[s._v("Vue指令"),n("OutboundLink")],1),s._v("。因为 "),n("code",[s._v("Vue指令")]),s._v(" 的值需要是一个 javascript 表达式,因此你不能直接给 v-auth 赋值为字符串,\n需要把 v-auth 的字符串值用 "),n("code",[s._v("``")]),s._v(" 包裹起来,否则可能会报 undefined 错误。")])]),s._v(" "),n("h3",{attrs:{id:"权限校验指令的类型"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#权限校验指令的类型"}},[s._v("#")]),s._v(" 权限校验指令的类型")]),s._v(" "),n("p",[s._v("你同样也可以指定 v-auth 的权限校验类型,可选 "),n("a",{attrs:{href:"#%E6%9D%83%E9%99%90"}},[s._v("permission")]),s._v(" 和 "),n("a",{attrs:{href:"#%E8%A7%92%E8%89%B2"}},[s._v("role")]),s._v("。它的校验方式和 "),n("a",{attrs:{href:"#%E6%9D%83%E9%99%90%E6%A0%A1%E9%AA%8C%E6%B3%A8%E5%85%A5"}},[s._v("authorize")]),s._v(" 类似,如未指定则会自动识别。\n"),n("code",[s._v("v-auth:role")]),s._v(" 表示通过 "),n("code",[s._v("role.operation")]),s._v(" 进行校验,"),n("code",[s._v("v-auth:permission")]),s._v(" 表示通过 "),n("code",[s._v("permission.operation")]),s._v(" 进行校验。")]),s._v(" "),n("p",[s._v("如下,指定通过 "),n("code",[s._v("role.operation")]),s._v(" 校验删除控件的操作权限:")]),s._v(" "),n("div",{staticClass:"language-vue line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("br"),n("br"),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-vue"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("div")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("slot")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[s._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')]),s._v("action"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')])]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("slot-scope")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[s._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')]),s._v("{text, record}"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("\n ...\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("a")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[n("span",{pre:!0,attrs:{class:"token namespace"}},[s._v("v-auth:")]),s._v("role")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[s._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')]),s._v("`delete`"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("a-icon")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("type")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[s._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')]),s._v("delete"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')])]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("/>")])]),s._v("删除\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n ...\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br")])]),n("h2",{attrs:{id:"异步路由权限"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#异步路由权限"}},[s._v("#")]),s._v(" 异步路由权限")]),s._v(" "),n("p",[s._v("异步路由同样可以进行权限校验配置,它和正常的路由权限配置基本无异,只是无需把 "),n("a",{attrs:{href:"#%E9%A1%B5%E9%9D%A2%E6%9D%83%E9%99%90"}},[s._v("authority")]),s._v(" 配置在元数据属性 meta 里。\n你可以在路由组件注册时设置 authority,也可以在异步路由配置里设置 authority。")]),s._v(" "),n("p",[s._v("路由组件注册时设置 "),n("a",{attrs:{href:"#%E9%A1%B5%E9%9D%A2%E6%9D%83%E9%99%90"}},[s._v("authority")]),s._v(":")]),s._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("br"),n("br"),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 路由组件注册")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" routerMap "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n demo"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'演示页'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n authority"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'form'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[s._v("component")]),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/pages/demo'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br"),n("span",{staticClass:"line-number"},[s._v("8")]),n("br"),n("span",{staticClass:"line-number"},[s._v("9")]),n("br"),n("span",{staticClass:"line-number"},[s._v("10")]),n("br")])]),n("p",[s._v("异步路由配置里设置 "),n("a",{attrs:{href:"#%E9%A1%B5%E9%9D%A2%E6%9D%83%E9%99%90"}},[s._v("authority")]),s._v(":")]),s._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("br"),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" routesConfig "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n router"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'root'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n children"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'demo'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("router"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'parent1'")]),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n router"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'demo'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n icon"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'file-ppt'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'auth/demo'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'验权页面'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n authority"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n permission"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'form'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br"),n("span",{staticClass:"line-number"},[s._v("8")]),n("br"),n("span",{staticClass:"line-number"},[s._v("9")]),n("br"),n("span",{staticClass:"line-number"},[s._v("10")]),n("br"),n("span",{staticClass:"line-number"},[s._v("11")]),n("br"),n("span",{staticClass:"line-number"},[s._v("12")]),n("br"),n("span",{staticClass:"line-number"},[s._v("13")]),n("br"),n("span",{staticClass:"line-number"},[s._v("14")]),n("br"),n("span",{staticClass:"line-number"},[s._v("15")]),n("br"),n("span",{staticClass:"line-number"},[s._v("16")]),n("br")])])])}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/11.45b1f56d.js b/assets/js/11.45b1f56d.js new file mode 100644 index 0000000..b357246 --- /dev/null +++ b/assets/js/11.45b1f56d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{361:function(t,s,a){t.exports=a.p+"assets/img/menu-demo.6d51ae42.png"},392:function(t,s,a){"use strict";a.r(s);var n=a(18),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,n=t._self._c||s;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"路由和菜单"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#路由和菜单"}},[t._v("#")]),t._v(" 路由和菜单")]),t._v(" "),n("p",[t._v("路由和菜单起到组织一个应用的关键骨架的作用,Vue Antd Admin 使用 "),n("a",{attrs:{href:"https://router.vuejs.org/zh/",target:"_blank",rel:"noopener noreferrer"}},[t._v("vue-router"),n("OutboundLink")],1),t._v(" 来配置和管理我们的路由和菜单。")]),t._v(" "),n("h2",{attrs:{id:"基本结构"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#基本结构"}},[t._v("#")]),t._v(" 基本结构")]),t._v(" "),n("p",[t._v("得益于 vue-router 路由配置的可扩展性,Vue Antd Admin 通过结合 router 配置文件、基本算法及 "),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/components/menu/menu.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("menu.js"),n("OutboundLink")],1),t._v(" 菜单生成工具,搭建了路由和菜单的基本框架,主要涉及以下几个模块/功能:")]),t._v(" "),n("table",[n("thead",[n("tr",[n("th",{staticStyle:{"text-align":"left"}},[t._v("功能")]),t._v(" "),n("th",{staticStyle:{"text-align":"left"}},[t._v("配置")])])]),t._v(" "),n("tbody",[n("tr",[n("td",{staticStyle:{"text-align":"left"}},[n("em",[t._v("路由管理")])]),t._v(" "),n("td",{staticStyle:{"text-align":"left"}},[t._v("通过 "),n("a",{attrs:{href:"https://router.vuejs.org/zh/",target:"_blank",rel:"noopener noreferrer"}},[t._v("vue-router"),n("OutboundLink")],1),t._v(" 的路由规则进行管理和配置")])]),t._v(" "),n("tr",[n("td",{staticStyle:{"text-align":"left"}},[n("em",[t._v("菜单生成")])]),t._v(" "),n("td",{staticStyle:{"text-align":"left"}},[t._v("根据路由配置自动生成菜单,菜单项名称、图标和层级等全部可以通过路由配置进行自定义")])]),t._v(" "),n("tr",[n("td",{staticStyle:{"text-align":"left"}},[n("em",[t._v("面包屑")])]),t._v(" "),n("td",{staticStyle:{"text-align":"left"}},[t._v("布局组件 "),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/PageLayout.vue",target:"_blank",rel:"noopener noreferrer"}},[t._v("PageLayout"),n("OutboundLink")],1),t._v(" 提取当前页面路由,并根据当前路由层次关系自动生成面包屑,当然你也可以自定义面包屑")])]),t._v(" "),n("tr",[n("td",{staticStyle:{"text-align":"left"}},[n("em",[t._v("页面标题")])]),t._v(" "),n("td",{staticStyle:{"text-align":"left"}},[t._v("同面包屑,布局组件 "),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/PageLayout.vue",target:"_blank",rel:"noopener noreferrer"}},[t._v("PageLayout"),n("OutboundLink")],1),t._v(" 根据提取到的当前页面的路由名称设置为页面标题,你也同样可以自定义标题")])])])]),t._v(" "),n("h2",{attrs:{id:"路由"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#路由"}},[t._v("#")]),t._v(" 路由")]),t._v(" "),n("p",[t._v("Vue Antd Admin 的路由配置完全遵循 vue-router 的 "),n("a",{attrs:{href:"https://router.vuejs.org/zh/api/#routes",target:"_blank",rel:"noopener noreferrer"}},[t._v("routes 配置规则"),n("OutboundLink")],1),t._v("。\n另外我们还在 routes 的元数据属性 "),n("a",{attrs:{href:"https://router.vuejs.org/zh/guide/advanced/meta.html#%E8%B7%AF%E7%94%B1%E5%85%83%E4%BF%A1%E6%81%AF",target:"_blank",rel:"noopener noreferrer"}},[t._v("meta"),n("OutboundLink")],1),t._v(" 中注入了三个属性 icon、invisible 和 page,它们将在生成菜单和页头时发挥作用。配置示例如下:")]),t._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[t._v(" ")]),n("br"),n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[t._v(" ")]),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" options "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n routes"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'首页'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n component"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" TabsView"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n meta"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n invisible"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n children"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'dashboard'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Dashboard'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n meta"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n icon"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'dashboard'")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n component"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" BlankView"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n children"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'workplace'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'工作台'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@/pages/dashboard/workplace/WorkPlace'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'analysis'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'分析页'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@/pages/dashboard/analysis/Analysis'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br")])]),n("p",[t._v("完整配置示例,请查看 "),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/router/config.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("src/router/config.js"),n("OutboundLink")],1)]),t._v(" "),n("h2",{attrs:{id:"菜单"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#菜单"}},[t._v("#")]),t._v(" 菜单")]),t._v(" "),n("p",[t._v("Admin 系统的菜单直接通过路由配置生成,路由属性和菜单功能对应关系如下")]),t._v(" "),n("table",[n("thead",[n("tr",[n("th",{staticStyle:{"text-align":"left"}},[t._v("路由属性")]),t._v(" "),n("th",{staticStyle:{"text-align":"left"}},[t._v("对应菜单功能")])])]),t._v(" "),n("tbody",[n("tr",[n("td",{staticStyle:{"text-align":"left"}},[n("strong",[t._v("name")])]),t._v(" "),n("td",{staticStyle:{"text-align":"left"}},[t._v("菜单名称")])]),t._v(" "),n("tr",[n("td",{staticStyle:{"text-align":"left"}},[n("strong",[t._v("path")])]),t._v(" "),n("td",{staticStyle:{"text-align":"left"}},[t._v("点击菜单时的跳转链接")])]),t._v(" "),n("tr",[n("td",{staticStyle:{"text-align":"left"}},[n("strong",[t._v("meta.icon")])]),t._v(" "),n("td",{staticStyle:{"text-align":"left"}},[t._v("菜单图标,图标使用 ant-design-vue 图标库,对应 "),n("a",{attrs:{href:"https://www.antdv.com/components/icon-cn/#API",target:"_blank",rel:"noopener noreferrer"}},[t._v("Icon"),n("OutboundLink")],1),t._v(" 组件 的 type 属性")])]),t._v(" "),n("tr",[n("td",{staticStyle:{"text-align":"left"}},[n("strong",[t._v("meta.invisible")])]),t._v(" "),n("td",{staticStyle:{"text-align":"left"}},[t._v("是否不将此路由项渲染为菜单项,默认false;如设置为 true,则生成菜单时将忽略此路由")])])])]),t._v(" "),n("p",[t._v("假如使用上面 "),n("a",{attrs:{href:"#%E8%B7%AF%E7%94%B1"}},[t._v("路由")]),t._v(" 文档中的 "),n("a",{attrs:{href:"#%E8%B7%AF%E7%94%B1"}},[t._v("配置示例")]),t._v(",将会生成如下菜单:")]),t._v(" "),n("p",[n("img",{attrs:{src:a(361),alt:"menu-demo"}}),t._v("\n实际项目中,我们是在 AdminLayout 组件创建之前,提取 router 配置中根路由 '/' 下所有子路由配置,\n并将此配置传递给 menu.js 插件,从而生成菜单。如下:")]),t._v(" "),n("div",{staticClass:"language-vue line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[t._v(" ")]),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[t._v(" ")]),n("div",{staticClass:"highlighted"},[t._v(" ")]),n("div",{staticClass:"highlighted"},[t._v(" ")]),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-vue"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("template")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("a-layout")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("["),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v("admin-layout"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v("...]"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n ...\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("side-menu")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":menuData")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("menuData"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("...")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),n("span",{pre:!0,attrs:{class:"token script"}},[n("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'AdminLayout'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("beforeCreate")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n menuData "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("$router"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("options"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("routes"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("find")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("item")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" item"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("path "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("children\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br")])]),n("p",[t._v("详细代码可查看 "),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/AdminLayout.vue#L83",target:"_blank",rel:"noopener noreferrer"}},[t._v("layouts/AdminLayout#L83"),n("OutboundLink")],1),t._v("。"),n("br"),t._v("\n当然你也可以不使用 router 配置生成菜单,你只需按照配置规则给菜单传递你所定义配置即可。菜单组件配置规则如下:")]),t._v(" "),n("div",{staticClass:"language-jsx {} line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-jsx"}},[n("code",[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'菜单标题'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'菜单路由'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n meta"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n icon"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'菜单图标'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n invisible"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'boolean, 是否隐藏此菜单项, 默认 false'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n children"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//子菜单配置")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'子菜单标题'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'子菜单路由'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n meta"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n icon"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'子菜单图标'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n invisible"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'boolean, 是否隐藏此菜单项, 默认 false'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br")])]),n("p",[t._v("更多细节可查看 "),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/components/menu/menu.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("components/menu/menu.js"),n("OutboundLink")],1)]),t._v(" "),n("h2",{attrs:{id:"面包屑"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#面包屑"}},[t._v("#")]),t._v(" 面包屑")]),t._v(" "),n("p",[t._v("面包屑由 "),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/components/page/PageHeader.vue",target:"_blank",rel:"noopener noreferrer"}},[t._v("PageHeader"),n("OutboundLink")],1),t._v(" 实现,PageLayout 组件会从当前页面路由提取面包屑配置(如未设置,则根据当前路由层次关系生成面包屑)。所以只要页面中使用了 PageLayout 布局或者它的父级组件使用了 PageLayout 布局,面包屑都将自动生成。")]),t._v(" "),n("p",[t._v("当然,如果你想在某个页面自定义面包屑,只需在对应的路由元数据 meta 中定义 page.breadcrumb 属性即可。Vue Antd Admin 将会优先使用路由元数据 meta 中定义的面包屑配置。")]),t._v(" "),n("p",[t._v("比如,想自定义工作台页面面包屑,可以在工作台的 route 配置中如下设置:")]),t._v(" "),n("div",{staticClass:"language-jsx line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[t._v(" ")]),n("div",{staticClass:"highlighted"},[t._v(" ")]),n("div",{staticClass:"highlighted"},[t._v(" ")]),n("br"),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-jsx"}},[n("code",[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'workplace'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'工作台'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n meta"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n page"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n breadcrumb"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'首页'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Dashboard'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'自定义'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@/pages/dashboard/workplace/WorkPlace'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br")])]),n("p",[t._v("更多细节可查看 "),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/PageLayout.vue#L55",target:"_blank",rel:"noopener noreferrer"}},[t._v("layouts/PageLayout.vue#L55"),n("OutboundLink")],1)]),t._v(" "),n("h2",{attrs:{id:"页面标题"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#页面标题"}},[t._v("#")]),t._v(" 页面标题")]),t._v(" "),n("p",[t._v("页面标题的实现方式与面包屑基本一致,也是由 PageLayout 组件从当前页面路由提取标题(如未设置,则提取当前路由名称作为标题)。")]),t._v(" "),n("p",[t._v("如果你想自定义页面标题,在页面对应的路由元数据 meta 中定义 page.title 属性即可,如下示例,定义了工作台页面的标题:")]),t._v(" "),n("div",{staticClass:"language-jsx line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[t._v(" ")]),n("div",{staticClass:"highlighted"},[t._v(" ")]),n("div",{staticClass:"highlighted"},[t._v(" ")]),n("br"),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-jsx"}},[n("code",[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'workplace'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'工作台'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n meta"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n page"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n title"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'自定义标题'")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@/pages/dashboard/workplace/WorkPlace'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br")])]),n("p",[t._v("更多细节可查看 "),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/PageLayout.vue#L48",target:"_blank",rel:"noopener noreferrer"}},[t._v("layouts/PageLayout.vue#L48"),n("OutboundLink")],1)])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/12.01a276f6.js b/assets/js/12.01a276f6.js new file mode 100644 index 0000000..4600543 --- /dev/null +++ b/assets/js/12.01a276f6.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{371:function(t,e,s){"use strict";s.r(e);var n=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],o={methods:{getMsg:function(){return n[Math.floor(Math.random()*n.length)]}}},i=s(18),h=Object(i.a)(o,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"theme-container"},[e("div",{staticClass:"theme-default-content"},[e("h1",[this._v("404")]),this._v(" "),e("blockquote",[this._v(this._s(this.getMsg()))]),this._v(" "),e("RouterLink",{attrs:{to:"/"}},[this._v("\n Take me home.\n ")])],1)])}),[],!1,null,null,null);e.default=h.exports}}]); \ No newline at end of file diff --git a/assets/js/13.48c77c6e.js b/assets/js/13.48c77c6e.js new file mode 100644 index 0000000..cc467ca --- /dev/null +++ b/assets/js/13.48c77c6e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{376:function(t,e,n){"use strict";n.r(e);var s=n(18),l=Object(s.a)({},(function(){var t=this.$createElement;return(this._self._c||t)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);e.default=l.exports}}]); \ No newline at end of file diff --git a/assets/js/14.4f2e11ab.js b/assets/js/14.4f2e11ab.js new file mode 100644 index 0000000..97172e4 --- /dev/null +++ b/assets/js/14.4f2e11ab.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{375:function(t,s,e){"use strict";e.r(s);var n=e(18),r=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"进阶"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#进阶"}},[this._v("#")]),this._v(" 进阶")])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/15.288a0b46.js b/assets/js/15.288a0b46.js new file mode 100644 index 0000000..2c58a70 --- /dev/null +++ b/assets/js/15.288a0b46.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{378:function(t,e,r){"use strict";r.r(e);var a=r(18),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"全局api"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#全局api"}},[t._v("#")]),t._v(" 全局API")]),t._v(" "),r("p",[t._v("我们提供了一些全局Api,在日常功能开发中或许会有帮助,它们均被绑定到了页面组件或子组件实例上。"),r("br"),t._v("\n在组件内可以直接通过"),r("code",[t._v("this.$[apiName]")]),t._v("的方式调用。如下:")]),t._v(" "),r("h2",{attrs:{id:"多页签"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#多页签"}},[t._v("#")]),t._v(" 多页签")]),t._v(" "),r("h3",{attrs:{id:"closepage-closeroute-nextroute"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#closepage-closeroute-nextroute"}},[t._v("#")]),t._v(" $closePage(closeRoute, nextRoute)")]),t._v(" "),r("p",[t._v("该api用于关闭当前已打开的页签,接收两个参数:")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("closeRoute")]),r("br"),t._v("\n要关闭的页签对应的 route 对象,可简写为路由的 fullPath 字符串值。")]),t._v(" "),r("li",[r("strong",[t._v("nextRoute")]),r("br"),t._v("\n关闭页签要后跳转的 route 对象,可不传,不传则会自动选择打开页签(临近原则)。")])]),t._v(" "),r("h3",{attrs:{id:"refreshpage-route"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#refreshpage-route"}},[t._v("#")]),t._v(" $refreshPage(route)")]),t._v(" "),r("p",[t._v("该api用于刷新路由对应的页签,接收一个参数:")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("route")]),r("br"),t._v("\n要刷新的页签对应的 route 对象,可简写为路由的 fullPath 字符串值。")])]),t._v(" "),r("h3",{attrs:{id:"openpage-route-title"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#openpage-route-title"}},[t._v("#")]),t._v(" $openPage(route, title)")]),t._v(" "),r("p",[t._v("该api用于打开一个新页签,接收两个参数:")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("route")]),r("br"),t._v("\n要打开的页签对应的 route 对象,可简写为路由的 fullPath 字符串值。")]),t._v(" "),r("li",[r("strong",[t._v("title")]),r("br"),t._v("\n设置打开页签的标题,可不传。")])]),t._v(" "),r("h3",{attrs:{id:"setpagetitle-route-title"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#setpagetitle-route-title"}},[t._v("#")]),t._v(" $setPageTitle(route, title)")]),t._v(" "),r("p",[t._v("该api用于设置页签的标题,接收两个参数:")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("route")]),r("br"),t._v("\n要设置的页签对应的 route 对象,可简写为路由的 fullPath 字符串值。")]),t._v(" "),r("li",[r("strong",[t._v("title")]),r("br"),t._v("\n页签的标题。")])]),t._v(" "),r("h2",{attrs:{id:"权限"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#权限"}},[t._v("#")]),t._v(" 权限")]),t._v(" "),r("h3",{attrs:{id:"auth-check-type"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#auth-check-type"}},[t._v("#")]),t._v(" $auth(check, type)")]),t._v(" "),r("p",[t._v("该api可以用于操作权限校验,接收两个参数:")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("check")]),r("br"),t._v("\n需要要校验的操作权限")]),t._v(" "),r("li",[r("strong",[t._v("type")]),r("br"),t._v("\n操作权限校验类别,可选 "),r("code",[t._v("permission")]),t._v(" 和 "),r("code",[t._v("role")]),t._v(",即通过权限校验还是角色进行校验,可不传(不传的话,会对两种类型都进行匹配,任意一种匹配成功即校验通过)。")])])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/16.82c281d4.js b/assets/js/16.82c281d4.js new file mode 100644 index 0000000..ee71a76 --- /dev/null +++ b/assets/js/16.82c281d4.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{380:function(s,t,a){"use strict";a.r(t);var n=a(18),r=Object(n.a)({},(function(){var s=this,t=s.$createElement,a=s._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"异步路由和菜单"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#异步路由和菜单"}},[s._v("#")]),s._v(" 异步路由和菜单")]),s._v(" "),a("p",[s._v("在现实业务中,存在这样的场景,系统的路由和菜单会根据用户的角色变化而变化,或者路由菜单根据用户的权限动态生成。我们为此准备了一套完整的异步加载方案,\n可以让你很方便的从服务端加载路由和菜单配置,并应用到系统中。")]),s._v(" "),a("h2",{attrs:{id:"异步加载路由"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#异步加载路由"}},[s._v("#")]),s._v(" 异步加载路由")]),s._v(" "),a("p",[s._v("动态路由的实现主要有以下四个步骤:")]),s._v(" "),a("h3",{attrs:{id:"开启异步路由设置"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#开启异步路由设置"}},[s._v("#")]),s._v(" 开启异步路由设置")]),s._v(" "),a("p",[s._v("在 "),a("code",[s._v("/config/config.js")]),s._v(" 文件中设置 "),a("code",[s._v("asyncRoutes")]),s._v(" 的值为 true:")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("div",{staticClass:"highlight-lines"},[a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("br"),a("br"),a("br"),a("br"),a("br"),a("br")]),a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[s._v("module"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("exports "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n theme"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n color"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'#13c2c2'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n mode"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'night'")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n multiPage"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n asyncRoutes"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//异步加载路由,true:开启,false:不开启")]),s._v("\n animate"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'roll'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n direction"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'default'")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br")])]),a("h3",{attrs:{id:"注册路由组件"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#注册路由组件"}},[s._v("#")]),s._v(" 注册路由组件")]),s._v(" "),a("p",[s._v("基础路由组件包含路由基本配置和对应的视图组件,我们统一在 "),a("code",[s._v("/router/async/router.map.js")]),s._v(" 文件中注册它们。它和正常的路由配置基本无异,相当于把完整的路由拆分成单个的路由配置进行注册,为后面的路由动态配置打好基础。"),a("br"),s._v("\n一个单独的路由组件注册示例如下:")]),s._v(" "),a("div",{staticClass:"language-jsx line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jsx"}},[a("code",[s._v("registerName"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//路由组件注册名称,唯一标识")]),s._v("\n path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'path'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//路由path,可缺省,默认取路由注册名称 registerName 的值")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'演示页'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//路由名称")]),s._v("\n redirect"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/login'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//路由重定向")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[s._v("component")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/pages/demo'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//路由视图")]),s._v("\n icon"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'permission'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//路由的菜单icon,会注入到路由元数据meta中")]),s._v("\n invisible"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//是否隐藏菜单项,true 隐藏,false 不隐藏,会注入到路由元数据meta中。")]),s._v("\n authority"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//路由权限配置,会注入到路由元数据meta中。可缺省,默认为 ‘*’, 即无权限限制")]),s._v("\n permission"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'form'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//路由需要的权限 ")]),s._v("\n role"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'admin'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//路由需要的角色。当permission未设置,通过 role 检查权限")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" \n page"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//路由的页面数据,会注入到路由元数据meta中")]),s._v("\n title"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'演示页'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//页面标题")]),s._v("\n breadcrumb"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'首页'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'演示页'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//页面面包屑")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" \n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br")])]),a("details",{staticClass:"custom-block details"},[a("summary",[s._v("点击查看完整的路由注册示例:")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 视图组件")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" view "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[s._v("tabs")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/layouts/tabs'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[s._v("blank")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/layouts/BlankView'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[s._v("page")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/layouts/PageView'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 路由组件注册")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" routerMap "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n login"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n authority"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'*'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/login'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[s._v("component")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/pages/login'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n demo"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'演示页'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n renderMenu"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[s._v("component")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/pages/demo'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n exp403"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n authority"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'*'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'exp403'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'403'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[s._v("component")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/pages/exception/403'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n exp404"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'exp404'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'404'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[s._v("component")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/pages/exception/404'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n exp500"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'exp500'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'500'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[s._v("component")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/pages/exception/500'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n root"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'首页'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n redirect"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/login'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n component"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" view"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("tabs\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n parent1"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'父级路由1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n icon"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'dashboard'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n component"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" view"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("blank\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n parent2"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'父级路由2'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n icon"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'form'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n component"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" view"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("page\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n exception"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'异常页'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n icon"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'warning'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n component"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" view"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("blank\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("export")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("default")]),s._v(" routerMap\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br"),a("span",{staticClass:"line-number"},[s._v("23")]),a("br"),a("span",{staticClass:"line-number"},[s._v("24")]),a("br"),a("span",{staticClass:"line-number"},[s._v("25")]),a("br"),a("span",{staticClass:"line-number"},[s._v("26")]),a("br"),a("span",{staticClass:"line-number"},[s._v("27")]),a("br"),a("span",{staticClass:"line-number"},[s._v("28")]),a("br"),a("span",{staticClass:"line-number"},[s._v("29")]),a("br"),a("span",{staticClass:"line-number"},[s._v("30")]),a("br"),a("span",{staticClass:"line-number"},[s._v("31")]),a("br"),a("span",{staticClass:"line-number"},[s._v("32")]),a("br"),a("span",{staticClass:"line-number"},[s._v("33")]),a("br"),a("span",{staticClass:"line-number"},[s._v("34")]),a("br"),a("span",{staticClass:"line-number"},[s._v("35")]),a("br"),a("span",{staticClass:"line-number"},[s._v("36")]),a("br"),a("span",{staticClass:"line-number"},[s._v("37")]),a("br"),a("span",{staticClass:"line-number"},[s._v("38")]),a("br"),a("span",{staticClass:"line-number"},[s._v("39")]),a("br"),a("span",{staticClass:"line-number"},[s._v("40")]),a("br"),a("span",{staticClass:"line-number"},[s._v("41")]),a("br"),a("span",{staticClass:"line-number"},[s._v("42")]),a("br"),a("span",{staticClass:"line-number"},[s._v("43")]),a("br"),a("span",{staticClass:"line-number"},[s._v("44")]),a("br"),a("span",{staticClass:"line-number"},[s._v("45")]),a("br"),a("span",{staticClass:"line-number"},[s._v("46")]),a("br"),a("span",{staticClass:"line-number"},[s._v("47")]),a("br"),a("span",{staticClass:"line-number"},[s._v("48")]),a("br"),a("span",{staticClass:"line-number"},[s._v("49")]),a("br"),a("span",{staticClass:"line-number"},[s._v("50")]),a("br"),a("span",{staticClass:"line-number"},[s._v("51")]),a("br"),a("span",{staticClass:"line-number"},[s._v("52")]),a("br"),a("span",{staticClass:"line-number"},[s._v("53")]),a("br"),a("span",{staticClass:"line-number"},[s._v("54")]),a("br"),a("span",{staticClass:"line-number"},[s._v("55")]),a("br"),a("span",{staticClass:"line-number"},[s._v("56")]),a("br"),a("span",{staticClass:"line-number"},[s._v("57")]),a("br"),a("span",{staticClass:"line-number"},[s._v("58")]),a("br")])])]),s._v(" "),a("h3",{attrs:{id:"配置基本路由"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#配置基本路由"}},[s._v("#")]),s._v(" 配置基本路由")]),s._v(" "),a("p",[s._v("如果没有任何路由,你的应用是无法访问的,所以我们需要在本地配置一些基本的路由,比如登录页、404、403 等。你可以在 "),a("code",[s._v("/router/async/config.async.js")]),s._v(" 文件中配置一些本地必要的路由。如下:")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" routesConfig "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'login'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//匹配 router.map.js 中注册的 registerName = login 的路由")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'root'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//匹配 router.map.js 中注册的 registerName = root 的路由")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n router"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'exp404'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//匹配 router.map.js 中注册的 registerName = exp404 的路由")]),s._v("\n path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'*'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//重写 exp404 路由的 path 属性")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'404'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//重写 exp404 路由的 name 属性")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n router"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'exp403'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//匹配 router.map.js 中注册的 registerName = exp403 的路由")]),s._v("\n path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/403'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//重写 exp403 路由的 path 属性")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'403'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//重写 exp403 路由的 name 属性")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br")])]),a("p",[s._v("完成配置后,即可通过 "),a("code",[s._v("routesConfig")]),s._v(" 和已注册的 "),a("code",[s._v("routerMap")]),s._v(" 生成 "),a("a",{attrs:{href:"https://router.vuejs.org/zh/api/#router-%E6%9E%84%E5%BB%BA%E9%80%89%E9%A1%B9",target:"_blank",rel:"noopener noreferrer"}},[s._v("router.options.routes"),a("OutboundLink")],1),s._v(" 配置,如下:")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" options "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n routes"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("parseRoutes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("routesConfig"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" routerMap"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br")])]),a("details",{staticClass:"custom-block details"},[a("summary",[s._v("点击查看完整的 config.async.js 代码")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),s._v(" routerMap "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("from")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'./router.map'")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("parseRoutes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("from")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/utils/routerUtil'")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 异步路由配置")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" routesConfig "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'login'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'root'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n router"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'exp404'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'*'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'404'")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n router"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'exp403'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/403'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'403'")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" options "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n routes"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("parseRoutes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("routesConfig"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" routerMap"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("export")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("default")]),s._v(" options\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br")])])]),s._v(" "),a("p",[s._v("完成以上设置后,本地就已经有了包含 login、404、403 页面的路由,并且这些路由是可以直接访问的。")]),s._v(" "),a("h3",{attrs:{id:"异步获取路由配置"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#异步获取路由配置"}},[s._v("#")]),s._v(" 异步获取路由配置")]),s._v(" "),a("p",[s._v("当用户登录后(或者其它的前提条件),你可能想根据不同用户加载不同的路由和菜单。\n那么我们就需要先从后端服务获取异步路由配置,后端返回的异步路由配置 "),a("code",[s._v("routesConfig")]),s._v(" 是一个异步路由配置数组, 应当如下格式:")]),s._v(" "),a("div",{staticClass:"language-jsx line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jsx"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n router"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'root'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//匹配 router.map.js 中注册名 registerName = root 的路由")]),s._v("\n children"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//root 路由的子路由配置")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n router"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'dashboard'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//匹配 router.map.js 中注册名 registerName = dashboard 的路由")]),s._v("\n children"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'workplace'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'analysis'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//dashboard 路由的子路由配置,依次匹配 registerName 为 workplace 和 analysis 的路由")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n router"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'form'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//匹配 router.map.js 中注册名 registerName = form 的路由")]),s._v("\n children"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//form 路由的子路由配置")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'basicForm'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//匹配 router.map.js 中注册名 registerName = basicForm 的路由")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'stepForm'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//匹配 router.map.js 中注册名 registerName = stepForm 的路由")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n router"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'advanceForm'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//匹配 router.map.js 中注册名 registerName = advanceForm 的路由")]),s._v("\n path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'advance'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//重写 advanceForm 路由的 path 属性")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n router"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'basicForm'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//匹配 router.map.js 中注册名 registerName = basicForm 的路由")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'验权表单'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//重写 basicForm 路由的 name 属性")]),s._v("\n icon"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'file-excel'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//重写 basicForm 路由的 icon 属性")]),s._v("\n authority"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'form'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//重写 basicForm 路由的 authority 属性")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br"),a("span",{staticClass:"line-number"},[s._v("23")]),a("br"),a("span",{staticClass:"line-number"},[s._v("24")]),a("br"),a("span",{staticClass:"line-number"},[s._v("25")]),a("br"),a("span",{staticClass:"line-number"},[s._v("26")]),a("br")])]),a("p",[s._v("其中 "),a("code",[s._v("router")]),s._v(" 属性 对应 "),a("code",[s._v("router.map.js")]),s._v(" 中已注册的"),a("code",[s._v("基础路由")]),s._v("的注册名称 "),a("code",[s._v("registerName")]),s._v(","),a("code",[s._v("children")]),s._v(" 属性为路由的嵌套子路由配置。"),a("br"),s._v("\n有些情况下你可能想重写已注册路由的属性,你可以为 "),a("code",[s._v("routesConfig")]),s._v(" 配置同名属性去覆盖它。如上面的"),a("code",[s._v("验权表单")]),s._v("路由覆盖了注册路由的 "),a("code",[s._v("name")]),s._v("、"),a("code",[s._v("icon")]),s._v("、"),a("code",[s._v("authority")]),s._v(" 属性。")]),s._v(" "),a("h3",{attrs:{id:"加载路由并应用"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#加载路由并应用"}},[s._v("#")]),s._v(" 加载路由并应用")]),s._v(" "),a("p",[s._v("我们提供了一个路由加载工具,你只需调用 "),a("code",[s._v("/utils/routerUtil.js")]),s._v(" 中的 "),a("code",[s._v("loadRoutes")]),s._v(" 方法加载上一步获取到的 "),a("code",[s._v("routesConfig")]),s._v(" 即可,如下:")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("div",{staticClass:"highlight-lines"},[a("br"),a("br"),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("br"),a("br")]),a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[s._v("getRoutesConfig")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("then")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("result")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" routesConfig "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" result"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("data\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("loadRoutes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("routesConfig"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n")])]),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])]),a("p",[s._v("至此,异步路由的加载就完成了,你可以访问异步加载的路由了。")]),s._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[s._v("TIP")]),s._v(" "),a("p",[s._v("上面获取异步路由的代码,在 /pages/login/Login.vue 文件中可以找到。"),a("br"),s._v("\nloadRoutes 方法会合并 /router/async/config.async.js 文件中配置的基本路由。")])]),s._v(" "),a("details",{staticClass:"custom-block details"},[a("summary",[s._v("点击查看 loadRoutes 的详细代码")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("/**\n * 加载路由\n * @param routesConfig 路由配置\n */")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("loadRoutes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("routesConfig")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 如果 routesConfig 有值,则更新到本地,否则从本地获取")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("routesConfig"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n store"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("commit")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'account/setRoutesConfig'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" routesConfig"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("else")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n routesConfig "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" store"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("getters"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'account/routesConfig'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 如果开启了异步路由,则加载异步路由配置")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" asyncRoutes "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" store"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("setting"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("asyncRoutes\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("asyncRoutes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("routesConfig "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&&")]),s._v(" routesConfig"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("length "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" routes "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("parseRoutes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("routesConfig"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" routerMap"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("formatAuthority")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("routes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" finalRoutes "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("mergeRoutes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("router"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("options"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("routes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" routes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n router"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("options "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("router"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("options"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" routes"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" finalRoutes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n router"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("matcher "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("new")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("Router")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("router"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("options"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" routes"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("matcher\n router"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("addRoutes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("finalRoutes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 初始化Admin后台菜单数据")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" rootRoute "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" router"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("options"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("routes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("find")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("item")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" item"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("path "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("===")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" menuRoutes "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" rootRoute "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&&")]),s._v(" rootRoute"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("children\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("menuRoutes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("mergeI18nFromRoutes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("i18n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" menuRoutes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n store"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("commit")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'setting/setMenuData'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" menuRoutes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br"),a("span",{staticClass:"line-number"},[s._v("23")]),a("br"),a("span",{staticClass:"line-number"},[s._v("24")]),a("br"),a("span",{staticClass:"line-number"},[s._v("25")]),a("br"),a("span",{staticClass:"line-number"},[s._v("26")]),a("br"),a("span",{staticClass:"line-number"},[s._v("27")]),a("br"),a("span",{staticClass:"line-number"},[s._v("28")]),a("br"),a("span",{staticClass:"line-number"},[s._v("29")]),a("br"),a("span",{staticClass:"line-number"},[s._v("30")]),a("br"),a("span",{staticClass:"line-number"},[s._v("31")]),a("br")])])]),s._v(" "),a("h2",{attrs:{id:"异步加载菜单"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#异步加载菜单"}},[s._v("#")]),s._v(" 异步加载菜单")]),s._v(" "),a("p",[s._v("Vue Antd Admin 的菜单,是根据路由配置自动生成的,默认获取根路由 "),a("code",[s._v("‘/’")]),s._v(" 下所有子路由作为菜单配置。"),a("br"),s._v("\n当你完成了异步路由的加载,菜单也会随之改变,无需你做其它额外的操作。主要代码如下:")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 初始化Admin后台菜单数据")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" rootRoute "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" router"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("options"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("routes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("find")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("item")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" item"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("path "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("===")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" menuRoutes "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" rootRoute "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&&")]),s._v(" rootRoute"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("children\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("menuRoutes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("mergeI18nFromRoutes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("i18n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" menuRoutes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n store"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("commit")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'setting/setMenuData'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" menuRoutes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br")])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[s._v("TIP")]),s._v(" "),a("p",[s._v("如果你不想从根路由 "),a("code",[s._v("‘/’")]),s._v(" 下获取菜单数据,可以根据自己的需求更改。")])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/17.100d788a.js b/assets/js/17.100d788a.js new file mode 100644 index 0000000..fb2719e --- /dev/null +++ b/assets/js/17.100d788a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{377:function(t,s,a){"use strict";a.r(s);var e=a(18),r=Object(e.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"图表"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#图表"}},[this._v("#")]),this._v(" 图表")]),this._v(" "),s("h3",{attrs:{id:"作者还没来得及编辑该页面,如果你感兴趣,可以点击下方链接,帮助作者完善此页"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#作者还没来得及编辑该页面,如果你感兴趣,可以点击下方链接,帮助作者完善此页"}},[this._v("#")]),this._v(" 作者还没来得及编辑该页面,如果你感兴趣,可以点击下方链接,帮助作者完善此页")])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/18.5be3472b.js b/assets/js/18.5be3472b.js new file mode 100644 index 0000000..cfe3cf7 --- /dev/null +++ b/assets/js/18.5be3472b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{379:function(t,s,a){"use strict";a.r(s);var e=a(18),r=Object(e.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"错误处理"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#错误处理"}},[this._v("#")]),this._v(" 错误处理")]),this._v(" "),s("h3",{attrs:{id:"作者还没来得及编辑该页面,如果你感兴趣,可以点击下方链接,帮助作者完善此页"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#作者还没来得及编辑该页面,如果你感兴趣,可以点击下方链接,帮助作者完善此页"}},[this._v("#")]),this._v(" 作者还没来得及编辑该页面,如果你感兴趣,可以点击下方链接,帮助作者完善此页")])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/19.03245e8d.js b/assets/js/19.03245e8d.js new file mode 100644 index 0000000..50ef3a2 --- /dev/null +++ b/assets/js/19.03245e8d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{388:function(t,s,a){"use strict";a.r(s);var n=a(18),r=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"路由守卫"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#路由守卫"}},[t._v("#")]),t._v(" 路由守卫")]),t._v(" "),a("p",[t._v("Vue Antd Admin 使用 vue-router 实现路由导航功能,因此可以为路由配置一些守卫。"),a("br"),t._v("\n我们统一把导航守卫配置在 router/guards.js 文件中。")]),t._v(" "),a("h2",{attrs:{id:"前置守卫"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#前置守卫"}},[t._v("#")]),t._v(" 前置守卫")]),t._v(" "),a("p",[t._v("Vue Antd Admin 为每个前置导航守卫函数注入 to,from,next,options 四个参数:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("to: Route")]),t._v(": 即将要进入的目标"),a("a",{attrs:{href:"https://router.vuejs.org/zh/api/#%E8%B7%AF%E7%94%B1%E5%AF%B9%E8%B1%A1",target:"_blank",rel:"noopener noreferrer"}},[t._v("路由对象"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("code",[t._v("from: Route")]),t._v(": 当前导航正要离开的路由对象")]),t._v(" "),a("li",[a("code",[t._v("next: Function")]),t._v(": 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。详情查看 "),a("a",{attrs:{href:"https://router.vuejs.org/zh/guide/advanced/navigation-guards.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Vue Router #导航守卫"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("code",[t._v("options: Object")]),t._v(": 应用配置,包含: {router, i18n, store, message},可根据需要扩展。"),a("br"),t._v("\n如下,是登录拦截导航守卫的定义")])]),t._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("loginGuard")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("to"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" next"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" options")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" options\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("loginIgnore"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("includes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("to"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&&")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("checkAuthorization")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("warning")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'登录已失效,请重新登录'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("next")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("path"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/login'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("next")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br"),a("span",{staticClass:"line-number"},[t._v("3")]),a("br"),a("span",{staticClass:"line-number"},[t._v("4")]),a("br"),a("span",{staticClass:"line-number"},[t._v("5")]),a("br"),a("span",{staticClass:"line-number"},[t._v("6")]),a("br"),a("span",{staticClass:"line-number"},[t._v("7")]),a("br"),a("span",{staticClass:"line-number"},[t._v("8")]),a("br"),a("span",{staticClass:"line-number"},[t._v("9")]),a("br")])]),a("h2",{attrs:{id:"后置守卫"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#后置守卫"}},[t._v("#")]),t._v(" 后置守卫")]),t._v(" "),a("p",[t._v("你也可以定义后置导航守卫,Vue Antd Admin 为每个后置导航函数注入 to,from,options 三个参数:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("to: Route")]),t._v(": 即将要进入的目标"),a("a",{attrs:{href:"https://router.vuejs.org/zh/api/#%E8%B7%AF%E7%94%B1%E5%AF%B9%E8%B1%A1",target:"_blank",rel:"noopener noreferrer"}},[t._v("路由对象"),a("OutboundLink")],1)]),t._v(" "),a("li",[a("code",[t._v("from: Route")]),t._v(": 当前导航正要离开的路由对象")]),t._v(" "),a("li",[a("code",[t._v("options: Object")]),t._v(": 应用配置,包含: {router, i18n, store, message},可根据需要扩展。"),a("br"),t._v("\n如下,是一个后置导航守卫的定义")])]),t._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("afterGuard")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("to"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" options")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("store"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" options\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 做些什么")]),t._v("\n message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("info")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'do something'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br"),a("span",{staticClass:"line-number"},[t._v("3")]),a("br"),a("span",{staticClass:"line-number"},[t._v("4")]),a("br"),a("span",{staticClass:"line-number"},[t._v("5")]),a("br")])]),a("h2",{attrs:{id:"导出守卫配置"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#导出守卫配置"}},[t._v("#")]),t._v(" 导出守卫配置")]),t._v(" "),a("p",[t._v("定义好导航守卫后,只需按照类别在 guard.js 中导出即可。分为两类,"),a("code",[t._v("前置守卫")]),t._v("和"),a("code",[t._v("后置守卫")]),t._v("。如下:")]),t._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n beforeEach"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("loginGuard"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" authorityGuard"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n afterEach"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("afterGuard"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br"),a("span",{staticClass:"line-number"},[t._v("3")]),a("br"),a("span",{staticClass:"line-number"},[t._v("4")]),a("br")])]),a("details",{staticClass:"custom-block details"},[a("summary",[t._v("点击查看完整的导航守卫配置")]),t._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("loginIgnore"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@/router/index'")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("checkAuthorization"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@/utils/request'")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * 登录守卫\n * @param to\n * @param form\n * @param next\n * @param options\n */")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("loginGuard")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("to"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" next"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" options")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" options\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("loginIgnore"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("includes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("to"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&&")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("checkAuthorization")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("warning")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'登录已失效,请重新登录'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("next")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("path"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/login'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("next")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * 权限守卫\n * @param to\n * @param form\n * @param next\n * @param options\n */")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("authorityGuard")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("to"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" next"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" options")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("store"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" options\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" permissions "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" store"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("getters"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'account/permissions'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" roles "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" store"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("getters"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'account/roles'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("hasAuthority")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("to"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" permissions"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" roles"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("warning")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("对不起,您无权访问页面: ")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("to"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("fullPath"),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v(",请联系管理员")]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("next")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("path"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/403'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("next")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * 后置守卫\n * @param to\n * @param form\n * @param options\n */")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("afterGuard")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("to"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" options")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("store"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" options\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 做些什么")]),t._v("\n message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("info")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'do something'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n beforeEach"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("loginGuard"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" authorityGuard"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n afterEach"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("afterGuard"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br"),a("span",{staticClass:"line-number"},[t._v("3")]),a("br"),a("span",{staticClass:"line-number"},[t._v("4")]),a("br"),a("span",{staticClass:"line-number"},[t._v("5")]),a("br"),a("span",{staticClass:"line-number"},[t._v("6")]),a("br"),a("span",{staticClass:"line-number"},[t._v("7")]),a("br"),a("span",{staticClass:"line-number"},[t._v("8")]),a("br"),a("span",{staticClass:"line-number"},[t._v("9")]),a("br"),a("span",{staticClass:"line-number"},[t._v("10")]),a("br"),a("span",{staticClass:"line-number"},[t._v("11")]),a("br"),a("span",{staticClass:"line-number"},[t._v("12")]),a("br"),a("span",{staticClass:"line-number"},[t._v("13")]),a("br"),a("span",{staticClass:"line-number"},[t._v("14")]),a("br"),a("span",{staticClass:"line-number"},[t._v("15")]),a("br"),a("span",{staticClass:"line-number"},[t._v("16")]),a("br"),a("span",{staticClass:"line-number"},[t._v("17")]),a("br"),a("span",{staticClass:"line-number"},[t._v("18")]),a("br"),a("span",{staticClass:"line-number"},[t._v("19")]),a("br"),a("span",{staticClass:"line-number"},[t._v("20")]),a("br"),a("span",{staticClass:"line-number"},[t._v("21")]),a("br"),a("span",{staticClass:"line-number"},[t._v("22")]),a("br"),a("span",{staticClass:"line-number"},[t._v("23")]),a("br"),a("span",{staticClass:"line-number"},[t._v("24")]),a("br"),a("span",{staticClass:"line-number"},[t._v("25")]),a("br"),a("span",{staticClass:"line-number"},[t._v("26")]),a("br"),a("span",{staticClass:"line-number"},[t._v("27")]),a("br"),a("span",{staticClass:"line-number"},[t._v("28")]),a("br"),a("span",{staticClass:"line-number"},[t._v("29")]),a("br"),a("span",{staticClass:"line-number"},[t._v("30")]),a("br"),a("span",{staticClass:"line-number"},[t._v("31")]),a("br"),a("span",{staticClass:"line-number"},[t._v("32")]),a("br"),a("span",{staticClass:"line-number"},[t._v("33")]),a("br"),a("span",{staticClass:"line-number"},[t._v("34")]),a("br"),a("span",{staticClass:"line-number"},[t._v("35")]),a("br"),a("span",{staticClass:"line-number"},[t._v("36")]),a("br"),a("span",{staticClass:"line-number"},[t._v("37")]),a("br"),a("span",{staticClass:"line-number"},[t._v("38")]),a("br"),a("span",{staticClass:"line-number"},[t._v("39")]),a("br"),a("span",{staticClass:"line-number"},[t._v("40")]),a("br"),a("span",{staticClass:"line-number"},[t._v("41")]),a("br"),a("span",{staticClass:"line-number"},[t._v("42")]),a("br"),a("span",{staticClass:"line-number"},[t._v("43")]),a("br"),a("span",{staticClass:"line-number"},[t._v("44")]),a("br"),a("span",{staticClass:"line-number"},[t._v("45")]),a("br"),a("span",{staticClass:"line-number"},[t._v("46")]),a("br"),a("span",{staticClass:"line-number"},[t._v("47")]),a("br"),a("span",{staticClass:"line-number"},[t._v("48")]),a("br"),a("span",{staticClass:"line-number"},[t._v("49")]),a("br"),a("span",{staticClass:"line-number"},[t._v("50")]),a("br"),a("span",{staticClass:"line-number"},[t._v("51")]),a("br"),a("span",{staticClass:"line-number"},[t._v("52")]),a("br"),a("span",{staticClass:"line-number"},[t._v("53")]),a("br"),a("span",{staticClass:"line-number"},[t._v("54")]),a("br"),a("span",{staticClass:"line-number"},[t._v("55")]),a("br")])])])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/2.8c76fef9.js b/assets/js/2.8c76fef9.js new file mode 100644 index 0000000..40971d7 --- /dev/null +++ b/assets/js/2.8c76fef9.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{305:function(t,e,n){"use strict";n.d(e,"d",(function(){return i})),n.d(e,"a",(function(){return a})),n.d(e,"i",(function(){return s})),n.d(e,"f",(function(){return u})),n.d(e,"g",(function(){return l})),n.d(e,"h",(function(){return c})),n.d(e,"b",(function(){return h})),n.d(e,"e",(function(){return f})),n.d(e,"k",(function(){return p})),n.d(e,"l",(function(){return d})),n.d(e,"c",(function(){return v})),n.d(e,"j",(function(){return m}));n(26),n(100),n(164),n(169),n(68),n(43),n(306),n(69),n(324),n(103);var i=/#.*$/,r=/\.(md|html)$/,a=/\/$/,s=/^[a-z]+:/i;function o(t){return decodeURI(t).replace(i,"").replace(r,"")}function u(t){return s.test(t)}function l(t){return/^mailto:/.test(t)}function c(t){return/^tel:/.test(t)}function h(t){if(u(t))return t;var e=t.match(i),n=e?e[0]:"",r=o(t);return a.test(r)?t:r+".html"+n}function f(t,e){var n=decodeURIComponent(t.hash),r=function(t){var e=t.match(i);if(e)return e[0]}(e);return(!r||n===r)&&o(t.path)===o(e)}function p(t,e,n){if(u(e))return{type:"external",path:e};n&&(e=function(t,e,n){var i=t.charAt(0);if("/"===i)return t;if("?"===i||"#"===i)return e+t;var r=e.split("/");n&&r[r.length-1]||r.pop();for(var a=t.replace(/^\//,"").split("/"),s=0;s3&&void 0!==arguments[3]?arguments[3]:1;if("string"==typeof e)return p(n,e,i);if(Array.isArray(e))return Object.assign(p(n,e[0],i),{title:e[1]});var a=e.children||[];return 0===a.length&&e.path?Object.assign(p(n,e.path,i),{title:e.title}):{type:"group",path:e.path,title:e.title,sidebarDepth:e.sidebarDepth,children:a.map((function(e){return t(e,n,i,r+1)})),collapsable:!1!==e.collapsable}}(t,r,l)})):[]}return[]}function g(t){var e=v(t.headers||[]);return[{type:"group",collapsable:!1,title:t.title,path:null,children:e.map((function(e){return{type:"auto",title:e.title,basePath:t.path,path:t.path+"#"+e.slug,children:e.children||[]}}))}]}function v(t){var e;return(t=t.map((function(t){return Object.assign({},t)}))).forEach((function(t){2===t.level?e=t:e&&(e.children||(e.children=[])).push(t)})),t.filter((function(t){return 2===t.level}))}function m(t){return Object.assign(t,{type:t.items&&t.items.length?"links":"link"})}},306:function(t,e,n){"use strict";var i=n(166),r=n(6),a=n(13),s=n(21),o=n(167),u=n(168);i("match",1,(function(t,e,n){return[function(e){var n=s(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,n):new RegExp(e)[t](String(n))},function(t){var i=n(e,t,this);if(i.done)return i.value;var s=r(t),l=String(this);if(!s.global)return u(s,l);var c=s.unicode;s.lastIndex=0;for(var h,f=[],p=0;null!==(h=u(s,l));){var d=String(h[0]);f[p]=d,""===d&&(s.lastIndex=o(l,a(s.lastIndex),c)),p++}return 0===p?null:f}]}))},307:function(t,e,n){},308:function(t,e,n){},309:function(t,e,n){},310:function(t,e,n){},311:function(t,e,n){},312:function(t,e,n){},313:function(t,e,n){},314:function(t,e,n){},315:function(t,e,n){},316:function(t,e,n){},317:function(t,e,n){},318:function(t,e,n){},319:function(t,e,n){},324:function(t,e,n){"use strict";var i=n(166),r=n(165),a=n(6),s=n(21),o=n(99),u=n(167),l=n(13),c=n(168),h=n(71),f=n(1),p=[].push,d=Math.min,g=!f((function(){return!RegExp(4294967295,"y")}));i("split",2,(function(t,e,n){var i;return i="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var i=String(s(this)),a=void 0===n?4294967295:n>>>0;if(0===a)return[];if(void 0===t)return[i];if(!r(t))return e.call(i,t,a);for(var o,u,l,c=[],f=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),d=0,g=new RegExp(t.source,f+"g");(o=h.call(g,i))&&!((u=g.lastIndex)>d&&(c.push(i.slice(d,o.index)),o.length>1&&o.index=a));)g.lastIndex===o.index&&g.lastIndex++;return d===i.length?!l&&g.test("")||c.push(""):c.push(i.slice(d)),c.length>a?c.slice(0,a):c}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var r=s(this),a=null==e?void 0:e[t];return void 0!==a?a.call(e,r,n):i.call(String(r),e,n)},function(t,r){var s=n(i,t,this,r,i!==e);if(s.done)return s.value;var h=a(t),f=String(this),p=o(h,RegExp),v=h.unicode,m=(h.ignoreCase?"i":"")+(h.multiline?"m":"")+(h.unicode?"u":"")+(g?"y":"g"),b=new p(g?h:"^(?:"+h.source+")",m),k=void 0===r?4294967295:r>>>0;if(0===k)return[];if(0===f.length)return null===c(b,f)?[f]:[];for(var _=0,x=0,C=[];x-1)&&(e=e.replace(/y/g,""));var o=s(x?new m(t,e):m(t,e),i?this:b,$);return C&&n&&d(o,{sticky:n}),o},y=function(t){t in $||o($,t,{configurable:!0,get:function(){return m[t]},set:function(e){m[t]=e}})},L=u(m),w=0;L.length>w;)y(L[w++]);b.constructor=$,$.prototype=b,f(r,"RegExp",$)}g("RegExp")},327:function(t,e){t.exports=function(t){return null==t}},328:function(t,e,n){"use strict";n.r(e);n(163);var i=n(305),r={name:"SidebarGroup",components:{DropdownTransition:n(329).a},props:["item","open","collapsable","depth"],beforeCreate:function(){this.$options.components.SidebarLinks=n(328).default},methods:{isActive:i.e}},a=(n(346),n(18)),s=Object(a.a)(r,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"sidebar-group",class:[{collapsable:t.collapsable,"is-sub-group":0!==t.depth},"depth-"+t.depth]},[t.item.path?n("RouterLink",{staticClass:"sidebar-heading clickable",class:{open:t.open,active:t.isActive(t.$route,t.item.path)},attrs:{to:t.item.path},nativeOn:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]):n("p",{staticClass:"sidebar-heading",class:{open:t.open},on:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]),t._v(" "),n("DropdownTransition",[t.open||!t.collapsable?n("SidebarLinks",{staticClass:"sidebar-group-items",attrs:{items:t.item.children,"sidebar-depth":t.item.sidebarDepth,depth:t.depth+1}}):t._e()],1)],1)}),[],!1,null,null,null).exports;n(347),n(68);function o(t,e,n,i,r){var a={props:{to:e,activeClass:"",exactActiveClass:""},class:{active:i,"sidebar-link":!0}};return r>2&&(a.style={"padding-left":r+"rem"}),t("RouterLink",a,n)}function u(t,e,n,r,a){var s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1;return!e||s>a?null:t("ul",{class:"sidebar-sub-headers"},e.map((function(e){var l=Object(i.e)(r,n+"#"+e.slug);return t("li",{class:"sidebar-sub-header"},[o(t,n+"#"+e.slug,e.title,l,e.level-1),u(t,e.children,n,r,a,s+1)])})))}var l={functional:!0,props:["item","sidebarDepth"],render:function(t,e){var n=e.parent,r=n.$page,a=(n.$site,n.$route),s=n.$themeConfig,l=n.$themeLocaleConfig,c=e.props,h=c.item,f=c.sidebarDepth,p=Object(i.e)(a,h.path),d="auto"===h.type?p||h.children.some((function(t){return Object(i.e)(a,h.basePath+"#"+t.slug)})):p,g="external"===h.type?function(t,e,n){return t("a",{attrs:{href:e,target:"_blank",rel:"noopener noreferrer"},class:{"sidebar-link":!0}},[n,t("OutboundLink")])}(t,h.path,h.title||h.path):o(t,h.path,h.title||h.path,d),v=[r.frontmatter.sidebarDepth,f,l.sidebarDepth,s.sidebarDepth,1].find((function(t){return void 0!==t})),m=l.displayAllHeaders||s.displayAllHeaders;return"auto"===h.type?[g,u(t,h.children,h.basePath,a,v)]:(d||m)&&h.headers&&!i.d.test(h.path)?[g,u(t,Object(i.c)(h.headers),h.path,a,v)]:g}};n(348);function c(t,e){return"group"===e.type&&e.children.some((function(e){return"group"===e.type?c(t,e):"page"===e.type&&Object(i.e)(t,e.path)}))}var h={name:"SidebarLinks",components:{SidebarGroup:s,SidebarLink:Object(a.a)(l,void 0,void 0,!1,null,null,null).exports},props:["items","depth","sidebarDepth"],data:function(){return{openGroupIndex:0}},watch:{$route:function(){this.refreshIndex()}},created:function(){this.refreshIndex()},methods:{refreshIndex:function(){var t=function(t,e){for(var n=0;n-1&&(this.openGroupIndex=t)},toggleGroup:function(t){this.openGroupIndex=t===this.openGroupIndex?-1:t},isActive:function(t){return Object(i.e)(this.$route,t.regularPath)}}},f=Object(a.a)(h,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.items.length?n("ul",{staticClass:"sidebar-links"},t._l(t.items,(function(e,i){return n("li",{key:i},["group"===e.type?n("SidebarGroup",{attrs:{item:e,open:i===t.openGroupIndex,collapsable:e.collapsable||e.collapsible,depth:t.depth},on:{toggle:function(e){return t.toggleGroup(i)}}}):n("SidebarLink",{attrs:{"sidebar-depth":t.sidebarDepth,item:e}})],1)})),0):t._e()}),[],!1,null,null,null);e.default=f.exports},329:function(t,e,n){"use strict";var i={name:"DropdownTransition",methods:{setHeight:function(t){t.style.height=t.scrollHeight+"px"},unsetHeight:function(t){t.style.height=""}}},r=(n(338),n(18)),a=Object(r.a)(i,(function(){var t=this.$createElement;return(this._self._c||t)("transition",{attrs:{name:"dropdown"},on:{enter:this.setHeight,"after-enter":this.unsetHeight,"before-leave":this.setHeight}},[this._t("default")],2)}),[],!1,null,null,null);e.a=a.exports},330:function(t,e,n){"use strict";var i=n(0),r=n(331);i({target:"String",proto:!0,forced:n(332)("link")},{link:function(t){return r(this,"a","href",t)}})},331:function(t,e,n){var i=n(21),r=/"/g;t.exports=function(t,e,n,a){var s=String(i(t)),o="<"+e;return""!==n&&(o+=" "+n+'="'+String(a).replace(r,""")+'"'),o+">"+s+""}},332:function(t,e,n){var i=n(1);t.exports=function(t){return i((function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}))}},333:function(t,e,n){"use strict";var i=n(307);n.n(i).a},334:function(t,e,n){var i=n(1),r=n(179);t.exports=function(t){return i((function(){return!!r[t]()||"​…᠎"!="​…᠎"[t]()||r[t].name!==t}))}},335:function(t,e,n){"use strict";var i,r=n(0),a=n(23).f,s=n(13),o=n(101),u=n(21),l=n(102),c=n(22),h="".endsWith,f=Math.min,p=l("endsWith");r({target:"String",proto:!0,forced:!!(c||p||(i=a(String.prototype,"endsWith"),!i||i.writable))&&!p},{endsWith:function(t){var e=String(u(this));o(t);var n=arguments.length>1?arguments[1]:void 0,i=s(e.length),r=void 0===n?i:f(s(n),i),a=String(t);return h?h.call(e,a,r):e.slice(r-a.length,r)===a}})},336:function(t,e,n){"use strict";var i=n(308);n.n(i).a},337:function(t,e,n){"use strict";var i=n(309);n.n(i).a},338:function(t,e,n){"use strict";var i=n(310);n.n(i).a},339:function(t,e,n){"use strict";var i=n(311);n.n(i).a},340:function(t,e,n){"use strict";var i=n(312);n.n(i).a},341:function(t,e,n){"use strict";var i=n(313);n.n(i).a},342:function(t,e,n){"use strict";var i=n(314);n.n(i).a},343:function(t,e,n){var i=n(31),r=n(14),a=n(27);t.exports=function(t){return"string"==typeof t||!r(t)&&a(t)&&"[object String]"==i(t)}},344:function(t,e,n){"use strict";var i=n(315);n.n(i).a},345:function(t,e,n){"use strict";var i=n(316);n.n(i).a},346:function(t,e,n){"use strict";var i=n(317);n.n(i).a},347:function(t,e,n){"use strict";var i=n(0),r=n(30).find,a=n(98),s=n(19),o=!0,u=s("find");"find"in[]&&Array(1).find((function(){o=!1})),i({target:"Array",proto:!0,forced:o||!u},{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),a("find")},348:function(t,e,n){"use strict";var i=n(318);n.n(i).a},349:function(t,e,n){"use strict";var i=n(319);n.n(i).a},370:function(t,e,n){"use strict";n.r(e);n(163),n(96),n(330);var i=n(305),r={name:"NavLink",props:{item:{required:!0}},computed:{link:function(){return Object(i.b)(this.item.link)},exact:function(){var t=this;return this.$site.locales?Object.keys(this.$site.locales).some((function(e){return e===t.link})):"/"===this.link},isNonHttpURI:function(){return Object(i.g)(this.link)||Object(i.h)(this.link)},isBlankTarget:function(){return"_blank"===this.target},isInternal:function(){return!Object(i.f)(this.link)&&!this.isBlankTarget},target:function(){return this.isNonHttpURI?null:this.item.target?this.item.target:Object(i.f)(this.link)?"_blank":""},rel:function(){return this.isNonHttpURI?null:this.item.rel?this.item.rel:this.isBlankTarget?"noopener noreferrer":""}},methods:{focusoutAction:function(){this.$emit("focusout")}}},a=n(18),s=Object(a.a)(r,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.isInternal?n("RouterLink",{staticClass:"nav-link",attrs:{to:t.link,exact:t.exact},nativeOn:{focusout:function(e){return t.focusoutAction(e)}}},[t._v("\n "+t._s(t.item.text)+"\n")]):n("a",{staticClass:"nav-link external",attrs:{href:t.link,target:t.target,rel:t.rel},on:{focusout:t.focusoutAction}},[t._v("\n "+t._s(t.item.text)+"\n "),t.isBlankTarget?n("OutboundLink"):t._e()],1)}),[],!1,null,null,null).exports,o={name:"Home",components:{NavLink:s},computed:{data:function(){return this.$page.frontmatter},actionLink:function(){return{link:this.data.actionLink,text:this.data.actionText}}}},u=(n(333),Object(a.a)(o,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("main",{staticClass:"home",attrs:{"aria-labelledby":"main-title"}},[n("header",{staticClass:"hero"},[t.data.heroImage?n("img",{attrs:{src:t.$withBase(t.data.heroImage),alt:t.data.heroAlt||"hero"}}):t._e(),t._v(" "),null!==t.data.heroText?n("h1",{attrs:{id:"main-title"}},[t._v("\n "+t._s(t.data.heroText||t.$title||"Hello")+"\n ")]):t._e(),t._v(" "),null!==t.data.tagline?n("p",{staticClass:"description"},[t._v("\n "+t._s(t.data.tagline||t.$description||"Welcome to your VuePress site")+"\n ")]):t._e(),t._v(" "),t.data.actionText&&t.data.actionLink?n("p",{staticClass:"action"},[n("NavLink",{staticClass:"action-button",attrs:{item:t.actionLink}})],1):t._e()]),t._v(" "),t.data.features&&t.data.features.length?n("div",{staticClass:"features"},t._l(t.data.features,(function(e,i){return n("div",{key:i,staticClass:"feature"},[n("h2",[t._v(t._s(e.title))]),t._v(" "),n("p",[t._v(t._s(e.details))])])})),0):t._e(),t._v(" "),n("Content",{staticClass:"theme-default-content custom"}),t._v(" "),t.data.footer?n("div",{staticClass:"footer"},[t._v("\n "+t._s(t.data.footer)+"\n ")]):t._e()],1)}),[],!1,null,null,null).exports),l=(n(26),n(171),n(164),n(43),n(173),n(306),n(325),n(169),n(68),n(326),n(97),n(335),n(69),n(324),n(175)),c=n.n(l),h=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=c()(e,"title","");return c()(e,"frontmatter.tags")&&(i+=" ".concat(e.frontmatter.tags.join(" "))),n&&(i+=" ".concat(n)),f(t,i)},f=function(t,e){var n=function(t){return t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")},i=new RegExp("[^\0-]"),r=t.split(/\s+/g).map((function(t){return t.trim()})).filter((function(t){return!!t}));if(i.test(t))return r.some((function(t){return e.toLowerCase().indexOf(t)>-1}));var a=t.endsWith(" ");return new RegExp(r.map((function(t,e){return r.length!==e+1||a?"(?=.*\\b".concat(n(t),"\\b)"):"(?=.*\\b".concat(n(t),")")})).join("")+".+","gi").test(e)},p={name:"SearchBox",data:function(){return{query:"",focused:!1,focusIndex:0,placeholder:void 0}},computed:{showSuggestions:function(){return this.focused&&this.suggestions&&this.suggestions.length},suggestions:function(){var t=this.query.trim().toLowerCase();if(t){for(var e=this.$site.pages,n=this.$site.themeConfig.searchMaxSuggestions||5,i=this.$localePath,r=[],a=0;a=n);a++){var s=e[a];if(this.getPageLocalePath(s)===i&&this.isSearchable(s))if(h(t,s))r.push(s);else if(s.headers)for(var o=0;o=n);o++){var u=s.headers[o];u.title&&h(t,s,u.title)&&r.push(Object.assign({},s,{path:s.path+"#"+u.slug,header:u}))}}return r}},alignRight:function(){return(this.$site.themeConfig.nav||[]).length+(this.$site.repo?1:0)<=2}},mounted:function(){this.placeholder=this.$site.themeConfig.searchPlaceholder||"",document.addEventListener("keydown",this.onHotkey)},beforeDestroy:function(){document.removeEventListener("keydown",this.onHotkey)},methods:{getPageLocalePath:function(t){for(var e in this.$site.locales||{})if("/"!==e&&0===t.path.indexOf(e))return e;return"/"},isSearchable:function(t){var e=null;return null===e||(e=Array.isArray(e)?e:new Array(e)).filter((function(e){return t.path.match(e)})).length>0},onHotkey:function(t){t.srcElement===document.body&&["s","/"].includes(t.key)&&(this.$refs.input.focus(),t.preventDefault())},onUp:function(){this.showSuggestions&&(this.focusIndex>0?this.focusIndex--:this.focusIndex=this.suggestions.length-1)},onDown:function(){this.showSuggestions&&(this.focusIndex "+t._s(e.header.title))]):t._e()])])})),0):t._e()])}),[],!1,null,null,null).exports),g=(n(337),Object(a.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"sidebar-button",on:{click:function(e){return t.$emit("toggle-sidebar")}}},[n("svg",{staticClass:"icon",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",viewBox:"0 0 448 512"}},[n("path",{attrs:{fill:"currentColor",d:"M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"}})])])}),[],!1,null,null,null).exports),v=(n(174),n(41)),m=n(329),b=n(176),k=n.n(b),_={name:"DropdownLink",components:{NavLink:s,DropdownTransition:m.a},props:{item:{required:!0}},data:function(){return{open:!1}},computed:{dropdownAriaLabel:function(){return this.item.ariaLabel||this.item.text}},watch:{$route:function(){this.open=!1}},methods:{setOpen:function(t){this.open=t},isLastItemOfArray:function(t,e){return k()(e)===t}}},x=(n(339),{name:"NavLinks",components:{NavLink:s,DropdownLink:Object(a.a)(_,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"dropdown-wrapper",class:{open:t.open}},[n("button",{staticClass:"dropdown-title",attrs:{type:"button","aria-label":t.dropdownAriaLabel},on:{click:function(e){return t.setOpen(!t.open)}}},[n("span",{staticClass:"title"},[t._v(t._s(t.item.text))]),t._v(" "),n("span",{staticClass:"arrow",class:t.open?"down":"right"})]),t._v(" "),n("DropdownTransition",[n("ul",{directives:[{name:"show",rawName:"v-show",value:t.open,expression:"open"}],staticClass:"nav-dropdown"},t._l(t.item.items,(function(e,i){return n("li",{key:e.link||i,staticClass:"dropdown-item"},["links"===e.type?n("h4",[t._v("\n "+t._s(e.text)+"\n ")]):t._e(),t._v(" "),"links"===e.type?n("ul",{staticClass:"dropdown-subitem-wrapper"},t._l(e.items,(function(i){return n("li",{key:i.link,staticClass:"dropdown-subitem"},[n("NavLink",{attrs:{item:i},on:{focusout:function(n){t.isLastItemOfArray(i,e.items)&&t.isLastItemOfArray(e,t.item.items)&&t.setOpen(!1)}}})],1)})),0):n("NavLink",{attrs:{item:e},on:{focusout:function(n){t.isLastItemOfArray(e,t.item.items)&&t.setOpen(!1)}}})],1)})),0)])],1)}),[],!1,null,null,null).exports},computed:{userNav:function(){return this.$themeLocaleConfig.nav||this.$site.themeConfig.nav||[]},nav:function(){var t=this,e=this.$site.locales;if(e&&Object.keys(e).length>1){var n=this.$page.path,i=this.$router.options.routes,r=this.$site.themeConfig.locales||{},a={text:this.$themeLocaleConfig.selectText||"Languages",ariaLabel:this.$themeLocaleConfig.ariaLabel||"Select language",items:Object.keys(e).map((function(a){var s,o=e[a],u=r[a]&&r[a].label||o.lang;return o.lang===t.$lang?s=n:(s=n.replace(t.$localeConfig.path,a),i.some((function(t){return t.path===s}))||(s=a)),{text:u,link:s}}))};return[].concat(Object(v.a)(this.userNav),[a])}return this.userNav},userLinks:function(){return(this.nav||[]).map((function(t){return Object.assign(Object(i.j)(t),{items:(t.items||[]).map(i.j)})}))},repoLink:function(){var t=this.$site.themeConfig.repo;return t?/^https?:/.test(t)?t:"https://github.com/".concat(t):null},repoLabel:function(){if(this.repoLink){if(this.$site.themeConfig.repoLabel)return this.$site.themeConfig.repoLabel;for(var t=this.repoLink.match(/^https?:\/\/[^/]+/)[0],e=["GitHub","GitLab","Bitbucket"],n=0;nMath.abs(n)&&Math.abs(e)>40&&(e>0&&this.touchStart.x<=80?this.toggleSidebar(!0):this.toggleSidebar(!1))}}}),B=Object(a.a)(W,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"theme-container",class:t.pageClasses,on:{touchstart:t.onTouchStart,touchend:t.onTouchEnd}},[t.shouldShowNavbar?n("Navbar",{on:{"toggle-sidebar":t.toggleSidebar}}):t._e(),t._v(" "),n("div",{staticClass:"sidebar-mask",on:{click:function(e){return t.toggleSidebar(!1)}}}),t._v(" "),n("Sidebar",{attrs:{items:t.sidebarItems},on:{"toggle-sidebar":t.toggleSidebar},scopedSlots:t._u([{key:"top",fn:function(){return[t._t("sidebar-top")]},proxy:!0},{key:"bottom",fn:function(){return[t._t("sidebar-bottom")]},proxy:!0}],null,!0)}),t._v(" "),t.$page.frontmatter.home?n("Home"):n("Page",{attrs:{"sidebar-items":t.sidebarItems},scopedSlots:t._u([{key:"top",fn:function(){return[t._t("page-top")]},proxy:!0},{key:"bottom",fn:function(){return[t._t("page-bottom")]},proxy:!0}],null,!0)})],1)}),[],!1,null,null,null);e.default=B.exports}}]); \ No newline at end of file diff --git a/assets/js/20.3d708930.js b/assets/js/20.3d708930.js new file mode 100644 index 0000000..e26140c --- /dev/null +++ b/assets/js/20.3d708930.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{381:function(s,t,a){"use strict";a.r(t);var n=a(18),e=Object(n.a)({},(function(){var s=this,t=s.$createElement,a=s._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"国际化"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#国际化"}},[s._v("#")]),s._v(" 国际化")]),s._v(" "),a("p",[s._v("vue-antd-admin 采用 "),a("a",{attrs:{href:"https://kazupon.github.io/vue-i18n/",target:"_blank",rel:"noopener noreferrer"}},[s._v("vue-i18n"),a("OutboundLink")],1),s._v(" 插件来实现国际化,该项目已经内置并且加载好了基础配置。可以直接上手使用。")]),s._v(" "),a("blockquote",[a("p",[s._v("如果你还没有看快速入门,请先移步查看: "),a("RouterLink",{attrs:{to:"/develop/page.html#i18n国际化配置"}},[s._v("页面 -> i18n国际化配置")])],1)]),s._v(" "),a("h2",{attrs:{id:"菜单和路由"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#菜单和路由"}},[s._v("#")]),s._v(" 菜单和路由")]),s._v(" "),a("h3",{attrs:{id:"默认情况"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#默认情况"}},[s._v("#")]),s._v(" 默认情况")]),s._v(" "),a("p",[s._v("如果你没有对菜单进行国际化配置,admin 默认会从路由数据中提取数据作为国际化配置。route.name 作为中文语言,route.path 作为英文语言。"),a("br"),s._v("\n国际化提取函数定义在 "),a("code",[s._v("@/utils/i18n.js")]),s._v(" 文件中,会在路由加载时调用,如下:")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("/**\n * 从路由提取国际化数据\n * @param i18n\n * @param routes\n */")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("mergeI18nFromRoutes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("i18n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" routes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("formatFullPath")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("routes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("CN")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("generateI18n")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("new")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("Object")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" routes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'name'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("US")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("generateI18n")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("new")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("Object")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" routes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'path'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n i18n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("mergeLocaleMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'CN'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("CN")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n i18n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("mergeLocaleMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'US'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("US")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" messages "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" routesI18n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("messages\n Object"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("keys")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("messages"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("forEach")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("lang")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n i18n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("mergeLocaleMessage")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("lang"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" messages"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("lang"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br")])]),a("h3",{attrs:{id:"自定义"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#自定义"}},[s._v("#")]),s._v(" 自定义")]),s._v(" "),a("p",[s._v("如果你想自定义菜单国际化数据,可在 "),a("code",[s._v("@/router/i18n.js")]),s._v(" 文件中配置。我们以路由的 path 作为 key(嵌套path 的写法也会被解析),name 作为 国际化语言的值。"),a("br"),s._v("\n假设你有一个路由的配置如下:")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'parent'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n children"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'self'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n\nor \n\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'other'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n children"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/parent/self'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 在国际化配置中 key 会解析为 parent.self")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br")])]),a("p",[s._v("那么你需要在 "),a("code",[s._v("@/router/i18n.js")]),s._v(" 中这样配置:")]),s._v(" "),a("div",{staticClass:"language-jsx line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jsx"}},[a("code",[s._v(" messages"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("CN")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n parent"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'父級菜單'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n self"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'菜單名'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("US")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n parent"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'parent menu'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n self"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'menu name'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("HK")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n parent"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'父級菜單'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n self"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'菜單名'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br")])]),a("h2",{attrs:{id:"添加语言"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#添加语言"}},[s._v("#")]),s._v(" 添加语言")]),s._v(" "),a("p",[s._v("首先在 "),a("code",[s._v("@/layouts/header/AdminHeader.vue")]),s._v(" ,新增一门语言 (多个同理)。")]),s._v(" "),a("div",{staticClass:"language-vue line-numbers-mode"},[a("div",{staticClass:"highlight-lines"},[a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br")]),a("pre",{pre:!0,attrs:{class:"language-vue"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("template")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("\n ...\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("script")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("export")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("default")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("data")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n langList"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("key"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'CN'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'简体中文'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" alias"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'简体'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("key"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'HK'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'繁體中文'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" alias"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'繁體'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("key"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'US'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'English'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" alias"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'English'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 新增一个语言选项, key是i18n的索引,name是菜单显示名称")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("key"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'JP'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'Japanese'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" alias"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'Japanese'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n searchActive"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n")])]),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br")])]),a("blockquote",[a("p",[s._v("TIP: 后续开发建议把这里改成动态配置的方式!")])]),s._v(" "),a("p",[s._v("然后开始往 "),a("code",[s._v("@/router/i18n.js")]),s._v(" 和 "),a("code",[s._v("@/pages/你的页面/i18n.js")]),s._v(" 里面分别添加上语言的翻译。")]),s._v(" "),a("div",{staticClass:"language-vue line-numbers-mode"},[a("div",{staticClass:"highlight-lines"},[a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("br"),a("br"),a("br")]),a("pre",{pre:!0,attrs:{class:"language-vue"}},[a("code",[s._v("module.exports = {\n messages: {\n CN: {\n home: {name: '首页'},\n },\n US: {\n home: {name: 'home'},\n },\n HK: {\n home: {name: '首頁'},\n },\n JP: {\n home: {name: '最初のページ'},\n },\n }\n}\n")])]),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br")])]),a("blockquote",[a("p",[s._v("Notice: 更多用法请移步到 "),a("a",{attrs:{href:"https://kazupon.github.io/vue-i18n/",target:"_blank",rel:"noopener noreferrer"}},[s._v("vue-i18n"),a("OutboundLink")],1),s._v(" 。")])])])}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/21.c054b79e.js b/assets/js/21.c054b79e.js new file mode 100644 index 0000000..244cf66 --- /dev/null +++ b/assets/js/21.c054b79e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{385:function(s,t,a){"use strict";a.r(t);var n=a(18),e=Object(n.a)({},(function(){var s=this,t=s.$createElement,a=s._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"拦截器配置"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#拦截器配置"}},[s._v("#")]),s._v(" 拦截器配置")]),s._v(" "),a("p",[s._v("Vue Antd Admin 基于 aixos 封装了 http 通信功能,我们可以为 http 请求响应配置一些拦截器。拦截器统一配置在 /utils/axios-interceptors.js 文件中。")]),s._v(" "),a("h2",{attrs:{id:"请求拦截器"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#请求拦截器"}},[s._v("#")]),s._v(" 请求拦截器")]),s._v(" "),a("p",[s._v("你可以为每个请求拦截器配置 "),a("code",[s._v("onFulfilled")]),s._v(" 或 "),a("code",[s._v("onRejected")]),s._v(" 两个钩子函数。")]),s._v(" "),a("h3",{attrs:{id:"onfulfilled"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#onfulfilled"}},[s._v("#")]),s._v(" onFulfilled")]),s._v(" "),a("p",[s._v("我们会为 onFulfilled 钩子函数注入 config 和 options 两个参数:")]),s._v(" "),a("ul",[a("li",[a("code",[s._v("config: AxiosRequestConfig")]),s._v(": axios 请求配置,详情参考 "),a("a",{attrs:{href:"http://www.axios-js.com/zh-cn/docs/#%E8%AF%B7%E6%B1%82%E9%85%8D%E7%BD%AE",target:"_blank",rel:"noopener noreferrer"}},[s._v("axios 请求配置"),a("OutboundLink")],1)]),s._v(" "),a("li",[a("code",[s._v("options: Object")]),s._v(": 应用配置,包含: {router, i18n, store, message},可根据需要扩展。")])]),s._v(" "),a("h3",{attrs:{id:"onrejected"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#onrejected"}},[s._v("#")]),s._v(" onRejected")]),s._v(" "),a("p",[s._v("我们会为 onFulfilled 钩子函数注入 error 和 options 两个参数:")]),s._v(" "),a("ul",[a("li",[a("code",[s._v("error: Error")]),s._v(": axios 请求错误对象")]),s._v(" "),a("li",[a("code",[s._v("options: Object")]),s._v(": 应用配置,包含: {router, i18n, store, message},可根据需要扩展。")])]),s._v(" "),a("p",[s._v("如下,为一个完整的请求拦截器配置:")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" tokenCheck "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 发送请求之前做些什么")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("onFulfilled")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("config"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" options")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" options\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("url"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" xsrfCookieName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" config\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("url"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("indexOf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'login'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("===")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&&")]),s._v(" xsrfCookieName "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&&")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("!")]),s._v("Cookie"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("xsrfCookieName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("warning")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'认证 token 已过期,请重新登录'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" config\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 请求出错时做点什么")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("onRejected")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("error"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" options")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" options\n message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("error"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" Promise"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("reject")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("error"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br")])]),a("h2",{attrs:{id:"响应拦截器"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#响应拦截器"}},[s._v("#")]),s._v(" 响应拦截器")]),s._v(" "),a("p",[s._v("响应拦截器也同样可以配置 "),a("code",[s._v("onFulfilled")]),s._v(" 或 "),a("code",[s._v("onRejected")]),s._v(" 两个钩子函数。")]),s._v(" "),a("h3",{attrs:{id:"onfulfilled-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#onfulfilled-2"}},[s._v("#")]),s._v(" onFulfilled")]),s._v(" "),a("p",[s._v("我们会为 onFulfilled 钩子函数注入 response 和 options 两个参数:")]),s._v(" "),a("ul",[a("li",[a("code",[s._v("response: AxiosResponse")]),s._v(": axios 响应对象,详情参考 "),a("a",{attrs:{href:"http://www.axios-js.com/zh-cn/docs/#%E5%93%8D%E5%BA%94%E7%BB%93%E6%9E%84",target:"_blank",rel:"noopener noreferrer"}},[s._v("axios 响应对象"),a("OutboundLink")],1)]),s._v(" "),a("li",[a("code",[s._v("options: Object")]),s._v(": 应用配置,包含: {router, i18n, store, message},可根据需要扩展。")])]),s._v(" "),a("h3",{attrs:{id:"onrejected-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#onrejected-2"}},[s._v("#")]),s._v(" onRejected")]),s._v(" "),a("p",[s._v("我们会为 onRejected 钩子函数注入 error 和 options 两个参数:")]),s._v(" "),a("ul",[a("li",[a("code",[s._v("error: Error")]),s._v(": axios 请求错误对象")]),s._v(" "),a("li",[a("code",[s._v("options: Object")]),s._v(": 应用配置,包含: {router, i18n, store, message},可根据需要扩展。")])]),s._v(" "),a("p",[s._v("如下,为一个完整的响应拦截器配置:")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" resp401 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 响应数据之前做点什么")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("onFulfilled")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" options")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" options\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("status "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("===")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("401")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'无此接口权限'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" response\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 响应出错时做点什么")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("onRejected")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("error"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" options")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" options\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("status "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("===")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("401")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'无此接口权限'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" Promise"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("reject")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("error"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br")])]),a("h2",{attrs:{id:"导出拦截器"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#导出拦截器"}},[s._v("#")]),s._v(" 导出拦截器")]),s._v(" "),a("p",[s._v("定义好拦截器后,只需在 axios-interceptors.js 文件中导出即可。分为两类,"),a("code",[s._v("请求拦截器")]),s._v("和"),a("code",[s._v("响应拦截器")]),s._v("。如下:")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("export")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("default")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n request"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("tokenCheck"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 请求拦截")]),s._v("\n response"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("resp401"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 响应拦截")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])]),a("details",{staticClass:"custom-block details"},[a("summary",[s._v("点击查看完整的拦截器配置示例")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),s._v(" Cookie "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("from")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'js-cookie'")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 401拦截")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" resp401 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("onFulfilled")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" options")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" options\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("status "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("===")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("401")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'无此接口权限'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" response\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("onRejected")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("error"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" options")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" options\n message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("error"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" Promise"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("reject")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("error"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" resp403 "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("onFulfilled")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" options")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" options\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("status "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("===")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("403")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[s._v("`")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("请求被拒绝")]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[s._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" response\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" reqCommon "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("onFulfilled")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("config"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" options")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" options\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("url"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" xsrfCookieName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" config\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("url"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("indexOf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'login'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("===")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&&")]),s._v(" xsrfCookieName "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&&")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("!")]),s._v("Cookie"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("xsrfCookieName"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("warning")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'认证 token 已过期,请重新登录'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" config\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("onRejected")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("error"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" options")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" options\n message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("error"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" Promise"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("reject")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("error"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("export")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("default")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n request"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("reqCommon"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 请求拦截")]),s._v("\n response"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("resp401"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" resp403"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 响应拦截")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br"),a("span",{staticClass:"line-number"},[s._v("23")]),a("br"),a("span",{staticClass:"line-number"},[s._v("24")]),a("br"),a("span",{staticClass:"line-number"},[s._v("25")]),a("br"),a("span",{staticClass:"line-number"},[s._v("26")]),a("br"),a("span",{staticClass:"line-number"},[s._v("27")]),a("br"),a("span",{staticClass:"line-number"},[s._v("28")]),a("br"),a("span",{staticClass:"line-number"},[s._v("29")]),a("br"),a("span",{staticClass:"line-number"},[s._v("30")]),a("br"),a("span",{staticClass:"line-number"},[s._v("31")]),a("br"),a("span",{staticClass:"line-number"},[s._v("32")]),a("br"),a("span",{staticClass:"line-number"},[s._v("33")]),a("br"),a("span",{staticClass:"line-number"},[s._v("34")]),a("br"),a("span",{staticClass:"line-number"},[s._v("35")]),a("br"),a("span",{staticClass:"line-number"},[s._v("36")]),a("br"),a("span",{staticClass:"line-number"},[s._v("37")]),a("br"),a("span",{staticClass:"line-number"},[s._v("38")]),a("br"),a("span",{staticClass:"line-number"},[s._v("39")]),a("br"),a("span",{staticClass:"line-number"},[s._v("40")]),a("br"),a("span",{staticClass:"line-number"},[s._v("41")]),a("br"),a("span",{staticClass:"line-number"},[s._v("42")]),a("br"),a("span",{staticClass:"line-number"},[s._v("43")]),a("br"),a("span",{staticClass:"line-number"},[s._v("44")]),a("br"),a("span",{staticClass:"line-number"},[s._v("45")]),a("br"),a("span",{staticClass:"line-number"},[s._v("46")]),a("br"),a("span",{staticClass:"line-number"},[s._v("47")]),a("br")])])])])}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/22.5db4e883.js b/assets/js/22.5db4e883.js new file mode 100644 index 0000000..c35ff66 --- /dev/null +++ b/assets/js/22.5db4e883.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{383:function(t,s,a){"use strict";a.r(s);var n=a(18),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"登录认证"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#登录认证"}},[t._v("#")]),t._v(" 登录认证")]),t._v(" "),a("p",[t._v("Vue Antd Admin 使用 js-cookie.js 管理用户的 token,结合 axios 配置,可以为每个请求头加上 token 信息。")]),t._v(" "),a("h2",{attrs:{id:"token名称"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#token名称"}},[t._v("#")]),t._v(" token名称")]),t._v(" "),a("p",[t._v("后端系统通常会从请求 header 中获取用户的 token,因此我们需要配置好 token 名称,好让后端能正确的识别到用户 token。\nVue Antd Admin 默认token 名称为 "),a("code",[t._v("Authorization")]),t._v(",你可以在 /utils/request.js 中修改它。")]),t._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("div",{staticClass:"highlight-lines"},[a("br"),a("br"),a("br"),a("br"),a("div",{staticClass:"highlighted"},[t._v(" ")]),a("br"),a("br")]),a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" axios "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'axios'")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Cookie "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'js-cookie'")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 跨域认证信息 header 名")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" xsrfHeaderName "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Authorization'")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v("\n")])]),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br"),a("span",{staticClass:"line-number"},[t._v("3")]),a("br"),a("span",{staticClass:"line-number"},[t._v("4")]),a("br"),a("span",{staticClass:"line-number"},[t._v("5")]),a("br"),a("span",{staticClass:"line-number"},[t._v("6")]),a("br")])]),a("h2",{attrs:{id:"token-设置"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#token-设置"}},[t._v("#")]),t._v(" token 设置")]),t._v(" "),a("p",[t._v("调用登录接口后拿到用户的 token 和 token 过期时间(如无过期时间,可忽略),并使用 /utils/request.js #setAuthorization 方法保存token。")]),t._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("div",{staticClass:"highlight-lines"},[a("br"),a("br"),a("br"),a("br"),a("div",{staticClass:"highlighted"},[t._v(" ")]),a("br"),a("br")]),a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("setAuthorization"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@/utils/request'")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("login")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("name"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" password"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("then")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("res")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("token"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" expireAt"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" res"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setAuthorization")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("token"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" expireAt"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Date")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("expireAt"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br"),a("span",{staticClass:"line-number"},[t._v("3")]),a("br"),a("span",{staticClass:"line-number"},[t._v("4")]),a("br"),a("span",{staticClass:"line-number"},[t._v("5")]),a("br"),a("span",{staticClass:"line-number"},[t._v("6")]),a("br")])]),a("h2",{attrs:{id:"token-校验"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#token-校验"}},[t._v("#")]),t._v(" token 校验")]),t._v(" "),a("p",[t._v("Vue Antd Admin 默认添加了登录导航守卫,如检查到本地cookie 中不包含 token 信息,则会拦截跳转至登录页。你可以在 /router/index.js 中配置\n不需要登录拦截的路由")]),t._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 不需要登录拦截的路由配置")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" loginIgnore "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n names"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'404'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'403'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//根据路由名称匹配")]),t._v("\n paths"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/login'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//根据路由fullPath匹配")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * 判断路由是否包含在该配置中\n * @param route vue-router 的 route 对象\n * @returns {boolean}\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("includes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("route")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("names"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("includes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("route"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("name"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("paths"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("includes")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("route"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("path"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br"),a("span",{staticClass:"line-number"},[t._v("3")]),a("br"),a("span",{staticClass:"line-number"},[t._v("4")]),a("br"),a("span",{staticClass:"line-number"},[t._v("5")]),a("br"),a("span",{staticClass:"line-number"},[t._v("6")]),a("br"),a("span",{staticClass:"line-number"},[t._v("7")]),a("br"),a("span",{staticClass:"line-number"},[t._v("8")]),a("br"),a("span",{staticClass:"line-number"},[t._v("9")]),a("br"),a("span",{staticClass:"line-number"},[t._v("10")]),a("br"),a("span",{staticClass:"line-number"},[t._v("11")]),a("br"),a("span",{staticClass:"line-number"},[t._v("12")]),a("br"),a("span",{staticClass:"line-number"},[t._v("13")]),a("br")])]),a("p",[t._v("或者在 /router/guards.js 中移出登录守卫")]),t._v(" "),a("div",{staticClass:"language-diff line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-diff"}},[a("code",[t._v("...\nexport default {\n"),a("span",{pre:!0,attrs:{class:"token deleted-sign deleted"}},[a("span",{pre:!0,attrs:{class:"token prefix deleted"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token line"}},[t._v(" beforeEach: [loginGuard, authorityGuard, redirectGuard],\n")])]),a("span",{pre:!0,attrs:{class:"token inserted-sign inserted"}},[a("span",{pre:!0,attrs:{class:"token prefix inserted"}},[t._v("+")]),a("span",{pre:!0,attrs:{class:"token line"}},[t._v(" beforeEach: [authorityGuard, redirectGuard],\n")])]),a("span",{pre:!0,attrs:{class:"token unchanged"}},[a("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[t._v(" ")]),a("span",{pre:!0,attrs:{class:"token line"}},[t._v(" afterEach: []\n")])]),t._v("}\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br"),a("span",{staticClass:"line-number"},[t._v("3")]),a("br"),a("span",{staticClass:"line-number"},[t._v("4")]),a("br"),a("span",{staticClass:"line-number"},[t._v("5")]),a("br"),a("span",{staticClass:"line-number"},[t._v("6")]),a("br")])]),a("h2",{attrs:{id:"api"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#api"}},[t._v("#")]),t._v(" Api")]),t._v(" "),a("h3",{attrs:{id:"setauthorization-auth-authtype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#setauthorization-auth-authtype"}},[t._v("#")]),t._v(" setAuthorization(auth, authType)")]),t._v(" "),a("p",[t._v("来源:/utils/request.js"),a("br"),t._v("\n该方法用于保存用户 token,接收两个参数:")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("auth")]),a("br"),t._v("\n认证信息,包含 token、expireAt 等认证数据。")]),t._v(" "),a("li",[a("strong",[t._v("authType")]),a("br"),t._v("\n认证类型,默认为 "),a("code",[t._v("AUTH_TYPE.BEARER")]),t._v("(AUTH_TYPE.BEARER 默认会给token 加上 Bearer 识别前缀),可根据自己的认证类型自行扩展。")])]),t._v(" "),a("h3",{attrs:{id:"checkauthorization-authtype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#checkauthorization-authtype"}},[t._v("#")]),t._v(" checkAuthorization(authType)")]),t._v(" "),a("p",[t._v("该方法用于校验用户 token 是否过期,接收一个参数:")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("authType")]),a("br"),t._v("\n认证类型,默认为 "),a("code",[t._v("AUTH_TYPE.BEARER")]),t._v("。")])]),t._v(" "),a("h3",{attrs:{id:"removeauthorization-authtype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removeauthorization-authtype"}},[t._v("#")]),t._v(" removeAuthorization(authType)")]),t._v(" "),a("p",[t._v("该方法用于移出用户本地存储的 token,接收一个参数:")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("authType")]),a("br"),t._v("\n认证类型,默认为 "),a("code",[t._v("AUTH_TYPE.BEARER")]),t._v("。")])]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("以上 Api 均可在 /utils/request.js 文件中找到。")])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/23.9725697e.js b/assets/js/23.9725697e.js new file mode 100644 index 0000000..ead4b6f --- /dev/null +++ b/assets/js/23.9725697e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{384:function(t,a,s){"use strict";s.r(a);var r=s(18),e=Object(r.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"_108个小技巧"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#_108个小技巧"}},[t._v("#")]),t._v(" 108个小技巧")]),t._v(" "),s("h2",{attrs:{id:"自定义菜单icon"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#自定义菜单icon"}},[t._v("#")]),t._v(" 自定义菜单icon")]),t._v(" "),s("h2",{attrs:{id:"隐藏页面标题"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#隐藏页面标题"}},[t._v("#")]),t._v(" 隐藏页面标题")]),t._v(" "),s("h2",{attrs:{id:"关闭页签api"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#关闭页签api"}},[t._v("#")]),t._v(" 关闭页签API")]),t._v(" "),s("h2",{attrs:{id:"权限校验pi"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#权限校验pi"}},[t._v("#")]),t._v(" 权限校验PI")])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/24.ed3d58d4.js b/assets/js/24.ed3d58d4.js new file mode 100644 index 0000000..5350621 --- /dev/null +++ b/assets/js/24.ed3d58d4.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{389:function(t,s,a){"use strict";a.r(s);var e=a(18),r=Object(e.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"更换主题"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#更换主题"}},[this._v("#")]),this._v(" 更换主题")]),this._v(" "),s("h3",{attrs:{id:"作者还没来得及编辑该页面,如果你感兴趣,可以点击下方链接,帮助作者完善此页"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#作者还没来得及编辑该页面,如果你感兴趣,可以点击下方链接,帮助作者完善此页"}},[this._v("#")]),this._v(" 作者还没来得及编辑该页面,如果你感兴趣,可以点击下方链接,帮助作者完善此页")])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/25.49453e27.js b/assets/js/25.49453e27.js new file mode 100644 index 0000000..decb0db --- /dev/null +++ b/assets/js/25.49453e27.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{386:function(t,s,e){"use strict";e.r(s);var n=e(18),r=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"开发"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#开发"}},[this._v("#")]),this._v(" 开发")])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/26.5d9fccfd.js b/assets/js/26.5d9fccfd.js new file mode 100644 index 0000000..3c7f0f7 --- /dev/null +++ b/assets/js/26.5d9fccfd.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{387:function(t,s,a){"use strict";a.r(s);var e=a(18),r=Object(e.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"mock"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#mock"}},[this._v("#")]),this._v(" Mock")]),this._v(" "),s("h3",{attrs:{id:"作者还没来得及编辑该页面,如果你感兴趣,可以点击下方链接,帮助作者完善此页"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#作者还没来得及编辑该页面,如果你感兴趣,可以点击下方链接,帮助作者完善此页"}},[this._v("#")]),this._v(" 作者还没来得及编辑该页面,如果你感兴趣,可以点击下方链接,帮助作者完善此页")])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/27.13660c40.js b/assets/js/27.13660c40.js new file mode 100644 index 0000000..4775b76 --- /dev/null +++ b/assets/js/27.13660c40.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{394:function(s,t,a){"use strict";a.r(t);var n=a(18),e=Object(n.a)({},(function(){var s=this,t=s.$createElement,a=s._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"服务端交互"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#服务端交互"}},[s._v("#")]),s._v(" 服务端交互")]),s._v(" "),a("p",[s._v("数据服务是一个应用的灵魂,它驱动着应用的各个功能模块的正常运转。Vue Antd Admin 在 service 模块封装了服务端交互,通过 API 的形式可以和任何技术栈的服务端应用一起工作。")]),s._v(" "),a("h2",{attrs:{id:"服务交互流程"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#服务交互流程"}},[s._v("#")]),s._v(" 服务交互流程")]),s._v(" "),a("p",[s._v("在 Vue Antd Admin 中,服务端交互流程如下:")]),s._v(" "),a("ul",[a("li",[s._v("组件内调用 service 服务 API")]),s._v(" "),a("li",[s._v("service 服务 API 封装请求数据,通过 request.js 发送请求")]),s._v(" "),a("li",[s._v("组件获取 service 返回的数据,更新视图数据或触发其它行为")])]),s._v(" "),a("p",[s._v("我们以登录为例,Login.vue 组件内,用户输入账号密码,点击登录,调用 services/user/login api")]),s._v(" "),a("div",{staticClass:"language-vue line-numbers-mode"},[a("div",{staticClass:"highlight-lines"},[a("br"),a("br"),a("br"),a("br"),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br")]),a("pre",{pre:!0,attrs:{class:"language-vue"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("template")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("\n ...\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("script")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("login"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("from")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/services/user'")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("export")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("default")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'Login'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n methods"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("onSubmit")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("e")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("preventDefault")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("form"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("validateFields")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("err")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("!")]),s._v("err"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("logging "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" name "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("form"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("getFieldValue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'name'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" password "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("form"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("getFieldValue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'password'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("login")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("name"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" password"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("then")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("res")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("afterLogin")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("res"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n")])]),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br"),a("span",{staticClass:"line-number"},[s._v("23")]),a("br")])]),a("p",[a("code",[s._v("services/user/login")]),s._v(" 封装账户密码数据,通过 "),a("code",[s._v("request.js")]),s._v(" 发送登录服务请求")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("request"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("METHOD")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("from")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/utils/request'")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("/**\n * 登录服务\n * @param name 账户名\n * @param password 账户密码\n * @returns {Promise>}\n */")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("async")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("login")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("name"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" password")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("request")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("LOGIN")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("METHOD")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("POST")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" name"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n password"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" password\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br")])]),a("p",[s._v("Login.vue 获取登录服务返回的数据,进行后续操作")]),s._v(" "),a("div",{staticClass:"language-vue line-numbers-mode"},[a("div",{staticClass:"highlight-lines"},[a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("br"),a("br"),a("br"),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("br"),a("br"),a("br"),a("br"),a("br")]),a("pre",{pre:!0,attrs:{class:"language-vue"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("template")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("\n ...\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("script")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("login"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("from")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/services/user'")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("export")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("default")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'Login'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n methods"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("onSubmit")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("e")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("form"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("validateFields")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("err")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("!")]),s._v("err"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("login")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("name"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" password"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("then")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("res")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("afterLogin")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("res"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("afterLogin")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[s._v("res")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("res"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("code "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//登录成功")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("else")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//登录失败")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("error "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" loginRes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("message\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n")])]),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br"),a("span",{staticClass:"line-number"},[s._v("23")]),a("br"),a("span",{staticClass:"line-number"},[s._v("24")]),a("br"),a("span",{staticClass:"line-number"},[s._v("25")]),a("br"),a("span",{staticClass:"line-number"},[s._v("26")]),a("br"),a("span",{staticClass:"line-number"},[s._v("27")]),a("br")])]),a("h2",{attrs:{id:"服务模块结构"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#服务模块结构"}},[s._v("#")]),s._v(" 服务模块结构")]),s._v(" "),a("p",[s._v("服务模块结构如下:")]),s._v(" "),a("div",{staticClass:"language-bash line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("..")]),s._v(".\n├── src\n│ └── services "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 数据服务模块")]),s._v("\n│ ├── user.js "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 用户数据服务")]),s._v("\n│ ├── product.js "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 产品服务")]),s._v("\n│ "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("..")]),s._v(". \n│ ├── api.js "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# api 地址管理")]),s._v("\n│ └── index.js "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 服务模块导出")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("..")]),s._v(".\n│ └── utils "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 数据服务模块")]),s._v("\n│ ├── request.js "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 基于 axios 的 http 请求工具")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("..")]),s._v(".\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br")])]),a("p",[s._v("services 文件夹下, api.js 用于服务请求地址的统一管理,index.js 用于模块化导出服务,其它 *.js 文件对应各个服务模块。")]),s._v(" "),a("h2",{attrs:{id:"request-js"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#request-js"}},[s._v("#")]),s._v(" request.js")]),s._v(" "),a("p",[s._v("request.js 基于 axios 封装了一些常用的函数,如下:")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("export")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("METHOD")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//http method 常量")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("AUTH_TYPE")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//凭证认证类型 常量")]),s._v("\n request"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//http请求函数")]),s._v("\n setAuthorization"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//设置身份凭证函数")]),s._v("\n removeAuthorization"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//移除身份凭证函数")]),s._v("\n checkAuthorization "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//检查身份凭证是否过期函数")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br")])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[s._v("TIP")]),s._v(" "),a("p",[s._v("凭证认证类型默认为 "),a("a",{attrs:{href:"https://www.jianshu.com/p/8f7009456abc",target:"_blank",rel:"noopener noreferrer"}},[s._v("Bearer"),a("OutboundLink")],1),s._v(",你可以根据自己的需要实现其它类型的认证")])]),s._v(" "),a("h2",{attrs:{id:"base-url-配置"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#base-url-配置"}},[s._v("#")]),s._v(" Base url 配置")]),s._v(" "),a("p",[s._v("你可以在项目根目录下的环境变量文件(.env 和 .env.development)中配置你的 API 服务 base url 地址。")]),s._v(" "),a("p",[s._v("生产环境,.env 文件")]),s._v(" "),a("div",{staticClass:"language-properties line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-properties"}},[a("code",[a("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("VUE_APP_API_BASE_URL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("=")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[s._v("https://www.server.com")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("p",[s._v("开发环境,.env.development 文件:")]),s._v(" "),a("div",{staticClass:"language-properties line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-properties"}},[a("code",[a("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("VUE_APP_API_BASE_URL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("=")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[s._v("https://localhost:8000")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("h2",{attrs:{id:"跨域设置"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#跨域设置"}},[s._v("#")]),s._v(" 跨域设置")]),s._v(" "),a("p",[s._v("在开发环境中,通常我们的Vue应用和服务应用运行在不同的地址或端口上。我们可以通过简单的设置,代理前端请求,来避免跨域问题。如下:")]),s._v(" "),a("p",[s._v("首先,在 services/api.js 文件中设置 API_PROXY_PREFIX 常量,BASE_URL 像下面这样设置:")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("div",{staticClass:"highlight-lines"},[a("br"),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("br"),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("br"),a("br"),a("br"),a("br"),a("br"),a("br")]),a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//跨域代理前缀")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("API_PROXY_PREFIX")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/api'")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//base url")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("BASE_URL")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" process"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("env"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NODE_ENV")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("===")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'production'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("?")]),s._v(" process"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("env"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("VUE_APP_API_BASE_URL")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("API_PROXY_PREFIX")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//导出api服务地址")]),s._v("\nmodule"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("exports "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("LOGIN")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[s._v("`")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[s._v("${")]),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("BASE_URL")]),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[s._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("/login")]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[s._v("`")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("ROUTES")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[s._v("`")]),a("span",{pre:!0,attrs:{class:"token interpolation"}},[a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[s._v("${")]),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("BASE_URL")]),a("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[s._v("}")])]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("/routes")]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[s._v("`")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br")])]),a("p",[s._v("然后,在 vue.config.js 文件中配置代理:")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[s._v("model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("exports "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n devServer"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n proxy"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/api'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//此处要与 /services/api.js 中的 API_PROXY_PREFIX 值保持一致")]),s._v("\n target"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" process"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("env"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("VUE_APP_API_BASE_URL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n changeOrigin"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n pathRewrite"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'^/api'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("''")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br")])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[s._v("TIP")]),s._v(" "),a("p",[s._v("此代理配置仅适用于开发环境,生产环境的跨域代理请在自己的web服务器配置。")])])])}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/28.826bdb2a.js b/assets/js/28.826bdb2a.js new file mode 100644 index 0000000..08642bb --- /dev/null +++ b/assets/js/28.826bdb2a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{393:function(t,s,e){"use strict";e.r(s);var n=e(18),r=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"其它"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#其它"}},[this._v("#")]),this._v(" 其它")])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/29.fb0b9607.js b/assets/js/29.fb0b9607.js new file mode 100644 index 0000000..616ead4 --- /dev/null +++ b/assets/js/29.fb0b9607.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{395:function(t,a,s){"use strict";s.r(a);var r=s(18),e=Object(r.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"社区"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#社区"}},[t._v("#")]),t._v(" 社区")]),t._v(" "),s("h2",{attrs:{id:"交流学习"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#交流学习"}},[t._v("#")]),t._v(" 交流学习")]),t._v(" "),s("h3",{attrs:{id:"qq群:812277510、610090280(已满)"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#qq群:812277510、610090280(已满)"}},[t._v("#")]),t._v(" QQ群:812277510、610090280(已满)")])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/3.6d23cf69.js b/assets/js/3.6d23cf69.js new file mode 100644 index 0000000..5f67c82 --- /dev/null +++ b/assets/js/3.6d23cf69.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{352:function(t,a,s){t.exports=s.p+"assets/img/admin-layout.538ade29.png"},353:function(t,a,s){t.exports=s.p+"assets/img/page-layout.a45de70f.png"},354:function(t,a,s){t.exports=s.p+"assets/img/common-layout.1680e466.png"},355:function(t,a,s){t.exports=s.p+"assets/img/tabs-view.64ed8eb1.png"},356:function(t,a,s){t.exports=s.p+"assets/img/page-view.5fe6cc90.png"},357:function(t,a,s){t.exports=s.p+"assets/img/blank-view.d5483c86.png"},390:function(t,a,s){"use strict";s.r(a);var n=s(18),r=Object(n.a)({},(function(){var t=this,a=t.$createElement,n=t._self._c||a;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"布局"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#布局"}},[t._v("#")]),t._v(" 布局")]),t._v(" "),n("p",[t._v("页面整体布局是一个产品最外层的框架结构,往往会包含导航、页脚、侧边栏、通知栏以及内容等。在页面之中,也有很多区块的布局结构。在真实项目中,页面布局通常统领整个应用的界面,有非常重要的作用。")]),t._v(" "),n("h2",{attrs:{id:"admin-的布局"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#admin-的布局"}},[t._v("#")]),t._v(" Admin 的布局")]),t._v(" "),n("p",[t._v("在 Vue Antd Admin 中,我们抽离了使用过程中一些常用的布局,都放在 layouts 目录中,分别为:")]),t._v(" "),n("ul",[n("li",[n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/AdminLayout.vue",target:"_blank",rel:"noopener noreferrer"}},[t._v("AdminLayout"),n("OutboundLink")],1),t._v(" / "),n("strong",[t._v("管理后台布局")]),t._v(",包含了头部导航,侧边导航、内容区和页脚,一般用于后台系统的整体布局")])]),t._v(" "),n("p",[n("img",{attrs:{src:s(352),alt:"admin-layout"}})]),t._v(" "),n("ul",[n("li",[n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/PageLayout.vue",target:"_blank",rel:"noopener noreferrer"}},[t._v("PageLayout"),n("OutboundLink")],1),t._v(" / "),n("strong",[t._v("页面布局")]),t._v(",包含了页头和内容区,常用于需要页头(包含面包屑、标题、额外操作等)的页面")])]),t._v(" "),n("p",[n("img",{attrs:{src:s(353),alt:"page-layout"}})]),t._v(" "),n("ul",[n("li",[n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/CommonLayout.vue",target:"_blank",rel:"noopener noreferrer"}},[t._v("CommonLayout"),n("OutboundLink")],1),t._v(" / "),n("strong",[t._v("通用布局")]),t._v(",仅包含内容区和页脚的简单布局,项目中常用于注册、登录或展示页面")])]),t._v(" "),n("p",[n("img",{attrs:{src:s(354),alt:"common-layout"}})]),t._v(" "),n("h2",{attrs:{id:"admin-的视图"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#admin-的视图"}},[t._v("#")]),t._v(" Admin 的视图")]),t._v(" "),n("p",[t._v("在 Vue Antd Admin 中,除了基本布局外,通常有很多页面的结构是相似的。因此,我们把这部分结构抽离为视图组件。"),n("br"),t._v("\n一个视图组件通常包含一个基本布局组件、视图公共区块、路由视图内容区、页脚等,常常结合路由配置使用。它们也被放入了 layouts 目录中,分别为:")]),t._v(" "),n("ul",[n("li",[n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/TabsView.vue",target:"_blank",rel:"noopener noreferrer"}},[t._v("TabsView"),n("OutboundLink")],1),t._v(" / "),n("strong",[t._v("多页签视图")]),t._v(",包含了 AdminLayout 布局、多页签头和路由视图内容区")])]),t._v(" "),n("p",[n("img",{attrs:{src:s(355),alt:"tabs-view"}})]),t._v(" "),n("ul",[n("li",[n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/PageView.vue",target:"_blank",rel:"noopener noreferrer"}},[t._v("PageView"),n("OutboundLink")],1),t._v(" / "),n("strong",[t._v("页面视图")]),t._v(",包含了 PageLayout 布局和路由视图内容区")])]),t._v(" "),n("p",[n("img",{attrs:{src:s(356),alt:"page-view"}})]),t._v(" "),n("ul",[n("li",[n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/BlankView.vue",target:"_blank",rel:"noopener noreferrer"}},[t._v("BlankView"),n("OutboundLink")],1),t._v(" / "),n("strong",[t._v("空白视图")]),t._v(",仅包含一个路由视图内容区")])]),t._v(" "),n("p",[n("img",{attrs:{src:s(357),alt:"blank-view"}})]),t._v(" "),n("h2",{attrs:{id:"如何使用"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#如何使用"}},[t._v("#")]),t._v(" 如何使用")]),t._v(" "),n("p",[t._v("通常我们会把视图组件和路由配置结合一起使用,我们把配置信息抽离在路由配置文件中 "),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/router/config.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("src/router/config.js"),n("OutboundLink")],1),t._v(" 。如下:")]),t._v(" "),n("div",{staticClass:"language-jsx line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[t._v(" ")]),n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[t._v(" ")]),n("br"),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-jsx"}},[n("code",[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'form'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'表单页'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n meta"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n icon"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'form'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n component"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" PageView"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n children"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'basic'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'基础表单'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("component")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@/pages/form/basic/BasicForm'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br")])]),n("p",[t._v("当然,如果这满足不了你的需求,你也可以自定义一些视图组件,或者直接在页面组件中使用布局。参考\n"),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/pages/dashboard/workplace/WorkPlace.vue",target:"_blank",rel:"noopener noreferrer"}},[t._v("workplace"),n("OutboundLink")],1),t._v(" 页面:")]),t._v(" "),n("div",{staticClass:"language-vue line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("div",{staticClass:"highlighted"},[t._v(" ")]),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[t._v(" ")]),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-vue"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("template")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("page-layout")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":avatar")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("currUser.avatar"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("slot")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("headerContent"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("title"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("{{$t('timeFix')}},{{currUser.name}},{{$t('welcome')}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("{{$t('position')}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("template")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("slot")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("extra"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head-info")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("split-right"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":title")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("$t("),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v("project"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v(")"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("56"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head-info")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("split-right"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":title")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("$t("),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v("ranking"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v(")"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("8/24"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("head-info")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("split-right"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v(":title")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("$t("),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v("visit"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v(")"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("content")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("2,223"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("..."),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br")])]),n("h2",{attrs:{id:"其它布局组件"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#其它布局组件"}},[t._v("#")]),t._v(" 其它布局组件")]),t._v(" "),n("p",[t._v("除了 Admin 里的内建布局以外,在一些页面中需要进行布局,还可以使用 Ant Design Vue 提供的布局组件:Grid 和 Layout。")]),t._v(" "),n("h3",{attrs:{id:"grid-组件"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#grid-组件"}},[t._v("#")]),t._v(" Grid 组件")]),t._v(" "),n("p",[t._v("栅格布局是网页中最常用的布局,其特点就是按照一定比例划分页面,能够随着屏幕的变化依旧保持比例,从而具有弹性布局的特点。")]),t._v(" "),n("p",[t._v("而 Ant Design Vue 的栅格组件提供的功能更为强大,能够设置间距、具有支持响应式的比例设置,以及支持 flex 模式,基本上涵盖了大部分的布局场景,详情查看:"),n("a",{attrs:{href:"https://www.antdv.com/components/grid-cn/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Grid"),n("OutboundLink")],1),t._v("。")]),t._v(" "),n("h3",{attrs:{id:"layout-组件"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#layout-组件"}},[t._v("#")]),t._v(" Layout 组件")]),t._v(" "),n("p",[t._v("如果你需要辅助页面框架级别的布局设计,那么 Layout 则是你最佳的选择,它抽象了大部分框架布局结构,使得只需要填空就可以开发规范专业的页面整体布局,详情查看:"),n("a",{attrs:{href:"https://www.antdv.com/components/layout-cn/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Layout"),n("OutboundLink")],1),t._v("。")]),t._v(" "),n("h3",{attrs:{id:"根据不同场景区分抽离布局组件"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#根据不同场景区分抽离布局组件"}},[t._v("#")]),t._v(" 根据不同场景区分抽离布局组件")]),t._v(" "),n("p",[t._v("在大部分场景下,我们需要基于上面两个组件封装一些适用于当下具体业务的组件,包含了通用的导航、侧边栏、顶部通知、页面标题等元素。例如 Vue Antd Admin 的 "),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/AdminLayout.vue",target:"_blank",rel:"noopener noreferrer"}},[t._v("AdminLayout"),n("OutboundLink")],1),t._v("。")]),t._v(" "),n("p",[t._v("通常,我们会把抽象出来的布局组件,放到 layouts 文件夹中方便管理。需要注意的是,这些布局组件和我们平时使用的其它组件并没有什么不同,只不过功能性上是为了处理布局问题而单独归类。")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/30.472c91a2.js b/assets/js/30.472c91a2.js new file mode 100644 index 0000000..768aa03 --- /dev/null +++ b/assets/js/30.472c91a2.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{397:function(t,s,e){"use strict";e.r(s);var n=e(18),r=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"更新日志"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#更新日志"}},[this._v("#")]),this._v(" 更新日志")])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/31.a79ce13e.js b/assets/js/31.a79ce13e.js new file mode 100644 index 0000000..1080529 --- /dev/null +++ b/assets/js/31.a79ce13e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{398:function(t,s,e){"use strict";e.r(s);var n=e(18),r=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h2",{attrs:{id:"开始"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#开始"}},[this._v("#")]),this._v(" 开始")])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/32.53b87dae.js b/assets/js/32.53b87dae.js new file mode 100644 index 0000000..c68082f --- /dev/null +++ b/assets/js/32.53b87dae.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{396:function(t,e,n){"use strict";n.r(e);var r=n(18),a=Object(r.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"常见问题"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#常见问题"}},[t._v("#")]),t._v(" 常见问题")]),t._v(" "),n("h3",{attrs:{id:"为什么不是-ant-design-pro-vue-?"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#为什么不是-ant-design-pro-vue-?"}},[t._v("#")]),t._v(" 为什么不是 Ant Design Pro Vue ?")]),t._v(" "),n("p",[n("a",{attrs:{href:"https://github.com/vueComponent/ant-design-vue-pro",target:"_blank",rel:"noopener noreferrer"}},[t._v("Ant Design Pro Vue"),n("OutboundLink")],1),t._v(" 是 "),n("a",{attrs:{href:"https://github.com/ant-design/ant-design-pro",target:"_blank",rel:"noopener noreferrer"}},[t._v("Ant Design Pro"),n("OutboundLink")],1),t._v(" 的 Vue 版本,其中项目结构、组件、\n布局和使用方法等基本与 Ant Design Pro 的 react 版本保持一致。如果你比较熟悉 react 版,或者你已经在使用它,这确实是一个不错的选择。")]),t._v(" "),n("p",[n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin",target:"_blank",rel:"noopener noreferrer"}},[t._v("Vue Antd Admin"),n("OutboundLink")],1),t._v(" 同样实现了 Ant Design Pro 的所有功能。与此同时,我们还根据 Vue 的特性,对 Ant Design Pro 的一些组件和布局作出了相应的修改及优化,同时不影响保持与 Ant Design Pro 的一致。")]),t._v(" "),n("p",[t._v("另外,我们还在添加一些 Ant Design Pro 没有的功能,比如全局动画、多页签模式等。")]),t._v(" "),n("p",[t._v("如果你想使用 Ant Design Pro,但又觉得它缺乏一些你想要的功能,不妨看看 "),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin",target:"_blank",rel:"noopener noreferrer"}},[t._v("Vue Antd Admin"),n("OutboundLink")],1),t._v(",我们会认真考虑每个用户的需求。")]),t._v(" "),n("p",[t._v("因此,如果你有一些不错的想法和建议,欢迎随时和我们交流,很可能你的想法就在我们下一个版本中实现。")]),t._v(" "),n("h3",{attrs:{id:"如何使用-vue-antd-admin-?"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#如何使用-vue-antd-admin-?"}},[t._v("#")]),t._v(" 如何使用 Vue Antd Admin ?")]),t._v(" "),n("p",[t._v("请阅读文档 "),n("RouterLink",{attrs:{to:"/start/use.html"}},[t._v("开始使用")]),t._v("。有任何疑问,欢迎在 github 上给我们提交 "),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/issues/new",target:"_blank",rel:"noopener noreferrer"}},[t._v("issue"),n("OutboundLink")],1),t._v("。")],1),t._v(" "),n("h3",{attrs:{id:"是否支持国际化-?"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#是否支持国际化-?"}},[t._v("#")]),t._v(" 是否支持国际化 ?")]),t._v(" "),n("p",[t._v("Vue Antd Admin 引入了 vue-i18n 支持。因此你可以使用 vue-i18n 的特性对项目做国际化修改,详细请查看 "),n("RouterLink",{attrs:{to:"/advance/i18n.html"}},[t._v("国际化")])],1)])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/33.09a90ca2.js b/assets/js/33.09a90ca2.js new file mode 100644 index 0000000..15d7574 --- /dev/null +++ b/assets/js/33.09a90ca2.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{400:function(s,a,t){"use strict";t.r(a);var n=t(18),e=Object(n.a)({},(function(){var s=this,a=s.$createElement,t=s._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"使用"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#使用"}},[s._v("#")]),s._v(" 使用")]),s._v(" "),t("h2",{attrs:{id:"准备"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#准备"}},[s._v("#")]),s._v(" 准备")]),s._v(" "),t("p",[s._v("你的本地环境需要安装 yarn、node 和 git。我们的技术栈基于 ES2015+、Vue、Antd,提前学习这些知识会非常有帮助。")]),s._v(" "),t("h2",{attrs:{id:"安装"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装"}},[s._v("#")]),s._v(" 安装")]),s._v(" "),t("p",[s._v("克隆本项目到本地")]),s._v(" "),t("div",{staticClass:"language-bash line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[s._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("git")]),s._v(" clone https://github.com/iczer/vue-antd-admin.git\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br")])]),t("p",[s._v("安装依赖")]),s._v(" "),t("div",{staticClass:"language-bash line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[s._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("yarn")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("install")]),s._v("\nor\n$ "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("npm")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("install")]),s._v("\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br")])]),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[s._v("TIP")]),s._v(" "),t("p",[s._v("master 分支是 Vue Antd Admin 的标准版代码,此分支代码适合用于用于学习研究,不推荐在此分支做正式开发。\n我们在 basic 分支提供了 Vue Antd Admin 的基础版代码,正式开发请切换至此分支,以便于后续的版本更新。")])]),s._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[s._v("WARNING")]),s._v(" "),t("p",[s._v("如果基于 "),t("code",[s._v("master分支")]),s._v(" 进行开发,在版本更新时遇到的代码冲突问题请自行解决,我们不对基于 "),t("code",[s._v("master分支")]),s._v(" 开发时遇到的问题提供技术支持。"),t("br"),s._v("\n再次强调,"),t("code",[s._v("master分支")]),s._v(" 仅推荐用于学习参考,正式开发请切换至 "),t("code",[s._v("basic")]),s._v(" 分支!!!")])]),s._v(" "),t("h2",{attrs:{id:"目录结构"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#目录结构"}},[s._v("#")]),s._v(" 目录结构")]),s._v(" "),t("p",[s._v("我们已经为你生成了一个完整的开发框架,提供了涵盖中后台开发的各类功能和坑位,下面是整个项目的目录结构。")]),s._v(" "),t("div",{staticClass:"language-bash line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[s._v("├── docs "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 使用文档")]),s._v("\n├── public\n│ └── favicon.png "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# favicon")]),s._v("\n│ └── index.html "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 入口 HTML")]),s._v("\n├── src\n│ ├── assets "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 本地静态资源")]),s._v("\n│ ├── components "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 内置通用组件")]),s._v("\n│ ├── config "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 系统配置")]),s._v("\n│ ├── layouts "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 通用布局")]),s._v("\n│ ├── mock "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 本地 mock 数据")]),s._v("\n│ ├── pages "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 页面组件和通用模板")]),s._v("\n│ ├── plugins "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# vue 插件")]),s._v("\n│ ├── router "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 路由配置")]),s._v("\n│ ├── services "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 数据服务模块")]),s._v("\n│ ├── store "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# vuex 状态管理配置")]),s._v("\n│ ├── theme "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 主题相关")]),s._v("\n│ ├── utils "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# js 工具")]),s._v("\n│ ├── App.vue "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 应用入口组件")]),s._v("\n│ ├── bootstrap.js "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 应用启动引导js")]),s._v("\n│ └── main.js "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 应用入口js")]),s._v("\n├── package.json "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# package.json")]),s._v("\n├── README.md "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# README.md")]),s._v("\n└── vue.config.js "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# vue 配置文件")]),s._v("\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br"),t("span",{staticClass:"line-number"},[s._v("8")]),t("br"),t("span",{staticClass:"line-number"},[s._v("9")]),t("br"),t("span",{staticClass:"line-number"},[s._v("10")]),t("br"),t("span",{staticClass:"line-number"},[s._v("11")]),t("br"),t("span",{staticClass:"line-number"},[s._v("12")]),t("br"),t("span",{staticClass:"line-number"},[s._v("13")]),t("br"),t("span",{staticClass:"line-number"},[s._v("14")]),t("br"),t("span",{staticClass:"line-number"},[s._v("15")]),t("br"),t("span",{staticClass:"line-number"},[s._v("16")]),t("br"),t("span",{staticClass:"line-number"},[s._v("17")]),t("br"),t("span",{staticClass:"line-number"},[s._v("18")]),t("br"),t("span",{staticClass:"line-number"},[s._v("19")]),t("br"),t("span",{staticClass:"line-number"},[s._v("20")]),t("br"),t("span",{staticClass:"line-number"},[s._v("21")]),t("br"),t("span",{staticClass:"line-number"},[s._v("22")]),t("br"),t("span",{staticClass:"line-number"},[s._v("23")]),t("br")])]),t("h2",{attrs:{id:"本地开发"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#本地开发"}},[s._v("#")]),s._v(" 本地开发")]),s._v(" "),t("p",[s._v("启动服务")]),s._v(" "),t("div",{staticClass:"language-bash line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[s._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("yarn")]),s._v(" serve\nor\n$ "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("npm")]),s._v(" run serve\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br")])]),t("p",[s._v("启动成功后,会看到一个本地预览地址,通常是 http://localhost:8080 。接下来就可以修改代码,并实时预览修改结果啦!")])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/4.1817d874.js b/assets/js/4.1817d874.js new file mode 100644 index 0000000..4e24286 --- /dev/null +++ b/assets/js/4.1817d874.js @@ -0,0 +1,8 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{322:function(t,e,n){},367:function(t,e,n){ +/*! + * clipboard.js v2.0.6 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +var o;o=function(){return function(t){var e={};function n(o){if(e[o])return e[o].exports;var r=e[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(o,r,function(e){return t[e]}.bind(null,r));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=6)}([function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=r()(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=r()(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),document.activeElement.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":i(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}(),u=n(1),l=n.n(u),s=n(2),f=n.n(s),d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===d(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=f()(t,"click",(function(t){return e.onClick(t)}))}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new c({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return y("action",t)}},{key:"defaultTarget",value:function(t){var e=y("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return y("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach((function(t){n=n&&!!document.queryCommandSupported(t)})),n}}]),e}(l.a);function y(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}e.default=p}]).default},t.exports=o()},368:function(t,e,n){"use strict";var o=n(322);n.n(o).a},374:function(t,e,n){"use strict";n.r(e);var o=n(367),r=n.n(o),i={name:"Color",props:["color"],data:function(){return{alert:!1}},methods:{onClick:function(){var t=this,e=new r.a(".color");e.on("success",(function(){t.$alert("颜色代码已复制:".concat(t.color)),e.destroy()}))}}},a=(n(368),n(18)),c=Object(a.a)(i,(function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"color",style:"background-color:"+this.color,attrs:{"data-clipboard-text":this.color},on:{click:this.onClick}})}),[],!1,null,"4d7d65d2",null);e.default=c.exports}}]); \ No newline at end of file diff --git a/assets/js/5.b598fcf7.js b/assets/js/5.b598fcf7.js new file mode 100644 index 0000000..cd27335 --- /dev/null +++ b/assets/js/5.b598fcf7.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{358:function(s,t,a){s.exports=a.p+"assets/img/new-page.4da2ccce.png"},359:function(s,t,a){s.exports=a.p+"assets/img/new-page-2.930ca3c7.png"},360:function(s,t,a){s.exports=a.p+"assets/img/new-page-us.60b25f14.png"},391:function(s,t,a){"use strict";a.r(t);var n=a(18),e=Object(n.a)({},(function(){var s=this,t=s.$createElement,n=s._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[n("h1",{attrs:{id:"页面"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#页面"}},[s._v("#")]),s._v(" 页面")]),s._v(" "),n("p",[s._v("这里的『页面』包含新建页面文件,配置路由、样式文件及i18n国际化等。通常情况下,你仅需简单的配置就可以添加一个新的页面。")]),s._v(" "),n("h2",{attrs:{id:"新建页面文件"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#新建页面文件"}},[s._v("#")]),s._v(" 新建页面文件")]),s._v(" "),n("p",[s._v("在 src/pages 下创建新的 .vue 文件。如果页面相关文件过多,您可以创建一个文件夹来放置这些文件。")]),s._v(" "),n("div",{staticClass:"language-diff line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-diff"}},[n("code",[n("span",{pre:!0,attrs:{class:"token unchanged"}},[n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" ├── public\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" ├── src\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" │ ├── assets # 本地静态资源\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" : :\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" │ ├── pages # 页面组件和通用模板\n")])]),n("span",{pre:!0,attrs:{class:"token inserted-sign inserted"}},[n("span",{pre:!0,attrs:{class:"token prefix inserted"}},[s._v("+")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" │ │ └── NewPage.vue # 新页面文件\n")])]),s._v("or\n"),n("span",{pre:!0,attrs:{class:"token inserted-sign inserted"}},[n("span",{pre:!0,attrs:{class:"token prefix inserted"}},[s._v("+")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" │ │ └── newPage # 为新页面创建一个文件夹\n")]),n("span",{pre:!0,attrs:{class:"token prefix inserted"}},[s._v("+")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" │ │ ├── NewPage.vue # 新页面文件\n")]),n("span",{pre:!0,attrs:{class:"token prefix inserted"}},[s._v("+")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" │ │ ├── index.less # 页面样式文件\n")]),n("span",{pre:!0,attrs:{class:"token prefix inserted"}},[s._v("+")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" │ │ └── index.js # import 引导文件\n")])]),n("span",{pre:!0,attrs:{class:"token unchanged"}},[n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" : :\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" │ └── main.js # 应用入口js\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" ├── package.json # package.json\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" ├── README.md # README.md\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" └── vue.config.js # vue 配置文件\n")])])])]),s._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br"),n("span",{staticClass:"line-number"},[s._v("8")]),n("br"),n("span",{staticClass:"line-number"},[s._v("9")]),n("br"),n("span",{staticClass:"line-number"},[s._v("10")]),n("br"),n("span",{staticClass:"line-number"},[s._v("11")]),n("br"),n("span",{staticClass:"line-number"},[s._v("12")]),n("br"),n("span",{staticClass:"line-number"},[s._v("13")]),n("br"),n("span",{staticClass:"line-number"},[s._v("14")]),n("br"),n("span",{staticClass:"line-number"},[s._v("15")]),n("br"),n("span",{staticClass:"line-number"},[s._v("16")]),n("br")])]),n("p",[s._v("为了更好地演示,我们初始化 NewPage.vue 文件如下:")]),s._v(" "),n("div",{staticClass:"language-vue line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-vue"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("template")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("div")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[s._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')]),s._v("new-page"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')])]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v(":")]),n("span",{pre:!0,attrs:{class:"token style-attr language-css"}},[n("span",{pre:!0,attrs:{class:"token attr-name"}},[n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("style")])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('="')]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token selector"}},[s._v("`min-height: $")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("pageMinHeight"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("px`")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("h1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("演示页面"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("script")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),n("span",{pre:!0,attrs:{class:"token script"}},[n("span",{pre:!0,attrs:{class:"token language-javascript"}},[s._v("\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("mapState"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("from")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'vuex'")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("export")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("default")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'NewPage'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token function"}},[s._v("data")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n desc"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'这是一个演示页面'")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n computed"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),n("span",{pre:!0,attrs:{class:"token function"}},[s._v("mapState")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'setting'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'pageMinHeight'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("style")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("scoped")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("lang")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[s._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')]),s._v("less"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),n("span",{pre:!0,attrs:{class:"token style"}},[n("span",{pre:!0,attrs:{class:"token language-css"}},[s._v("\n"),n("span",{pre:!0,attrs:{class:"token atrule"}},[n("span",{pre:!0,attrs:{class:"token rule"}},[s._v("@import")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v('"index.less"')]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")])]),s._v("\n")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n")])]),s._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br"),n("span",{staticClass:"line-number"},[s._v("8")]),n("br"),n("span",{staticClass:"line-number"},[s._v("9")]),n("br"),n("span",{staticClass:"line-number"},[s._v("10")]),n("br"),n("span",{staticClass:"line-number"},[s._v("11")]),n("br"),n("span",{staticClass:"line-number"},[s._v("12")]),n("br"),n("span",{staticClass:"line-number"},[s._v("13")]),n("br"),n("span",{staticClass:"line-number"},[s._v("14")]),n("br"),n("span",{staticClass:"line-number"},[s._v("15")]),n("br"),n("span",{staticClass:"line-number"},[s._v("16")]),n("br"),n("span",{staticClass:"line-number"},[s._v("17")]),n("br"),n("span",{staticClass:"line-number"},[s._v("18")]),n("br"),n("span",{staticClass:"line-number"},[s._v("19")]),n("br"),n("span",{staticClass:"line-number"},[s._v("20")]),n("br"),n("span",{staticClass:"line-number"},[s._v("21")]),n("br"),n("span",{staticClass:"line-number"},[s._v("22")]),n("br")])]),n("p",[s._v("index.less 文件:")]),s._v(" "),n("div",{staticClass:"language-less line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-less"}},[n("code",[n("span",{pre:!0,attrs:{class:"token selector"}},[s._v(".new-page")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[s._v("height")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),s._v(" 100%"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[s._v("background-color")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token variable"}},[s._v("@base-bg-color")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[s._v("text-align")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),s._v(" center"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[s._v("padding")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),s._v(" 200px 0 0 0"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[s._v("margin-top")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),s._v("24px"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token selector"}},[s._v("h1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[s._v("font-size")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),s._v(" 48px"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br"),n("span",{staticClass:"line-number"},[s._v("8")]),n("br"),n("span",{staticClass:"line-number"},[s._v("9")]),n("br"),n("span",{staticClass:"line-number"},[s._v("10")]),n("br")])]),n("p",[s._v("index.js 文件:")]),s._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),s._v(" NewPage "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("from")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'./NewPage'")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("export")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("default")]),s._v(" NewPage\n")])]),s._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br")])]),n("h2",{attrs:{id:"配置路由"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#配置路由"}},[s._v("#")]),s._v(" 配置路由")]),s._v(" "),n("p",[s._v("路由配置在 src/router/config.js 文件中,我们把上面创建的页面文件加入路由配置中")]),s._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" options "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n routes"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'登录页'")]),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'首页'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n component"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" TabsView"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n redirect"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/login'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n children"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'newPage'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'新页面'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[s._v("component")]),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/pages/newPage'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'dashboard'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'Dashboard'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n meta"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n icon"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'dashboard'")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n component"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" BlankView"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n children"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br"),n("span",{staticClass:"line-number"},[s._v("8")]),n("br"),n("span",{staticClass:"line-number"},[s._v("9")]),n("br"),n("span",{staticClass:"line-number"},[s._v("10")]),n("br"),n("span",{staticClass:"line-number"},[s._v("11")]),n("br"),n("span",{staticClass:"line-number"},[s._v("12")]),n("br"),n("span",{staticClass:"line-number"},[s._v("13")]),n("br"),n("span",{staticClass:"line-number"},[s._v("14")]),n("br"),n("span",{staticClass:"line-number"},[s._v("15")]),n("br"),n("span",{staticClass:"line-number"},[s._v("16")]),n("br"),n("span",{staticClass:"line-number"},[s._v("17")]),n("br"),n("span",{staticClass:"line-number"},[s._v("18")]),n("br"),n("span",{staticClass:"line-number"},[s._v("19")]),n("br"),n("span",{staticClass:"line-number"},[s._v("20")]),n("br"),n("span",{staticClass:"line-number"},[s._v("21")]),n("br"),n("span",{staticClass:"line-number"},[s._v("22")]),n("br"),n("span",{staticClass:"line-number"},[s._v("23")]),n("br"),n("span",{staticClass:"line-number"},[s._v("24")]),n("br"),n("span",{staticClass:"line-number"},[s._v("25")]),n("br"),n("span",{staticClass:"line-number"},[s._v("26")]),n("br"),n("span",{staticClass:"line-number"},[s._v("27")]),n("br"),n("span",{staticClass:"line-number"},[s._v("28")]),n("br")])]),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[s._v("TIP")]),s._v(" "),n("p",[s._v("我们建议使用英文设置路由的 path 属性,用中文设置路由的 name 属性。因为系统将自动提取路由的 path 和 name 属性作为国际化配置。这在后面的章节\n"),n("RouterLink",{attrs:{to:"/advance/i18n.html"}},[s._v("进阶>国际化")]),s._v("中将会讲到。\n当然,如果你的项目不需要国际化,可以忽略。")],1)]),s._v(" "),n("p",[s._v("启动服务,你将看到新增页面如下:\n"),n("img",{attrs:{src:a(358),alt:"newPage"}}),s._v("\n如果你想把它配置为二级页面或更深层级的页面,只需为它配置一个父级路由,并为父级路由配置一个"),n("RouterLink",{attrs:{to:"/develop/layout.html#admin-的视图"}},[s._v("视图组件")]),s._v(",\n这里我们选择 "),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/PageView.vue",target:"_blank",rel:"noopener noreferrer"}},[s._v("PageView"),n("OutboundLink")],1),s._v(",如下:")],1),s._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" options "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n routes"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'登录页'")]),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'首页'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n component"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" TabsView"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n redirect"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/login'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n children"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'parent'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'父级路由'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n component"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" PageView"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n children"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n path"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'newPage'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'新页面'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[s._v("component")]),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/pages/newPage'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'dashboard'")]),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br"),n("span",{staticClass:"line-number"},[s._v("8")]),n("br"),n("span",{staticClass:"line-number"},[s._v("9")]),n("br"),n("span",{staticClass:"line-number"},[s._v("10")]),n("br"),n("span",{staticClass:"line-number"},[s._v("11")]),n("br"),n("span",{staticClass:"line-number"},[s._v("12")]),n("br"),n("span",{staticClass:"line-number"},[s._v("13")]),n("br"),n("span",{staticClass:"line-number"},[s._v("14")]),n("br"),n("span",{staticClass:"line-number"},[s._v("15")]),n("br"),n("span",{staticClass:"line-number"},[s._v("16")]),n("br"),n("span",{staticClass:"line-number"},[s._v("17")]),n("br"),n("span",{staticClass:"line-number"},[s._v("18")]),n("br"),n("span",{staticClass:"line-number"},[s._v("19")]),n("br"),n("span",{staticClass:"line-number"},[s._v("20")]),n("br"),n("span",{staticClass:"line-number"},[s._v("21")]),n("br"),n("span",{staticClass:"line-number"},[s._v("22")]),n("br"),n("span",{staticClass:"line-number"},[s._v("23")]),n("br"),n("span",{staticClass:"line-number"},[s._v("24")]),n("br"),n("span",{staticClass:"line-number"},[s._v("25")]),n("br"),n("span",{staticClass:"line-number"},[s._v("26")]),n("br"),n("span",{staticClass:"line-number"},[s._v("27")]),n("br")])]),n("div",{staticClass:"custom-block warning"},[n("p",{staticClass:"custom-block-title"},[s._v("WARNING")]),s._v(" "),n("p",[s._v("页面所有父级路由的组件必须配置为"),n("RouterLink",{attrs:{to:"/develop/layout.html#admin-的视图"}},[s._v("视图组件")]),s._v(",否则页面的内容可能不会显示。"),n("br"),s._v("\n目前有 "),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/PageView.vue",target:"_blank",rel:"noopener noreferrer"}},[s._v("PageView"),n("OutboundLink")],1),s._v("、\n"),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/tabs/TabsView.vue",target:"_blank",rel:"noopener noreferrer"}},[s._v("TabsView"),n("OutboundLink")],1),s._v(" 和\n"),n("a",{attrs:{href:"https://github.com/iczer/vue-antd-admin/blob/master/src/layouts/BlankView.vue",target:"_blank",rel:"noopener noreferrer"}},[s._v("BlankView"),n("OutboundLink")],1),s._v(" 可选,\n你也可以自己创建视图组件。("),n("RouterLink",{attrs:{to:"/develop/layout.html#admin-的视图"}},[s._v("什么是视图组件?")]),s._v(")")],1)]),s._v(" "),n("p",[s._v("页面如下:\n"),n("img",{attrs:{src:a(359),alt:"newPage2"}})]),s._v(" "),n("h2",{attrs:{id:"i18n国际化配置"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#i18n国际化配置"}},[s._v("#")]),s._v(" i18n国际化配置")]),s._v(" "),n("p",[s._v("如果你想为页面增加i18n国际化配置,只需在页面同级文件夹下创建 i18n.js 文件,然后在页面文件中引入并使用即可。"),n("br"),s._v("\n创建 i18n.js 文件:")]),s._v(" "),n("div",{staticClass:"language-diff line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-diff"}},[n("code",[n("span",{pre:!0,attrs:{class:"token unchanged"}},[n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" ├── public\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" ├── src\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" │ ├── assets # 本地静态资源\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" : :\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" │ ├── pages # 页面组件和通用模板\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" │ │ └── newPage # 为新页面创建一个文件夹\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" │ │ ├── NewPage.vue # 新页面文件\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" │ │ ├── index.less # 页面样式文件\n")])]),n("span",{pre:!0,attrs:{class:"token inserted-sign inserted"}},[n("span",{pre:!0,attrs:{class:"token prefix inserted"}},[s._v("+")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" │ │ ├── i18n.js # i18n 国际化配置文件\n")])]),n("span",{pre:!0,attrs:{class:"token unchanged"}},[n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" │ │ └── index.js # import 引导文件\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" : :\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" │ └── main.js # 应用入口js\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" ├── package.json # package.json\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" ├── README.md # README.md\n")]),n("span",{pre:!0,attrs:{class:"token prefix unchanged"}},[s._v(" ")]),n("span",{pre:!0,attrs:{class:"token line"}},[s._v(" └── vue.config.js # vue 配置文件\n")])])])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br"),n("span",{staticClass:"line-number"},[s._v("8")]),n("br"),n("span",{staticClass:"line-number"},[s._v("9")]),n("br"),n("span",{staticClass:"line-number"},[s._v("10")]),n("br"),n("span",{staticClass:"line-number"},[s._v("11")]),n("br"),n("span",{staticClass:"line-number"},[s._v("12")]),n("br"),n("span",{staticClass:"line-number"},[s._v("13")]),n("br"),n("span",{staticClass:"line-number"},[s._v("14")]),n("br"),n("span",{staticClass:"line-number"},[s._v("15")]),n("br")])]),n("p",[s._v("i18n.js 文件内容:")]),s._v(" "),n("div",{staticClass:"language-js line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-js"}},[n("code",[s._v("module"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("exports "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n messages"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token constant"}},[s._v("CN")]),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n content"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'演示页面'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n description"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'这是一个演示页面'")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token constant"}},[s._v("HK")]),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n content"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'演示頁面'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n description"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'這是一個演示頁面'")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token constant"}},[s._v("US")]),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n content"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'Demo Page'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n description"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'This is a demo page'")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br"),n("span",{staticClass:"line-number"},[s._v("8")]),n("br"),n("span",{staticClass:"line-number"},[s._v("9")]),n("br"),n("span",{staticClass:"line-number"},[s._v("10")]),n("br"),n("span",{staticClass:"line-number"},[s._v("11")]),n("br"),n("span",{staticClass:"line-number"},[s._v("12")]),n("br"),n("span",{staticClass:"line-number"},[s._v("13")]),n("br"),n("span",{staticClass:"line-number"},[s._v("14")]),n("br"),n("span",{staticClass:"line-number"},[s._v("15")]),n("br"),n("span",{staticClass:"line-number"},[s._v("16")]),n("br")])]),n("p",[s._v("在 NewPage.vue 文件中引入 i18n.js,并添加需要国际化的内容。如下修改:")]),s._v(" "),n("div",{staticClass:"language-vue line-numbers-mode"},[n("div",{staticClass:"highlight-lines"},[n("br"),n("br"),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("br"),n("br"),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("div",{staticClass:"highlighted"},[s._v(" ")]),n("br"),n("br"),n("br"),n("br"),n("br"),n("br"),n("br")]),n("pre",{pre:!0,attrs:{class:"language-vue"}},[n("code",[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("template")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("div")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("class")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[s._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')]),s._v("new-page"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')])]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v(":")]),n("span",{pre:!0,attrs:{class:"token style-attr language-css"}},[n("span",{pre:!0,attrs:{class:"token attr-name"}},[n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("style")])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('="')]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token selector"}},[s._v("`min-height: $")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("pageMinHeight"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("px`")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("h1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),s._v("{{$t('content')}}"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("script")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),n("span",{pre:!0,attrs:{class:"token script"}},[n("span",{pre:!0,attrs:{class:"token language-javascript"}},[s._v("\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("mapState"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("from")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'vuex'")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("export")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("default")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n name"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'NewPage'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n i18n"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[s._v("require")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'./i18n'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n computed"),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),n("span",{pre:!0,attrs:{class:"token function"}},[s._v("mapState")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'setting'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'pageMinHeight'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token function"}},[s._v("desc")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("this")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[s._v("$t")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[s._v("'description'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n"),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("<")]),s._v("style")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("scoped")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token attr-name"}},[s._v("lang")]),n("span",{pre:!0,attrs:{class:"token attr-value"}},[n("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[s._v("=")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')]),s._v("less"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v('"')])]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(">")])]),n("span",{pre:!0,attrs:{class:"token style"}},[n("span",{pre:!0,attrs:{class:"token language-css"}},[s._v("\n"),n("span",{pre:!0,attrs:{class:"token atrule"}},[n("span",{pre:!0,attrs:{class:"token rule"}},[s._v("@import")]),s._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[s._v('"index"')]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")])]),s._v("\n")])]),n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token tag"}},[n("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("")])]),s._v("\n")])]),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[s._v("1")]),n("br"),n("span",{staticClass:"line-number"},[s._v("2")]),n("br"),n("span",{staticClass:"line-number"},[s._v("3")]),n("br"),n("span",{staticClass:"line-number"},[s._v("4")]),n("br"),n("span",{staticClass:"line-number"},[s._v("5")]),n("br"),n("span",{staticClass:"line-number"},[s._v("6")]),n("br"),n("span",{staticClass:"line-number"},[s._v("7")]),n("br"),n("span",{staticClass:"line-number"},[s._v("8")]),n("br"),n("span",{staticClass:"line-number"},[s._v("9")]),n("br"),n("span",{staticClass:"line-number"},[s._v("10")]),n("br"),n("span",{staticClass:"line-number"},[s._v("11")]),n("br"),n("span",{staticClass:"line-number"},[s._v("12")]),n("br"),n("span",{staticClass:"line-number"},[s._v("13")]),n("br"),n("span",{staticClass:"line-number"},[s._v("14")]),n("br"),n("span",{staticClass:"line-number"},[s._v("15")]),n("br"),n("span",{staticClass:"line-number"},[s._v("16")]),n("br"),n("span",{staticClass:"line-number"},[s._v("17")]),n("br"),n("span",{staticClass:"line-number"},[s._v("18")]),n("br"),n("span",{staticClass:"line-number"},[s._v("19")]),n("br"),n("span",{staticClass:"line-number"},[s._v("20")]),n("br"),n("span",{staticClass:"line-number"},[s._v("21")]),n("br")])]),n("p",[s._v("然后页面右上角语言项选择 "),n("code",[s._v("English")]),s._v(",你会发现,页面语言切换为英文了。如下:\n"),n("img",{attrs:{src:a(360),alt:"newPageUs"}}),s._v("\n一切就是这么的简单!")]),s._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[s._v("TIP")]),s._v(" "),n("p",[s._v("如果你尝试切换为繁体语言,可能会发现"),n("code",[s._v("页面标题")]),s._v("和"),n("code",[s._v("面包屑")]),s._v("显示为英文。"),n("br"),s._v("\n这涉及到路由的国际化配置,在章节 "),n("RouterLink",{attrs:{to:"/advance/i18n.html"}},[s._v("进阶 > 国际化")]),s._v(" 中,我们会对此作详细讲解。")],1)])])}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/6.24459446.js b/assets/js/6.24459446.js new file mode 100644 index 0000000..73bac31 --- /dev/null +++ b/assets/js/6.24459446.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{362:function(t,s,a){t.exports=a.p+"assets/img/mode-light.e460a721.png"},363:function(t,s,a){t.exports=a.p+"assets/img/mode-dark.178ff571.png"},364:function(t,s,a){t.exports=a.p+"assets/img/mode-night.16c831f4.png"},399:function(t,s,a){"use strict";a.r(s);var r=a(18),e=Object(r.a)({},(function(){var t=this,s=t.$createElement,r=t._self._c||s;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"主题定制"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#主题定制"}},[t._v("#")]),t._v(" 主题定制")]),t._v(" "),r("h2",{attrs:{id:"主题颜色"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#主题颜色"}},[t._v("#")]),t._v(" 主题颜色")]),t._v(" "),r("h3",{attrs:{id:"主题色"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#主题色"}},[t._v("#")]),t._v(" 主题色")]),t._v(" "),r("p",[t._v("我们内置了一个色盘供您选择")]),t._v(" "),r("color",{attrs:{color:"#fa541c"}}),t._v(" "),r("color",{attrs:{color:"#fadb14"}}),t._v(" "),r("color",{attrs:{color:"#3eaf7c"}}),t._v(" "),r("color",{attrs:{color:"#13c2c2"}}),t._v(" "),r("color",{attrs:{color:"#1890ff"}}),t._v(" "),r("color",{attrs:{color:"#722ed1"}}),t._v(" "),r("color",{attrs:{color:"#eb2f96"}}),t._v(" "),r("p",[t._v("如果这不能满足你的需求,你也可以使用任何你喜欢的颜色,只需要在 src/config/config.js 文件中配置你的主题色即可。如:")]),t._v(" "),r("div",{staticClass:"language-js line-numbers-mode"},[r("div",{staticClass:"highlight-lines"},[r("br"),r("br"),r("div",{staticClass:"highlighted"},[t._v(" ")]),r("br"),r("br"),r("br"),r("br"),r("br"),r("br"),r("br"),r("br"),r("br")]),r("pre",{pre:!0,attrs:{class:"language-js"}},[r("code",[t._v("module"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("exports "),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n theme"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n color"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#13c2c2'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//换成任何你喜欢的颜色,支持 hex 色值")]),t._v("\n mode"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'night'")]),t._v("\n "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n multiPage"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n animate"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n name"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'roll'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n direction"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'default'")]),t._v("\n "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),r("div",{staticClass:"line-numbers-wrapper"},[r("span",{staticClass:"line-number"},[t._v("1")]),r("br"),r("span",{staticClass:"line-number"},[t._v("2")]),r("br"),r("span",{staticClass:"line-number"},[t._v("3")]),r("br"),r("span",{staticClass:"line-number"},[t._v("4")]),r("br"),r("span",{staticClass:"line-number"},[t._v("5")]),r("br"),r("span",{staticClass:"line-number"},[t._v("6")]),r("br"),r("span",{staticClass:"line-number"},[t._v("7")]),r("br"),r("span",{staticClass:"line-number"},[t._v("8")]),r("br"),r("span",{staticClass:"line-number"},[t._v("9")]),r("br"),r("span",{staticClass:"line-number"},[t._v("10")]),r("br"),r("span",{staticClass:"line-number"},[t._v("11")]),r("br")])]),r("p",[t._v("当你设置好主题色后,系统会根据这个主题色为你生成一系列配套的颜色,并应用到vue组件中。")]),t._v(" "),r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),r("p",[t._v("你可以在你的样式文件中直接使用 less 变量 "),r("code",[t._v("@theme-color")]),t._v("。")])]),t._v(" "),r("div",{staticClass:"custom-block warning"},[r("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),r("p",[t._v("主题色目前只支持 "),r("code",[t._v("hex")]),t._v(" 模式的色值。如果设置为 "),r("code",[t._v("rgb")]),t._v(" 或其它模式的色值,可能会导致配套颜色无法生成。")])]),t._v(" "),r("h3",{attrs:{id:"功能色"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#功能色"}},[t._v("#")]),t._v(" 功能色")]),t._v(" "),r("p",[t._v("除了主题色,系统还有一些功能性颜色,分别为:成功色、警告色和错误色。默认色值分别为:")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",{staticStyle:{"text-align":"center"}},[t._v("名称")]),t._v(" "),r("th",{staticStyle:{"text-align":"center"}},[t._v("success")]),t._v(" "),r("th",{staticStyle:{"text-align":"center"}},[t._v("warning")]),t._v(" "),r("th",{staticStyle:{"text-align":"center"}},[t._v("error")])])]),t._v(" "),r("tbody",[r("tr",[r("td",{staticStyle:{"text-align":"center"}},[t._v("色值")]),t._v(" "),r("td",{staticStyle:{"text-align":"center"}},[r("code",[t._v("#52c41a")])]),t._v(" "),r("td",{staticStyle:{"text-align":"center"}},[r("code",[t._v("#faad14")])]),t._v(" "),r("td",{staticStyle:{"text-align":"center"}},[r("code",[t._v("#f5222d")])])]),t._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"center"}},[t._v("颜色")]),t._v(" "),r("td",{staticStyle:{"text-align":"center"}},[r("color",{attrs:{color:"#52c41a"}})],1),t._v(" "),r("td",{staticStyle:{"text-align":"center"}},[r("color",{attrs:{color:"#faad14"}})],1),t._v(" "),r("td",{staticStyle:{"text-align":"center"}},[r("color",{attrs:{color:"#f5222d"}})],1)]),t._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"center"}},[t._v("less变量")]),t._v(" "),r("td",{staticStyle:{"text-align":"center"}},[t._v("@success-color")]),t._v(" "),r("td",{staticStyle:{"text-align":"center"}},[t._v("@warning-color")]),t._v(" "),r("td",{staticStyle:{"text-align":"center"}},[t._v("@error-color")])])])]),t._v(" "),r("p",[t._v("你也可以在 src/config/config.js 重新定义这些功能色")]),t._v(" "),r("div",{staticClass:"language-js line-numbers-mode"},[r("div",{staticClass:"highlight-lines"},[r("br"),r("br"),r("br"),r("br"),r("div",{staticClass:"highlighted"},[t._v(" ")]),r("div",{staticClass:"highlighted"},[t._v(" ")]),r("div",{staticClass:"highlighted"},[t._v(" ")]),r("br"),r("br"),r("br"),r("br"),r("br"),r("br"),r("br"),r("br")]),r("pre",{pre:!0,attrs:{class:"language-js"}},[r("code",[t._v("module"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("exports "),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n theme"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n color"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#13c2c2'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n mode"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'night'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n success"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#52c41a'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//定义成功色,支持 hex 色值")]),t._v("\n warning"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#faad14'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//定义警告色,支持 hex 色值")]),t._v("\n error"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#f5222d'")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//定义错误色,支持 hex 色值")]),t._v("\n "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n multiPage"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n animate"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n name"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'roll'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n direction"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'default'")]),t._v("\n "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),r("div",{staticClass:"line-numbers-wrapper"},[r("span",{staticClass:"line-number"},[t._v("1")]),r("br"),r("span",{staticClass:"line-number"},[t._v("2")]),r("br"),r("span",{staticClass:"line-number"},[t._v("3")]),r("br"),r("span",{staticClass:"line-number"},[t._v("4")]),r("br"),r("span",{staticClass:"line-number"},[t._v("5")]),r("br"),r("span",{staticClass:"line-number"},[t._v("6")]),r("br"),r("span",{staticClass:"line-number"},[t._v("7")]),r("br"),r("span",{staticClass:"line-number"},[t._v("8")]),r("br"),r("span",{staticClass:"line-number"},[t._v("9")]),r("br"),r("span",{staticClass:"line-number"},[t._v("10")]),r("br"),r("span",{staticClass:"line-number"},[t._v("11")]),r("br"),r("span",{staticClass:"line-number"},[t._v("12")]),r("br"),r("span",{staticClass:"line-number"},[t._v("13")]),r("br"),r("span",{staticClass:"line-number"},[t._v("14")]),r("br")])]),r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),r("p",[t._v("想在在你的样式文件中使用以上各功能色,引用各功能色对应的 less 变量即可。")])]),t._v(" "),r("div",{staticClass:"custom-block warning"},[r("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),r("p",[t._v("功能色目前也只支持 "),r("code",[t._v("hex")]),t._v(" 模式的色值。如果设置为 "),r("code",[t._v("rgb")]),t._v(" 或其它模式的色值,可能会导致配套颜色无法生成。")])]),t._v(" "),r("h3",{attrs:{id:"文本色"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#文本色"}},[t._v("#")]),t._v(" 文本色")]),t._v(" "),r("table",{staticStyle:{"text-align":"center"}},[r("tr",[r("th",[t._v("主题模式")]),t._v(" "),r("th",[t._v("标题色")]),t._v(" "),r("th",[t._v("文本色")]),t._v(" "),r("th",[t._v("次级文本色")])]),t._v(" "),r("tr",[r("td",{attrs:{rowspan:"2"}},[t._v("light/dark")]),t._v(" "),r("td",[r("color",{attrs:{color:"rgba(0,0,0,0.85)"}})],1),t._v(" "),r("td",[r("color",{attrs:{color:"rgba(0,0,0,0.65)"}})],1),t._v(" "),r("td",[r("color",{attrs:{color:"rgba(0,0,0,0.45)"}})],1)]),t._v(" "),r("tr",[r("td",[r("code",[t._v("rgba(0,0,0,0.85)")])]),t._v(" "),r("td",[r("code",[t._v("rgba(0,0,0,0.65)")])]),t._v(" "),r("td",[r("code",[t._v("rgba(0,0,0,0.45)")])])]),t._v(" "),r("tr",[r("td",{attrs:{rowspan:"2"}},[t._v("night")]),t._v(" "),r("td",[r("color",{attrs:{color:"rgba(255,255,255,0.85)"}})],1),t._v(" "),r("td",[r("color",{attrs:{color:"rgba(255,255,255,0.65)"}})],1),t._v(" "),r("td",[r("color",{attrs:{color:"rgba(255,255,255,0.45)"}})],1)]),t._v(" "),r("tr",[r("td",[r("code",[t._v("rgba(255,255,255,0.85)")])]),t._v(" "),r("td",[r("code",[t._v("rgba(255,255,255,0.65)")])]),t._v(" "),r("td",[r("code",[t._v("rgba(255,255,255,0.45)")])])]),t._v(" "),r("tr",[r("td",[t._v("less变量")]),t._v(" "),r("td",[t._v("@title-color")]),t._v(" "),r("td",[t._v("@text-color")]),t._v(" "),r("td",[t._v("@text-color-second")])])]),t._v(" "),r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),r("p",[t._v("想在在你的样式文件中使用以上文本色,引用各文本色对应的 less 变量即可。")])]),t._v(" "),r("div",{staticClass:"custom-block warning"},[r("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),r("p",[t._v("目前不支持自定义文本色,因为涉及到主题模式切换时文本色的置换问题。如强行修改,可能会导致主题模式切换时出现样式异常。\n如果你的项目不需要主题模式切换,可自行替换以上文本色。")])]),t._v(" "),r("h3",{attrs:{id:"背景色"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#背景色"}},[t._v("#")]),t._v(" 背景色")]),t._v(" "),r("table",{staticStyle:{"text-align":"center"}},[r("tr",[r("th",[t._v("主题模式")]),t._v(" "),r("th",[t._v("布局背景色")]),t._v(" "),r("th",[t._v("基础背景色")]),t._v(" "),r("th",[t._v("hover背景色")]),t._v(" "),r("th",[t._v("边框颜色")]),t._v(" "),r("th",[t._v("阴影颜色")])]),t._v(" "),r("tr",[r("td",{attrs:{rowspan:"2"}},[t._v("light/dark")]),t._v(" "),r("td",[r("color",{attrs:{color:"#f0f2f5"}})],1),t._v(" "),r("td",[r("color",{attrs:{color:"#fff"}})],1),t._v(" "),r("td",[r("color",{attrs:{color:"rgba(0,0,0,0.025)"}})],1),t._v(" "),r("td",[r("color",{attrs:{color:"#f0f0f0"}})],1),t._v(" "),r("td",[r("color",{attrs:{color:"rgba(0,0,0,0.15)"}})],1)]),t._v(" "),r("tr",[r("td",[r("code",[t._v("#f0f2f5")])]),t._v(" "),r("td",[r("code",[t._v("#fff")])]),t._v(" "),r("td",[r("code",[t._v("rgba(0,0,0,0.025)")])]),t._v(" "),r("td",[r("code",[t._v("#f0f0f0")])]),t._v(" "),r("td",[r("code",[t._v("rgba(0,0,0,0.15)")])])]),t._v(" "),r("tr",[r("td",{attrs:{rowspan:"2"}},[t._v("night")]),t._v(" "),r("td",[r("color",{attrs:{color:"#000"}})],1),t._v(" "),r("td",[r("color",{attrs:{color:"#141414"}})],1),t._v(" "),r("td",[r("color",{attrs:{color:"rgba(255,255,255,0.025)"}})],1),t._v(" "),r("td",[r("color",{attrs:{color:"#303030"}})],1),t._v(" "),r("td",[r("color",{attrs:{color:"rgba(255,255,255,0.15)"}})],1)]),t._v(" "),r("tr",[r("td",[r("code",[t._v("#000")])]),t._v(" "),r("td",[r("code",[t._v("#141414")])]),t._v(" "),r("td",[r("code",[t._v("rgba(255,255,255,0.025)")])]),t._v(" "),r("td",[r("code",[t._v("#303030")])]),t._v(" "),r("td",[r("code",[t._v("rgba(255,255,255,0.15)")])])]),t._v(" "),r("tr",[r("td",[t._v("less变量")]),t._v(" "),r("td",[t._v("@layout-bg-color")]),t._v(" "),r("td",[t._v("@base-bg-color")]),t._v(" "),r("td",[t._v("@hover-bg-color")]),t._v(" "),r("td",[t._v("@border-color")]),t._v(" "),r("td",[t._v("@shadow-color")])])]),t._v(" "),r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),r("p",[t._v("想在在你的样式文件中使用以上背景色,引用各背景色对应的 less 变量即可。")])]),t._v(" "),r("div",{staticClass:"custom-block warning"},[r("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),r("p",[t._v("目前也不支持自定义背景色,因为涉及到主题模式切换时背景色的置换问题。如强行修改,可能会导致主题模式切换时出现样式异常。\n如果你的项目不需要主题模式切换,可自行替换以上背景色。")])]),t._v(" "),r("h3",{attrs:{id:"antd-的色系"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#antd-的色系"}},[t._v("#")]),t._v(" antd 的色系")]),t._v(" "),r("p",[t._v("除了以上颜色,我们还引入了 ant-design 内置的色系。如下:")]),t._v(" "),r("table",{staticStyle:{"text-align":"center"}},[r("tr",[r("th",[t._v("色系")]),t._v(" "),r("th",[t._v("类型")]),t._v(" "),r("th",[t._v("颜色")])]),t._v(" "),r("tr",[r("td",{attrs:{rowspan:"2"}},[t._v("blue/拂晓蓝")]),t._v(" "),r("td",[t._v("色盘")]),t._v(" "),r("td",[r("color-list",{attrs:{colors:["#e6f7ff","#bae7ff","#91d5ff","#69c0ff","#40a9ff","#1890ff","#096dd9","#0050b3","#003a8c","#002766"]}})],1)]),t._v(" "),r("tr",[r("td",[t._v("less变量")]),t._v(" "),r("td",[r("code",[t._v("@blue-1")]),t._v("、\n "),r("code",[t._v("@blue-2")]),t._v(" "),r("code",[t._v("...")]),t._v(" "),r("code",[t._v("@blue-10")])])]),t._v(" "),r("tr",[r("td",{attrs:{rowspan:"2"}},[t._v("purple/酱紫")]),t._v(" "),r("td",[t._v("色盘")]),t._v(" "),r("td",[r("color-list",{attrs:{colors:["#f9f0ff","#efdbff","#d3adf7","#b37feb","#9254de","#722ed1","#531dab","#391085","#22075e","#120338"]}})],1)]),t._v(" "),r("tr",[r("td",[t._v("less变量")]),t._v(" "),r("td",[r("code",[t._v("@purple-1")]),t._v("、\n "),r("code",[t._v("@purple-2")]),t._v(" "),r("code",[t._v("...")]),t._v(" "),r("code",[t._v("@purple-10")])])]),t._v(" "),r("tr",[r("td",{attrs:{rowspan:"2"}},[t._v("cyan/明青")]),t._v(" "),r("td",[t._v("色盘")]),t._v(" "),r("td",[r("color-list",{attrs:{colors:["#e6fffb","#b5f5ec","#87e8de","#5cdbd3","#36cfc9","#13c2c2","#08979c","#006d75","#00474f","#002329"]}})],1)]),t._v(" "),r("tr",[r("td",[t._v("less变量")]),t._v(" "),r("td",[r("code",[t._v("@cyan-1")]),t._v("、\n "),r("code",[t._v("@cyan-2")]),t._v(" "),r("code",[t._v("...")]),t._v(" "),r("code",[t._v("@cyan-10")])])]),t._v(" "),r("tr",[r("td",{attrs:{rowspan:"2"}},[t._v("green/极光绿")]),t._v(" "),r("td",[t._v("色盘")]),t._v(" "),r("td",[r("color-list",{attrs:{colors:["#f6ffed","#d9f7be","#b7eb8f","#95de64","#73d13d","#52c41a","#389e0d","#237804","#135200","#092b00"]}})],1)]),t._v(" "),r("tr",[r("td",[t._v("less变量")]),t._v(" "),r("td",[r("code",[t._v("@green-1")]),t._v("、\n "),r("code",[t._v("@green-2")]),t._v(" "),r("code",[t._v("...")]),t._v(" "),r("code",[t._v("@green-10")])])]),t._v(" "),r("tr",[r("td",{attrs:{rowspan:"2"}},[t._v("magenta/法式洋红")]),t._v(" "),r("td",[t._v("色盘")]),t._v(" "),r("td",[r("color-list",{attrs:{colors:["#fff0f6","#ffd6e7","#ffadd2","#ff85c0","#f759ab","#eb2f96","#c41d7f","#9e1068","#780650","#520339"]}})],1)]),t._v(" "),r("tr",[r("td",[t._v("less变量")]),t._v(" "),r("td",[r("code",[t._v("@magenta-1")]),t._v("、\n "),r("code",[t._v("@magenta-2")]),t._v(" "),r("code",[t._v("...")]),t._v(" "),r("code",[t._v("@magenta-10")])])]),t._v(" "),r("tr",[r("td",{attrs:{rowspan:"2"}},[t._v("red/薄暮")]),t._v(" "),r("td",[t._v("色盘")]),t._v(" "),r("td",[r("color-list",{attrs:{colors:["#fff1f0","#ffccc7","#ffa39e","#ff7875","#ff4d4f","#f5222d","#cf1322","#a8071a","#820014","#5c0011"]}})],1)]),t._v(" "),r("tr",[r("td",[t._v("less变量")]),t._v(" "),r("td",[r("code",[t._v("@red-1")]),t._v("、\n "),r("code",[t._v("@red-2")]),t._v(" "),r("code",[t._v("...")]),t._v(" "),r("code",[t._v("@red-10")])])]),t._v(" "),r("tr",[r("td",{attrs:{rowspan:"2"}},[t._v("orange/日暮")]),t._v(" "),r("td",[t._v("色盘")]),t._v(" "),r("td",[r("color-list",{attrs:{colors:["#fff7e6","#ffe7ba","#ffd591","#ffc069","#ffa940","#fa8c16","#d46b08","#ad4e00","#873800","#612500"]}})],1)]),t._v(" "),r("tr",[r("td",[t._v("less变量")]),t._v(" "),r("td",[r("code",[t._v("@orange-1")]),t._v("、\n "),r("code",[t._v("@orange-2")]),t._v(" "),r("code",[t._v("...")]),t._v(" "),r("code",[t._v("@orange-10")])])]),t._v(" "),r("tr",[r("td",{attrs:{rowspan:"2"}},[t._v("yellow/日出")]),t._v(" "),r("td",[t._v("色盘")]),t._v(" "),r("td",[r("color-list",{attrs:{colors:["#feffe6","#ffffb8","#fffb8f","#fff566","#ffec3d","#fadb14","#d4b106","#ad8b00","#876800","#614700"]}})],1)]),t._v(" "),r("tr",[r("td",[t._v("less变量")]),t._v(" "),r("td",[r("code",[t._v("@yellow-1")]),t._v("、\n "),r("code",[t._v("@yellow-2")]),t._v(" "),r("code",[t._v("...")]),t._v(" "),r("code",[t._v("@yellow-10")])])]),t._v(" "),r("tr",[r("td",{attrs:{rowspan:"2"}},[t._v("volcano/火山")]),t._v(" "),r("td",[t._v("色盘")]),t._v(" "),r("td",[r("color-list",{attrs:{colors:["#fff2e8","#ffd8bf","#ffbb96","#ff9c6e","#ff7a45","#fa541c","#d4380d","#ad2102","#871400","#610b00"]}})],1)]),t._v(" "),r("tr",[r("td",[t._v("less变量")]),t._v(" "),r("td",[r("code",[t._v("@volcano-1")]),t._v("、\n "),r("code",[t._v("@volcano-2")]),t._v(" "),r("code",[t._v("...")]),t._v(" "),r("code",[t._v("@volcano-10")])])]),t._v(" "),r("tr",[r("td",{attrs:{rowspan:"2"}},[t._v("geekblue/极客蓝")]),t._v(" "),r("td",[t._v("色盘")]),t._v(" "),r("td",[r("color-list",{attrs:{colors:["#f0f5ff","#d6e4ff","#adc6ff","#85a5ff","#597ef7","#2f54eb","#1d39c4","#10239e","#061178","#030852"]}})],1)]),t._v(" "),r("tr",[r("td",[t._v("less变量")]),t._v(" "),r("td",[r("code",[t._v("@geekblue-1")]),t._v("、\n "),r("code",[t._v("@geekblue-2")]),t._v(" "),r("code",[t._v("...")]),t._v(" "),r("code",[t._v("@geekblue-10")])])]),t._v(" "),r("tr",[r("td",{attrs:{rowspan:"2"}},[t._v("lime/青柠")]),t._v(" "),r("td",[t._v("色盘")]),t._v(" "),r("td",[r("color-list",{attrs:{colors:["#fcffe6","#f4ffb8","#eaff8f","#d3f261","#bae637","#a0d911","#7cb305","#5b8c00","#3f6600","#254000"]}})],1)]),t._v(" "),r("tr",[r("td",[t._v("less变量")]),t._v(" "),r("td",[r("code",[t._v("@lime-1")]),t._v("、\n "),r("code",[t._v("@lime-2")]),t._v(" "),r("code",[t._v("...")]),t._v(" "),r("code",[t._v("@lime-10")])])]),t._v(" "),r("tr",[r("td",{attrs:{rowspan:"2"}},[t._v("gold/金盏花")]),t._v(" "),r("td",[t._v("色盘")]),t._v(" "),r("td",[r("color-list",{attrs:{colors:["#fffbe6","#fff1b8","#ffe58f","#ffd666","#ffc53d","#faad14","#d48806","#ad6800","#874d00","#613400"]}})],1)]),t._v(" "),r("tr",[r("td",[t._v("less变量")]),t._v(" "),r("td",[r("code",[t._v("@gold-1")]),t._v("、\n "),r("code",[t._v("@gold-2")]),t._v(" "),r("code",[t._v("...")]),t._v(" "),r("code",[t._v("@gold-10")])])])]),t._v("\n以上色系对应的less变量均可以在你的样式代码中直接使用。\n"),r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),r("p",[t._v("我们建议在开发中使用 "),r("code",[t._v("less变量")]),t._v(" 而不是直接使用 "),r("code",[t._v("颜色值")]),t._v(" 来设置颜色。这样做对主题色和主题模式切换很有帮助。")])]),t._v(" "),r("h2",{attrs:{id:"主题模式"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#主题模式"}},[t._v("#")]),t._v(" 主题模式")]),t._v(" "),r("p",[t._v("Vue Antd Admin 有三种主题模式,分别为:"),r("code",[t._v("light/亮色菜单模式")]),t._v("、"),r("code",[t._v("dark/暗色菜单模式")]),t._v(" 和 "),r("code",[t._v("night/黑夜模式")]),t._v("。")]),t._v(" "),r("p",[t._v("light / 亮色菜单模式:\n"),r("img",{attrs:{src:a(362),alt:"light"}}),t._v("\ndark / 暗色菜单模式:\n"),r("img",{attrs:{src:a(363),alt:"dark"}}),t._v("\nnight / 黑夜模式:\n"),r("img",{attrs:{src:a(364),alt:"night"}})]),t._v(" "),r("p",[t._v("你可以在这三种模式之间随意切换,也可以在 src/config/config.js 中设置默认的主题模式。")]),t._v(" "),r("div",{staticClass:"language-js line-numbers-mode"},[r("div",{staticClass:"highlight-lines"},[r("br"),r("br"),r("br"),r("div",{staticClass:"highlighted"},[t._v(" ")]),r("br"),r("br"),r("br"),r("br"),r("br"),r("br"),r("br"),r("br")]),r("pre",{pre:!0,attrs:{class:"language-js"}},[r("code",[t._v("module"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("exports "),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n theme"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n color"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#13c2c2'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n mode"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'night'")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//设置你的默认主题模式,可选 light、dark 和 night")]),t._v("\n "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n multiPage"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n animate"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n name"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'roll'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n direction"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'default'")]),t._v("\n "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),r("div",{staticClass:"line-numbers-wrapper"},[r("span",{staticClass:"line-number"},[t._v("1")]),r("br"),r("span",{staticClass:"line-number"},[t._v("2")]),r("br"),r("span",{staticClass:"line-number"},[t._v("3")]),r("br"),r("span",{staticClass:"line-number"},[t._v("4")]),r("br"),r("span",{staticClass:"line-number"},[t._v("5")]),r("br"),r("span",{staticClass:"line-number"},[t._v("6")]),r("br"),r("span",{staticClass:"line-number"},[t._v("7")]),r("br"),r("span",{staticClass:"line-number"},[t._v("8")]),r("br"),r("span",{staticClass:"line-number"},[t._v("9")]),r("br"),r("span",{staticClass:"line-number"},[t._v("10")]),r("br"),r("span",{staticClass:"line-number"},[t._v("11")]),r("br")])]),r("h2",{attrs:{id:"导航布局"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#导航布局"}},[t._v("#")]),t._v(" 导航布局")]),t._v(" "),r("p",[t._v("Vue Antd Admin 有两种导航布局,"),r("code",[t._v("side/侧边导航")]),t._v(" 和 "),r("code",[t._v("head/顶部导航")]),t._v("。"),r("br"),t._v("\n默认为侧边导航,你可以在 src/config/config.js 中修改导航布局")]),t._v(" "),r("div",{staticClass:"language-js line-numbers-mode"},[r("div",{staticClass:"highlight-lines"},[r("br"),r("br"),r("br"),r("br"),r("br"),r("div",{staticClass:"highlighted"},[t._v(" ")]),r("br"),r("br"),r("br"),r("br"),r("br"),r("br"),r("br")]),r("pre",{pre:!0,attrs:{class:"language-js"}},[r("code",[t._v("module"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("exports "),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n theme"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n color"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#13c2c2'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n mode"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'night'")]),t._v(" \n "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n layout"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'side'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//设置你的默认导航布局,有 side 和 head 可选")]),t._v("\n multiPage"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n animate"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n name"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'roll'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n direction"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'default'")]),t._v("\n "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),r("div",{staticClass:"line-numbers-wrapper"},[r("span",{staticClass:"line-number"},[t._v("1")]),r("br"),r("span",{staticClass:"line-number"},[t._v("2")]),r("br"),r("span",{staticClass:"line-number"},[t._v("3")]),r("br"),r("span",{staticClass:"line-number"},[t._v("4")]),r("br"),r("span",{staticClass:"line-number"},[t._v("5")]),r("br"),r("span",{staticClass:"line-number"},[t._v("6")]),r("br"),r("span",{staticClass:"line-number"},[t._v("7")]),r("br"),r("span",{staticClass:"line-number"},[t._v("8")]),r("br"),r("span",{staticClass:"line-number"},[t._v("9")]),r("br"),r("span",{staticClass:"line-number"},[t._v("10")]),r("br"),r("span",{staticClass:"line-number"},[t._v("11")]),r("br"),r("span",{staticClass:"line-number"},[t._v("12")]),r("br")])]),r("h2",{attrs:{id:"动画"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#动画"}},[t._v("#")]),t._v(" 动画")]),t._v(" "),r("p",[t._v("Vue Antd Admin 内置了 "),r("a",{attrs:{href:"https://animate.style",target:"_blank",rel:"noopener noreferrer"}},[t._v("animate.css"),r("OutboundLink")],1),t._v(" 动画库,在页面切换时会应用动画效果。你可以在 src/config/config.js 中配置动画效果或者禁用动画。")]),t._v(" "),r("div",{staticClass:"language-js line-numbers-mode"},[r("div",{staticClass:"highlight-lines"},[r("br"),r("br"),r("br"),r("br"),r("br"),r("br"),r("div",{staticClass:"highlighted"},[t._v(" ")]),r("div",{staticClass:"highlighted"},[t._v(" ")]),r("div",{staticClass:"highlighted"},[t._v(" ")]),r("div",{staticClass:"highlighted"},[t._v(" ")]),r("div",{staticClass:"highlighted"},[t._v(" ")]),r("br"),r("br")]),r("pre",{pre:!0,attrs:{class:"language-js"}},[r("code",[t._v("module"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("exports "),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n theme"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n color"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#13c2c2'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n mode"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'night'")]),t._v(" \n "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n multiPage"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n animate"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n disabled"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//禁用动画,true:禁用,false:启用")]),t._v("\n name"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'roll'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//动画效果,支持的动画效果可参考 src/config/default/animate.config.js")]),t._v("\n direction"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'default'")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//动画方向,切换页面时动画的方向,参考 src/config/default/animate.config.js")]),t._v("\n "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),r("div",{staticClass:"line-numbers-wrapper"},[r("span",{staticClass:"line-number"},[t._v("1")]),r("br"),r("span",{staticClass:"line-number"},[t._v("2")]),r("br"),r("span",{staticClass:"line-number"},[t._v("3")]),r("br"),r("span",{staticClass:"line-number"},[t._v("4")]),r("br"),r("span",{staticClass:"line-number"},[t._v("5")]),r("br"),r("span",{staticClass:"line-number"},[t._v("6")]),r("br"),r("span",{staticClass:"line-number"},[t._v("7")]),r("br"),r("span",{staticClass:"line-number"},[t._v("8")]),r("br"),r("span",{staticClass:"line-number"},[t._v("9")]),r("br"),r("span",{staticClass:"line-number"},[t._v("10")]),r("br"),r("span",{staticClass:"line-number"},[t._v("11")]),r("br"),r("span",{staticClass:"line-number"},[t._v("12")]),r("br")])]),r("p",[t._v("支持的动画特效种类,可以参考 src/config/default/animate.config.js 文件。")]),t._v(" "),r("h2",{attrs:{id:"其它"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#其它"}},[t._v("#")]),t._v(" 其它")]),t._v(" "),r("h3",{attrs:{id:"色弱模式"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#色弱模式"}},[t._v("#")]),t._v(" 色弱模式")]),t._v(" "),r("p",[t._v("对于有视觉障碍的群体,我们提供了色弱模式,你可以通过配置 src/config/config.js 启用色弱模式")]),t._v(" "),r("div",{staticClass:"language-js line-numbers-mode"},[r("div",{staticClass:"highlight-lines"},[r("br"),r("br"),r("br"),r("br"),r("br"),r("br"),r("div",{staticClass:"highlighted"},[t._v(" ")]),r("br"),r("br"),r("br"),r("br"),r("br"),r("br")]),r("pre",{pre:!0,attrs:{class:"language-js"}},[r("code",[t._v("module"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("exports "),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n theme"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n color"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#13c2c2'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n mode"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'night'")]),t._v(" \n "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n multiPage"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n weekMode"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//色弱模式,true:开启,false:不开启")]),t._v("\n animate"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n name"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'roll'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n direction"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'default'")]),t._v("\n "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),r("div",{staticClass:"line-numbers-wrapper"},[r("span",{staticClass:"line-number"},[t._v("1")]),r("br"),r("span",{staticClass:"line-number"},[t._v("2")]),r("br"),r("span",{staticClass:"line-number"},[t._v("3")]),r("br"),r("span",{staticClass:"line-number"},[t._v("4")]),r("br"),r("span",{staticClass:"line-number"},[t._v("5")]),r("br"),r("span",{staticClass:"line-number"},[t._v("6")]),r("br"),r("span",{staticClass:"line-number"},[t._v("7")]),r("br"),r("span",{staticClass:"line-number"},[t._v("8")]),r("br"),r("span",{staticClass:"line-number"},[t._v("9")]),r("br"),r("span",{staticClass:"line-number"},[t._v("10")]),r("br"),r("span",{staticClass:"line-number"},[t._v("11")]),r("br"),r("span",{staticClass:"line-number"},[t._v("12")]),r("br")])]),r("h3",{attrs:{id:"多页签"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#多页签"}},[t._v("#")]),t._v(" 多页签")]),t._v(" "),r("p",[t._v("在 src/config/config.js 设置 multiPage 来启用或关闭多页签模式")]),t._v(" "),r("div",{staticClass:"language-js line-numbers-mode"},[r("div",{staticClass:"highlight-lines"},[r("br"),r("br"),r("br"),r("br"),r("br"),r("div",{staticClass:"highlighted"},[t._v(" ")]),r("br"),r("br"),r("br"),r("br"),r("br"),r("br")]),r("pre",{pre:!0,attrs:{class:"language-js"}},[r("code",[t._v("module"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("exports "),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n theme"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n color"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#13c2c2'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n mode"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'night'")]),t._v(" \n "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n multiPage"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//多页签模式,true:开启,false:不开启")]),t._v("\n animate"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n name"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'roll'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" \n direction"),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token string"}},[t._v("'default'")]),t._v("\n "),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),r("div",{staticClass:"line-numbers-wrapper"},[r("span",{staticClass:"line-number"},[t._v("1")]),r("br"),r("span",{staticClass:"line-number"},[t._v("2")]),r("br"),r("span",{staticClass:"line-number"},[t._v("3")]),r("br"),r("span",{staticClass:"line-number"},[t._v("4")]),r("br"),r("span",{staticClass:"line-number"},[t._v("5")]),r("br"),r("span",{staticClass:"line-number"},[t._v("6")]),r("br"),r("span",{staticClass:"line-number"},[t._v("7")]),r("br"),r("span",{staticClass:"line-number"},[t._v("8")]),r("br"),r("span",{staticClass:"line-number"},[t._v("9")]),r("br"),r("span",{staticClass:"line-number"},[t._v("10")]),r("br"),r("span",{staticClass:"line-number"},[t._v("11")]),r("br")])]),r("p",[t._v("完整的系统设置参考 src/config/default/setting.config.js")]),t._v(" "),r("div",{staticClass:"custom-block tip"},[r("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),r("p",[t._v("以上所有主题设置项,均已映射到 vuex/setting 模块的 state 中,你可以通过提交 setting/mutations 实时修改设置项。"),r("br"),t._v("\n如何使用 "),r("a",{attrs:{href:"https://vuex.vuejs.org/zh/guide/mutations.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("mutations"),r("OutboundLink")],1),t._v(" ?")])])],1)}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/7.1b0a900f.js b/assets/js/7.1b0a900f.js new file mode 100644 index 0000000..417b3c0 --- /dev/null +++ b/assets/js/7.1b0a900f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{320:function(t,e,n){},365:function(t,e,n){"use strict";var o=n(320);n.n(o).a},372:function(t,e,n){"use strict";n.r(e);var o={name:"Alert",props:["show"],data:function(){return{top:100}},mounted:function(){var t=this;console.log(this),setTimeout((function(){t.$el.remove()}),1e3)}},s=(n(365),n(18)),i=Object(s.a)(o,(function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"alert",style:"top: "+this.top+"px"},[this._t("default")],2)}),[],!1,null,"0da1f1dd",null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/8.fe7f978a.js b/assets/js/8.fe7f978a.js new file mode 100644 index 0000000..b4e16d5 --- /dev/null +++ b/assets/js/8.fe7f978a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{321:function(t,o,n){},366:function(t,o,n){"use strict";var s=n(321);n.n(s).a},373:function(t,o,n){"use strict";n.r(o);var s={name:"ColorList",props:["colors"]},r=(n(366),n(18)),c=Object(r.a)(s,(function(){var t=this.$createElement,o=this._self._c||t;return o("div",this._l(this.colors,(function(t,n){return o("color",{key:n,staticClass:"color",attrs:{color:t}})})),1)}),[],!1,null,"09dc489b",null);o.default=c.exports}}]); \ No newline at end of file diff --git a/assets/js/9.b6ba06c2.js b/assets/js/9.b6ba06c2.js new file mode 100644 index 0000000..7399cea --- /dev/null +++ b/assets/js/9.b6ba06c2.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{323:function(t,e,n){},369:function(t,e,n){"use strict";var i=n(323);n.n(i).a},401:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(369),n(18)),a=Object(r.a)(i,void 0,void 0,!1,null,"15b7b770",null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/app.1db8bb78.js b/assets/js/app.1db8bb78.js new file mode 100644 index 0000000..42ad445 --- /dev/null +++ b/assets/js/app.1db8bb78.js @@ -0,0 +1,13 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,u=e[0],c=e[1],s=e[2],f=0,p=[];f0?o(r(t),9007199254740991):0}},function(t,e){var n=Array.isArray;t.exports=n},function(t,e,n){var r=n(32),o=n(21);t.exports=function(t){return r(o(t))}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(140),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();t.exports=i},function(t,e,n){"use strict";function r(t,e,n,r,o,i,a,u){var c,s="function"==typeof t?t.options:t;if(e&&(s.render=e,s.staticRenderFns=n,s._compiled=!0),r&&(s.functional=!0),i&&(s._scopeId="data-v-"+i),a?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},s._ssrRegister=c):o&&(c=u?function(){o.call(this,(s.functional?this.parent:this).$root.$options.shadowRoot)}:o),c)if(s.functional){s._injectStyles=c;var l=s.render;s.render=function(t,e){return c.call(e),l(t,e)}}else{var f=s.beforeCreate;s.beforeCreate=f?[].concat(f,c):[c]}return{exports:t,options:s}}n.d(e,"a",(function(){return r}))},function(t,e,n){var r=n(7),o=n(1),i=n(5),a=Object.defineProperty,u={},c=function(t){throw t};t.exports=function(t,e){if(i(u,t))return u[t];e||(e={});var n=[][t],s=!!i(e,"ACCESSORS")&&e.ACCESSORS,l=i(e,0)?e[0]:c,f=i(e,1)?e[1]:void 0;return u[t]=!!n&&!o((function(){if(s&&!r)return!0;var t={length:-1};s?a(t,1,{enumerable:!0,get:c}):t[1]=1,n.call(t,l,f)}))}},function(t,e,n){var r=n(112),o=n(3),i=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e){t.exports=!1},function(t,e,n){var r=n(7),o=n(79),i=n(34),a=n(15),u=n(33),c=n(5),s=n(107),l=Object.getOwnPropertyDescriptor;e.f=r?l:function(t,e){if(t=a(t),e=u(e,!0),s)try{return l(t,e)}catch(t){}if(c(t,e))return i(!o.f.call(t,e),t[e])}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},function(t,e,n){var r=n(222),o=n(225);t.exports=function(t,e){var n=o(t,e);return r(n)?n:void 0}},function(t,e,n){"use strict";var r=n(0),o=n(30).filter,i=n(52),a=n(19),u=i("filter"),c=a("filter");r({target:"Array",proto:!0,forced:!u||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,e,n){"use strict";var r=n(130).charAt,o=n(29),i=n(113),a=o.set,u=o.getterFor("String Iterator");i(String,"String",(function(t){a(this,{type:"String Iterator",string:String(t),index:0})}),(function(){var t,e=u(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},function(t,e,n){var r,o,i,a=n(182),u=n(3),c=n(4),s=n(11),l=n(5),f=n(48),p=n(36),h=u.WeakMap;if(a){var d=new h,v=d.get,y=d.has,m=d.set;r=function(t,e){return m.call(d,t,e),e},o=function(t){return v.call(d,t)||{}},i=function(t){return y.call(d,t)}}else{var g=f("state");p[g]=!0,r=function(t,e){return s(t,g,e),e},o=function(t){return l(t,g)?t[g]:{}},i=function(t){return l(t,g)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=o(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}}},function(t,e,n){var r=n(50),o=n(32),i=n(12),a=n(13),u=n(129),c=[].push,s=function(t){var e=1==t,n=2==t,s=3==t,l=4==t,f=6==t,p=5==t||f;return function(h,d,v,y){for(var m,g,b=i(h),_=o(b),x=r(d,v,3),w=a(_.length),O=0,S=y||u,j=e?S(h,w):n?S(h,0):void 0;w>O;O++)if((p||O in _)&&(g=x(m=_[O],O,b),t))if(e)j[O]=g;else if(g)switch(t){case 3:return!0;case 5:return m;case 6:return O;case 2:c.call(j,m)}else if(l)return!1;return f?-1:s||l?l:j}};t.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6)}},function(t,e,n){var r=n(40),o=n(207),i=n(208),a=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":a&&a in Object(t)?o(t):i(t)}},function(t,e,n){var r=n(1),o=n(16),i="".split;t.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==o(t)?i.call(t,""):Object(t)}:Object},function(t,e,n){var r=n(4);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r,o=n(6),i=n(181),a=n(77),u=n(36),c=n(111),s=n(74),l=n(48),f=l("IE_PROTO"),p=function(){},h=function(t){return" + + diff --git a/develop/layout.html b/develop/layout.html new file mode 100644 index 0000000..d638007 --- /dev/null +++ b/develop/layout.html @@ -0,0 +1,72 @@ + + + + + + 布局 | Vue Antd Admin + + + + + + + +

+ + + diff --git a/develop/mock.html b/develop/mock.html new file mode 100644 index 0000000..4ac70a1 --- /dev/null +++ b/develop/mock.html @@ -0,0 +1,41 @@ + + + + + + Mock | Vue Antd Admin + + + + + + + + + + + diff --git a/develop/page.html b/develop/page.html new file mode 100644 index 0000000..e55e69d --- /dev/null +++ b/develop/page.html @@ -0,0 +1,212 @@ + + + + + + 页面 | Vue Antd Admin + + + + + + + +

# 页面

这里的『页面』包含新建页面文件,配置路由、样式文件及i18n国际化等。通常情况下,你仅需简单的配置就可以添加一个新的页面。

# 新建页面文件

在 src/pages 下创建新的 .vue 文件。如果页面相关文件过多,您可以创建一个文件夹来放置这些文件。

  ├── public
+  ├── src
+  │   ├── assets               # 本地静态资源
+  :   :
+  │   ├── pages                # 页面组件和通用模板
++ │   │   └── NewPage.vue      # 新页面文件
+or
++ │   │   └── newPage          # 为新页面创建一个文件夹
++ │   │       ├── NewPage.vue  # 新页面文件
++ │   │       ├── index.less   # 页面样式文件
++ │   │       └── index.js     # import 引导文件
+  :   :
+  │   └── main.js              # 应用入口js
+  ├── package.json             # package.json
+  ├── README.md                # README.md
+  └── vue.config.js            # vue 配置文件
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

为了更好地演示,我们初始化 NewPage.vue 文件如下:

<template>
+  <div class="new-page" :style="`min-height: ${pageMinHeight}px`">
+    <h1>演示页面</h1>
+  </div>
+</template>
+<script>
+  import {mapState} from 'vuex'
+  export default {
+    name: 'NewPage',
+    data() {
+      return {
+        desc: '这是一个演示页面'
+      }
+    },
+    computed: {
+      ...mapState('setting', ['pageMinHeight']),
+    }
+  }
+</script>
+<style scoped lang="less">
+@import "index.less";
+</style>
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

index.less 文件:

.new-page{
+  height: 100%;
+  background-color: @base-bg-color;
+  text-align: center;
+  padding: 200px 0 0 0;
+  margin-top: -24px;
+  h1{
+    font-size: 48px;
+  }
+}
+
1
2
3
4
5
6
7
8
9
10

index.js 文件:

import NewPage from './NewPage'
+export default NewPage
+
1
2

# 配置路由

路由配置在 src/router/config.js 文件中,我们把上面创建的页面文件加入路由配置中










 
 
 
 
 















const options = {
+  routes: [
+    {name: '登录页'...},
+    {
+      path: '/',
+      name: '首页',
+      component: TabsView,
+      redirect: '/login',
+      children: [
+        {
+          path: 'newPage',
+          name: '新页面',
+          component: () => import('@/pages/newPage'),
+        },
+        {
+          path: 'dashboard',
+          name: 'Dashboard',
+          meta: {
+            icon: 'dashboard'
+          },
+          component: BlankView,
+          children: [...]
+        }
+      ]
+      ...
+    }
+  ]
+}
+
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

TIP

我们建议使用英文设置路由的 path 属性,用中文设置路由的 name 属性。因为系统将自动提取路由的 path 和 name 属性作为国际化配置。这在后面的章节 +进阶>国际化中将会讲到。 +当然,如果你的项目不需要国际化,可以忽略。

启动服务,你将看到新增页面如下: +newPage +如果你想把它配置为二级页面或更深层级的页面,只需为它配置一个父级路由,并为父级路由配置一个视图组件, +这里我们选择 PageView,如下:










 
 
 
 
 
 
 
 
 
 
 
 







const options = {
+  routes: [
+    {name: '登录页'...},
+    {
+      path: '/',
+      name: '首页',
+      component: TabsView,
+      redirect: '/login',
+      children: [
+        {
+          path: 'parent',
+          name: '父级路由',
+          component: PageView,
+          children: [
+            {
+              path: 'newPage',
+              name: '新页面',
+              component: () => import('@/pages/newPage'),
+            }
+          ]
+        },
+        {name: 'dashboard'...}
+      ]
+      ...
+    }
+  ]
+}
+
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

WARNING

页面所有父级路由的组件必须配置为视图组件,否则页面的内容可能不会显示。
+目前有 PageView、 +TabsView 和 +BlankView 可选, +你也可以自己创建视图组件。(什么是视图组件?

页面如下: +newPage2

# i18n国际化配置

如果你想为页面增加i18n国际化配置,只需在页面同级文件夹下创建 i18n.js 文件,然后在页面文件中引入并使用即可。
+创建 i18n.js 文件:









 







  ├── public
+  ├── src
+  │   ├── assets               # 本地静态资源
+  :   :
+  │   ├── pages                # 页面组件和通用模板
+  │   │   └── newPage        # 为新页面创建一个文件夹
+  │   │       ├── NewPage.vue  # 新页面文件
+  │   │       ├── index.less   # 页面样式文件
++ │   │       ├── i18n.js      # i18n 国际化配置文件
+  │   │       └── index.js     # import 引导文件
+  :   :
+  │   └── main.js              # 应用入口js
+  ├── package.json             # package.json
+  ├── README.md                # README.md
+  └── vue.config.js            # vue 配置文件
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

i18n.js 文件内容:

module.exports = {
+  messages: {
+    CN: {
+      content: '演示页面',
+      description: '这是一个演示页面'
+    },
+    HK: {
+      content: '演示頁面',
+      description: '這是一個演示頁面'
+    },
+    US: {
+      content: 'Demo Page',
+      description: 'This is a demo page'
+    }
+  }
+}
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

在 NewPage.vue 文件中引入 i18n.js,并添加需要国际化的内容。如下修改:



 






 


 
 
 







<template>
+  <div class="new-page" :style="`min-height: ${pageMinHeight}px`">
+    <h1>{{$t('content')}}</h1>
+  </div>
+</template>
+<script>
+  import {mapState} from 'vuex'
+  export default {
+    name: 'NewPage',
+    i18n: require('./i18n'),
+    computed: {
+      ...mapState('setting', ['pageMinHeight']),
+      desc() {
+        return this.$t('description')
+      }
+    }
+  }
+</script>
+<style scoped lang="less">
+@import "index";
+</style>
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

然后页面右上角语言项选择 English,你会发现,页面语言切换为英文了。如下: +newPageUs +一切就是这么的简单!

TIP

如果你尝试切换为繁体语言,可能会发现页面标题面包屑显示为英文。
+这涉及到路由的国际化配置,在章节 进阶 > 国际化 中,我们会对此作详细讲解。

+ + + diff --git a/develop/router.html b/develop/router.html new file mode 100644 index 0000000..c680ee3 --- /dev/null +++ b/develop/router.html @@ -0,0 +1,126 @@ + + + + + + 路由和菜单 | Vue Antd Admin + + + + + + + +

# 路由和菜单

路由和菜单起到组织一个应用的关键骨架的作用,Vue Antd Admin 使用 vue-router 来配置和管理我们的路由和菜单。

# 基本结构

得益于 vue-router 路由配置的可扩展性,Vue Antd Admin 通过结合 router 配置文件、基本算法及 menu.js 菜单生成工具,搭建了路由和菜单的基本框架,主要涉及以下几个模块/功能:

功能 配置
路由管理 通过 vue-router 的路由规则进行管理和配置
菜单生成 根据路由配置自动生成菜单,菜单项名称、图标和层级等全部可以通过路由配置进行自定义
面包屑 布局组件 PageLayout 提取当前页面路由,并根据当前路由层次关系自动生成面包屑,当然你也可以自定义面包屑
页面标题 同面包屑,布局组件 PageLayout 根据提取到的当前页面的路由名称设置为页面标题,你也同样可以自定义标题

# 路由

Vue Antd Admin 的路由配置完全遵循 vue-router 的 routes 配置规则。 +另外我们还在 routes 的元数据属性 meta 中注入了三个属性 icon、invisible 和 page,它们将在生成菜单和页头时发挥作用。配置示例如下:







 





 















const options = {
+  routes: [{
+    path: '/',
+    name: '首页',
+    component: TabsView,
+    meta: {
+      invisible: true
+    },
+    children: [{
+      path: 'dashboard',
+      name: 'Dashboard',
+      meta: {
+        icon: 'dashboard'
+      },
+      component: BlankView,
+      children: [{
+        path: 'workplace',
+        name: '工作台',
+        component: () => import('@/pages/dashboard/workplace/WorkPlace'),
+      }, {
+        path: 'analysis',
+        name: '分析页',
+        component: () => import('@/pages/dashboard/analysis/Analysis'),
+      }]
+    }]
+  }]
+}
+
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

完整配置示例,请查看 src/router/config.js

# 菜单

Admin 系统的菜单直接通过路由配置生成,路由属性和菜单功能对应关系如下

路由属性 对应菜单功能
name 菜单名称
path 点击菜单时的跳转链接
meta.icon 菜单图标,图标使用 ant-design-vue 图标库,对应 Icon 组件 的 type 属性
meta.invisible 是否不将此路由项渲染为菜单项,默认false;如设置为 true,则生成菜单时将忽略此路由

假如使用上面 路由 文档中的 配置示例,将会生成如下菜单:

menu-demo +实际项目中,我们是在 AdminLayout 组件创建之前,提取 router 配置中根路由 '/' 下所有子路由配置, +并将此配置传递给 menu.js 插件,从而生成菜单。如下:




 







 
 
 



<template>
+  <a-layout :class="['admin-layout'...]">
+    ...
+    <side-menu :menuData="menuData".../>
+  </a-layout>
+</template>
+<script>
+import ...
+export default {
+  name: 'AdminLayout',
+  ...
+  beforeCreate () {
+    menuData = this.$router.options.routes.find((item) => item.path === '/').children
+  }
+}
+</script>
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

详细代码可查看 layouts/AdminLayout#L83
+当然你也可以不使用 router 配置生成菜单,你只需按照配置规则给菜单传递你所定义配置即可。菜单组件配置规则如下:

[{
+  name: '菜单标题',
+  path: '菜单路由',
+  meta: {
+    icon: '菜单图标',
+    invisible: 'boolean, 是否隐藏此菜单项, 默认 false',
+  },
+  children: [ //子菜单配置
+    {
+      name: '子菜单标题',
+      path: '子菜单路由',
+      meta: {
+        icon: '子菜单图标',
+        invisible: 'boolean, 是否隐藏此菜单项, 默认 false',
+      },
+    }
+  ]
+}]
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

更多细节可查看 components/menu/menu.js

# 面包屑

面包屑由 PageHeader 实现,PageLayout 组件会从当前页面路由提取面包屑配置(如未设置,则根据当前路由层次关系生成面包屑)。所以只要页面中使用了 PageLayout 布局或者它的父级组件使用了 PageLayout 布局,面包屑都将自动生成。

当然,如果你想在某个页面自定义面包屑,只需在对应的路由元数据 meta 中定义 page.breadcrumb 属性即可。Vue Antd Admin 将会优先使用路由元数据 meta 中定义的面包屑配置。

比如,想自定义工作台页面面包屑,可以在工作台的 route 配置中如下设置:





 
 
 




{
+  path: 'workplace',
+  name: '工作台',
+  meta: {
+    page: {
+      breadcrumb: ['首页', 'Dashboard', '自定义']
+    }
+  },
+  component: () => import('@/pages/dashboard/workplace/WorkPlace'),
+}
+
1
2
3
4
5
6
7
8
9
10

更多细节可查看 layouts/PageLayout.vue#L55

# 页面标题

页面标题的实现方式与面包屑基本一致,也是由 PageLayout 组件从当前页面路由提取标题(如未设置,则提取当前路由名称作为标题)。

如果你想自定义页面标题,在页面对应的路由元数据 meta 中定义 page.title 属性即可,如下示例,定义了工作台页面的标题:





 
 
 




{
+  path: 'workplace',
+  name: '工作台',
+  meta: {
+    page: {
+      title: '自定义标题'
+    }
+  },
+  component: () => import('@/pages/dashboard/workplace/WorkPlace'),
+}
+
1
2
3
4
5
6
7
8
9
10

更多细节可查看 layouts/PageLayout.vue#L48

+ + + diff --git a/develop/service.html b/develop/service.html new file mode 100644 index 0000000..963becb --- /dev/null +++ b/develop/service.html @@ -0,0 +1,148 @@ + + + + + + 服务端交互 | Vue Antd Admin + + + + + + + +

# 服务端交互

数据服务是一个应用的灵魂,它驱动着应用的各个功能模块的正常运转。Vue Antd Admin 在 service 模块封装了服务端交互,通过 API 的形式可以和任何技术栈的服务端应用一起工作。

# 服务交互流程

在 Vue Antd Admin 中,服务端交互流程如下:

  • 组件内调用 service 服务 API
  • service 服务 API 封装请求数据,通过 request.js 发送请求
  • 组件获取 service 返回的数据,更新视图数据或触发其它行为

我们以登录为例,Login.vue 组件内,用户输入账号密码,点击登录,调用 services/user/login api





 











 







<template>
+  ...
+</template>
+<script>
+import {login} from '@/services/user'
+...
+export default {
+  name: 'Login',
+  methods: {
+    onSubmit (e) {
+      e.preventDefault()
+      this.form.validateFields((err) => {
+        if (!err) {
+          this.logging = true
+          const name = this.form.getFieldValue('name')
+          const password = this.form.getFieldValue('password')
+          login(name, password).then(res => this.afterLogin(res))
+        }
+      })
+    }
+  }
+}
+</script>
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

services/user/login 封装账户密码数据,通过 request.js 发送登录服务请求

import {request, METHOD} from '@/utils/request'
+/**
+ * 登录服务
+ * @param name 账户名
+ * @param password 账户密码
+ * @returns {Promise<AxiosResponse<T>>}
+ */
+async function login(name, password) {
+  return request(LOGIN, METHOD.POST, {
+    name: name,
+    password: password
+  })
+}
+
1
2
3
4
5
6
7
8
9
10
11
12
13

Login.vue 获取登录服务返回的数据,进行后续操作














 



 
 
 
 
 
 





<template>
+  ...
+</template>
+<script>
+import {login} from '@/services/user'
+...
+export default {
+  name: 'Login',
+  methods: {
+    onSubmit (e) {
+      this.form.validateFields((err) => {
+        if (!err) {
+          ...
+          login(name, password).then(res => this.afterLogin(res))
+        }
+      })
+    },
+    afterLogin(res) {
+      if (res.data.code >= 0) {                 //登录成功
+        ...
+      } else {                                  //登录失败
+        this.error = loginRes.message
+      }
+    }
+  }
+}
+</script>
+
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

# 服务模块结构

服务模块结构如下:

...
+├── src
+│   └── services                # 数据服务模块
+│       ├── user.js             # 用户数据服务
+│       ├── product.js          # 产品服务
+│       ...           
+│       ├── api.js              # api 地址管理
+│       └── index.js            # 服务模块导出
+...
+│   └── utils                   # 数据服务模块
+│       ├── request.js          # 基于 axios 的 http 请求工具
+...
+
1
2
3
4
5
6
7
8
9
10
11
12

services 文件夹下, api.js 用于服务请求地址的统一管理,index.js 用于模块化导出服务,其它 *.js 文件对应各个服务模块。

# request.js

request.js 基于 axios 封装了一些常用的函数,如下:

export {
+  METHOD,                 //http method 常量
+  AUTH_TYPE,              //凭证认证类型 常量
+  request,                //http请求函数
+  setAuthorization,       //设置身份凭证函数
+  removeAuthorization,    //移除身份凭证函数
+  checkAuthorization      //检查身份凭证是否过期函数
+}
+
1
2
3
4
5
6
7
8

TIP

凭证认证类型默认为 Bearer,你可以根据自己的需要实现其它类型的认证

# Base url 配置

你可以在项目根目录下的环境变量文件(.env 和 .env.development)中配置你的 API 服务 base url 地址。

生产环境,.env 文件

VUE_APP_API_BASE_URL=https://www.server.com
+
1

开发环境,.env.development 文件:

VUE_APP_API_BASE_URL=https://localhost:8000
+
1

# 跨域设置

在开发环境中,通常我们的Vue应用和服务应用运行在不同的地址或端口上。我们可以通过简单的设置,代理前端请求,来避免跨域问题。如下:

首先,在 services/api.js 文件中设置 API_PROXY_PREFIX 常量,BASE_URL 像下面这样设置:


 

 






//跨域代理前缀
+const API_PROXY_PREFIX='/api'
+//base url
+const BASE_URL = process.env.NODE_ENV === 'production' ? process.env.VUE_APP_API_BASE_URL : API_PROXY_PREFIX
+//导出api服务地址
+module.exports = {
+  LOGIN: `${BASE_URL}/login`,
+  ROUTES: `${BASE_URL}/routes`
+}
+
1
2
3
4
5
6
7
8
9

然后,在 vue.config.js 文件中配置代理:

model.exports = {
+  devServer: {
+    proxy: {
+      '/api': {               //此处要与 /services/api.js 中的 API_PROXY_PREFIX 值保持一致
+        target: process.env.VUE_APP_API_BASE_URL,
+        changeOrigin: true,
+        pathRewrite: {
+          '^/api': ''
+        }
+      }
+    }
+  }
+}
+
1
2
3
4
5
6
7
8
9
10
11
12
13

TIP

此代理配置仅适用于开发环境,生产环境的跨域代理请在自己的web服务器配置。

+ + + diff --git a/develop/theme.html b/develop/theme.html new file mode 100644 index 0000000..4679c02 --- /dev/null +++ b/develop/theme.html @@ -0,0 +1,147 @@ + + + + + + 主题定制 | Vue Antd Admin + + + + + + + +

# 主题定制

# 主题颜色

# 主题色

我们内置了一个色盘供您选择

如果这不能满足你的需求,你也可以使用任何你喜欢的颜色,只需要在 src/config/config.js 文件中配置你的主题色即可。如:



 









module.exports = {
+  theme: {
+    color: '#13c2c2', //换成任何你喜欢的颜色,支持 hex 色值
+    mode: 'night'
+  },
+  multiPage: true,
+  animate: {
+    name: 'roll',
+    direction: 'default'
+  }
+}
+
1
2
3
4
5
6
7
8
9
10
11

当你设置好主题色后,系统会根据这个主题色为你生成一系列配套的颜色,并应用到vue组件中。

TIP

你可以在你的样式文件中直接使用 less 变量 @theme-color

WARNING

主题色目前只支持 hex 模式的色值。如果设置为 rgb 或其它模式的色值,可能会导致配套颜色无法生成。

# 功能色

除了主题色,系统还有一些功能性颜色,分别为:成功色、警告色和错误色。默认色值分别为:

名称 success warning error
色值 #52c41a #faad14 #f5222d
颜色
less变量 @success-color @warning-color @error-color

你也可以在 src/config/config.js 重新定义这些功能色





 
 
 








module.exports = {
+  theme: {
+    color: '#13c2c2', 
+    mode: 'night',
+    success: '#52c41a', //定义成功色,支持 hex 色值
+    warning: '#faad14', //定义警告色,支持 hex 色值
+    error: '#f5222d'    //定义错误色,支持 hex 色值
+  },
+  multiPage: true,
+  animate: {
+    name: 'roll',
+    direction: 'default'
+  }
+}
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14

TIP

想在在你的样式文件中使用以上各功能色,引用各功能色对应的 less 变量即可。

WARNING

功能色目前也只支持 hex 模式的色值。如果设置为 rgb 或其它模式的色值,可能会导致配套颜色无法生成。

# 文本色

主题模式 标题色 文本色 次级文本色
light/dark
rgba(0,0,0,0.85) rgba(0,0,0,0.65) rgba(0,0,0,0.45)
night
rgba(255,255,255,0.85) rgba(255,255,255,0.65) rgba(255,255,255,0.45)
less变量 @title-color @text-color @text-color-second

TIP

想在在你的样式文件中使用以上文本色,引用各文本色对应的 less 变量即可。

WARNING

目前不支持自定义文本色,因为涉及到主题模式切换时文本色的置换问题。如强行修改,可能会导致主题模式切换时出现样式异常。 +如果你的项目不需要主题模式切换,可自行替换以上文本色。

# 背景色

主题模式 布局背景色 基础背景色 hover背景色 边框颜色 阴影颜色
light/dark
#f0f2f5 #fff rgba(0,0,0,0.025) #f0f0f0 rgba(0,0,0,0.15)
night
#000 #141414 rgba(255,255,255,0.025) #303030 rgba(255,255,255,0.15)
less变量 @layout-bg-color @base-bg-color @hover-bg-color @border-color @shadow-color

TIP

想在在你的样式文件中使用以上背景色,引用各背景色对应的 less 变量即可。

WARNING

目前也不支持自定义背景色,因为涉及到主题模式切换时背景色的置换问题。如强行修改,可能会导致主题模式切换时出现样式异常。 +如果你的项目不需要主题模式切换,可自行替换以上背景色。

# antd 的色系

除了以上颜色,我们还引入了 ant-design 内置的色系。如下:

色系 类型 颜色
blue/拂晓蓝 色盘
less变量 @blue-1、 + @blue-2 ... @blue-10
purple/酱紫 色盘
less变量 @purple-1、 + @purple-2 ... @purple-10
cyan/明青 色盘
less变量 @cyan-1、 + @cyan-2 ... @cyan-10
green/极光绿 色盘
less变量 @green-1、 + @green-2 ... @green-10
magenta/法式洋红 色盘
less变量 @magenta-1、 + @magenta-2 ... @magenta-10
red/薄暮 色盘
less变量 @red-1、 + @red-2 ... @red-10
orange/日暮 色盘
less变量 @orange-1、 + @orange-2 ... @orange-10
yellow/日出 色盘
less变量 @yellow-1、 + @yellow-2 ... @yellow-10
volcano/火山 色盘
less变量 @volcano-1、 + @volcano-2 ... @volcano-10
geekblue/极客蓝 色盘
less变量 @geekblue-1、 + @geekblue-2 ... @geekblue-10
lime/青柠 色盘
less变量 @lime-1、 + @lime-2 ... @lime-10
gold/金盏花 色盘
less变量 @gold-1、 + @gold-2 ... @gold-10
+以上色系对应的less变量均可以在你的样式代码中直接使用。 +

TIP

我们建议在开发中使用 less变量 而不是直接使用 颜色值 来设置颜色。这样做对主题色和主题模式切换很有帮助。

# 主题模式

Vue Antd Admin 有三种主题模式,分别为:light/亮色菜单模式dark/暗色菜单模式night/黑夜模式

light / 亮色菜单模式: +light +dark / 暗色菜单模式: +dark +night / 黑夜模式: +night

你可以在这三种模式之间随意切换,也可以在 src/config/config.js 中设置默认的主题模式。




 








module.exports = {
+  theme: {
+    color: '#13c2c2',
+    mode: 'night'       //设置你的默认主题模式,可选 light、dark 和 night
+  },
+  multiPage: true,
+  animate: {
+    name: 'roll',
+    direction: 'default'
+  }
+}
+
1
2
3
4
5
6
7
8
9
10
11

# 导航布局

Vue Antd Admin 有两种导航布局,side/侧边导航head/顶部导航
+默认为侧边导航,你可以在 src/config/config.js 中修改导航布局






 







module.exports = {
+  theme: {
+    color: '#13c2c2',
+    mode: 'night'       
+  },
+  layout: 'side',     //设置你的默认导航布局,有 side 和 head 可选
+  multiPage: true,
+  animate: {
+    name: 'roll',
+    direction: 'default'
+  }
+}
+
1
2
3
4
5
6
7
8
9
10
11
12

# 动画

Vue Antd Admin 内置了 animate.css 动画库,在页面切换时会应用动画效果。你可以在 src/config/config.js 中配置动画效果或者禁用动画。







 
 
 
 
 


module.exports = {
+  theme: {
+    color: '#13c2c2',
+    mode: 'night'       
+  },
+  multiPage: true,
+  animate: {
+    disabled: false,      //禁用动画,true:禁用,false:启用
+    name: 'roll',         //动画效果,支持的动画效果可参考 src/config/default/animate.config.js
+    direction: 'default'  //动画方向,切换页面时动画的方向,参考 src/config/default/animate.config.js
+  }
+}
+
1
2
3
4
5
6
7
8
9
10
11
12

支持的动画特效种类,可以参考 src/config/default/animate.config.js 文件。

# 其它

# 色弱模式

对于有视觉障碍的群体,我们提供了色弱模式,你可以通过配置 src/config/config.js 启用色弱模式







 






module.exports = {
+  theme: {
+    color: '#13c2c2',
+    mode: 'night'       
+  },
+  multiPage: true,
+  weekMode: false,   //色弱模式,true:开启,false:不开启
+  animate: {
+    name: 'roll',         
+    direction: 'default'
+  }
+}
+
1
2
3
4
5
6
7
8
9
10
11
12

# 多页签

在 src/config/config.js 设置 multiPage 来启用或关闭多页签模式






 






module.exports = {
+  theme: {
+    color: '#13c2c2',
+    mode: 'night'       
+  },
+  multiPage: true,          //多页签模式,true:开启,false:不开启
+  animate: {
+    name: 'roll',         
+    direction: 'default'
+  }
+}
+
1
2
3
4
5
6
7
8
9
10
11

完整的系统设置参考 src/config/default/setting.config.js

TIP

以上所有主题设置项,均已映射到 vuex/setting 模块的 state 中,你可以通过提交 setting/mutations 实时修改设置项。
+如何使用 mutations

+ + + diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..47bf70b9def4bdda7fd3cb9fdbba9e794c2bfb7f GIT binary patch literal 2913 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 vtdaM>o + + + + + Vue Antd Admin + + + + + + + +
hero

+ Vue Antd Admin +

+ 开箱即用的中台前端/设计解决方案 +

+ 快速上手 → +

简洁

以 Markdown 为中心的项目结构,以最少的配置帮助你专注于写作。

优雅

享受 Vue + webpack 的开发体验,在 Markdown 中使用 Vue 组件,同时可以使用 Vue 来开发自定义主题。

自然

VuePress 为每个页面预渲染生成静态的 HTML,同时在页面被加载的时候,将作为 SPA 运行。

+ + + diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..62bfe39aaad240dc0daa7dd5f48a80d1feedc002 GIT binary patch literal 26705 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Ú)iw@EROzI;@MB?O80_sB- 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 + + + + + 社区 | Vue Antd Admin + + + + + + + + + + + diff --git a/other/index.html b/other/index.html new file mode 100644 index 0000000..af167a3 --- /dev/null +++ b/other/index.html @@ -0,0 +1,33 @@ + + + + + + 其它 | Vue Antd Admin + + + + + + + + + + + diff --git a/other/upgrade.html b/other/upgrade.html new file mode 100644 index 0000000..abf615f --- /dev/null +++ b/other/upgrade.html @@ -0,0 +1,41 @@ + + + + + + 更新日志 | Vue Antd Admin + + + + + + + + + + + diff --git a/start/faq.html b/start/faq.html new file mode 100644 index 0000000..c6b9318 --- /dev/null +++ b/start/faq.html @@ -0,0 +1,42 @@ + + + + + + 常见问题 | Vue Antd Admin + + + + + + + +

# 常见问题

# 为什么不是 Ant Design Pro Vue ?

Ant Design Pro VueAnt Design Pro 的 Vue 版本,其中项目结构、组件、 +布局和使用方法等基本与 Ant Design Pro 的 react 版本保持一致。如果你比较熟悉 react 版,或者你已经在使用它,这确实是一个不错的选择。

Vue Antd Admin 同样实现了 Ant Design Pro 的所有功能。与此同时,我们还根据 Vue 的特性,对 Ant Design Pro 的一些组件和布局作出了相应的修改及优化,同时不影响保持与 Ant Design Pro 的一致。

另外,我们还在添加一些 Ant Design Pro 没有的功能,比如全局动画、多页签模式等。

如果你想使用 Ant Design Pro,但又觉得它缺乏一些你想要的功能,不妨看看 Vue Antd Admin,我们会认真考虑每个用户的需求。

因此,如果你有一些不错的想法和建议,欢迎随时和我们交流,很可能你的想法就在我们下一个版本中实现。

# 如何使用 Vue Antd Admin ?

请阅读文档 开始使用。有任何疑问,欢迎在 github 上给我们提交 issue

# 是否支持国际化 ?

Vue Antd Admin 引入了 vue-i18n 支持。因此你可以使用 vue-i18n 的特性对项目做国际化修改,详细请查看 国际化

+ + + diff --git a/start/index.html b/start/index.html new file mode 100644 index 0000000..f96ab68 --- /dev/null +++ b/start/index.html @@ -0,0 +1,33 @@ + + + + + + 开始 | Vue Antd Admin + + + + + + + + + + + diff --git a/start/use.html b/start/use.html new file mode 100644 index 0000000..e62b62e --- /dev/null +++ b/start/use.html @@ -0,0 +1,69 @@ + + + + + + 使用 | Vue Antd Admin + + + + + + + +

# 使用

# 准备

你的本地环境需要安装 yarn、node 和 git。我们的技术栈基于 ES2015+、Vue、Antd,提前学习这些知识会非常有帮助。

# 安装

克隆本项目到本地

$ git clone https://github.com/iczer/vue-antd-admin.git
+
1

安装依赖

$ yarn install
+or
+$ npm install
+
1
2
3

TIP

master 分支是 Vue Antd Admin 的标准版代码,此分支代码适合用于用于学习研究,不推荐在此分支做正式开发。 +我们在 basic 分支提供了 Vue Antd Admin 的基础版代码,正式开发请切换至此分支,以便于后续的版本更新。

WARNING

如果基于 master分支 进行开发,在版本更新时遇到的代码冲突问题请自行解决,我们不对基于 master分支 开发时遇到的问题提供技术支持。
+再次强调,master分支 仅推荐用于学习参考,正式开发请切换至 basic 分支!!!

# 目录结构

我们已经为你生成了一个完整的开发框架,提供了涵盖中后台开发的各类功能和坑位,下面是整个项目的目录结构。

├── docs                     # 使用文档
+├── public
+│   └── favicon.png          # favicon
+│   └── index.html           # 入口 HTML
+├── src
+│   ├── assets               # 本地静态资源
+│   ├── components           # 内置通用组件
+│   ├── config               # 系统配置
+│   ├── layouts              # 通用布局
+│   ├── mock                 # 本地 mock 数据
+│   ├── pages                # 页面组件和通用模板
+│   ├── plugins              # vue 插件
+│   ├── router               # 路由配置
+│   ├── services             # 数据服务模块
+│   ├── store                # vuex 状态管理配置
+│   ├── theme                # 主题相关
+│   ├── utils                # js 工具
+│   ├── App.vue              # 应用入口组件
+│   ├── bootstrap.js         # 应用启动引导js
+│   └── main.js              # 应用入口js
+├── package.json             # package.json
+├── README.md                # README.md
+└── vue.config.js            # vue 配置文件
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 本地开发

启动服务

$ yarn serve
+or
+$ npm run serve
+
1
2
3

启动成功后,会看到一个本地预览地址,通常是 http://localhost:8080 。接下来就可以修改代码,并实时预览修改结果啦!

+ + +

# 布局

页面整体布局是一个产品最外层的框架结构,往往会包含导航、页脚、侧边栏、通知栏以及内容等。在页面之中,也有很多区块的布局结构。在真实项目中,页面布局通常统领整个应用的界面,有非常重要的作用。

# Admin 的布局

在 Vue Antd Admin 中,我们抽离了使用过程中一些常用的布局,都放在 layouts 目录中,分别为:

  • AdminLayout / 管理后台布局,包含了头部导航,侧边导航、内容区和页脚,一般用于后台系统的整体布局

admin-layout

  • PageLayout / 页面布局,包含了页头和内容区,常用于需要页头(包含面包屑、标题、额外操作等)的页面

page-layout

  • CommonLayout / 通用布局,仅包含内容区和页脚的简单布局,项目中常用于注册、登录或展示页面

common-layout

# Admin 的视图

在 Vue Antd Admin 中,除了基本布局外,通常有很多页面的结构是相似的。因此,我们把这部分结构抽离为视图组件。
+一个视图组件通常包含一个基本布局组件、视图公共区块、路由视图内容区、页脚等,常常结合路由配置使用。它们也被放入了 layouts 目录中,分别为:

  • TabsView / 多页签视图,包含了 AdminLayout 布局、多页签头和路由视图内容区

tabs-view

  • PageView / 页面视图,包含了 PageLayout 布局和路由视图内容区

page-view

  • BlankView / 空白视图,仅包含一个路由视图内容区

blank-view

# 如何使用

通常我们会把视图组件和路由配置结合一起使用,我们把配置信息抽离在路由配置文件中 src/router/config.js 。如下:







 




 




{
+  path: 'form',
+  name: '表单页',
+  meta: {
+    icon: 'form',
+  },
+  component: PageView,
+  children: [
+    {
+      path: 'basic',
+      name: '基础表单',
+      component: () => import('@/pages/form/basic/BasicForm'),
+    }
+  ]
+}
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

当然,如果这满足不了你的需求,你也可以自定义一些视图组件,或者直接在页面组件中使用布局。参考 +workplace 页面:


 










 


<template>
+  <page-layout :avatar="currUser.avatar">
+    <div slot="headerContent">
+      <div class="title">{{$t('timeFix')}},{{currUser.name}},{{$t('welcome')}}</div>
+      <div>{{$t('position')}}</div>
+    </div>
+    <template slot="extra">
+      <head-info class="split-right" :title="$t('project')" content="56"/>
+      <head-info class="split-right" :title="$t('ranking')" content="8/24"/>
+      <head-info class="split-right" :title="$t('visit')" content="2,223"/>
+    </template>
+    <div>...</div>
+  </page-layout>
+</template>
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 其它布局组件

除了 Admin 里的内建布局以外,在一些页面中需要进行布局,还可以使用 Ant Design Vue 提供的布局组件:Grid 和 Layout。

# Grid 组件

栅格布局是网页中最常用的布局,其特点就是按照一定比例划分页面,能够随着屏幕的变化依旧保持比例,从而具有弹性布局的特点。

而 Ant Design Vue 的栅格组件提供的功能更为强大,能够设置间距、具有支持响应式的比例设置,以及支持 flex 模式,基本上涵盖了大部分的布局场景,详情查看:Grid

# Layout 组件

如果你需要辅助页面框架级别的布局设计,那么 Layout 则是你最佳的选择,它抽象了大部分框架布局结构,使得只需要填空就可以开发规范专业的页面整体布局,详情查看:Layout

# 根据不同场景区分抽离布局组件

在大部分场景下,我们需要基于上面两个组件封装一些适用于当下具体业务的组件,包含了通用的导航、侧边栏、顶部通知、页面标题等元素。例如 Vue Antd Admin 的 AdminLayout

通常,我们会把抽象出来的布局组件,放到 layouts 文件夹中方便管理。需要注意的是,这些布局组件和我们平时使用的其它组件并没有什么不同,只不过功能性上是为了处理布局问题而单独归类。

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 K+3?4O>;C~kqPhV9 literal 0 HcmV?d00001 diff --git a/assets/img/new-page.4da2ccce.png b/assets/img/new-page.4da2ccce.png new file mode 100644 index 0000000000000000000000000000000000000000..6006d7b5312d6bc949178ecc9ff0cf0ce3b37c7c GIT binary patch literal 34602 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 WRm3+n$X5{XBPAg(ULa=h{{H|i2N|CL literal 0 HcmV?d00001 diff --git a/assets/img/page-layout.a45de70f.png b/assets/img/page-layout.a45de70f.png new file mode 100644 index 0000000000000000000000000000000000000000..34dfe29e7dc332f3ee285bb58552be3b341e64ff GIT binary patch literal 15498 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 literal 0 HcmV?d00001 diff --git a/assets/img/page-view.5fe6cc90.png b/assets/img/page-view.5fe6cc90.png new file mode 100644 index 0000000000000000000000000000000000000000..8e33d144cde98c0669d34df71ab68a089ddc41a4 GIT binary patch literal 20027 zcmeFZWn5J6yFR*Ra6lOem6A5-2I*8(L?omelbI3Uh zzrWu;`@i=-FZRoGK4;!6Rz1&sKXJ!(-K@_Fa#DD>09=z0uMJ#p2|K2fZ{Ot#XA^y4slSFdIl8qQm%nd0t#=GU+nH5sXO{um2QXs!7xQ) zl+0~dA~E2PB?_Zx<8j~bc9Rx-XUgY{Uv2$PhL5z{>ZAA2l|kE43E*#(P1pTFk{o0xO5Eq^zPle znEB;fw{Bs&2l4RmFenruAt7dG599F}Q&x+aoW*ztV?v`bdJbe{WSBR`n66$-b}{D9 zBxZ9LgKWVBerIH4#8~@KQc_|TRxs<^n3avqrnZ@hIUw)~Lnn&~j>Q}vLLm@LX5JAf zRcv}kLK*`D10Nq>e@5=c!cs#+!|$I7m!|8M6aWphEZ{ED|Q_~sE zFIlN;+H2{o4vo;%)SRns3=R&SDXsF5SFy6PQdCrIX=yq8-4$kNE-EUzySrOZP@v*9 zyVcsWy1I(lJ@oVQtEi}W{`|SDE9$Ion2n9i#Kc63;(_h+*XR8sv$M14?g2+f$H@3; ze=IL(ZWkEf)hsHmuHY-|#S zVp7ctD)PrOGc%t%&8o9;A0HoUAyA7w$jHb@%tSv66uVA8ZgFwZCma>*faJHD!K_Vl zadBN-T=0H5Qv0xo*`2ZT96CHa3=9m+%0i9*nrW>@VR~B8XmnRk?@{j%<^Y8e(5$Jc z!3_2@emh<5LGAUA9M3N8Vy-X%bGAmpG6r*!S&HFMxCn{EoK9noXE1~kGwul)0Zq}B z8}(c0Zm;aM$J{r-jnU$$D5tc)e{i<{_jh%5dAYxTz1IKV_Pa9MYK;c~T0r{wQ)SnQ zt!cQn)`{=zdG{NJO5ynE$k!839LPNKvOUh*HxH}t519$wSG@HBz~Z(cB=b*mb{Q`& zA`b~~;w}*(^yezn|8(yn=brfcyKU0-#j#^OHYH-@S1{r$KGx?UnYtJCVV74s7#aYeI=u|L=#{cL4?%hC z(Kvf^y?`e|XdR|Audc<%AbXV(R|+ub;6m?})H&$I+3#`}9}*x5Co%W( zi#nn)h-kJ8v#q3eby~}UUjP8CUIBg6cbJe;zhLM=8a{MBiW>? zVnIqV0e}Jk{!Ih`5}ohEUSSr!T<3qh6O z%J%-Ge|n{^Q* zt)B#ViuI}c6t=Cv-DFjYrEYEa@0${QnA=t`&8zibC0akmohRKragNolpH`ta=qM@H z-5bJz&YPTshD0?te(qYhmy#&TE&7CeWL%v0$%y#)^s=M;3nw`N8Be9@=_cPHtfuYl zE3Syo|ET-K#5dEV}9`>WLlb5;(?I5E~_t}jslVOac=jk^0Nr@57 z4%Ioj#Atg!JEEMQ2=@~P9?(jeq5b2l#XgQ`FY_Lpjs*KnhIJu}{e}Mc*zkR_{i^BI z1sv>vi3|FOC$W!vSfX<%{dC%`$P+}^7jb3TjePe9}p@(~x_g7{25tI%UD+1@)lyU!V)aBWiA#k>hk z>f6BkSf{I3B+rVd^f*`!4>#&EY#|Jzt$XTYs46}>;^i*V_k@d*eBWJaBBoCAG6ji1 zhdoFvZRQ&G&^L6wK-jF_gaHT`2ZHmit&P}B<>uu8@)IpFGJcd)}=y7oq5)`>C7+a$mtb!@lLSyK;0zi7ala$kP7Cv0bd-@8xt!p*@)iJo7DCf%#lgW8vEJI)aG<;u zdUJl`2w7!SHCg^%WOldf;lN5*<0sNqEZ>H@0c5lKiT}J5l~icn{!xLD{d1uu)Y_VJ zxs&|ZgkM6l5JEH*JJmkSuE^6 z-T(kj`8J?3QyBZ^ht_8g_Arn&GUU9&O-LU^Dsl8q+1{%n;kqKg}l^uOO|ewVMVYM zdbAte4db1$iP@xfE3)bSH3If44trI5mvWOwkTP^iY>y22&fK2*=8fD|Y|kCx%K^9> z@rvKswC)O8eezS=;)d=rQKYIzm#9Kq1Y0m7LVIq zkvq07tIc%xnGr3zNOD*#W9UmXWR>gaRgHK5`#((qg8uHamOmoqH zzDslR0oy&q&p>2M{Mg%ZDykP2BHtzaMlQ2Ze0X|;6f<(Z$G4{K9b3pRFO-h5iCe|H z(W;YiB8uhvd5pM4&Zg+Gw}2hz6P^9ieuYer1zVHMOr|I0`(Aps6Iy>tJ{h_G6fkd%s-6IsCHoJOds~Mx+#1uF(vADf+ z82#qYly;y+8qcb=z2F5-Y(QW@{KXldFNXVd`wGA}Sgg_hfsQKAX&$GSMX5XJT;+^C z>D~QcufsRG#4T+CtNyV1M&5B!Aa~$#)x&(#d-kaqw$VAAsH&Q=IeU!|E9b@$(<9-_ zml3G&4I765mrOoE`;YzwIlKHecXP&wpuloEU}o%_r&2t6LT@%KyV-ur38atplcs0n~(7y(rPfPOW|PZ*S>Hvg{oZFK~+=)ZR3;V|;SDNpx;7C?N67%+NxrI8l?sg)TRC6n(VzJ(F8;oFACDp*U ziGr4csq2$ciK=K=d&l@w(A6`7Jt5+Fi4ahIu4~z*nxTt%>7aZ>fDog^R?VjgcMWL8 zTQGXSMWpK?WIq$+=~9R@eF6nj09JE=)-jErf`YlEEe@%F)#5J%id%fkgXgQ?UdJ4W zSara_P%tS9e4aJxuT9_`HNKY3clbcQ_Q z5wShOU-K>BP^S5*0pa$R<0*b6U!!{V+M$s;6sq483Mq35a6re)TH&Xnb~uXPRO!q& zUV5mU6W~D^cz)a*qdgB+H)`!fY_tL}?9whDGh5L6b zxud?9Sy9#stT{$~zeyiBaJYy@zv@P#??epnQd277%2lCnDIwnA7L|*+f$3ne0c^=M zdfB%VnwPltZ1Fyv^S6U$F7J<#$cT%&%Hd2O_VS!;9`bvrcN_2PGVsqBk+?hAN)fVc zVB!@hmncYoWnn+z(*JX%)^%BZs^x2sDVeD_vGej+OFPBZCARl3B3gfqB;K4Kc)3Kh z(^yNeqTw8oBJU$hT+ShflILQ>>0D~1?59{}32+$lVFHXhx-~RD<~G$moQsH+Ug?F) zY~;&@r#sa{w-`Ls$Ybl`u^?|x4x`tS4qGKMM?2(yLeq$n_|`^B*KOHClbK-suKHUs zi_p9RwZ^+{TCK45S;6!#hXZ|YnEhMTzKN6KBD8c7VQCsToNp*=$K32EypU|Cw4Y0VhLKO~?JkHR(M)$u1385|9mBeN7E4L_98!{gs;iqS%s|;@tvGfey{- zY?RYF>=Qwm#c!HY%aFd+VJ&VJiI;uZs!q~;`=8h}<=rjj1q*xYfS19K-Psk$e5!37 za21yJ6E^wCw)gO)j$*)*J|@o zvDd?OqoIfU=}N)-!7oS*7YdIpRB#C?3`QRZbc__s7xZKS(W068<||LE6xr?bWW5G+ zN9k<7gg=EC`fy_VOm%C}Dk)*IgMI0Lc#T(iTpV)k`0m}w91^s9v+292y{Oj~D*NO! zOu%iBM{M)RHLy*TL7qAjl;DEdO{O{H$l@;6aYmXXbjh>Ea$kgR)=J4s-!tO#bI5xh zdM%=`$tcg&@C+bYEYm%b<87h9sEO8V*T)+Xy{l<}dL4}O?Bg~MX(nH2yoeV&n0i50 zn(XX0f5eH9T%L58LMX8%ccQuc=cI8FPiiGc>3hEA4a5Z&GiEv~_WJ83Y9m&$BHE7g zrBMR15NoC;}m*5(Ry%uIulz}%IKyK%C4ocb{gD#^fy4KIG*jGCMoNVmh;V z^gLqA*J5ztAxuEP)*NAQt%A4A{%XEEN`FZrE>+a5RQD~g6+ssnT=utv7VL{=cRR(q zW&F0Q-)O#qCUqT(*2$EYb!C^sIqQp$!+jF~rxlP(BrpA3cyhkwmJr-Fg_A!39n*;* zmE^+(j-bOV$LbrM17sIp_Dav#_M`6~**u~NOuff3shX=$_i&U|qP4H%r@P8e`xLX- zW4qw@HJ?DwK#Gjv_gqfv_b^9RpB@(9s(k|gzA?61?K&}!ONwkvIZ$2+(#{6jLPN-3 zhQ;6Kr*xzdu84*zAa;RjgSOD4jZvG4lJc&Uvwg4lGn3IS>^j*sYIPPCWN2KpWlSYz%s(pEVmW0oJEnh~r*cm5M7RN$1JdoNa?4za|%B)3NB$Cw80f zEAzLKo{C_bc9u^B^u4?bmtX;5B?5x=N!r=*cYd>YDz(YQN4s+to=mj_57o1X zlJ=ci8AxJfa>y;I+`s&Fc)xJVReyD{MQO#IKq!7YN!`yt>CauzwdgNH^Ag<3baLIq zqclkMGYk-45|w^#<`j*rQ{2~B)994HS@5-bv(CjtXw zEwQ#p`zQ~npOEMO`lMxgep-FZlj%<|aS=L|5u(!MkeLA!7k`J#$x$k?VKUPuD+Vv4 z8(MKrEtM!9^5JU{w~M!HF!rrb1X%qvXmh)^NaF5cJz`NK%U8`U0;EXMv5r2yL3R3iH|9;^ zzm8_Q0g1Q40zo- zN7AtVsmW@YYPCjZ2)B=1r~lVs%wS|{@!cZb0eG;c{ht*DfD`^9T?a7+-~JA%?Nr3wO0Gsa53~;*!3}ZZ-b6*2Tv2a}tXb8$|1ycns*M#2J>lj)tRCM{ zSiTNUSx=#lTWe&^C38HHlMg2i+^1uBH`XIZ&ss@88%+8aC{-(6)TFIcIOh&lXoxYK zTDX>HXUb-~1nuO=x*b-esody_xt0T)Mfvr%M&@ zoSn;2lxAdMM)BuWOK{dEURjL>@qR9ROlN*{Ht}89sFPZy)>%ny6bvs;l)5h5O%PC8 z8QdhY;0>ckR_h~blgc)Ne2m2`q|aIdGMwSEUU^?dYLdNWR+pyXSFYI6;AFXZVKy5NLARiTn_Tgp zM}`^uDalBOUJA?U9Sfx$g8mnfA_Xv|RsyCm6)bMY>E25896b)phjHfRg%4Fl?X%T1IE(URq6=T2I^-t<`Xo0sQZ4e+SRw)o zqVmiC6c7*;YyD27ij54P(M??Db?$Udn*7tgyfd1mZ^j$xXO)z^{{U};jH!nv8f z;_%Y4r{gez6Hd3Fbr%S(0P)awc3QbLnp7@CY5kI_n4A~spmgX-hE3h6x zm8CI7XR?3ZG^CX0u#GZf>h3oBC-N-!RZv-&Z#=5yE7bDo((@=Bs^J2Pp5V@M3d*E$ zT}VqA8dlcC#C@aB9LOO-d|SHO#me{2L}?DvQ|>rKmYwF$|M+aqEeN8o{#WOpohyhy`+}Rj1PNCcn{=WLU(w{ptjrN^gaQvILt-}V=?gFtZac%S=^X&2xwp8Pm zRI7SU7ga5$Lh~USs`Dq#fzOh;`hKGOtP5xFpx^<-X%-do*4KZvyV6P%rL{yD zqkTpEJHkt@F;^ON3M^{mQN{959c za}6}8Td0nYN9nEE%ZCc6i3so-mf&Pu&LnSNB}?dc*4w9OU8MCpCXKFaP?KDENiJY_ z4Ril?UD>~j3GZ$ACRe%Px?-=EsWl7g#a|B43@{@GRymJPCJ4xJGK42TF#Fi}w3FhV zwmvgRzS8y4FX1t^Pg<95>|*|cA5xXaJ|}Gu>*M*N=%DuB@TS9ktBho$fCWEUTlBe5 zpc;EDWhI^z?yU1|JXt3>YiAHXsTzl&SFI-X2GnsF&B#}+_9+7TWNX!yW9pKNeP@c- ztP9(CmOGqScY-x$Osse`Lgt`k`5AX}Q_bFkLqr$`!48-LVNTAXeRO|Sej`Rd@+~u> zM|7<>n0U6M*8@N3w>XF#YbhXnyc%1%BnmiZd2SkH*4Jk;Y~ufDy2ts%>8zpAvMj%2 zokRLl9$X5S)~r;H;5;Lx4PbBL-YS-ckqL?p7_w=It?|0j>rezTBw9w`>fgsbdnTC* zB0<*f5Hb5nn=5hhHXy?vYi4iFtgwefh<}qvdq^qZTXynQcD7yli%C~V9*YNqRRf4O z8`9EJV=acr#>BmcXuJ8!nG|%~b;ZmYp7^RrJtK)wM;Nsx`)>OtFT4b4pWsa3W$lTh zPf=xuEoa{>l^qpj?B*tM2EC`g zSCPk9l9IV+nYH|draV+@lv@;?yaK}0|B^dL1IRon;};+jJ8xS#sPSZIQ^RwTbMdIx zMSajq2evz2K{gGBu5dhr1E&J!dc6xp1cG2BrZ(4Ox5q!Og6aVZps<6gCY~=3vpQbr`udemV^L$l{ z&pe~+9Cpgl7xNS^b5T24`;+PXA*xCdu9S1Gil#xj>~(SZX%PJZB4i9j1DAwKL0YG# z3NiI;i;HXqbNNl{jd=S+}=-FPMvH>M?sFWa(5x9$wc+!7jW_NWOuL!vc1+RRAOSm5D zT`le}$>(TXb%+zfcS#eI0HEj)+RuQ0fYF%5vDoRZUJxh0hB~vM9|(Xbn$r&X0*t~C z=In=0Z}o;l#Jpfe`kXakUO)i-4kB9To4dzh+qGe!o(cGnyl_c`Q6FV*7LbPpHq4B8REKMe zy842PEFc7m3~>pgZ1se~Hr6Dt;FCIBS$K`GxdA$iXGf{w+1gG0r-2d#>L z7h$6B*))1RJbtU{2a({13HYGn37+pziuGMTG7V*wXGXf&4U2oC&zBhFzWZQy=XTGp zvDvqX%ay(aQP25Kc@Dj+wa9yc;8|lL=nKGDskh;BsFFhmGaFLbm*90CLQtURexAwD z3zoL@KZW4yG5bh5UJlM(o}cK|u-EHcb?<tBxzP90o3G|J@U`cq)U@?Udwcuy zI$(vP@u2B*7sHI}`M%eQj`umfFYC zu}TaO2Z5++`?dYac{`-n$>&0hymo`*64mK=5`mYnBBIc9ZvjB$9kp^>?A&ue zGyYF4z|^)Km_ws~VZNb%`CzWP6mJuOktynU5}cMOQ*d-Ok6J&M1{V749$y{U_}E_V zj^DG%t9h)2bG>e#!)?)nku39LKIn!-Zw1|}CixvzuCbJXZAs zV-3~;=&KcscJ+Rknm77O8A~&dI1#GOo~{@ld2Ldrp>g8pzxQ3_Jhy1NmQh`)va z65`;MMn`tjP5NEWrv3O$=k0#mF9^ zuDUY6mr6{|G)ip`cz9nOB>F&suR7jGxi;Phu{7r`m@9cM9}j_+oewU74JSC_ukx@i z_GsvqeZ(5fM^?bn3OImZEnV_?MUH91d})})oMTQKOb%*BuOj&9~DJR$ZD6#3x?GX4QJ@oF-yw2P4Z}mM=Q=E=EvhMEWDCD6}#@K)d1P zIvO)d!04sMilo{QKXyUAZ4^i5cw8OI&@4|ufOhl5)6zKMQE!)M#VX(h&5#H-XaP3} zFc;Q5)gu@Drr%S0KHVobU0}ov3Wn9KxIx#Txvf2>Qtdd^uLgr0C zL-0&5cns~74J2L!4KiRPSdn_4VAs|gIVb{*RSgg_AxR^z?davr5AfX;O<2{*wfB!Q z$G)B#)igl*90w#;|58UFIRyGYpq>Qb0Ghc%7?@Roc{=DB{-KxpEg#`591_XeC8z-p{%u#Lt?rdOs1b{2~ zpPrmRgJy9}O#!%IRf&Y&|1HM#`G4lNUP1&Yh=4;)!1*I^E%m=CutSw=lIvOlIx;{2 z`=6eQ@PX@|O8<{il)qy9ElmMU!FB)O0XfJBnD|4lbpvfbDD}0BAdv+i8gQ?*1r^A< zfd#Z(lWky6e?S@k+fe?{pADy zCG)>WSl^5YQTh~et()4-|6xWz1whjRqRZF&ni&8I^8Y?m|15;RGXEXg>k(!Rf!bbI z2bBYxxRC!cBcR1C+`e|KZBWk-pr(Jv*ii)$cJ1WM{{J=c|D`oS%Tjl~)uy+Sc@4Ih z6^f_qH?_G?3r$=-5vN2z^_k9R0*>L#FjEc-wwc{!JfEX_f(x{7w}`iofK-_H*R=(j z>Q)W{BB1JyycMGbo7Y39ET620jY*q!A@44$84~18&U5zy#kAgP#zh}9q_s5;>xQo_ z@Yl845CqqPJ0_@w8j)}u6_s!-+V^^AQ|M5k`&iWf^wgiCqD_3aKbdqs@o=l=xWsWn zPmU6NR`|Z>>lp-J6U@!j1JuDA13mI>38J%oP zb)SdfA*uPNYv0AfD}cGSG|w{SQeZudL#&w#0Ii#KcY_}{7o?@-{B{6C=iu!PBl#|T z%FgvcGatrj*8Zg7sHS0!_$~5M2`8%g1rKIL6JG&ra06NQ2YXDwg*4YYbt7^6-zp?? z=PQMyk{OW+QFv=*Vl+OhGi?!~yU%r=dhhk(d=qcjso(wK?WFguP0#dxcj4sM{XI3B zS+&3yy1+5^3ldic4>Nfg8H;n7zR0DMMH`>1Im1314#uyfvlAz}@;i}^sO{>(i;F>c zw0QmbhWp~dYl%NZ2q(bsLRJ~g}_1E4s*{A zqnEGVT~KV2)`G#3c^a8g3Ai4jUTR~1qo8;Gwg0ryslVvSf$+0q;_DVaw{?0`>fYLB za=prL`&NHsE8mAlJliH**|xRK)J{`Zqhq{M;Fx&6sW0!{(sdE=_2ac~7@wb<$IzG; zW_59>YTRPq&SJ4{^vy=Yx6w*nW#ytY1z3LELp@Qj6vSIsTOzxHt6 zW5EIkbXZ1sfdVO7@owcoiy3;4--C}*=zjFx!KUG4 zN~@N8Z|vjfcNk+;4Z~5VuPB8woKRZ+#ZxJ8g?Tc+eywP+xWIN@Q&IKSqp+gVv1~Xp zr#okdy(`ReIH`=~GD_mJ>|;&cw?s)v=wCBx4|VUoK+T-Lx=MNt(L8yz(bud;_bd4a)x+<4fRQb%XPuf7miK)d?jrme=4gC0+xLl6sbluudoW9743dh?~FYoR) z4@h!J!S_Ax?v#sU=l~<}lZtS{+N_NhQ4f47FZN@(zzHr14cGV+rea{PkGswzOQ4bU z!mRKbdDr)@Q+UfjH!En?EH+Gya+8g5-jSZDWD|jZFLBU9ANGC^nG7{2o~<7Ynn%yr zIWQqlzzUUX?-;~dR9ID&o}Qvy^8&ezyEk&7{}Vmf@MzyStZdG~QhGKUhgy2yyi4DE zFL^OcYz+Bvcn=(}5_*E=_mrjm50ZrA-# zJLwPSnsyTPT1ZV3n3zL1nPuasA1A`x&5OzniqPX_Fjp1#m1hC4S@&zGoV92x9Y#F3 zCh;DED-;^wM6^g+rcI2hni!0*=gUI7i!{#f4MWMC%U#O8H^fx{VUfg(YMa+3LC6$a z%q%!x0rhiGq8(4>H{`Z7-)3Ad!&AYuLQHWgLa*{2I7Ty53R440XRbBSS0}gFy&n&0 zB>lKM@|Q69=@S-N;rRWv3qo3m;z^BeEyJmH62og@q1OfmMf;ZhKVBaQGauLG>L5t9 zjE>r8gNnxLAJYg;NJ1nah|}Zck(!I9rgOXj1B69D2nF8gFAx798>`!4RY6b@I%@92 zX1!Jx`0jQ>P$+0TCt$8Jn$JF=?Ch6IpQcvkF)amgf-4$Qry0W$avTmlEPKA)%+j#9 zU0tK)X>gJp1vP>+O9r5mpLG(yJAVxq3R;@{#RT7Vm$&eiTFZ?lL9qM+#ekL9=A|ZW z?wLX~-Gf+yS}-5`u=8&=MwfB)E6vj;=+(%l0s)f5R8;94j15g6kAs4a;RCnQqAqGu z_iEcjK<7Bnz%$JSsD1E-0`Qgk`Gkx4_TfwG{PV`g%T~7oR%EnL6+YPwL4lc0S_e|K0i~b57Ik zUJp}Ga0sQ)KSM9toiXz5eq3btn|X1;v6;W{EAiUjDcXxMP5tf{^d~ebDA$IZ+J=M8 z%58q6KD#e~EcgQ=EDf?!EH?6OykC{-~p>El*imh(jA|ja4Bk6 zW-gP*RM1T~*-~JB<03S)WSSYZHeLCUKh{G@2Arl`;a=RI2k z4-Xym%r~d>e1ff7zAmWkk5}Mg?hZ3)kwi4roXqbumTZ`w>+9_0j;6SovgJ=+K6_tU znTfq2q}jP>Q7KPHDj_sin(A1)Kk2!X9#2esO7$K{J59q$m{Cxr-{N~feMgzn{hf^> zq)JJI5wMNGhZz1oQnJxu%eUyTF|#4ypLR^s> zjryIx$1fV2wPc_@09wS)STaXQ%V*@U<+}oZy&)u|sX57Ccb0J&u0}8tiC?kkG90NJ za(i%x_yHMIEZPG{iqmRXFE#$KA(lLva= zyf#)en|J8>Xd9~>`(z5+ar?Q|nS5U(Of=2FYj% zr_H(SR-@~>9}!f(#xrGNpC+WP)AP*A^OCH>4_KLCVP+0uX(rvLlBQ@A?bp5NUkK;e zbCt2sFpGB-R0~AMU`|Jg!#uo3N7S(K2oh7{%?{U@c8eAzVJn zi6hMzn_XKEjjrv=85yPI%#DeAT3B0FW`(Ax_~ZM*eWhN)je-imY^&9m`eK`v27X@Z zgZdvda+k9keGQDKx@R1iGl%mA(ce6-i^IGck=YR`iH#!-f zLx0A=+c)QsnmB<(kxs2&FJ2OT?Y!t|koXhp5)0np-0%k`Swr7gKKuQJV=LHNpR6!p zNdDGO473OzacbBb-Nka4qCqJz77j~i<`ABlQYniY$<+@;r-Mre*!f2wb z7(HTQ#r?zp5@WOIdbnfGNDc^nb?p-I(rEVO7`3J8{9ZMqgD<`e)416Sb>ON^r`eA?H zKG^j_aa`TtZ7h4|O(`NUD(07TSl?B8OcNSmqGlY2viUhesG98x$rpU6n(M8aVN5yB zc0ZwESfqBxBH_Rn4g+Aw9{mCLjy$eTV>FD1>X&7B;RLJr!=KeaDdlGq?OC=k5$o1l z9JnBCQIz&Q6JNZ??Bzmqp=XQ^e$xYK1 zd>ucLM7O)!I4HkImSqvh@+2;5h}AyG<7%5SRa&Gq`_rJ14&VhHEv%+?hh&>Xk{I#T zI^2Wn7pR8YU)}vH8;itdeKW#LP7~H&)tg(LkyTQi+@#2Ub8tRu+BlemwuGHrm#q9% zSIP_Cp7kM#XZw&QZCqMY5z!Io_e|~c+_!96Zq=F)T%M$T7zK~E6^Rc63EYS4Da7{P z*f6~Rt0#%9TxXZ{cp%Rsn&{kg+Yj;*R-fYd@6BkK^uid21=ccOEd}v-Y!bWAyF*Ja z9vPpe-&kUXwJ(~N{SqWfim{_10xIi(r9DYRGnr~y1+B%aQs-E2x#tTX`dlHM4&5I| zMm|Q~C!rMzRx@_10sv+?NFjlIfIZ!6j=ZKVfa4FgX6lbi}dCx zT;vh(GYqPpQn<;okm~Kfe7axCDB(2mwCYtlU@Z9(#@II?bVGpy;iilGwT@3WO~CxM z9%7fLpdy<_cF*N5CDyF*TVc{HZlNnxsXn}N3q5YFcy29gc~QI!?R;R4&HiyoO*5SK z@ypTsaN0D%`BzGam(i# z``IgSKrE4@DOkG6#|>t@(WDYrr%}xtsE6Y|Z0zJnG6!_rEuByATE{@s8m=mG zyNT&8i+%}LjnCt}n0qR6Ho|f*kYpWR^BJm~tDQ%w-DDP#bIjHf!uK zA(LrTD#6PXX3>of5>^1CZ%&)xV;D2HRGV7uX6kyST{Re>W^BU0GfEtEUpLm9^^!}t zP!sX%d$G=zALo{ZL+lcYYrl=nlIX5~U8`ZJCtcM8GrQ&lo;Hsq1l0C6f}%gEhDY1K z`jz0=l4)GJYbs1(`!P8Og06TMEZQq(NntFnJ57^ zCL>anrST-=mTd8l(bn>KxJV&j`K{5}G%Ckr>^`F?<-wAu%iF8l&=hbQb+SU+LEo|(V#kjWq0 zl3$#x>@k6SE8zJ=nk2~eDw73K&&d}+k{)+cC>Z)AhiWN{7#ZbholEERty?vp%O=WG z*7kw{rO+FYlmt}KZI1B1h#aIA4QEkIr*gmh=*N4G?)7~)4he@ra)&w~GMZR|(ywPA zx%MR+aGxYebBj~TNufZwp@CG{Msg_6Tg~sg&V!htZ3zfi_7d9~B}A;7P`Bh?ozcXX z2qXL!CO8i>ed8Gt-HXkp7c$}&qxdR`P(q{ne6M=JtaemZWxQOzl0%`NoZ zxjn_ne7cDB=Ay*65avi>(PlL^Zf1%1OwYX|3;qn(DOkzJ+$m}6lg)x$LhA4`mlaq z9$-B3VlldP>EY>G+}>%N`IbzLvP)n^w8pi4WgF5~GP`r5HV@bz9ombSFk%p7rq5f^ zMLdk0PF{e04QXA2>)T|7@3iVmPaO5cJ%z9aWfv@iOO8Ximy)jF%}`xmusLKi2R?SK z?j5Sr6b2zxJ`$DK5e~5K9UhH$@D><%y2-o8bniR1C;j}2`RRhi7D&9b@MNrUuEFCHFh%#wRFm42&OsoMUCvucl3j0|w8y`Mj zXGO;wB}B6WpW16Z?z4$W>co^jeX1l8u2PjW*OVAo(PO!9ilKW;%fl_7)>9l|jB)R> zZ-5Coh<9Owshpk80y}dLwnz1Ah_M@==|#GYK^f39Ak+IE#`t|CS-~i*cT7maXkN2? z%&9zF=_%VtxQQ?*?0)Sn<;=X-nM6o>EjqK|1WLu)wm0SwTm#`}{8`gdcu9b|Deu6G zS1%y9`5r`2WcHN9dG4%jCCB+F@2 zXs$Em5!`--_|*CXt;MjYxL)inC=tE$2Wy4;$B>^YkTD7(epO(NE{m{Xdo-#;_TGvn zV%64)uNkgzpPHE^6?968uA2Gw3*TKKmV6_(BGFPN%n~8?$1U`eYdoi6@0b+vw?Doc z;SLWoogwGR2KLx~{OV)(7GkRW)D#B?4Uus^V>R#=t_gTp=E-cXQ&OXUvEVP2s6azL z+eKRVrITJ}ld^UzAl4V(s=eyoeT?C8v30h3Joqg{+q=i{dZcI@fY1V!DF6nZ&VQKsuEQ zphexb9Mm9&F*OBkmvgpE7=@B`hxff@laQUin|~YLub^|^>pn+(mI0rkG7!8TW%;6b z>w)4GS#jIwn28AWS8wZzW%JVa#p=2U$Fvh{E?Ajj6)32S?63gvqnoFCHG2(JZxgHC!SK9nv%kDgXG${!N z;;Xel)aq`G8-!?uZDfpxRl<>0Zn{OIi0lb2q4>dS0Pa`gip&^6S_J@%md9+2ASt6b z48+KpJRQJe&@84WnwVCEp49A0e{c)#C<*(7lGQcJ;&)&sWCX0=L4Gl)%>05Xw~6U! zAYQkWD|T!EB|J|f_3Q#lpIVt2Pm$&U15Ut5vToM0J&4&&r9c;-S8D2hg({mUB2v&@ z21bxHE*`s5_wv%G#G@O=>Ig@YB4AKHf~64*?_F{ATmydYD=V`j65^z{S5o>HI56aUCJConCY!2)6`WeYLj{?;v2&t5%Pyu0|GDKPm`H6k=uh4FGQK zUVj&$qc4!ZOFUDd8YN$P>_yzdC9o7!^pQyddlV~+D5>a`lB}$(tILDZXs;BmA5dFS zz*uSvyLO&TrGXaQ^~u0q{$SAE1xLdh6~uH~C->@eySkMNi#oG_o&#M(%J?ROa*v)I z=+$9SB{+`nQolNXl{v-z7)@Zld=&Ou3uay!8%KO4>#55$M0*z!RqPGdtj#%El5mL$`v1Ey>@MOqN1{U)=V^uE33&(l7&H10TD9wH>?!qzP?ERi@m_>l5irrN6&4zWDm59oa89Qb?l zul10z$TCyrkm&3;u6(uZ?xiF-Ph9%K>i9V&oPvUag@vNiikTymhg~AM6K(b9D(%^p zR#Vq+m7i<;H-5sNIZHDk>YqOB-f?02(G#t1T+CwZfL2_%eXMZrS6_`MzR&S5@~t0p zJrln@jaZzly_PsU#!8T=Z}|C&bzlWc?~J23k1cmFcxux7O>%|5hpd<)7WJ|1@$x38s;7)cIB(E1C=su8617s%lVT=W9YK*T3UVCs9vkG{GDxI6|D zw~$3H;Pn@flU_N3U3!?l1Es=qyY^0S!NZAGy!r%oWL}we|a+3%DfcXw})eUgn z130%q))+y`B3O9>vl(r15Tf`2ngz`*$ZLv_vLeu*__Jb_&VlrOXU_96Y`VQ{ryTR2 zmD#GmvaR-A-%e2l_2>MI43TdS&)FHn|KXu|QIQ=haD~_Ye+JJlXQx-!H=KW7^UFK_ z7Y~EN>DpJ*H_v7L_2c~h59#si{@Vlf>80OY6?#AX*6*AC%e4guO6~l6J4^o0YlHOQX=6~p8^}Y>Hx#NE@0T-$-t>^i$Qh)!a)&3{ePO1?CF6OOC z`YZbhbkxw-+56^w$lq7@J^lT@-|y^!OMq;xv+PwxAF$u=6nSuXj{VNpeJ#LKjf8bP0l+XkKi(FY- literal 0 HcmV?d00001 diff --git a/assets/img/permission.a4be38e9.png b/assets/img/permission.a4be38e9.png new file mode 100644 index 0000000000000000000000000000000000000000..42fea702e6d3d72d5ccc30bf3e7ed8b2b8e79fd5 GIT binary patch literal 20787 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