vue自定义指令实现按钮权限,超管可以点删除键,普通用户不准点

166 阅读1分钟

第一步:全局引入自定义指令文件

新建文件夹directives,其内用index.js记录所有的自定义指令

然后在main.js内引入即可全局使用

image.png

第二步尝试写法

我们先写一个这样的自定义指令

image.png

然后找个视图写个按钮

image.png 加载完成后,可以发现el,binding的值全部打印出来如图

故而后续需要使用对应参数就可以从binding里面查找了

image.png

这里着重看这两个参数

arg代表你想要做的功能,写在:后面,比如:disabled就是禁用,而:remove就是移出

value就是你给指令传入的那个参数

第三步:自定义指令的核心

备注:这里的roleInfo是从vuex里面解构出来的用户身份标识,可以是superAdmin,admin,guest

image.png

我们去判断roleInfo是否在我们传入的授权列表中

举个例子,你的权限是superAdmin,而这里我们传入的授权列表是【'superAdmin','admin'】,那么你符合资格,就不做处理。

换言之,如果你不在这个列表中,那么会根据arg对其作出相应的操作。

disabled就是禁用,remove就是移除

第四步:使用自定义指令

这个指令目前只对button生效,你只要在想要禁用的button上加上我们的指令,即可实现,根据roleInfo的值,来禁用或者不禁用。

image.png