好了,下面是具體實現步驟。
1.1 思路:
1.2 **:
在store/user.js
按鈕許可權
import vue from
'vue'
;const
haspermission
= userpermission =>
)// 是否在許可權陣列裡面
let status = eglishpermission.
includes
(userpermission)
return status
}//全域性方法掛載
vue.prototype.$_has = haspermission
1.3 main.js引入permission.js
import
'./directives/permission'
;
在裡面會獲取當前登入的賬號的按鈕許可權的資料
2.1 store/user.js
import iams from
"../../api/iams"
;const state =
;// 定義好請求的方法,這裡將把後台返回的按鈕許可權陣列儲存在state裡面,或者本地快取裡面
const mutations =,}
;// 觸發mutaitions裡面定義好的方法
const actions =
, payload));
if(result && result.ret ===
"200")}
,};const getters =
;export
default
;
2.2.iams.getmenurolelist 介面返回的資料(這裡是通過判斷menucode
字段判斷)
在判斷完使用者許可權,以及是否為白名單以後的最後跳轉步驟觸發store裡面actions裡面的方法
import store from
'@/store'
router.
beforeeach
((to,
from
, next)
=>
)
每次路由切換時會去routerconfig.js裡面觸發store.js裡面定義好的方法,拿到按鈕許可權陣列,頁面載入時,會主動觸發頁面繫結了$_has的方法,把當前的按鈕英文名傳遞給方法,方法判斷以後返回乙個布林型別,供頁面渲染,從而實現許可權控制!
>
>
v-if
="$_has('user_add')"
>
增加button
>
v-if
="$_has('user_edit')"
>
編輯button
>
v-if
="$_has('user_delet')"
>
刪除button
>
div>
template
>
按鈕許可權控制
通過 獲取前台傳入請求引數 類 方法 handlermethod methodobj handlermethod handler string function methodobj.getbean getclass getname methodobj.getmethod getname 編寫許可權檢...
directive使用者登入許可權控制按鈕顯示與隱藏
後台管理專案中有系統許可權控制,根據你登入的角色賬號,後台給你返回不一樣的許可權控制,用按鈕顯示,然後再做操作。我們登入成功之後把許可權儲存在session storage裡面,用ktbtn命名來儲存。然後在main.js裡面寫全域性指令。vue.directive has 現在就好了,然後在有許可...
Vue後台管理系統的按鈕許可權控制
摘要 最近需要在原有的後台管理系統中,需要給頁面中的所有按鈕進行許可權控制 實現的思路如下 方法一 1 獲取後台傳過來的按鈕許可權陣列,並將其儲存下來 2 寫乙個全域性的方法。判斷某個按鈕的許可權是否含在後台傳的按鈕許可權陣列中 3 頁面中在按鈕上寫v if進行控制 如下 後台的按鈕許可權資料模擬 ...