vue 前端按鈕權限控制隱藏

很多後臺管理系統會用到權限管理,菜單權限比較好控制,按鈕權限就複雜一些,本文介紹的就是按鈕權限如何控制,用的是 vue 項目。

權限控制描述

前端需要根據後端傳來的權限數據控制是否顯示新增、編輯、刪除(紅框所示部分)功能。

菜單管理處設置的新增、刪除、編輯權限參數如圖紅框所示部分

如何實現

1、儲存權限數據

首先將權限控制的數據儲存到 vuex 或者 sessionstorage 中,或者全局變量。

如何獲得權限數據並提交到 vuex 的博文

https://blog.csdn.net/weixin_44849078/article/details/89184039

2、權限判斷方法

以新增按鈕爲例, 因爲設置的新增菜單權限參數爲 "line-add",所以 html 標籤如下,v-has 爲 vue 自定義指令,line-add 爲儲存在後臺的權限參數

store.getters.getMenuBtnList 爲儲存在 vuex 中的菜單按鈕數據,遍歷對比 permission 字段是否與標籤中的自定義參數 line_add 相等,匹配成功則表明有權限,失敗沒有權限,返回 false。

3、設置 vue 自定義指令

註冊一個全局自定義指令並監控它

結果發現報錯了,調試後發現 el.parentNode 爲 null,所以 removeChild 方法報錯,我猜可能是因爲 bind 鉤子觸發時父元素還沒有生成,所以換成 inserted 鉤子。

inseted:被綁定元素插入父節點時調用 (僅保證父節點存在,但不一定已被插入文檔中)。

4、最終代碼與效果

使用 inserted 後成功實現沒有權限的按鈕隱藏效果,代碼如下:

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/e5vYAXF_LU4uEsDbruFY_A