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

您的位置:首頁技術文章
文章詳情頁

Vue Element前端應用開發之用戶管理模塊的處理

瀏覽:55日期:2022-09-29 17:10:33
目錄1、權限管理模塊的設計2、用戶管理界面功能1、權限管理模塊的設計

我們知道,權限管理一般都會涉及到用戶、組織機構、角色,以及權限功能等方面的內容,ABP框架的基礎內容也是涉及到這幾方面的內容,其中它們之間的關系基本上是多對多的關系,它們的關系如下所示。

Vue Element前端應用開發之用戶管理模塊的處理

權限模塊里面包含的一些主對象表和中間表,中間表主要用來存儲兩個對象之間的多對多關系,如角色包含多個用戶,用戶屬于多個機構,機構包含多個角色等等。

結合ABP后端提供的接口,Vue前端我們要實現基礎的用戶、組織機構、角色、功能權限等內容的管理,以及維護它們之間的關系。Vue前端對于權限管理模塊的菜單列表如下所示。

Vue Element前端應用開發之用戶管理模塊的處理

上圖權限管理模塊中,包括用戶管理、機構管理、角色管理、菜單管理、功能管理、審計日志、登錄日志等內容模塊的管理。

其中用戶管理模塊,主要用來展示用戶信息列表,以及查看對應用戶權限、維護密碼等處理。

用戶列表界面如下所示,包括對應條件的查詢和列表展示、以及查看、添加、編輯、刪除、重置密碼等功能入口。

Vue Element前端應用開發之用戶管理模塊的處理

用戶信息查看界面如下所示

Vue Element前端應用開發之用戶管理模塊的處理

主要展示用戶基礎信息,和所屬的關系信息,其中權限部分列出對應用戶包含的功能點,用于界面按鈕等方面的控制處理。

Vue Element前端應用開發之用戶管理模塊的處理

用戶添加界面,則主要用來處理錄入用戶基礎信息部分即可,如下界面所示。

Vue Element前端應用開發之用戶管理模塊的處理

用戶信息錄入,對用戶基礎表單數據進行校驗,符合格式要求才能錄入。

用戶編輯界面,基本上和上面的類似了,不在贅述。

另外,刪除用戶或者重置密碼,一般需對確認后再行操作,彈出一個對話框用戶確認再繼續。

Vue Element前端應用開發之用戶管理模塊的處理

2、用戶管理界面功能

以上我們介紹了權限管理模塊涉及的內容和關系,并著重介紹了用戶管理界面中的內容展示,下面介紹在Element中如何實現對上面界面的處理的。

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

權限模塊我們涉及到的用戶管理、機構管理、角色管理、菜單管理、功能管理、審計日志、登錄日志等業務類,那么這些類繼承BaseApi,就會具有相關的接口了,如下所示繼承關系。

Vue Element前端應用開發之用戶管理模塊的處理

我們這里以UserAPI的JS類定義介紹,如下所示。

Vue Element前端應用開發之用戶管理模塊的處理

我們以其中一個接口為例進行介紹實現代碼,可以看到主要就是簡單封裝的調用即可。

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

有了這些業務類的準備,那么我們和后端ABP的API接口對接,就很容易了,如下圖所示。

Vue Element前端應用開發之用戶管理模塊的處理

剩下的就是對Vue + Element前端的界面處理事情了。

我們先來看看查詢的處理,常規的查詢涉及日期區間的查詢處理,這里我們用一個一個查詢日期的處理操作,如下圖所示。

Vue Element前端應用開發之用戶管理模塊的處理

表單的界面代碼如下所示

<el-form ref='searchForm' :model='searchForm' label- :inline='true'> <el-form-item label='創建時間'><el-date-picker v-model='searchForm.creationTime' type='daterange' unlink-panels range-separator='至' start-placeholder='開始日期' end-placeholder='結束日期' :picker-options='pickerOptions'/> </el-form-item> <el-form-item label='用戶名' prop='UserName'><el-input v-model='searchForm.UserName' /> </el-form-item> <el-form-item label='手機' prop='PhoneNumber'><el-input v-model='searchForm.PhoneNumber' /> </el-form-item> </el-form>

其中定義了一個pickerOptions 屬性,用于快速選擇日期的,在data里面增加一個這樣的屬性即可。

pickerOptions: {shortcuts: [{ text: ’最近一周’, onClick(picker) { const end = new Date(); const start = new Date(); start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); picker.$emit(’pick’, [start, end]); }}, { text: ’最近一個月’, onClick(picker) { const end = new Date(); const start = new Date(); start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); picker.$emit(’pick’, [start, end]); }}, { text: ’最近三個月’, onClick(picker) { const end = new Date(); const start = new Date(); start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); picker.$emit(’pick’, [start, end]); }}] },

在頁面里面,我們定義了一些分頁查詢的處理條件和對象,如下所示。

Vue Element前端應用開發之用戶管理模塊的處理

查詢表單則定義一個單獨的表單對象,如下代碼所示

searchForm: { // 查詢表單 UserName: ’’, PhoneNumber: ’’, creationTime: ’’ },

頁面加載準備好,我們就調用獲取列表的數據即可。

created() { // 頁面加載后,加載列表數據this.getlist()},

獲取列表的處理操作如下代碼所示,主要就是準備構建好對應的查詢參數,然后調用UserApi類的接口查詢列表即可。

getlist() { // 列表數據獲取 var CreationTimeStart = ’’ if (this.searchForm.creationTime && this.searchForm.creationTime.length > 0) {CreationTimeStart = this.parseTime(this.searchForm.creationTime[0], ’{y}-{m}-uqiqiw2’) } var CreationTimeEnd = ’’ if (this.searchForm.creationTime && this.searchForm.creationTime.length > 1) {CreationTimeEnd = this.parseTime(this.searchForm.creationTime[1], ’{y}-{m}-uogcgw2’) } var param = { // 構造常規的分頁查詢條件SkipCount: (this.pageinfo.pageindex - 1) * this.pageinfo.pagesize,MaxResultCount: this.pageinfo.pagesize,// 過濾條件UserName: this.searchForm.UserName,PhoneNumber: this.searchForm.PhoneNumber,CreationTimeStart: CreationTimeStart,CreationTimeEnd: CreationTimeEnd }; // 獲取列表,綁定到模型上,并修改分頁數量 this.listLoading = true user.GetAll(param).then(data => {this.list = data.result.itemsthis.pageinfo.total = data.result.totalCountthis.listLoading = false }) }, search() { // 查詢列表處理 this.pageinfo.pageindex = 1;// 重置為第一頁= this.getlist() },

通過列表的查詢操作,我們就可以把數據獲取到,界面就會得到及時的更新顯示了

// 獲取列表,綁定到模型上,并修改分頁數量 this.listLoading = true user.GetAll(param).then(data => {this.list = data.result.itemsthis.pageinfo.total = data.result.totalCountthis.listLoading = false })

而列表主要就是在界面使用el-table組件進行展示的了,如下圖所示代碼。

Vue Element前端應用開發之用戶管理模塊的處理

el-table綁定了對應的數據,并設置好顯示的格式以及選擇操作事件、行雙擊事件等操作。

而el-table里面的顯示的列,需要根據我們返回數據的屬性名稱進行顯示,如下代碼所示。

Vue Element前端應用開發之用戶管理模塊的處理

而如果我們需要對屬性進行特殊的展示,我們就需要使用v-if條件或者過濾器進行處理了。如下是根據不同內容,構建標簽顯示內容。

<el-table-column label='賬號激活' width='80'><template slot-scope='scope'> <el-tag v-if='scope.row.isActive === true' type='success' effect='dark'>已激活</el-tag> <el-tag v-else type='danger' effect='dark'>未激活</el-tag></template> </el-table-column>

而對于時間,我們則可以使用格式化函數或者過濾器規范顯示的格式內容。

<el-table-column label='創建時間' prop='creationTime' :formatter='dateFormat' />

其中:formatter='dateFormat' 指定了對應的格式化處理函數。

dateFormat(row, column, cellValue) { // this.parseTime是在main.js中的全局掛載函數 return cellValue ? this.parseTime(cellValue, ’{y}-{m}-2yagm0s’) : ’’ // 完整格式:{y}-{m}-qmg2iky {h}-{i}-{s} }, timeFormat(row, column, cellValue) { // this.parseTime是在main.js中的全局掛載函數 return cellValue ? this.parseTime(cellValue, ’{y}-{m}-sa2y0gu {h}:{i}:{s}’) : ’’ // 完整格式:{y}-{m}-sk2keeg {h}-{i}-{s} }

另外,操作列的代碼,主要就是構建一些方法操作的入口,并傳遞對應的變量,如ID值即可。

<el-table-column label='操作' width='190'><template scope='scope'> <el-row> <el-tooltip effect='light' content='查看' placement='top-start'> <el-button icon='el-icon-search' type='success' circle size='mini' @click='showView(scope.row.id)' /> </el-tooltip> <el-tooltip effect='light' content='編輯' placement='top-start'> <el-button icon='el-icon-edit' type='primary' circle size='mini' @click='showEdit(scope.row.id)' /> </el-tooltip> <el-tooltip effect='light' content='刪除' placement='top-start'> <el-button icon='el-icon-delete' type='danger' circle size='mini' @click='showDelete(scope.row.id)' /> </el-tooltip> <el-tooltip effect='light' content='重置密碼' placement='top-start'> <el-button icon='el-icon-setting' type='warning' circle size='mini' @click='showSetPass(scope.row.id)' /> </el-tooltip> </el-row></template> </el-table-column>

列表的底部分頁處理,也是利用對應的屬性進行顯示即可,并處理分頁變化的事件。

<div style='height:70px;'> <el-pagination:current-page='pageinfo.pageindex':page-size='pageinfo.pagesize':total='pageinfo.total':page-sizes='[10,20,30,40]'layout='total, sizes, prev, pager, next'@size-change='sizeChange'@current-change='currentChange' /> </div>

最后完成列表界面代碼,顯示列表界面如下所示。

Vue Element前端應用開發之用戶管理模塊的處理

而對于查看、編輯、新增等對話框,一般我們需要創建對應的表單屬性,用來承載對應的信息的,如我們為了查看信息的需要,創建一個viewForm的對象,如下所示。

viewForm: { // 查看表單id: ’’,userName: ’’,surname: ’’,name: ’’,emailAddress: ’’,phoneNumber: ’’,ouNames: ’’ },

Vue Element前端應用開發之用戶管理模塊的處理

在查看信息對話框里面,我們展示對應的用戶信息,包括基礎信息和相關的關系,如下界面代碼所示。

Vue Element前端應用開發之用戶管理模塊的處理

界面組件通過v-modal進行綁定對應的ViewForm屬性對象即可。

最后,我們在觸發showView函數里面,獲取對應的用戶信息,然后展示在界面上即可,showView函數代碼如下所示。

showView(id) { // 顯示查看對話框處理 var param = { id: id } user.Get(param).then(data => {// console.log(data.result)Object.assign(this.viewForm, data.result);this.getOuName(id).then(result => { this.viewForm.ouNames = result}) }) this.getFunctionsByUser(id) this.isView = true },

查看界面效果如下所示。

Vue Element前端應用開發之用戶管理模塊的處理

在新增或者編輯處理界面中,我們修改了數據,都會提交到ABP后端進行錄入或者更新,因此就涉及到數據的回寫處理,然后提示客戶端狀態即可。

下面是保存編輯界面的內容操作。

saveEdit() { // 保存數據處理 this.$refs[’editForm’].validate(valid => {if (valid) { // 保存數據 const form = this.editForm user.Update(form).then(data => { // console.log(data) if (data.success) { // 提示信息 this.msgSuccess(’更新成功!’) // 刷新數據 this.getlist() } else { this.msgError(’更新失敗:’ + data.error) } this.$refs[’editForm’].resetFields() // 重置窗口狀態 this.closeDialog() })} }) },

其中msgSuccess、msgError是全局掛載的提示信息函數,在入口main.js里面統一處理,封裝的函數方便在各個界面中統一處理。

Vue Element前端應用開發之用戶管理模塊的處理

以上就是關于用戶管理界面的內容介紹,其中涉及到前端API類的封裝處理,界面組件的使用,以及一些常規操作,希望能夠帶給大家一些vue+element開發界面的參考。

以上就是Vue Element前端應用開發之用戶管理模塊的處理的詳細內容,更多關于Vue Element之用戶管理模塊的處理的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲天堂黄色| 国产美女精品视频免费播放软件| 国产日本精品| 国产欧美日韩视频在线| 国产精品一级在线观看| 精品三级av| 久久激情网站| 视频一区在线视频| 日韩精品一页| 久久精品国产福利| 136国产福利精品导航网址| 午夜久久免费观看| 蜜桃一区二区三区| 亚洲色图网站| 国产精品igao视频网网址不卡日韩| 国产精品亚洲综合色区韩国 | 麻豆精品蜜桃| 欧美日韩国产一区精品一区| 国产免费成人| 91精品啪在线观看国产爱臀| 久久爱www.| 日韩不卡在线| 免费日韩av片| 国产精品一线| 亚洲国产专区| 欧美欧美黄在线二区| 国产精品高潮呻吟久久久久| 成人羞羞在线观看网站| 亚洲精品电影| 国产欧美69| 亚洲国产成人二区| 91久久在线| 欧美成a人片免费观看久久五月天| 久久久噜噜噜| 久久国产日韩欧美精品| 日韩在线欧美| 亚洲日产国产精品| 日韩成人免费| 最新日韩av| 国产精品最新自拍| 日韩精品一区二区三区免费观看| 激情久久久久久久| 欧美日韩va| 黄色成人91| 精品一区二区三区中文字幕视频 | 爽爽淫人综合网网站| 国产日韩三级| 亚洲经典在线| 中文字幕一区久| 亚洲乱亚洲高清| 91看片一区| 国产亚洲高清在线观看| 婷婷亚洲综合| 麻豆高清免费国产一区| 羞羞答答国产精品www一本 | 精品一区不卡| 亚洲色图网站| 久久久人人人| 精品视频在线你懂得| 亚洲三区欧美一区国产二区| 欧美日韩视频网站| 麻豆精品av| 天堂va欧美ⅴa亚洲va一国产| 国产suv精品一区二区四区视频| 亚洲精品高潮| 亚洲欧洲一区| 久久精品国产大片免费观看| 国产精品麻豆成人av电影艾秋 | 欧美xxxx性| 日本在线视频一区二区| 欧美日韩国产在线一区| 蜜桃精品在线| 国产66精品| 国产精品99精品一区二区三区∴ | 久久婷婷久久| 国产66精品| 国产精品日韩精品在线播放| 亚洲网址在线观看| 久久国产精品久久久久久电车| 欧美一区二区三区激情视频| 精品国产18久久久久久二百| 宅男噜噜噜66国产日韩在线观看| 欧美91视频| 亚洲色图综合| 五月天久久久| 国产精品一线天粉嫩av| 巨乳诱惑日韩免费av| 国产精品久久| 亚洲深爱激情| 欧美日韩国产免费观看视频| 久久激情一区| 久久久久午夜电影| 四虎4545www国产精品| 国产一区二区三区视频在线| 久久亚州av| 国产一区二区三区久久| 国产一区二区三区不卡av | av不卡在线| 午夜在线视频观看日韩17c| 午夜久久影院| 99国产精品99久久久久久粉嫩| av不卡免费看| 午夜国产一区二区| 亚洲一区国产| 亚洲免费一区三区| 久久狠狠亚洲综合| 毛片不卡一区二区| 国模大尺度视频一区二区| 国产成人精品999在线观看| 国产一区二区三区久久| 国产精品久久久久蜜臀| 精精国产xxxx视频在线野外| 欧美精品一区二区久久| 天堂成人免费av电影一区| 亚洲人成精品久久久| 久久激五月天综合精品| 精品视频自拍| 亚洲欧洲高清| 99在线观看免费视频精品观看| 亚洲精品一级| 久久久国产精品网站| 91精品国产自产在线观看永久∴| 久久xxxx| 久久av网址| 激情久久久久久久| 97久久超碰| 欧美久久天堂| 视频一区二区国产| 国产精品久久久久久久久久妞妞| 黄色在线观看www| 国产精品日韩久久久| 日韩国产精品久久久久久亚洲| 日本视频在线一区| 日韩精品2区| 亚洲精品日本| 国产精品66| 香蕉人人精品| 国产三级一区| 婷婷久久一区| 国产精品中文| 激情久久久久久| 欧美天堂在线| 久久国产亚洲精品| 日韩av字幕| 久久精品1区| 国产亚洲精aa在线看| 久久国产亚洲| 日本精品一区二区三区在线观看视频| 鲁鲁在线中文| 日韩欧美高清一区二区三区| 国产成人1区| 亚洲免费福利一区| av资源中文在线天堂| 免费欧美在线视频| 中文在线中文资源| 日产欧产美韩系列久久99| 私拍精品福利视频在线一区| 国产欧美日韩影院| 狠狠色狠狠色综合日日tαg| 里番精品3d一二三区| 欧美日韩国产精品一区二区亚洲| 欧美激情福利| 亚洲欧美久久久| 免费看av不卡| 国产精品99久久免费| 中文无码久久精品| 国产综合精品| 国际精品欧美精品| 欧美久久精品| 丝袜美腿一区二区三区| 天堂а√在线最新版中文在线| 欧美亚洲网站| 水野朝阳av一区二区三区| 91精品推荐| 日韩国产欧美一区二区| 国产精品白丝一区二区三区| 亚洲毛片视频| 亚洲激情五月| 成人精品亚洲| 国产精品精品| 久久一区视频| 国产乱人伦丫前精品视频| 久久亚洲影院| 好吊视频一区二区三区四区| a日韩av网址| 精品理论电影在线| 国产精品亚洲欧美一级在线| 亚洲综合五月| 欧美综合国产| 亚洲黄页一区| 国产精品99免费看| 免费一二一二在线视频| 欧美激情视频一区二区三区免费| 日韩有码av| 日本v片在线高清不卡在线观看| 一区二区三区国产在线| 亚洲网址在线观看| 中文字幕一区二区精品区| 西西人体一区二区| 蜜桃久久精品一区二区|