From fde965bbd14299cedaeb08f1dad7476bdea125e2 Mon Sep 17 00:00:00 2001 From: fcl Date: Tue, 22 Jul 2025 16:57:09 +0800 Subject: [PATCH] update system proto --- pb/system.proto | 5 ++-- server.go | 3 ++- template.go | 4 ++++ types.go | 1 + utils.go | 64 +++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 utils.go diff --git a/pb/system.proto b/pb/system.proto index 77b27d8..99d3bba 100644 --- a/pb/system.proto +++ b/pb/system.proto @@ -19,8 +19,9 @@ message Setting { int64 created_at = 2 [(aeus.field)={scenarios:"search;view;export",comment:"创建时间"}]; int64 updated_at = 3 [(aeus.field)={scenarios:"search;view;export",comment:"更新时间"}]; string name = 4 [(aeus.field)={gorm:"size:60",rule:"required",props:"readonly:update",comment: "配置项"},(validate.rules).string = {max_len: 20}]; - string value = 5 [(aeus.field)={gorm:"size:512",rule:"required",format:"textarea",comment: "配置值"},(validate.rules).string = {max_len: 512}]; - string description = 6 [(aeus.field)={gorm:"size:1024",format:"textarea",scenarios:"create;update;view;export",comment: "备注说明"},(validate.rules).string = {max_len: 1024}]; + string type = 5 [(aeus.field)={gorm:"size:20",rule:"required",enum:"text:文本;number:数字;json:JSON",comment: "数据类型"},(validate.rules).string = {max_len: 20}]; + string value = 6 [(aeus.field)={gorm:"size:1024",rule:"required",format:"textarea",comment: "配置值"},(validate.rules).string = {max_len: 1024}]; + string description = 7 [(aeus.field)={gorm:"size:1024",format:"textarea",scenarios:"create;update;view;export",comment: "备注说明"},(validate.rules).string = {max_len: 1024}]; } diff --git a/server.go b/server.go index d9acabf..8db2755 100644 --- a/server.go +++ b/server.go @@ -178,6 +178,7 @@ func generateVueFile(prefix string, apiPrefix string, mv *rest.Model) (err error } } data := &vueTemplateData{ + Component: inflector.Camelize(mv.Naming().ModuleName) + inflector.Camelize(mv.Naming().Singular), ModuleName: mv.ModuleName(), TableName: mv.TableName(), Permissions: permissions, @@ -221,7 +222,7 @@ func initREST(ctx context.Context, o *options) (err error) { if err = rest.Init(opts...); err != nil { return } - if !o.disableModel { + if !o.disableModels { if err = tx.AutoMigrate(getModels()...); err != nil { return } diff --git a/template.go b/template.go index 55d614d..2bd4183 100644 --- a/template.go +++ b/template.go @@ -20,6 +20,10 @@ var ( import Viewer from '@/components/fragment/Viewer.vue'; import { computed } from 'vue'; +defineOptions({ + name: '{{.Name}}' +}) + const props = defineProps({ title: { type: String, diff --git a/types.go b/types.go index 9eae36f..acc32ce 100644 --- a/types.go +++ b/types.go @@ -52,6 +52,7 @@ type ( } vueTemplateData struct { + Component string //组件名称 ModuleName string TableName string ApiPrefix string diff --git a/utils.go b/utils.go new file mode 100644 index 0000000..1911721 --- /dev/null +++ b/utils.go @@ -0,0 +1,64 @@ +package aeusadmin + +import "git.nobla.cn/golang/aeus-admin/models" + +type ( + menuOptions struct { + icon string + position int + public bool + hidden bool + description string + } + + MenuOption func(o *menuOptions) +) + +func WithMenuIcon(icon string) MenuOption { + return func(o *menuOptions) { + o.icon = icon + } +} + +func WithMenuPosition(position int) MenuOption { + return func(o *menuOptions) { + o.position = position + } +} + +func WithMenuPublic(public bool) MenuOption { + return func(o *menuOptions) { + o.public = public + } +} + +func WithMenuHidden(hidden bool) MenuOption { + return func(o *menuOptions) { + o.hidden = hidden + } +} + +func WithMenuDescription(description string) MenuOption { + return func(o *menuOptions) { + o.description = description + } +} + +func NewMenu(label string, name string, parent string, uri string, viewPath string, cbs ...MenuOption) *models.Menu { + opts := &menuOptions{} + for _, cb := range cbs { + cb(opts) + } + model := &models.Menu{} + model.Name = name + model.Label = label + model.Parent = parent + model.Uri = uri + model.ViewPath = viewPath + model.Public = opts.public + model.Position = int64(opts.position) + model.Icon = opts.icon + model.Hidden = opts.hidden + model.Description = opts.description + return model +}