js React Dva對頁面中權限節點的控制 即有權限展示和無權限的不展示

思路:有些界面和操作按鈕有着對應唯一的權限碼,當用戶登錄之後會獲取到用戶向前所擁有的權限碼。然後跟整個系統的權限碼進行比對,如果存在對應的權限碼則擁有該權限。

步驟:

1,在permission.js中存放整個系統的權限碼

2.登錄成功後獲取到當前用戶擁有的權限列表,並使用localStorage本地存儲起來

window.localStorage.setItem('auth', JSON.stringify(auth));

3.在auth.js中編寫當前權限碼與系統權限碼是否匹配

const isAuth = authId => {

if (authId === undefined || authId === null) {

return true;

}

let ids = [];

// 可能是個數組

if (authId.length) {

ids = ids.concat(authId);

} else {

ids.push(authId);

}

// 獲取當前用戶所擁有的權限列表

let authIds = JSON.parse(window.localStorage.getItem("auth")) || [];

// 循環判斷是否匹配

for (const userAuthId of ids) {

for (const id of authIds) {

if (userAuthId === id) {

return true

}

}

}

return false;

};

 

export { isAuth };

 

使用:

如在新增按鈕設置權限:

{isAuth(Permission.postManage.addPost)) === true ? <Button onClick={this.handleAddPost}>新增</Button> : ''}

isAuth返回值爲true就顯示新增按鈕 false就不顯示

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------如遇到問題:+WX:WAZJ-0508,及時聯繫---------------------------------------------------------------------------------------------------------------------------------------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章