本專案是基於Vue, ElementUI 搭建的管理台前端項目,與Spring-Rest Backend 搭配使用,框架程式碼來自於Vue-Element-Admin ,在其基礎上做了一點改變。主要優化了權限管理功能。點此處進入線上演示。
選單權限根據路由配置自動生成,由管理員同步到後台資料庫;
在已同步的選單權限下可以新增、修改、刪除按鈕權限;
除按鈕權限外,選單權限、介面權限的元資料分別由前端和後端自動生成,即使資料庫記錄全部被清空,也只需要管理員再同步一次即可,無需手動插入表記錄;
新增按鈕權限時,自動產生前綴,只填寫必要的部分,防止格式混亂;
增加選單權限和按鈕權限關聯介面權限的功能,角色只與選單權限和按鈕權限直接關聯;
對頁面元素進行識別時,使用枚舉常數,避免直接使用權限字串,方便維護;
定義API 介面呼叫類別層次,與後台介面類別層次保持一致,消除冗餘,提高程式碼復用度;
修復組件el-scrollbar的bug:瀏覽器縮小到一定程度時,原先隱藏的原始滾動條會暴露出來,縮小比例越大,現象越明顯;
Node.js 版本建議使用v12,它版本好像也沒問題。
Linux 和MacOS 下建議使用nvm 進行Node.js 的版本管理,nvm不支援Windows,不過可以使用替代方案nvm-windows 。
以Windows 下nvm-windows 為例(git bash 下執行):
# 设置 nvm 下载 node 和 npm 的镜像地址(直接访问外网太慢)
$ nvm node_mirror https://npm.taobao.org/mirrors/node/
$ nvm npm_mirror https://npm.taobao.org/mirrors/npm/
# 设置 npm 下载包的镜像地址
$ npm config set registry https://registry.npm.taobao.org
# 查看可用的 Node.js版本
$ nvm list available
# 挑选一个最新的 v12 的 LTS 版本进行安装
$ nvm install 12.20.1
$ nvm use 12.20.1
# 查看已经安装的所有 Node.js 版本
$ nvm list
# 切换希望使用的版本
$ nvm use < nodeVersion >
# 查看当前的 Node.js 版本 和 npm 版本
$ node -v
$ npm -v注意:運行管理台前端前,最好先把服務端後台運作起來。
$ git clone https://github.com/bianyun1981/spring-rest-admin.git
$ cd spring-rest-admin
$ npm install注意:如果在執行npm install指令時有報錯,且錯誤訊息是npm ERR! Failed at the [email protected] install script. ,那麼可以執行下面的指令後再執行npm install :
$ npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver如果npm install 階段還有報其它錯,可能是由於某些包無法從淘寶鏡像站下載,需直接訪問某些無法訪問的外網地址下載,,但是下載不成功導致的,可以嘗試加上代理配置後重試。
$ npm config set proxy http://username:password@host:port
$ npm config set https-proxy http://username:password@host:port如果npm install執行成功,沒有報錯的話,就可以繼續執行
$ npm run serve稍等片刻後,會自動開啟瀏覽器,並跳到網址http://localhost:9527/login ,選擇內建使用者即可直接登入。
注意:服務端後台要先啟動才能登入成功。
vue-element-admin 支援多環境配置,環境配置檔案名稱格式為.env.[环境名] ,如果此環境配置資訊只需在本地使用,那麼在檔案名稱最後加上後綴.local ,這樣該配置文件不會被git上傳到版本庫,只會保留在本地。
注意:除了開發環境配置.env.development和.env.development.local以外,其它環境配置文件都需要設定NODE_ENV = production ,環境名ENV需要與環境配置文件名中.env與.local中間的部分對應,另外,介面呼叫位址前綴VUE_APP_BASE_API也要記得修改。
注意:設定檔中如果要定義其它的環境變量,則需要以VUE_APP_開頭,在程式碼中透過process.env.VUE_APP_xxxx的方式取得。
注意:打包前請確認npm install和npm run serve都能正常執行不報錯。
打包指令為: npm run build -- --mode <环境名> ,以上圖為例,打包指令為:
$ npm run build -- --mode vm-centos7指令成功執行結束後,dist 目錄下即為打包結果檔。
注意:程式碼壓縮插件compression-webpack-plugin只能使用上一個版本v6,不能使用最新的v7 版本,否則好像會報錯。
另外,本專案的路由模式配置為history 模式,如果希望以此模式運行,需要nginx 也要做相應配置(詳細說明請參閱使用history.pushState的路由)。同時,也要加上gzip 相關配置(只需要這一行配置即可):
location / {
gzip_static on ;
try_files $uri $uri / /index.html;
}