日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Vue Element前端應(yīng)用開發(fā)之功能點(diǎn)管理及權(quán)限控制

瀏覽:17日期:2022-09-29 16:23:14
目錄概述1、權(quán)限功能點(diǎn)管理2、VUE+Element 前端權(quán)限控制概述

本篇隨筆介紹功能點(diǎn)管理及權(quán)限控制,功能點(diǎn)是作為一個(gè)業(yè)務(wù)對(duì)象數(shù)據(jù)進(jìn)行管理,在角色范疇上進(jìn)行分配,而在界面元素控制上,VUE+Element 前端引入Vue自定義指令Directives進(jìn)行控制。

1、權(quán)限功能點(diǎn)管理

我們?cè)谇懊娣治鲞^一個(gè)權(quán)限系統(tǒng)的表和關(guān)系的說明,如下所示。

Vue Element前端應(yīng)用開發(fā)之功能點(diǎn)管理及權(quán)限控制

權(quán)限功能點(diǎn)的管理就是對(duì)TB_Function的表的管理操作,這個(gè)表是我們定義用于系統(tǒng)控制的功能點(diǎn)。

權(quán)限功能點(diǎn)的管理為了展示它的樹狀結(jié)果,包括樹列表的管理和明細(xì)列表的管理,如下圖所示。

Vue Element前端應(yīng)用開發(fā)之功能點(diǎn)管理及權(quán)限控制

功能點(diǎn)的查看界面如下所示,除了展示對(duì)應(yīng)功能點(diǎn)的詳細(xì)信息外,還列出這個(gè)功能點(diǎn)被那些角色擁有使用。

Vue Element前端應(yīng)用開發(fā)之功能點(diǎn)管理及權(quán)限控制

功能點(diǎn)的新增界面如下所示,主要就是選擇父節(jié)點(diǎn)和錄入功能點(diǎn)的信息即可。

Vue Element前端應(yīng)用開發(fā)之功能點(diǎn)管理及權(quán)限控制

而為了更加方便批量錄入權(quán)限功能點(diǎn),我們可以以業(yè)務(wù)表為基礎(chǔ)進(jìn)行批量錄入,如下所示。

Vue Element前端應(yīng)用開發(fā)之功能點(diǎn)管理及權(quán)限控制

這樣添加客戶信息的功能點(diǎn)名稱,會(huì)自動(dòng)變?yōu)椋篊ustomer/Add,其他的類似,這樣可以快速添加針對(duì)這個(gè)業(yè)務(wù)表的相關(guān)功能點(diǎn)。

有了這些功能點(diǎn)的定義,我們就可以結(jié)合角色管理進(jìn)行分配給不同的角色了。如下是在角色編輯界面中,為角色分配不同的權(quán)限控制點(diǎn)。

Vue Element前端應(yīng)用開發(fā)之功能點(diǎn)管理及權(quán)限控制

2、VUE+Element 前端權(quán)限控制

前面內(nèi)容介紹了權(quán)限功能點(diǎn)的管理,以及基于角色的權(quán)限實(shí)現(xiàn)分配處理,這些都為前端實(shí)現(xiàn)界面元素的權(quán)限控制做準(zhǔn)備的。

首先我們需要根據(jù)ABP后端的接口進(jìn)行前端JS端的類的封裝處理,其中前面說過,常規(guī)的Get/GetAll/Create/Update/Delete/Count等接口,我們放在BaseApi基類里面定義,其他子類繼承它即可。

權(quán)限模塊我們涉及到的用戶管理、機(jī)構(gòu)管理、角色管理、菜單管理、功能管理、審計(jì)日志、登錄日志等業(yè)務(wù)類,那么這些類繼承BaseApi,就會(huì)具有相關(guān)的接口了,如下所示繼承關(guān)系。

Vue Element前端應(yīng)用開發(fā)之功能點(diǎn)管理及權(quán)限控制

由于用戶相關(guān)的菜單、權(quán)限集合是在用戶范疇里面,我們可以在UserApi里面定義對(duì)應(yīng)的后端接口調(diào)用。

Vue Element前端應(yīng)用開發(fā)之功能點(diǎn)管理及權(quán)限控制

其中GetGrantedFunctionsByUser 方法就是獲取指定用戶的權(quán)限功能點(diǎn)集合的函數(shù)。

UserApi的類文件user.js內(nèi)容如下所示。

Vue Element前端應(yīng)用開發(fā)之功能點(diǎn)管理及權(quán)限控制

其中GetGrantedFunctionsByUser 方法就是獲取指定用戶的權(quán)限功能點(diǎn)集合的函數(shù),函數(shù)代碼如下所示。

GetGrantedFunctionsByUser(id) { // 獲取用戶權(quán)限列表 return request({ url: this.baseurl + ’GetGrantedFunctionsByUser’, method: ’get’, params: { id } }) }

在用戶的Store/Modules/user.js里面,我們?cè)黾右粋€(gè)功能點(diǎn)的狀態(tài)信息,如下所示。

Vue Element前端應(yīng)用開發(fā)之功能點(diǎn)管理及權(quán)限控制

然后在用戶每次獲取信息的時(shí)候,把它的功能點(diǎn)信息也存儲(chǔ)起來,那么界面就可以根據(jù)這個(gè)存儲(chǔ)內(nèi)容進(jìn)行相應(yīng)的權(quán)限控制了。

在Mutation里面添加一個(gè)設(shè)置用戶狀態(tài)信息的函數(shù),如下所示。

SET_PERMITS: (state, permits) => { state.permits = permits }

這樣我們?cè)谟脩粜畔@取的getInfo函數(shù)里面,就可以順便一起獲取用戶的包含的權(quán)限功能點(diǎn)信息集合了。

// 獲取用戶信息 getInfo({ commit, state }) { return new Promise((resolve, reject) => { user.getInfo(state.userid).then(response => {const { result } = response ....................commit(’SET_ROLES’, { roles, roleNames })commit(’SET_NAME’, name)commit(’SET_INTRODUCTION’, fullName)// 獲取用戶權(quán)限user.GetGrantedFunctionsByUser(state.userid).then(data => { var list = data.result.items if (list) { var permits = [] list.forEach(element => { if (element && element.name && typeof (element.name) !== ’undefined’) {permits.push(element.name.toLowerCase()) // 小寫 } }); // 設(shè)置用戶功能權(quán)限點(diǎn) commit(’SET_PERMITS’, permits) }})resolve(result) }).catch(error => {reject(error) }) }) },

現(xiàn)在前端也有這些權(quán)限功能點(diǎn)控制集合了,這些就是對(duì)應(yīng)當(dāng)前登錄用戶的可訪問權(quán)限集合了。

接下來的就是需要根據(jù)這些權(quán)限集合,進(jìn)行界面元素的控制了,如對(duì)一些操作按鈕,如新增、編輯、刪除、導(dǎo)入、導(dǎo)出等操作的按鈕是否可以顯示進(jìn)行管理。

這個(gè)操作就是設(shè)計(jì)到Vue的自定義指令操作了,如不了解的自定義Directives的使用的,可以參考下官方介紹:https://cn.vuejs.org/v2/guide/custom-directive.html

如我們定義一個(gè)v-permit 的自定義指令來處理權(quán)限功能點(diǎn)的綁定處理,那么界面應(yīng)該如下處理。

<el-row style='float:right;padding-bottom:10px'> <el-button icon='el-icon-search' type='primary' size='mini' round @click='search()'>查詢</el-button> <el-button icon='el-icon-refresh-left' type='warning' size='mini' round plain @click='resetSeachForm(’searchForm’)'>重置</el-button> <el-button v-permit='[’User/add’]' icon='el-icon-plus' type='success' size='mini' round @click='showAdd()'>添加</el-button> <el-button v-permit='[’User/import’]' icon='el-icon-upload2' type='warning' size='mini' round @click='showImport()'>導(dǎo)入</el-button> <el-button v-permit='[’User/export’]' icon='el-icon-download' type='warning' size='mini' round @click='showImport()'>導(dǎo)出</el-button> </el-row>

通過類似v-permit='[’User/add’]'的方式操作,就可以指定這個(gè)操作按鈕的功能點(diǎn),如果用戶具有這些功能點(diǎn),那么就可以使用,否則就不顯示了。

我們?cè)赿irective目錄中定義一個(gè)permit.js的自定義指令文件,用來進(jìn)行相應(yīng)的處理的。

Vue Element前端應(yīng)用開發(fā)之功能點(diǎn)管理及權(quán)限控制

然后在index.js的發(fā)布文件里面定義裝載處理邏輯,如下代碼所示

import permit from ’./permit’const install = function(Vue) { Vue.directive(’permit’, permit)}if (window.Vue) { window[’permit’] = permit // eslint-disable-next-line no-undef Vue.use(install)}permission.install = installexport default permission

最后,在main.js里面全局裝載自定義指令的操作,如下代碼所示。

// 全局引入并使用權(quán)限控制點(diǎn)的自定義指令import permission from ’./directive/permission’Vue.use(permission)

有了store模塊里面的狀態(tài)信息,以及自定義指令的支持,在界面上對(duì)應(yīng)按鈕元素上,就可以利用這些權(quán)限點(diǎn)進(jìn)行控制操作了。

Vue Element前端應(yīng)用開發(fā)之功能點(diǎn)管理及權(quán)限控制

以上就是Vue Element前端應(yīng)用開發(fā)之功能點(diǎn)管理及權(quán)限控制的詳細(xì)內(nèi)容,更多關(guān)于Vue的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Vue
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
97精品国产| 久久久久久夜| 91精品一区国产高清在线gif | 五月天综合网站| 欧美一级精品| 九九在线精品| 国产色综合网| 蜜臀av性久久久久蜜臀aⅴ流畅 | 精品一区二区三区中文字幕| 国产精品www.| 成人精品高清在线视频| 中文字幕色婷婷在线视频| 日韩在线观看| 伊人久久亚洲美女图片| 综合五月婷婷| 国产欧美日韩综合一区在线播放| 毛片不卡一区二区| 给我免费播放日韩视频| 99久久夜色精品国产亚洲1000部| 国产精品嫩草99av在线| 日本麻豆一区二区三区视频| 国产精品高清一区二区| 亚洲国产欧美日本视频| 国户精品久久久久久久久久久不卡| 欧美在线综合| 国产日韩中文在线中文字幕 | 午夜亚洲福利| 欧美日韩a区| 国产一区二区精品福利地址| 99精品电影| 亚洲精品黄色| 精品亚洲自拍| 免费精品国产的网站免费观看| 综合激情婷婷| 麻豆国产精品777777在线| 日韩国产一区| 三级欧美韩日大片在线看| 国产精品视频一区二区三区四蜜臂| 日产精品一区二区| 色爱av综合网| 国产亚洲精品美女久久| 黄色网一区二区| 精品国产美女a久久9999| 久久美女精品| 亚洲精品影院在线观看| 精品一区91| 性一交一乱一区二区洋洋av| 国产精品一区二区精品| 免费福利视频一区二区三区| 亚洲欧美高清| 久久av综合| 女人天堂亚洲aⅴ在线观看| 日本精品一区二区三区在线观看视频| 高清久久一区| 蜜桃久久av一区| 国产成人久久精品一区二区三区| 99国产成+人+综合+亚洲欧美| 亚洲日韩中文字幕一区| 国产精品二区不卡| 在线精品观看| 成人一区不卡| 亚洲一区二区三区四区电影| 国产在线不卡一区二区三区| 亚洲一区日韩| 国语精品一区| 日本不卡一区二区| 99成人超碰| 免费视频一区二区三区在线观看| 成人日韩在线| 亚洲无线一线二线三线区别av| 日韩精品午夜视频| 久久久久午夜电影| 日韩欧美精品一区二区综合视频| 日韩黄色大片网站| 日韩成人av影视| 亚洲黑丝一区二区| 国产精品va视频| 麻豆亚洲精品| 亚洲va中文在线播放免费| 国产视频网站一区二区三区| 亚洲一区区二区| 麻豆视频在线观看免费网站黄 | 精品中文字幕一区二区三区 | 亚洲精品乱码| 久久久久国产精品一区三寸| 麻豆一区二区三区| 日韩国产精品久久久久久亚洲| 好看的亚洲午夜视频在线| 色在线视频观看| 久久精品一区二区国产| 日韩av二区在线播放| 人人爽香蕉精品| 欧美日韩国产传媒| 天堂√8在线中文| 久久精品一本| 日本欧美一区二区| 一区二区国产在线观看| 色爱综合av| 久久久久久夜| 成人精品久久| 久久精品一区| 国产精品99久久免费观看| 亚洲乱码久久| 丝瓜av网站精品一区二区| 欧美一区二区三区激情视频| 黑人精品一区| 国产精品99久久精品| 久久女人天堂| 美女精品一区二区| 欧美国产亚洲精品| 国产精品亚洲片在线播放| 日韩精品久久久久久久软件91| 久久xxxx精品视频| 午夜久久美女| 尤物在线精品| 亚洲欧美不卡| 综合国产视频| 日本在线成人| 欧美亚洲人成在线| 国产女人18毛片水真多18精品| 欧美日本不卡高清| 日韩国产精品久久久久久亚洲| 欧美国产专区| 亚洲午夜精品久久久久久app| 欧美精品成人| 捆绑调教美女网站视频一区| 国产一区清纯| 99tv成人| 国产99在线| 日韩av在线播放网址| 精品国产亚洲日本| 国产成人免费精品| 最近高清中文在线字幕在线观看1| 福利一区二区免费视频| 黑人精品一区| 国产精品99一区二区| 欧美日韩国产免费观看| 激情欧美丁香| 午夜亚洲一区| 亚洲精品系列| 久久精品xxxxx| 欧美激情99| 麻豆mv在线观看| 国产一区一一区高清不卡| 超级白嫩亚洲国产第一| 四虎4545www国产精品| 91精品91| 无码日韩精品一区二区免费| 日韩久久一区| 久久亚洲国产精品尤物| 国产综合色区在线观看| 亚洲午夜在线| 蜜桃传媒麻豆第一区在线观看| 在线观看一区| 久久国产生活片100| 精品久久中文| 亚洲香蕉网站| 蜜臀av亚洲一区中文字幕| 亚洲三区欧美一区国产二区| 国产乱子精品一区二区在线观看| 久久麻豆视频| 91精品一区二区三区综合在线爱| 免费看日韩精品| 国产精品久久久久77777丨| 久久99国产精品视频| 一区二区小说| 日韩av午夜在线观看| 久久影院午夜精品| 午夜一级久久| 麻豆国产精品| 亚洲欧洲一区二区天堂久久| 日本不卡视频在线| 成人影视亚洲图片在线| japanese国产精品| 青青草精品视频| 日韩不卡在线| 日韩欧美美女在线观看| 日韩在线欧美| 久久最新视频| 久久在线91| 亚洲一区二区成人| 国产精品免费不| 久久一区二区三区电影| 日本不卡在线视频| 亚洲天堂1区| 亚洲精品成人一区| 日韩大片在线播放| 日韩高清国产一区在线| 91欧美国产| 免费国产亚洲视频| 久久69成人| 国产亚洲精品自拍| 另类综合日韩欧美亚洲| 在线亚洲精品| 精品视频在线观看网站| 男女性色大片免费观看一区二区| 精品久久福利| 亚洲v天堂v手机在线| 久久一区二区三区电影| 欧美黄色一区二区|