Vue element-admin權(quán)限控制之按鈕使用
Vue element-admin權(quán)限控制之按鈕
在項(xiàng)目中一般的權(quán)限控制都是精確到按鈕的分配,那么在 elemen-admin中如何實(shí)現(xiàn)這一操作呢
第一步
需要?jiǎng)?chuàng)建 hasPermi.js
當(dāng)然名稱可以自定義這個(gè)js文件是做權(quán)限的匹配的
/** * v-hasPermi 操作權(quán)限處理 */ import store from '@/store' function checkPermission(el, binding) { const { value } = binding //通用權(quán)限測(cè)試用的偷懶的寫(xiě)法 const all_permission = "*:*:*"; //此處定義的是權(quán)限的 格式:'system:sysUser:edit' const roles = store.getters && store.getters.permissions if (value && value instanceof Array) { if (value.length > 0) { const permissionRoles = value const hasPermission = roles.some(role => { //這里如果是包含 或者 是上面的通配符號(hào)就放行顯示(當(dāng)然 生產(chǎn)環(huán)境是不能加這個(gè)通配符的) return all_permission === role || permissionRoles.includes(role) }) if (!hasPermission) { el.parentNode && el.parentNode.removeChild(el) } } } else { throw new Error(`need roles! Like v-permission="['admin','editor']"`) } } export default { //被綁定元素插入父節(jié)點(diǎn)時(shí)調(diào)用(父節(jié)點(diǎn)存在即可調(diào)用,不必存在于 document 中)。 inserted(el, binding) { checkPermission(el, binding) }, // 被綁定元素所在的模板更新時(shí)調(diào)用,而不論綁定值是否變化 update(el, binding) { checkPermission(el, binding) } }
第二步
在創(chuàng)建一個(gè)index.js
來(lái)在Vue 中全局使用
import permission from './hasPermi' const install = function(Vue) { Vue.directive('permission', permission) } /** * 按鈕權(quán)限 */ if (window.Vue) { window['permission'] = permission Vue.use(install); // eslint-disable-line } permission.install = install export default permission
最后看看頁(yè)面怎么使用 沒(méi)錯(cuò) 優(yōu)雅的使用 v-permission
<template slot-scope="scope"> <el-button type="text" size="small" icon="el-icon-edit" v-permission="['system:sysUser:edit']" @click="updateInfo(scope.row)">修改</el-button> </template>
效果 : 當(dāng)用戶權(quán)限不包含 system:sysUser:edit時(shí) 修改按鈕隱藏
包含時(shí)就會(huì)顯示出來(lái)
注:最好后端的接口請(qǐng)求上面加上權(quán)限再一次校驗(yàn),防止后端已經(jīng)更新用戶權(quán)限,前端沒(méi)有刷新導(dǎo)致沒(méi)有生效??梢钥柯?aop 加注解的模式 這里就不多說(shuō)了
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue源碼之關(guān)于vm.$delete()/Vue.use()內(nèi)部原理詳解
這篇文章主要介紹了Vue源碼之關(guān)于vm.$delete()/Vue.use()內(nèi)部原理詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05vue-editor-bridge報(bào)錯(cuò)的解決方案
這篇文章主要介紹了vue-editor-bridge報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04vue多級(jí)復(fù)雜列表展開(kāi)/折疊及全選/分組全選實(shí)現(xiàn)
這篇文章主要介紹了vue多級(jí)復(fù)雜列表展開(kāi)/折疊及全選/分組全選實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11vue調(diào)取電腦攝像頭實(shí)現(xiàn)拍照功能
這篇文章主要為大家詳細(xì)介紹了vue調(diào)取電腦攝像頭實(shí)現(xiàn)拍照功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09VUE 常規(guī)截取和特殊字符之前之后截取(實(shí)例代碼)
這篇文章主要介紹了VUE 常規(guī)截取和特殊字符之前之后截取,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-10-10關(guān)于element?ui中的el-scrollbar橫向滾動(dòng)問(wèn)題
這篇文章主要介紹了關(guān)于element?ui中的el-scrollbar橫向滾動(dòng)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08