成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Vue3+NestJS實現后臺權限管理系統上線啦!(附源碼及教程)

開發 前端
最近這段時間工作不忙,想著提升一下自己的技術,沉淀沉淀。于是做了一個開源的后臺權限管理系統。本篇文章為大家介紹一下這個開源全棧后臺管理系統。

最近這段時間工作不忙,想著提升一下自己的技術,沉淀沉淀。于是做了一個開源的后臺權限管理系統。因為我本身是一個前端開發,所以前端和服務端都是用的 JS 語言來開發的,前端用的框架是 vue3,后端則用的是 NestJS。經過一段時間的努力,最終于元旦節部署了第一個版本。

本篇文章為大家介紹一下這個開源全棧后臺管理系統。

項目演示

項目 git 地址[1]

項目演示地址[2]

部分頁面截圖:

  • 角色管理

圖片

  • 菜單管理 圖片
  • 用戶管理 圖片
  • 日志 圖片
  • 個人中心

圖片

項目技術棧

前端部分主要技術棧:

  • vue3
  • element-plus
  • pinia
  • tailwindcss
  • TypeScript
  • Vite

后端部分主要技術棧:

  • NestJS
  • TypeScript
  • MySQL
  • TypeORM
  • JWT
  • Redis
  • Swagger

部署部分主要技術棧:

  • Docker
  • nginx
  • githb actions

項目功能

項目功能主要包括:

  • JWT 實現用戶登錄
  • Swagger 在線接口文檔
  • 基于 RBAC 權限管理
  • 動態路由獲取
  • 面包屑導航
  • 自定義權限指令
  • 菜單管理
  • 角色管理
  • 用戶管理
  • 日志管理
  • Excel 導入導出
  • 個人中心
  • docker+github actions 一鍵自動部署阿里云

項目介紹

由于篇幅原因,這里給大家簡單介紹一些功能。

  • 返回結果統一封裝

項目中所有的接口返回結果都需要封裝成統一的格式,方便前端處理。后端通過一個攔截器實現返回結果過濾

圖片

前端拿到的結果如下

圖片

  • 業務異常信息處理

當請求出現業務異常的時候,會返回一個統一的錯誤信息。后端封裝代碼如下

圖片

當我們想拋出業務異常時,只需要調用一下即可,比如密碼錯誤throw new ApiException('密碼錯誤', ApiErrorCode.PASSWORD_ERR);

此時前端拿到的結果如下

圖片

  • Swagger 在線接口文檔

項目本身引入了 Swagger,我們只需要在后端 Controller 上添加添加一些裝飾器就能看到相關接口

圖片

直接打開http://localhost:3000/fs_admin/api#/即可查看

圖片

  • 自定義權限指令

在前端 Vue 項目中,可以使用自定義指令v-hasPerm來控制當前用戶是否有權限操作某個按鈕。比如下面這個按鈕,只有當前用戶有system:menu:add權限時,才會顯示。

<el-button
          type="primary"
          v-hasPerm="['system:menu:add']"
          plain
          icnotallow="Plus"
          @click="handleAdd()"
          >新增</el-button
        >

而對應的后端接口Controller部分則需要通過一個自定義裝飾器Permissions定義這個接口需要的權限

//新增菜單
  @Post('createMenu')
  @Permissions('system:menu:add')
  async createMenu(
    @Request() req,
    @Body()
    createMenuDto: CreateMenuDto,
  ) {


    return await this.menuService.createMenu(req, createMenuDto);
  }
  • 動態路由獲取

在前端 Vue 項目中,當用戶登錄成功后,會根據用戶的角色獲取到對應的路由菜單配置,然后動態生成路由。

部分代碼展示:

圖片

其中獲取到的路由已經是后端處理好的, 后端部分代碼展示

圖片

前端獲取的數據結構:

圖片

  • Excel 導入導出

Excel 導入導出功能主要用到了xlsx庫。后端部分代碼展示:

圖片

  • 分頁數據查詢

部分代碼展示:

圖片

前端獲取的數據結構:

圖片

  • 自動部署

自動部署我們使用了GitHub Actions,當我們提交代碼到GitHub后,會自動觸發GitHub Actions的工作流,然后會自動部署到阿里云服務器上。

部分代碼配置如下:

圖片

當然功能還不止這些, 由于篇幅原因, 這里就不一一介紹了。相關完整教程也已經寫完了,感興趣可以去看看。如果有什么問題,歡迎留言。

同時項目還有很多沒有完善的地方,后續會繼續完善,爭取打造一個以前端開發者為中心的全棧后臺權限管理系統!

Any application that can be written in JavaScript, will eventually be written in JavaScript

標注地址

[1] https://github.com/qddidi/fs-admin

[2] http://fsadmin.xyz/#/


責任編輯:龐桂玉 來源: web前端進階
相關推薦

2022-02-16 08:45:55

Vue-Router權限管理系統權限驗證

2025-01-03 09:34:54

2017-07-11 09:21:40

quartzshiro權限框架

2020-06-09 11:35:30

Vue 3響應式前端

2011-09-09 16:38:51

Android Wid源碼

2022-02-10 10:10:03

數據庫表權限表數據庫操作

2025-02-04 14:55:56

2025-04-09 09:29:57

2023-11-24 08:02:28

2023-11-15 17:31:34

2017-03-20 19:01:20

Linux管理員系統用戶

2021-11-18 10:28:03

鴻蒙HarmonyOS應用

2024-05-06 08:48:18

nestjava?MVC?

2015-09-08 09:30:40

2024-03-29 09:07:15

Vue3.0開源項目

2024-08-19 09:25:42

2011-08-22 14:02:04

速途網新聞周刊

2025-02-12 09:00:00

2021-09-22 07:57:23

Vue3 插件Vue應用

2022-06-26 00:00:02

Vue3響應式系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91九色网站| 超碰人人人人 | 一本一道久久a久久精品蜜桃 | 国产激情偷乱视频一区二区三区 | 成人精品国产免费网站 | 中文字幕av网 | 精品少妇一区二区三区日产乱码 | 91精品国产91久久久久青草 | 91在线视频 | 国产欧美日韩一区 | 久久久久久国 | 欧美亚洲一区二区三区 | 中文字幕av一区二区三区 | 亚洲欧美日韩精品久久亚洲区 | 成人在线视频网站 | 动漫www.被爆羞羞av44 | 99精品国自产在线观看 | 三级在线观看 | 全免费a级毛片免费看视频免 | 羞羞视频免费观看 | 激情六月丁香 | 九一国产精品 | 久久久精品一区二区三区 | 天天射网站| 伊人影院在线观看 | 欧美日韩a | 欧美人成在线视频 | 久久av综合 | 伊人网站在线 | 久久久成人一区二区免费影院 | 中文av电影 | 欧美淫片| 亚洲成av | 国产精品毛片一区二区在线看 | 国产资源在线播放 | 久久精品国产a三级三级三级 | 亚洲一区二区三区福利 | 欧美日韩综合 | 亚洲aⅴ | 亚洲精品9999 | 成人亚洲视频 |