main.go.tpl 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package {{ .Snake}}
  2. import (
  3. gvaGlobal "github.com/flipped-aurora/gin-vue-admin/server/global"
  4. "github.com/flipped-aurora/gin-vue-admin/server/model/system"
  5. "github.com/flipped-aurora/gin-vue-admin/server/plugin/plugin-tool/utils"
  6. {{- if .HasGlobal }}
  7. "github.com/flipped-aurora/gin-vue-admin/server/plugin/{{ .Snake}}/global"
  8. {{- end }}
  9. "github.com/flipped-aurora/gin-vue-admin/server/plugin/{{ .Snake}}/router"
  10. "github.com/gin-gonic/gin"
  11. )
  12. type {{ .PlugName}}Plugin struct {
  13. }
  14. func Create{{ .PlugName}}Plug({{- range .Global}} {{.Key}} {{.Type}}, {{- end }})*{{ .PlugName }}Plugin {
  15. {{- if .HasGlobal }}
  16. {{- range .Global}}
  17. global.GlobalConfig.{{.Key}} = {{.Key}}
  18. {{- end }}
  19. {{ end }}
  20. gvaGlobal.GVA_DB.AutoMigrate() // 此处可以把插件依赖的数据库结构体自动创建表 需要填写对应的结构体
  21. // 下方会自动注册菜单 第一个参数为菜单一级路由信息一般为定义好的组名 第二个参数为真实使用的web页面路由信息
  22. // 具体值请根据实际情况修改
  23. utils.RegisterMenus(
  24. system.SysBaseMenu{
  25. Path: "{{ .Snake }}Group",
  26. Name: "{{ .Snake }}Group",
  27. Hidden: false,
  28. Component: "view/routerHolder.vue",
  29. Sort: 1000,
  30. Meta: system.Meta{
  31. Title: "{{ .PlugName }}组",
  32. Icon: "school",
  33. },
  34. },
  35. system.SysBaseMenu{
  36. Path: "{{ .Snake }}",
  37. Name: "{{ .Snake }}",
  38. Hidden: false,
  39. Component: "plugin/{{ .Snake }}/view/index.vue",
  40. Sort: 0,
  41. Meta: system.Meta{
  42. Title: "{{ .PlugName }}",
  43. Icon: "school",
  44. },
  45. },
  46. )
  47. // 下方会自动注册api 以下格式为示例格式,请按照实际情况修改
  48. utils.RegisterApis(
  49. system.SysApi{
  50. Path: "/{{ .RouterGroup }}/routerName",
  51. Description: "{{ .PlugName }}接口",
  52. ApiGroup: "{{ .RouterGroup }}",
  53. Method: "POST",
  54. },
  55. )
  56. return &{{ .PlugName}}Plugin{}
  57. }
  58. func (*{{ .PlugName}}Plugin) Register(group *gin.RouterGroup) {
  59. router.RouterGroupApp.Init{{ .PlugName}}Router(group)
  60. }
  61. func (*{{ .PlugName}}Plugin) RouterPath() string {
  62. return "{{ .RouterGroup}}"
  63. }