精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于 RuoYi-Vue 做一個健身會員管理系統,你學會了嗎?

開發 前端
在 RuoYi-Vue 中,采用的是方案一,即和 vhr 的方案是一樣的:服務端動態返回菜單信息,前端再去渲染就行了。

最近在小伙伴們的強烈要求下,我們研究了下 RuoYi-Vue,感覺真的還挺好玩的,可以算是一個非常成熟的腳手架了,我們可以基于此快速開發一個商用項目。

有小伙伴想讓松哥幫忙捋一捋這個項目,怎么說呢,如果你看過 vhr 的視頻的話,我覺得這個項目應該是很容易懂的,基本上技術點都是一致的。

不過最近也剛好有空,博客也不知道寫啥了,那么我試試能不能手把手帶領小伙伴們以 RuoYi-Vue 為腳手架,開發一個健身房的會員管理系統。如果小伙伴們對此感興趣的話,可以多多點贊轉發,這樣這個系列就不會爛尾~另外這個系列我假設大家已經做過 vhr 項目了,所以一些非?;A的知識點我就不重復啰嗦了。

1. 現有動態菜單分析

1.1 兩種方案

動態菜單就是用戶登錄之后看到的菜單,不用角色的用戶登錄成功之后,會看到不用的菜單項,這個動態菜單要怎么實現呢?整體來說,有兩種不同的方案,松哥曾經做過的項目中,兩種方案也都有用過,這里分別來和大家分享一下。

1.1.1 后端動態返回

后端動態返回,這是我在微人事中采用的方案。微人事中,權限管理相關的表一共有五張表,如下:

其中 hr 表就是用戶表,用戶登錄成功之后,可以查詢到用戶的角色,再根據用戶角色去查詢出來用戶可以操作的菜單(資源),然后把這些可以操作的資源,組織成一個 JSON 數據,返回給前端,前端再根據這個 JSON 渲染出相應的菜單。以微人事為例,我們返回的 JSON 數據格式如下:

[
{
"id":2,
"path":"/home",
"component":"Home",
"name":"員工資料",
"iconCls":"fa fa-user-circle-o",
"children":[
{
"id":null,
"path":"/emp/basic",
"component":"EmpBasic",
"name":"基本資料",
"iconCls":null,
"children":[

],
"meta":{
"keepAlive":false,
"requireAuth":true
}
}
],
"meta":{
"keepAlive":false,
"requireAuth":true
}
}
]

這樣的 JSON 在前端中再進行二次處理之后,就可以使用了,前端的二次處理主要是把 component 屬性的字符串值轉為對象。這一塊具體操作大家可以參考微人事項目(具體在:https://github.com/lenve/vhr/blob/master/vuehr/src/utils/utils.js),我就不再贅述了。

這種方式的一個好處是前端的判斷邏輯少一些,后端也不算復雜,就是一個 SQL 操作,前端拿到后端的返回的菜單數據,稍微處理一下就可以直接使用了。另外這種方式還有一個優勢就是可以動態配置資源-角色以及用戶-角色之間的關系,進而調整用戶可以操作的資源(菜單)。

1.1.2 前端動態渲染

另一種方式就是前端動態渲染,這種方式后端的工作要輕松一些,前端處理起來麻煩一些,松哥去年年末幫一個律所做的一個管理系統,因為權限上比較容易,我就采用了這種方案。

這種方式就是我直接在前端把所有頁面都在路由表里邊定義好,然后在 meta 屬性中定義每一個頁面需要哪些角色才能訪問,例如下面這樣:

[
{
"id":2,
"path":"/home",
"component":Home,
"name":"員工資料",
"iconCls":"fa fa-user-circle-o",
"children":[
{
"id":null,
"path":"/emp/basic",
"component":EmpBasic,
"name":"基本資料",
"iconCls":null,
"children":[

],
"meta":{
"keepAlive":false,
"requireAuth":true,
"roles":['admin','user']
}
}
],
"meta":{
"keepAlive":false,
"requireAuth":true
}
}
]

這樣定義表示當前登錄用戶需要具備 admin 或者 user 角色,才可以訪問 EmpBasic 組件,當然這里不是說我這樣定義了就行,這個定義只是一個標記,在項目首頁中,我會遍歷這個數組做菜單動態渲染,然后根據當前登錄用戶的角色,再結合當前組件需要的角色,來決定是否把當前組件所對應的菜單項渲染出來。

這樣的話,后端只需要在登錄成功后返回當前用戶的角色就可以了,剩下的事情則交給前端來做。不過這種方式有一個弊端就是菜單和角色的關系在前端代碼中寫死了,以后如果想要動態調整會有一些不方便,可能需要改代碼。特別是大項目,權限比較復雜的時候,調整就更麻煩了,所以這種方式我一般建議在一些簡單的項目中使用。

1.2 菜單分析

在 RuoYi-Vue 中,采用的是方案一,即和 vhr 的方案是一樣的:服務端動態返回菜單信息,前端再去渲染就行了。

所以如果我們想要定制自己的項目菜單,那就非常容易了,只需要搞明白這個項目中的菜單表,然后直接修改菜單表就可以了。

系統的菜單表是 sys_menu,各個字段含義如下:

這個我就不多說了,各個字段的含義作者都寫的很清楚了。對于一些新手小伙伴,我著重解釋一個跟前端顯示相關的字段:

  • order_num:這個菜單項在前端頁面展示的順序,例如一級菜單系統管理中有用戶管理和菜單管理,那么用戶管理和菜單管理這兩個子項之間就存在一個展示順序的問題,這個字段就是用來解決這個問題的。
  • path:這個是前端的路由地址,可以簡單理解為前端頁面的跳轉地址,假設系統管理菜單項的 path 為 system,系統管理下有一個子菜單日志管理,日志管理的 path 為 log,日志管理下有一個子菜單是操作日志,操作日志的 path 為 operlog,那么最終,前端訪問操作日志時候的頁面路由地址為 /system/log/operlog。
  • component:這是前端的組件地址,因為前端的 vue 文件是動態加載的,這個參數表示組件的名稱。

這幾個參數可能對于新手小伙伴不好理解,其他的參數大家看注釋就明白啥意思了,我也就不啰嗦了。

看明白了表,那么就可以直接上手了,直接在表上改了。

不過作者非常貼心的提供了管理頁面,所以你要是懶得分析表,也可以直接在 系統管理->菜單管理中修改菜單,這個網頁上的操作就比較簡單了,我就不演示了。

1.3 代碼分析

我們再來看看服務端菜單相關的代碼。

菜單主要是有一個層級的問題,但是菜單的層級不會特別深,太深了前端不僅不好使用,也不方便展示。在 vhr 中,我假設菜單是三個層級,然后用了一個左連接就將所有的菜單信息查出來了。

但是在這個項目中,菜單沒有固定的層級,可以有 N 層,所以查詢也跟 vhr 不太一樣,我們一起來看下。

返回菜單數據的接口是 org.javaboy.web.controller.system.SysLoginController#getRouters,我們來看下:

@GetMapping("getRouters")
public AjaxResult getRouters() {
Long userId = SecurityUtils.getUserId();
List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
return AjaxResult.success(menuService.buildMenus(menus));
}

具體的實現代碼我就不說了,這里就和大家說一下他這里的查詢邏輯,這里的核心操作實際上就兩步:

  • menuService.selectMenuTreeByUserId 方法查詢出來當前所有的菜單項,這里的查詢思路是根據當前用戶的 id,找到用戶對應的菜單,查詢的時候只查詢類行為 M 和 C 的菜單項,M 表示目錄(即里邊有子菜單),C 表示菜單,全部查詢出來之后,再遍歷,歸類,將 C 作為某一個 M 的 children。在松哥的 vhr 里邊,我是直接用了一對多的思路去查詢的,查詢出來后不用再二次處理,這里則是查詢出來后遞歸處理的,這一塊的實現思路不同,做過 vhr 項目的小伙伴注意區分(小伙伴們也可以按照 vhr 的思路來改改這里的邏輯)。
  • 由于剛查詢出來的菜單并不滿足前端渲染的要求,所以在 menuService.buildMenus 方法中,再對剛剛查詢出來的 List 集合進行二次處理,這里主要是把 component、path 等屬性的值捋清楚。

大致就是這樣。

2. 自定義菜單數據

那我們自己這個健身會員的菜單會有所不同,我想要自己重新定義一下,根據前面第一小節的分析,這里我來創建八個和健身會員管理系統相關的菜單,如下:

系統原本的功能被我都收到系統管理這個菜單。

這個 SQL 腳本是比較簡單的,大家在文末可以下載。我簡單截個圖大家看下:

根據第一小節的分析直接修改表即可(也可以在菜單管理頁面手動進行添加)。

3. 自定義頁面

后端加了數據,前端當然也要加頁面。component 字段其實已經暗示了前端的頁面地址,所以,我們根據后端的 component 字段,來創建前端頁面即可:

每一個 .vue 文件都還沒寫內容,就一句話,類似下面這樣:

后期再補充。

好啦,這樣,前端 vue 登錄成功之后,就可以看到相應的頁面了,頁面也都可以點擊。

好啦,這樣,我們初步實現了根據自己的需求在這個項目上自定義自己的菜單。

4. 項目地址

最后,文末給出一個項目地址,大家可以去看看。每篇文章的代碼我都會提交上去,一步步完善,大家可以據此看到一個項目的成長過程,現在 star 就是老粉啦。

https://github.com/lenve/tienchin

責任編輯:武曉燕 來源: 江南一點雨
相關推薦

2024-06-21 08:15:25

2021-10-04 09:29:41

對象池線程池

2024-06-19 09:47:21

2023-03-26 22:02:53

APMPR監控

2023-09-19 08:03:50

rebase?merge

2023-04-27 08:42:50

效果

2022-02-08 09:09:45

智能指針C++

2024-04-01 08:13:59

排行榜MySQL持久化

2023-12-26 10:12:19

虛擬DOM數據

2023-01-13 11:55:05

TY子系統設備

2025-05-08 08:38:48

2024-01-19 08:25:38

死鎖Java通信

2023-01-10 08:43:15

定義DDD架構

2024-02-04 00:00:00

Effect數據組件

2023-07-26 13:11:21

ChatGPT平臺工具

2024-09-26 09:10:08

2023-08-01 12:51:18

WebGPT機器學習模型

2024-01-02 12:05:26

Java并發編程

2024-10-14 09:34:39

vue3通信emit

2023-11-27 07:33:55

點贊
收藏

51CTO技術棧公眾號

日本成人在线不卡视频| www一区二区三区| 久久久一区二区| 国产精品美女呻吟| 欧美人妻一区二区| 妖精一区二区三区精品视频| 欧洲色大大久久| 亚洲精品天堂成人片av在线播放 | 色播五月激情综合网| 亚洲一区美女| 天堂在线一二区| 久久99精品久久久久久国产越南 | 香蕉影院在线观看| 91精品精品| 亚洲精品永久免费精品| 天天做天天干天天操| 超碰99在线| 国产精品久久久久精k8| 久久av免费观看| 国产熟女一区二区丰满| 亚洲一区二区三区高清不卡| 最近2019年日本中文免费字幕| 日批免费观看视频| 国产三级一区| 欧美性极品xxxx做受| 香蕉视频免费版| 成年人视频在线看| 99综合电影在线视频| 亚洲在线观看视频| 中文字幕免费高清在线观看| 亚洲裸体俱乐部裸体舞表演av| 在线成人激情视频| 国产精品探花一区二区在线观看| 高清国产一区二区三区四区五区| 欧美专区亚洲专区| 116极品美女午夜一级| 日本一本在线免费福利| 中文字幕亚洲一区二区av在线| 欧美一区二区三区四区五区六区 | 成人爽a毛片一区二区免费| 国产精品网红直播| 加勒比在线一区| 午夜在线视频一区二区区别| 欧美交受高潮1| 亚洲欧美一区二区三区四区五区| 欧美国产美女| 中文字幕精品—区二区| 无码人妻精品一区二区中文| 美女主播精品视频一二三四| 日韩免费在线观看| 日本在线视频播放| 嫩呦国产一区二区三区av| 欧美日本在线看| 高清一区二区视频| 欧美三区四区| 欧美系列一区二区| 亚洲精品自拍网| 99只有精品| 欧美三级中文字幕在线观看| 男女无套免费视频网站动漫| 在线成人视屏| 欧美色电影在线| 欧美日韩中文不卡| 国产一区二区在线观| 6080亚洲精品一区二区| 欧美在线a视频| 亚洲精品视频一二三区| 欧美精品一区二区三区视频| 欧美做受高潮中文字幕| 老司机成人在线| 亚洲免费人成在线视频观看| 伊人网伊人影院| 欧美午夜精品一区二区三区电影| 中文字幕日韩欧美| 永久久久久久久| 亚洲小说区图片区| 欧美自拍视频在线观看| 嫩草影院一区二区三区| 久久成人久久鬼色| 成人在线视频电影| 亚洲日本在线播放| 国产精品三级在线观看| 综合网五月天| 黄色污网站在线观看| 欧美在线色视频| 精产国品一二三区| 乱亲女h秽乱长久久久| 影音先锋日韩有码| 四虎永久免费在线| 国产精品一区毛片| 成人激情视频网| 高清国产mv在线观看| www亚洲一区| 中文字幕久久综合| 九色porny丨国产首页在线| 91黄色在线观看| 伊人五月天婷婷| 欧美三级自拍| 日韩在线播放一区| xxxx 国产| 免费在线观看不卡| 国产偷国产偷亚洲高清97cao| 精品电影在线| 亚洲午夜三级在线| 亚洲天堂av线| 欧美一性一交| 不卡毛片在线看| 亚洲精品中文字幕乱码三区91| 极品少妇xxxx偷拍精品少妇| 国产一区在线免费| 黄网站免费在线观看| 欧美午夜片在线免费观看| 欧美大片久久久| 久久91成人| 久久久这里只有精品视频| 艳妇乳肉豪妇荡乳av| 99久久精品费精品国产一区二区| 国产精品波多野结衣| 亚洲承认视频| 亚洲精品97久久| 草视频在线观看| 久久99国产精品麻豆| 乱一区二区三区在线播放| www红色一片_亚洲成a人片在线观看_| 色婷婷综合视频在线观看| 国产a√精品区二区三区四区| 日本黄色精品| 国产精品美女呻吟| 国产视频三级在线观看播放| 午夜精品久久久久久久99樱桃| 午夜不卡福利视频| 久久视频精品| 国产精品久久久久久亚洲调教| 性xxxx视频播放免费| 亚洲综合男人的天堂| 国产一级免费大片| 欧美顶级大胆免费视频| 国产精品免费福利| 春暖花开成人亚洲区| 一本色道久久综合亚洲91 | caopor在线视频| 亚洲国产国产| 奇米成人av国产一区二区三区| 欧美一区二不卡视频| 夜夜嗨av一区二区三区网页| 亚洲综合在线一区二区| 亚洲草久电影| 91免费在线观看网站| 国产黄色在线网站| 9191成人精品久久| 久久99久久99精品免费看小说| 首页欧美精品中文字幕| 蜜桃传媒视频第一区入口在线看| 欧美24videosex性欧美| 777xxx欧美| 国产一区二区视频在线观看免费| 久久国产夜色精品鲁鲁99| 欧美日韩大片一区二区三区 | 亚洲一级电影视频| 在线观看欧美一区二区| 午夜久久一区| av一区二区三区在线观看| 中文字幕中文字幕在线十八区 | 开心激情综合| 97国产suv精品一区二区62| 色婷婷av一区二区三区之e本道| 亚洲在线观看免费| 亚洲黄色小说在线观看| 国产精品观看| 粉嫩高清一区二区三区精品视频 | 欧美日韩123| 97视频在线播放| 四虎成人免费在线| 色网站国产精品| 白白色免费视频| 久久国产视频网| 欧美中日韩在线| 欧美a一欧美| 国产成人精品电影久久久| 国产私拍精品| 精品视频在线视频| 久久一级黄色片| 99久久久国产精品免费蜜臀| 国产午夜福利在线播放| 久久av超碰| 国产欧美va欧美va香蕉在| 在线观看电影av| 亚洲精品美女久久| 中文字幕在线日亚洲9| 国产精品久久久久一区二区三区共| 国产精品嫩草影视| 免费中文字幕日韩欧美| 午夜精品区一区二区三| 国产激情一区| 国内精品中文字幕| 青青草在线免费观看| 欧美优质美女网站| 国产女片a归国片aa| eeuss国产一区二区三区| 91av俱乐部| 欧美福利视频| 国产日韩二区| 国产不卡人人| 久久亚洲精品视频| 天天躁日日躁狠狠躁喷水| 欧美三级日韩在线| 欧美人与禽zozzo禽性配| 国产午夜精品久久| 少妇欧美激情一区二区三区| 性8sex亚洲区入口| 老司机av福利| 啪啪激情综合网| 91精品国产高清久久久久久91裸体| 日本电影在线观看| 中文字幕日韩欧美| 天堂在线视频观看| 日韩免费看网站| 蜜臀99久久精品久久久久小说| 亚洲精品ww久久久久久p站| 亚洲精品国产熟女久久久| 丁香五精品蜜臀久久久久99网站| 少妇性l交大片| 激情文学一区| av电影一区二区三区| 亚洲第一福利社区| 国产精品二区二区三区| 亚洲日日夜夜| 国产精品久久久久久网站| 9999精品成人免费毛片在线看| 一本大道亚洲视频| 在线观看xxx| 精品电影一区二区| 国产探花精品一区二区| 在线观看视频91| www.日本精品| 亚洲一区在线观看免费观看电影高清 | av在线播放中文字幕| 2021久久国产精品不只是精品| 国产在线视频三区| 蜜桃一区二区三区在线| 1024精品视频| 国产欧美欧美| 欧美爱爱视频免费看| 国产精品videosex极品| 天天操天天干天天玩| 亚洲女同另类| 亚洲 欧洲 日韩| 93在线视频精品免费观看| 日韩精品另类天天更新| 国产亚洲电影| 日本一区二区三区视频在线观看 | 国产精品日本欧美一区二区三区| 国产无限制自拍| 国内成人在线| 波多野结衣av一区二区全免费观看| 中国精品18videos性欧美| 三年中国中文在线观看免费播放| 欧美偷拍自拍| 亚洲精品欧洲精品| 日韩在线欧美| 亚洲v国产v在线观看| 欧美电影免费播放| 热这里只有精品| 欧美高清不卡| 无码日本精品xxxxxxxxx| 国产综合亚洲精品一区二| 亚洲色成人www永久在线观看| 欧美精品激情| 成人黄色av片| 三级在线观看一区二区| 日日摸天天爽天天爽视频| 日韩激情视频网站| 一区二区三区视频网| 九九国产精品视频| 制服下的诱惑暮生| 丰满岳乱妇一区二区三区| 又黄又爽又色的视频| 国产在线国偷精品产拍免费yy| 中文字幕第22页| 国产传媒一区在线| 丰满少妇xbxb毛片日本| 91丨国产丨九色丨pron| 久操视频在线观看免费| 亚洲欧美自拍偷拍色图| 日韩欧美综合视频| 91久久偷偷做嫩草影院电| 亚洲第一页自拍| 五月天激情开心网| 亚洲欧美激情在线视频| av资源网站在线观看| 久久久精品在线观看| 午夜羞羞小视频在线观看| 国外成人性视频| 日本不卡一二三| 国产欧美婷婷中文| 日韩免费成人| 欧美xxxx黑人又粗又长密月| 第一社区sis001原创亚洲| 欧美日韩一区二区三区电影| 亚洲三级影院| 杨幂一区二区国产精品| 久久免费电影网| 亚洲av鲁丝一区二区三区| 欧美在线制服丝袜| 亚洲免费不卡视频| 中文字幕亚洲无线码在线一区| 国产小视频福利在线| 欧美刺激性大交免费视频| 黑人巨大精品| 91久久偷偷做嫩草影院| 色狠狠久久av综合| 国产一级黄色录像片| 亚洲欧美日韩国产一区| 亚洲三级在线观看视频| 蜜桃视频在线观看一区| 欧美xxxxx少妇| 欧美国产一区二区在线观看| 91久久国产综合| 精品污污网站免费看| 色久视频在线播放| 久久高清视频免费| 色吧亚洲日本| 99高清视频有精品视频| 久久视频精品| 99热手机在线| av亚洲精华国产精华| 国产一区在线观看免费| 欧美午夜性色大片在线观看| 国产又粗又黄又爽的视频| 日韩精品免费一线在线观看| 国产精品一区二区三区视频网站| 国产z一区二区三区| 卡通动漫国产精品| 中文字幕在线中文| 经典三级在线一区| 五月婷婷六月香| 日本久久电影网| 日韩av地址| 69视频在线免费观看| 欧美视频免费看| 日韩av大全| 国产精品一卡| 深夜福利网站在线观看| 国产精品久久久久久久午夜片| 中文字幕精品视频在线观看| 亚洲高清在线观看| 日皮视频在线观看| 亚洲在线视频观看| 91精品电影| 91在线第一页| 亚洲大片一区二区三区| 亚洲奶汁xxxx哺乳期| 欧美高清视频在线观看| 97se亚洲| aa视频在线播放| 91免费视频观看| 天堂在线免费观看视频| 日韩电影在线观看永久视频免费网站| av3级在线| 国产亚洲欧美一区二区| 欧美日韩国产综合网| 久久久久亚洲av成人网人人软件| 一区二区三区波多野结衣在线观看 | 99久久精品一区二区| √天堂中文官网8在线| 7777精品伊人久久久大香线蕉的 | 精品日韩视频在线观看| 天堂在线观看视频| 日本午夜人人精品| 国产不卡一二三区| 久久久久久久久久久久久久久国产 | 欧美aaaa视频| 一本之道在线视频| 亚洲一区二区三区影院| 欧美 日韩 国产 在线| 98精品国产高清在线xxxx天堂| 亚洲小说图片视频| 日韩欧美在线免费观看视频| 国产欧美日韩视频在线观看| 在线能看的av| 中文字幕一区二区精品| 亚洲狼人在线| 精品嫩模一区二区三区| eeuss鲁片一区二区三区在线观看| 国产精品久免费的黄网站| 一本久久综合亚洲鲁鲁| 日韩视频一二区| 黄色av网址在线播放| 欧美国产欧美综合| 精品女同一区二区三区| 午夜精品久久久久久99热软件| 亚洲精品456| 日韩欧美理论片| 亚洲综合在线视频| 国产在线观看精品一区| 亚洲在线视频观看| 久久精品五月| 国产人妻精品一区二区三区不卡| 亚洲欧美日韩国产成人| crdy在线观看欧美|