<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          GIN-VUE-ADMIN后臺管理系統(tǒng)

          聯(lián)合創(chuàng)作 · 2023-09-19 15:31

          Gin-vue-admin是一個(gè)基于vue和gin開發(fā)的全棧前后端分離的后臺管理系統(tǒng),集成jwt鑒權(quán),動態(tài)路由,動態(tài)菜單,casbin鑒權(quán),表單生成器,代碼生成器等功能,提供多種示例文件,讓您把更多時(shí)間專注在業(yè)務(wù)開發(fā)上。

          項(xiàng)目文檔

          在線文檔 : https://www.gin-vue-admin.com/

          從環(huán)境到部署教學(xué)視頻

          開發(fā)教學(xué) (貢獻(xiàn)者: LLemonGreen And Fann)

          1. 基本介紹

          1.1 項(xiàng)目介紹

          在線預(yù)覽

          測試用戶名:admin

          測試密碼:123456

          1.2 貢獻(xiàn)指南

          Hi! 首先感謝你使用 gin-vue-admin。

          Gin-vue-admin 是一套為后臺管理平臺準(zhǔn)備的一整套前后端分離架構(gòu)式的開源框架,旨在快速搭建后臺管理系統(tǒng)。

          Gin-vue-admin 的成長離不開大家的支持,如果你愿意為 gin-vue-admin 貢獻(xiàn)代碼或提供建議,請閱讀以下內(nèi)容。

          1.2.1 Issue 規(guī)范

          • issue 僅用于提交 Bug 或 Feature 以及設(shè)計(jì)相關(guān)的內(nèi)容,其它內(nèi)容可能會被直接關(guān)閉。如果你在使用時(shí)產(chǎn)生了疑問,請到 Slack 或 Gitter 里咨詢。

          • 在提交 issue 之前,請搜索相關(guān)內(nèi)容是否已被提出。

          1.2.2 Pull Request 規(guī)范

          • 請先 fork 一份到自己的項(xiàng)目下,不要直接在倉庫下建分支。

          • commit 信息要以[文件名]: 描述信息 的形式填寫,例如 README.md: fix xxx bug

          • 確保 PR 是提交到 develop 分支,而不是 master 分支。

          • 如果是修復(fù) bug,請?jiān)?PR 中給出描述信息。

          • 合并代碼需要兩名維護(hù)人員參與:一人進(jìn)行 review 后 approve,另一人再次 review,通過后即可合并。

          1.3 版本列表

          2. 使用說明

          - node版本 > v8.6.0
          - golang版本 >= v1.14
          - IDE推薦:Goland
          - gormv2版本初始化數(shù)據(jù)庫可以利用批量創(chuàng)建功能,這里已經(jīng)寫好初始化代碼,需要在main.go內(nèi)打開 initialize.Data() 的注釋即可
          - 替換掉項(xiàng)目中的七牛云公鑰,私鑰,倉名和默認(rèn)url地址,以免發(fā)生測試文件數(shù)據(jù)錯(cuò)亂

          使用docker-compose體驗(yàn)本項(xiàng)目

          • 安裝 docker-compose 官方文檔

          • 使用git克隆本項(xiàng)目

            •   git clone https://github.com/flipped-aurora/gin-vue-admin.git
          • 使用docker-compose up一鍵啟動啟動項(xiàng)目

            • # 使用docker-compose啟動四個(gè)容器
              docker-compose up
              # 如果您修改了某些配置選項(xiàng),可以使用此命令重新打包鏡像
              docker-compose up --build
              # 使用docker-compose 后臺啟動
              docker-compose up -d
            • web項(xiàng)目預(yù)覽 http://127.0.0.1:8000

            • swagger文檔 http://127.0.0.1:8888/swagger/index.html

          • 如果server的177.7.0.12這個(gè)容器內(nèi)部ip被占用了,需要修改地方為

          • docker-compose使用自定義的一個(gè)docker網(wǎng)絡(luò)

            •   networks:
                  network:
                    ipam:
                      driver: default
                      config:
                        - subnet: '177.7.0.0/16' 
            • 子網(wǎng)地址, 默認(rèn)網(wǎng)關(guān)是177.7.0.1(docker-compose V2需要寫,V3則不需要),具體信息看官方文檔

            • 默認(rèn)的network名為gin-vue-admin_network,默認(rèn)是bridge模式

            • 如果修改了子網(wǎng),對應(yīng)的每個(gè)service的ipv4_address都需要修改,還有.docker-compose/nginx/conf.d/my.conf的第20行的server的ip也需要修改

          使用docker-compose進(jìn)行部署本項(xiàng)目需注意的問題

          • mysql數(shù)據(jù)庫請使用裝在服務(wù)器磁盤的本地?cái)?shù)據(jù)庫.
            • 避免使用docker容器內(nèi)的mysql,可能會出現(xiàn)寫入的問題, io比宿主機(jī)低 docker的持久化機(jī)制問題
          • init.sql是給docker-compose進(jìn)行體驗(yàn)本項(xiàng)目的, 禁止init.sql使用進(jìn)行項(xiàng)目數(shù)據(jù)的初始化, 數(shù)據(jù)庫初始化請使用此方法
            • 使用init.sql進(jìn)行初始化出現(xiàn)的所有問題,請自行承擔(dān),與本項(xiàng)目無關(guān)
          • 使用本項(xiàng)目的docker-compose進(jìn)行部署時(shí),請修改docker-compose.yaml對應(yīng)的nginx配置,mysql配置,networks配置,redis配置,按需自行更改.

          2.1 web端

          # clone the project
          git clone https://github.com/piexlmax/gin-vue-admin.git
          
          # enter the project directory
          cd web
          
          # install dependency
          npm install
          
          # develop
          npm run serve

          2.2 server端

          # 使用 go.mod
          
          # 安裝go依賴包
          go list (go mod tidy)
          
          # 編譯
          go build

          Zap日志庫使用指南&&配置指南

          Zap日志庫的配置選擇在config.yaml下的zap

          # zap logger configuration
          zap:
            level: 'debug'
            format: 'console'
            prefix: '[GIN-VUE-ADMIN]'
            director: 'log'
            link_name: 'latest_log'
            show_line: true
            encode_level: 'LowercaseColorLevelEncoder'
            stacktrace_key: 'stacktrace'
            log_in_console: true
          配置名 配置的類型 說明
          level string level的模式的詳細(xì)說明,請看zap官方文檔
          info: info模式,無錯(cuò)誤的堆棧信息,只輸出信息
          debug:debug模式,有錯(cuò)誤的堆棧詳細(xì)信息
          warn:warn模式
          error: error模式,有錯(cuò)誤的堆棧詳細(xì)信息
          dpanic: dpanic模式
          panic: panic模式
          fatal: fatal模式
          format string console: 控制臺形式輸出日志
          json: json格式輸出日志
          prefix string 日志的前綴
          director string 存放日志的文件夾,修改即可,不需要手動創(chuàng)建
          link_name string 在server目錄下會生成一個(gè)link_name的軟連接文件,鏈接的是director配置項(xiàng)的最新日志文件
          show_line bool 顯示行號, 默認(rèn)為true,不建議修改
          encode_level string LowercaseLevelEncoder:小寫
          LowercaseColorLevelEncoder:小寫帶顏色
          CapitalLevelEncoder: 大寫
          CapitalColorLevelEncoder: 大寫帶顏色
          stacktrace_key string 堆棧的名稱,即在json格式輸出日志時(shí)的josn的key
          log_in_console bool 是否輸出到控制臺,默認(rèn)為true
          • 開發(fā)環(huán)境 || 調(diào)試環(huán)境配置建議
            • level:debug
            • format:console
            • encode_level:LowercaseColorLevelEncoder或者encode_leve:CapitalColorLevelEncoder
          • 部署環(huán)境配置建議
            • level:error
            • format:json
            • encode_level: LowercaseLevelEncoder 或者 encode_level:CapitalLevelEncoder
            • log_in_console: false
          • 建議只是建議,按照自己的需求進(jìn)行即可,給出建議僅供參考

          2.3 swagger自動化API文檔

          2.3.1 安裝 swagger

          (1)可以翻墻

          go get -u github.com/swaggo/swag/cmd/swag

          (2)無法翻墻

          由于國內(nèi)沒法安裝 go.org/x 包下面的東西,推薦使用 goproxy.io

          如果您使用的 Go 版本是 1.13 及以上(推薦)
          # 啟用 Go Modules 功能
          go env -w GO111MODULE=on 
          # 配置 GOPROXY 環(huán)境變量
          go env -w GOPROXY=https://goproxy.io,direct
          
          # 使用如下命令下載swag
          go get -u github.com/swaggo/swag/cmd/swag

          2.3.2 生成API文檔

          cd server
          swag init

          執(zhí)行上面的命令后,server目錄下會出現(xiàn)docs文件夾,登錄http://localhost:8888/swagger/index.html,即可查看swagger文檔

          3. 技術(shù)選型

          • 前端:用基于vueElement-UI構(gòu)建基礎(chǔ)頁面。
          • 后端:用Gin快速搭建基礎(chǔ)restful風(fēng)格API,Gin是一個(gè)go語言編寫的Web框架。
          • 數(shù)據(jù)庫:采用MySql(5.6.44)版本,使用gorm實(shí)現(xiàn)對數(shù)據(jù)庫的基本操作,已添加對sqlite數(shù)據(jù)庫的支持。
          • 緩存:使用Redis實(shí)現(xiàn)記錄當(dāng)前活躍用戶的jwt令牌并實(shí)現(xiàn)多點(diǎn)登錄限制。
          • API文檔:使用Swagger構(gòu)建自動化文檔。
          • 配置文件:使用fsnotifyviper實(shí)現(xiàn)yaml格式的配置文件。
          • 日志:使用go-logging實(shí)現(xiàn)日志記錄。

          4. 項(xiàng)目架構(gòu)

          4.1 系統(tǒng)架構(gòu)圖

          系統(tǒng)架構(gòu)圖

          4.2 前端詳細(xì)設(shè)計(jì)圖 (提供者:baobeisuper

          前端詳細(xì)設(shè)計(jì)圖

          4.3 目錄結(jié)構(gòu)

              ├─server  	     (后端文件夾)
              │  ├─api            (API)
              │  ├─config         (配置包)
              │  ├─core  	        (內(nèi)核)
              │  ├─docs  	        (swagger文檔目錄)
              │  ├─global         (全局對象)
              │  ├─initialiaze    (初始化)
              │  ├─middleware     (中間件)
              │  ├─model          (結(jié)構(gòu)體層)
              │  ├─resource       (資源)
              │  ├─router         (路由)
              │  ├─service         (服務(wù))
              │  └─utils	        (公共功能)
              └─web            (前端文件)
                  ├─public        (發(fā)布模板)
                  └─src           (源碼包)
                      ├─api       (向后臺發(fā)送ajax的封裝層)
                      ├─assets	(靜態(tài)文件)
                      ├─components(組件)
                      ├─router	(前端路由)
                      ├─store     (vuex 狀態(tài)管理倉)
                      ├─style     (通用樣式文件)
                      ├─utils     (前端工具庫)
                      └─view      (前端頁面)
          

          5. 主要功能

          • 權(quán)限管理:基于jwtcasbin實(shí)現(xiàn)的權(quán)限管理
          • 文件上傳下載:實(shí)現(xiàn)基于七牛云的文件上傳操作(為了方便大家測試,我公開了自己的七牛測試號的各種重要token,懇請大家不要亂傳東西)
          • 分頁封裝:前端使用mixins封裝分頁,分頁方法調(diào)用mixins即可
          • 用戶管理:系統(tǒng)管理員分配用戶角色和角色權(quán)限。
          • 角色管理:創(chuàng)建權(quán)限控制的主要對象,可以給角色分配不同api權(quán)限和菜單權(quán)限。
          • 菜單管理:實(shí)現(xiàn)用戶動態(tài)菜單配置,實(shí)現(xiàn)不同角色不同菜單。
          • api管理:不同用戶可調(diào)用的api接口的權(quán)限不同。
          • 配置管理:配置文件可前臺修改(測試環(huán)境不開放此功能)。
          • 富文本編輯器:MarkDown編輯器功能嵌入。
          • 條件搜索:增加條件搜索示例。
          • restful示例:可以參考用戶管理模塊中的示例API。
          前端文件參考: src\view\superAdmin\api\api.vue 
          后臺文件參考: model\dnModel\api.go 
          • 多點(diǎn)登錄限制:需要在config.yaml中把system中的useMultipoint修改為true(需要自行配置Redis和Config中的Redis參數(shù),測試階段,有bug請及時(shí)反饋)。
          • 分片長傳:提供文件分片上傳和大文件分片上傳功能示例。
          • 表單生成器:表單生成器借助 @form-generator
          • 代碼生成器:后臺基礎(chǔ)邏輯以及簡單curd的代碼生成器。
          瀏覽 27
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  丝袜二区| 婷婷综合伊人 | 精品99色| 乱╳╳╳AⅤ | 色婷婷激情四射 |