Giter VIP home page Giter VIP logo

go-admin-layout's Introduction

go-admin-layout

介绍

基于go-admin-1.2.2 进行的一些封装,以及一些bug上的修复。

具体封装

  • 添加了数据库迁移的工具类,通过工具类生成sys_menu表下的菜单
  • 添加了deploy目录,用于通过docker-compose部署go-admin
  • 后端和前端分别更新了Dockerfile、Makefile、Nginx.conf等部署文件
  • 后端添加了基于MVC的CRUD编码风格的crmexample示例,摒弃了go-admin提供的接口完全依赖gin框架
    • srv/app/admin/router/crm_example.go:crmexample的controller层
    • srv/app/admin/apis/crmexample/crm_example.go:crmexample的service层
    • srv/app/admin/service/dto/crmexample/crm_example.go:crmexample的dao层
    • srv/app/admin/models/crm_example.go:crmexample的实体类
  • 前端添加了crmexample的页面示例代码,包含了一个页面CRUD的基本要素,在开发后台管理页面时可以直接复制使用
    • web/src/views/crmexample/index.vue

修复的bug

migrate工具类使用示例

  1. 创建文件:cmd/migrate/migration/version/1603516925109_crmexample_migrate.go(1603516925109为毫秒级时间戳)
  2. 添加以下代码:
package version

import (
	"runtime"

	"go-admin/cmd/migrate/migration"
	"go-admin/cmd/migrate/migration/tool"
	common "go-admin/common/models"

	"gorm.io/gorm"
)

func init() {
	_, filename, _, _ := runtime.Caller(0)
	migration.Migrate.SetVersion(migration.GetFilename(filename), _1603516925109Test)
}

// 1603516925109 取自文件名 1603516925109_crmexample_migrate.go
func _1603516925109Test(db *gorm.DB, version string) error {
	return db.Transaction(func(tx *gorm.DB) error {
		// 目录
		if err := tool.GenRootMenu(tx, "crmExampleManage", "Example管理", "form", 3); err != nil {
			return err
		}
		// 菜单,通过crmExampleManage关联
		if err := tool.GenChildMenu(tx, "crm_example", "Example列表", "list", "crmexample", 1, "crmExampleManage"); err != nil {
			return err
		}
		// 菜单类似

		return tx.Create(&common.Migration{
			Version: version,
		}).Error
	})
}
  1. go-admin会根据migrate文件的文件名前缀(时间戳部分)作为数据库迁移的版本存储在sys_migrate表中,并根据sys_migrate表中的数据进行更新

页面开发步骤(以crmexample为例)

  1. 编写页面migrate文件,参考:migrate工具类使用示例
  2. 通过命令:go build && go-admin.exe migrate -c settings.yml 生成页面菜单
  3. web/src/views目录下新建页面文件crmexample/index.vue(页面文件的命名规则为:tool.GenChildMenu()方法中的permission参数/index.vue)

go-admin-layout's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.