3.1.0 • Published 3 years ago
@sfit/vue-permission-plugin v3.1.0
vue-permission-plugin
基于vue框架的权限指令插件。
可用指令
v-confirm
v-create
v-delete
v-modify
v-read
v-reject
v-verify
v-publish
v-apply
可用属性
canConfirm
canCreate
canDelete
canModify
canRead
canReject
canVerify
canPublish
canApply
Vue2.x 使用方式
import Vue from 'vue';
import VuePermissionPlugin from '@sfit/vue-permission-plugin';
Vue.use(VuePermissionPlugin, {
permissions: {
'index': ['R','U'],
},
routeMapFunction:(route) => route.path,
})
<template>
<el-button v-read>我是需要读权限才会显示的Button</el-button>
</template>
<script type="ts">
created() {
if(this.canRead) {
// 我是一个需要读权限才会执行的方法
getDataFromServer().then(() => { })
}
}
</script>
Vue3.x 使用方式
import { createApp } from "vue";
import VuePermissionPlugin from '@sfit/vue-permission-plugin';
app.use(VuePermissionPlugin, {
permissions: {
'index': ['R','U'],
},
routeMapFunction:(route) => route.path,
})
<template>
<el-button v-read>我是需要读权限才会显示的Button</el-button>
</template>
<script type="ts">
setup() {
const { canRead } = usePermission();
if(canRead) {
// 我是一个需要读权限才会执行的方法
getDataFromServer().then(() => { })
}
}
</script>
初始化参数说明
permissions
权限信息(必传参数)
权限验证的核心参数,必须传入。
该对象为Json类型,key是路由的path,value是该path的权限集合。权限集合应符合uapp框架的ACL
定义,如需拓展,请配合ACL
一起使用。
如果你是使用Ipc方式从Angular层获取的permissions,因为Angular层返回的perimissions的key并不一定能够和当前Vue实例的route.path对应起来,所以你可能需要预先将permissions的key映射为正确的path,或通过传入mapRouteFunction
参数来帮助插件正确的将route.path转换为你在Angular中定义的key。
routeMapFunction
权限检查是基于route
的,该函数负责将route
转换为能在perimissions
中查找权限集合的key,默认使用route.path
,你可以传入自己的转换函数将route
映射为permissions
可接受的key
该函数的入参为route
,输出为string