Vue element-admin權(quán)限控制之按鈕使用
Vue element-admin權(quán)限控制之按鈕
在項目中一般的權(quán)限控制都是精確到按鈕的分配,那么在 elemen-admin中如何實現(xiàn)這一操作呢
第一步
需要創(chuàng)建 hasPermi.js 當(dāng)然名稱可以自定義這個js文件是做權(quán)限的匹配的
/**
* v-hasPermi 操作權(quán)限處理
*/
import store from '@/store'
function checkPermission(el, binding) {
const { value } = binding
//通用權(quán)限測試用的偷懶的寫法
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 => {
//這里如果是包含 或者 是上面的通配符號就放行顯示(當(dāng)然 生產(chǎn)環(huán)境是不能加這個通配符的)
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ào)用(父節(jié)點存在即可調(diào)用,不必存在于 document 中)。
inserted(el, binding) {
checkPermission(el, binding)
},
// 被綁定元素所在的模板更新時調(diào)用,而不論綁定值是否變化
update(el, binding) {
checkPermission(el, binding)
}
}第二步
在創(chuàng)建一個index.js 來在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ō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時 修改按鈕隱藏


包含時就會顯示出來

注:最好后端的接口請求上面加上權(quán)限再一次校驗,防止后端已經(jīng)更新用戶權(quán)限,前端沒有刷新導(dǎo)致沒有生效??梢钥柯?aop 加注解的模式 這里就不多說了
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue源碼之關(guān)于vm.$delete()/Vue.use()內(nèi)部原理詳解
這篇文章主要介紹了Vue源碼之關(guān)于vm.$delete()/Vue.use()內(nèi)部原理詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05
vue多級復(fù)雜列表展開/折疊及全選/分組全選實現(xiàn)
這篇文章主要介紹了vue多級復(fù)雜列表展開/折疊及全選/分組全選實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11
VUE 常規(guī)截取和特殊字符之前之后截取(實例代碼)
這篇文章主要介紹了VUE 常規(guī)截取和特殊字符之前之后截取,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-10-10
關(guān)于element?ui中的el-scrollbar橫向滾動問題
這篇文章主要介紹了關(guān)于element?ui中的el-scrollbar橫向滾動問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08

