iView admin路由和权限配置笔记

子成君 143 0

什么admin?

iView admin,基于 Vue.js,搭配使用 iView UI 组件库形成的一套后台集成解决方案.

码云地址:https://gitee.com/icarusion/iview-admin

预览地址:http://admin.iviewui.com/login

文档地址:https://lison16.github.io/iview-admin-doc/#/

路由配置里的三种类型

路由配置里目前有三种类型的配置,对应三种页面的展示类型:

第一种类型:

该页面在整个浏览器区域展现,代表性的有登录页、404页等
path: '/login',  //必填

name: 'login',  // 必填,页面都以name值来加载

meta: {

    title: 'Login - 登录'  // 非必填,若不填默认显示iview-admin(后面会介绍在哪修改默认显示的值)

},

component: resolve => { require(['./views/login.vue'], resolve); }  // 必填,用来加载该路由规则对应的视图,resolve用来控制异步加载

第二种类型:

该页面在Main组件的子页面区域展示,但不在左侧菜单栏显示,代表性的有首页、消息中心等
path: '/',  // 必填
name: 'otherRouter',  // 必填,在面包屑处理中需要用到,值固定为otherRouter(或者可以在./src/libs/util.js中修改)
redirect: '/home',  // 选填,这里如果不填在浏览器地址栏输入域名后自动跳转到首页
component: Main,  // 必填,主组件,用于加载侧边栏和右侧面包屑、标签栏、工具条、子页面路由视图等
children: [  // 在Main右侧视图显示的页面都要作为otherRouter的children来添加
    {  // home页面
        path: 'home',  // 必填,在地址栏将以 '域名/home'的的形式呈现
        title: '首页', // 必填,这个title会在标签栏显示
        name: 'home_index',  // 必填,该页面是通过name值来加载的,切记每个路由对象的名字都要和其他的不一样
        component: resolve => { require(['./views/home/home.vue'], resolve); }  // 必填
    }
]

第三种类型:

该页面在Main组件的子页面区域展示,且在左侧菜单栏显示,对应有两种情况

{  // a.第一种情况:只有一级菜单

    path: '/access',  // 必填

    redirect: '/access/index',  // 选填,如果不填也会跳转到这个路径

    icon: 'key',  // 必填,此icon将显示在左侧菜单栏

    name: 'access',  // 必填

    title: '权限管理',  // 必填,此title值将显示在左侧菜单栏

    component: Main,  // 必填,且固定,用于加载Main组件

    children: [  // 要显示在右侧区域的页面必须作为children来添加

        {

            path: 'index',  // 必填

            title: '权限管理',  // 必填,将显示在标签栏对应标签

            name: 'access_index',  // 必填,且不能和其父路由的name不一致(与其他任何路由的name值都不能一致)

            component: resolve => { require(['./views/access/access.vue'], resolve); }  // 必填

        }

    ]

},

{  // b.第二种情况:有二级菜单

    path: '/component',  // 必填

    redirect: '/component/text-editor',  // 选填,如果不填在地址栏输入'域名/access'时将默认打开此一级菜单对应的第一个二级菜单页面

    icon: 'social-buffer',  // 必填,同上

    name: 'component',  // 必填,同上

    title: '组件',  // 必填,同上

    component: Main,  // 必填,同上

    children: [  // 必填,同上

        {

            path: 'text-editor',  // 必填,同上

            icon: 'compose',  // 必填,同上

            name: 'text-editor',  // 必填,同上

            title: '富文本编辑器',  // 必填,将显示在左侧菜单栏二级菜单

            component: resolve => { require(['./views/my_components/text-editor/text-editor.vue'], resolve); }  // 必填

        },

        {

            path: 'md-editor',  // 必填,同上

            icon: 'pound',  // 必填,同上

            name: 'md-editor',  // 必填,同上

            title: 'Markdown编辑器',  // 必填,同上

            component: resolve => { require(['./views/my_components/markdown-editor/markdown-editor.vue'], resolve); }

        },  // 必填

    ]

}

页面配置权限

在左侧菜单初始化的时候,会通过当前登录用户的权限值来过滤路由配置,从而决定在左侧菜单栏显示哪些选项。权限配置很简单,只需在路由对象里设置’access’属性即可:

{

    path: '/access-test',

    icon: 'lock-combination',

    title: '权限测试页',

    name: 'accesstest',

    access: 0,  // 如果设置access值,那么当登录用户的权限值不为0时则该菜单及其二级菜单都不会出现在左侧菜单栏;

                // 如果不设置access值,那么该菜单默认显示;

                // access如果只有一个权限值过滤,那么直接写一个数字即可(如这的0),如果有多个,则写成数组类型(如[0,1])。

    component: Main,

    children: [

        { path: 'index', title: '权限测试页', name: 'accesstest_index' }

    ]

}

发表评论 取消回复
OwO 图片 链接 代码

分享