Vue3封裝全局自定義指令實現(xiàn)按鈕權(quán)限控制功能實例
一、什么是按鈕權(quán)限控制
概念:根據(jù)當前用戶的權(quán)限數(shù)據(jù)控制按鈕的顯示和隱藏
二、思路 (往往是后端返回的權(quán)限標識)
后端返回的權(quán)限數(shù)據(jù)模擬
// 模擬權(quán)限mock數(shù)據(jù) const permissions = [ "park:bulidng:add", "park:bulidng:del", "park:bulidng:edit", ]
思路:每一個需要做權(quán)限控制的按鈕都有一個自己獨有的 標識 , 如果標識可以在權(quán)限數(shù)據(jù)列表中找到,則顯示,找不到就隱藏
三、實現(xiàn)
按鈕綁定上v-my-point自定義全局指令
代碼如下(示例):
<div class="container"> <el-button v-my-point="'bulidng:add'" type="success">添加</el-button> <el-button v-my-point="'bulidng:del'" type="primary">編輯</el-button> <el-button v-my-point="'bulidng:edit'" type="danger">刪除</el-button> </div>
main.ts注冊為全局指令
// 自定義按鈕權(quán)限directive const myPointDirective:Directive<HTMLElement,string> = (el,binding) => { if (!permissions.includes(user + ":" + binding.value)) { el.style.display = 'none' } } // 全局注冊指令 app.directive('my-point', myPointDirective);
效果:
后端返回的權(quán)限數(shù)據(jù)沒有,則上面按鈕就不會顯示
總結(jié)
這樣就實現(xiàn)了通過全局自定義指令來實現(xiàn)按鈕權(quán)限的控制了。
到此這篇關(guān)于Vue3封裝全局自定義指令實現(xiàn)按鈕權(quán)限控制功能的文章就介紹到這了,更多相關(guān)Vue3自定義指令按鈕權(quán)限控制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
快速解決Error: error:0308010C:digital envelope ro
因為 node.js V17版本中最近發(fā)布的OpenSSL3.0, 而OpenSSL3.0對允許算法和密鑰大小增加了嚴格的限制,下面通過本文給大家分享快速解決Error: error:0308010C:digital envelope routines::unsupported的三種解決方案,感興趣的朋友一起看看吧2024-02-02Vue中狀態(tài)管理器(vuex)詳解以及實際應(yīng)用場景
Vuex是一個專為Vue.js應(yīng)用程序開發(fā)的狀態(tài)管理模式,下面這篇文章主要給大家介紹了關(guān)于Vue中狀態(tài)管理器(vuex)詳解以及實際應(yīng)用場景的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-11-11