若依管理系統RuoYi-Vue(一):項目啓動和菜單創建

若依管理系統應該是國內最受歡迎的完全開源的後端管理系統了吧,看看gitee上的star數量,着實驚人。若依系統有很多個版本

版本 gitee地址 說明
前後端不分離版本 https://gitee.com/y_project/RuoYi 應該是第一版若依系統,star數量最多,但是前端界面比較醜
前後端分離版本 https://gitee.com/y_project/RuoYi-Vue 該版本前後端分離,而且前端使用Vue重寫了,後端權限部分使用了spring seurity+jwt實現,和原來的前後端不分離版本似乎有所不同
微服務版本 https://gitee.com/y_project/RuoYi-Cloud 相對於前後端分離版本,微服務版本將模塊拆分的更細,並且單獨作爲一個服務對外暴露,通過服務發現相互調用

個人覺得前後端不分離版本太醜,而且前後端不分離維護起來也比較困難,而微服務版本又拆分的太細,前後端分離版本則正好,本篇文章將會講解如何如何使用RuoYi-Vue前後端分離版本。

一、項目啓動

首先下載源代碼 https://gitee.com/y_project/RuoYi-Vue ,下載完之後打開doc文件夾,查看使用說明書。綜合使用說明書和實際操作,可以得到以下幾點:

  1. 後端啓動項目是ruoyi-admin,啓動類是com.ruoyi.RuoYiApplication;前端項目是ruoyi-ui
  2. 後端項目使用maven構建,使用前需確保maven環境;前端是vue項目,使用前需確保node環境
  3. 後端項目依賴mysql和redis,啓動前需要修改application.yml配置文件和application-druid.yml配置文件修改對應的配置。
  4. mysql數據初始化,需要創建ruoyi數據庫並且依次執行sql文件夾下的ry_20210108.sql、quartz.sql文件

所以,操作上:

第一步,創建ruoyi數據庫,並且執行sql文件夾下的ry_20210108.sql、quartz.sql

第二步,修改application.yml配置文件和application-druid.yml配置文件中的redis和mysql的連接配置

第三步,在項目根目錄下執行mvn clean package -DskipTests命令下載後端項目依賴;在ruoyi-ui模塊下執行npm install --registry=https://registry.npm.taobao.org命令安裝前端項目依賴

第四步,打開ruoyi-admin項目的啓動類com.ruoyi.RuoYiApplication,並執行main方法,運行後端代碼;打開ruoyi-ui模塊,執行命令npm run dev運行前端代碼

第五步,打開瀏覽器輸入網址http://127.0.0.1,看到以下頁面就表示前後端項目均已經成功運行

image-20210204105228831

二、修改前端默認設置

登錄若依系統之後,看到的頁面是這樣子的

image-20210204105721001

如果想側邊欄變成白色主題,關閉tabview,只需要依次點擊頭像->佈局設置,即可切換主題、打開或者關閉tabview功能,但是頁面一刷新就失效了,想要永久生效,則需要改變前端代碼的默認設置。

image-20210204110322338

打開前端項目ruoyi-ui,找到ruoyi-ui/src/settings.js文件,裏面的配置項和頁面佈局中的選項一一對應,這裏如果做了修改,則永久生效

module.exports = {
  title: '若依管理系統',

  /**
   * 側邊欄主題 深色主題theme-dark,淺色主題theme-light
   */
  sideTheme: 'theme-dark',

  /**
   * 是否系統佈局配置
   */
  showSettings: false,

  /**
   * 是否顯示 tagsView
   */
  tagsView: true,

  /**
   * 是否固定頭部
   */
  fixedHeader: false,

  /**
   * 是否顯示logo
   */
  sidebarLogo: true,

  /**
   * @type {string | array} 'production' | ['production', 'development']
   * @description Need show err logs component.
   * The default is only used in the production env
   * If you want to also use it in dev, you can pass ['production', 'development']
   */
  errorLog: 'production'
}

三、添加菜單和頁面

添加菜單和頁面是若依管理系統最核心的功能,也是使用者最關心的事情,這裏涉及到核心中的核心功能:權限,先不考慮那麼多,直接新增頁面,看看能否生效

下面演示新聞列表頁添加的過程,這裏如果想要新增新聞列表菜單,需要先新增“新聞”父菜單目錄,再新增“新聞列表”菜單項。

1.添加新聞父目錄菜單

依次點擊系統管理->菜單管理->新增,在彈出框中輸入內容如下:

image-20210204111314148

這裏,菜單圖標隨意選擇,路由地址隨意輸入news即可

2.添加新聞列表菜單

在上一步新建的新聞目錄那一行點擊新增按鈕,在彈出框中輸入內容如下

image-20210204111740860

完成之後,新聞列表菜單就添加完成了,之後刷新頁面,當前admin管理員就能看到添加的菜單了

image-20210204112137838

但是點擊新聞列表菜單,會報錯,說是沒有找到news/list/index模塊,因爲雖然我們定義好了路由和菜單,但是真正的前端頁面還沒有添加。畢竟 每一個菜單項都要有一個頁面和它對應的嘛。

3.添加新聞列表頁面

在前端項目ruoyi-ui的ruoyi-ui/src/views目錄下新增news/list/index.vue文件,文件內容如下:

image-20210204112732497

之後再點擊新聞列表頁,就可以看到頁面內容了(如果出現緩存問題,重新運行命令npm run dev即可解決)

image-20210204112917354

四、創建新用戶和分配菜單權限

若依系統初始化SQL已經創建了兩個用戶:admin和ry,分別作爲管理員和普通用戶,這裏我創建一個新用戶kdyzm,用來測試菜單權限。

首先,創建一個角色“運營角色”,僅允許“新聞”菜單權限。

image-20210204131636421

接下來,創建一個新用戶一枝梅,並將上一步創建的角色賦給該用戶

image-20210204131939309

創建完成之後,打開無痕窗口,使用該賬戶登錄若依管理系統,之後看到的菜單就是這樣子的了

image-20210204132121229

可以看到,使用kdyzm賬號登陸系統,只能看到新聞菜單了,符合我們的預期;如果這時候輸入只有admin才能看到的其它頁面地址又會如何呢?比如kdyzm在瀏覽器上手動輸入了地址:http://127.0.0.1/system/user 這本應當是管理員纔有權限看到的頁面,kdyzm看到的則是

image-20210204132338997

這說明菜單權限是生效了的,而不僅僅至於看不到,就算知道頁面地址也無濟於事。

好了,若依系統到了這裏,初步的頁面和權限問題已經解決,下一篇文章將會講解實際開發中的一些細節,比如按鈕權限,前端如何發起http請求,後端接口權限等等,欲知後事如何,且聽下回分解~

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