在專案後台管理專案開發中經常會遇到許可權的功能,今天我就好好整理一下,如何實現許可權管理。
許可權管理:通過角色分配許可權
接下來時具體實現的步驟
1,建立vue腳手架
2,建立元件,並匹配路由規則
備註:rights資料夾下是側邊欄的子路由,通過動態路由addroutes獲取,後面會寫如何是實現;sidebar.vue是側邊欄元件,註冊為home的私有元件
//route/index.js
import vue from 'vue'
import vuerouter from 'vue-router'
vue.use(vuerouter)
const routes =[,
,]const router = new vuerouter(
)export default router
3,在login元件裡面寫登入業務邏輯
//login頁面,檢視層**
4,在這裡我自己簡單的寫了一些後台的資料,通過判斷角色來獲取許可權
const express=require(
'express'))
// 解決跨域
const cors=require(
'cors')))
// /* 獲取post請求傳遞的引數 */
const bodyparser = require(
'body-parser')))
))'/login', (req, res)
=>
= req.body
if(username ==
'admin'))
}else
if(username ==
'master'))
}else if(username==
'tea'))
}else)}
})const master =[,
]const tea =[,
]const stu =[,
])=>
)
5,前端向後端發起axios請求,我把請求的**抽離了出來
//src/api/index.js
import axios from 'axios'
axios.defaults.baseurl=
''// 向後台傳送請求
export const loginapi=
(params)
=>
6,具體實現的業務邏
//login元件業務邏輯
// 第一步
import
from '@/api'
// 引入lodash,實現拷貝
import _ from 'lodash'
// 引入封裝的函式,匹配路由
import transrouter from '../utils/index.js'
export default }},
methods:);
// 第七步:迴圈轉殖的資料,拼接rights下面的路徑,此處我封裝成了transrouter(
)函式 resclone.foreach(item =
>
) // 動態新增路由
this.$router.addroutes(resclone)
console.log(resclone,999)
// 第三步:把資料儲存到本地,注意要是json格式
localstorage.setitem(
'sidedata',json.stringify(res.data.roles))})
this.$router.push(
'/home')}}};
//sidebar元件
===sidebar側邊欄元件
<
!-- 第五步:通過v-for迴圈,動態渲染資料 -->
"(item,index) in info" :key=
'index'
>
'item.path'
>
}export default}}
這部分是封裝的transrouter函式
//src/utils/index.js
function transrouter(params)
}export default
後台許可權管理
許可權 檔案,在main.js中引入 用法 許可權按鈕 import vue from vue const has vue.directive has if haspermisssion isshowbutton if haspermisssion isshowbutton 許可權檢查方法 vue....
Vue 後台管理專案13 許可權管理實現
1.1 完成roles元件靜態布局 elemenet元件 table 展開行 通過設定 type expand 和 scoped slot 可以開啟展開行功能,el table column 的模板會被渲染成為展開行的內容,展開行可訪問的屬性與使用自定義列模板時的 scoped slot 相同。傳送...
後台管理員的許可權管理實現
需求 在乙個前後端分離的專案裡,實現對於 系統管理員 類使用者的許可權管理功能。每個管理員都可以屬於乙個或者多個角色 每個角色有許可權進行乙個或者多個操作。設計 許可權控制分成兩層,分別是介面訪問許可權,和操作許可權。介面訪問許可權,通過乙個切片來實現。比如普通使用者不能訪問管理員介面。資料庫中設計...