From ae540c6bfe21fbb7bd8975b6e0e8e069b674363d Mon Sep 17 00:00:00 2001 From: lzl <482734114@qq.com> Date: Mon, 18 Aug 2025 14:35:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=A8=A1=E7=89=88=E7=94=9F?= =?UTF-8?q?=E6=88=90model.ts=E9=BB=98=E8=AE=A4=E5=80=BC=E4=B8=8D=E5=B8=A6?= =?UTF-8?q?=E5=BC=95=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hggen/views/curd_generate_web_model.go | 16 +++++++++++++--- .../generate/default/curd/web.model.ts.template | 13 ++++++++++--- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/server/internal/library/hggen/views/curd_generate_web_model.go b/server/internal/library/hggen/views/curd_generate_web_model.go index 5ec737a..ea444a8 100644 --- a/server/internal/library/hggen/views/curd_generate_web_model.go +++ b/server/internal/library/hggen/views/curd_generate_web_model.go @@ -14,6 +14,7 @@ import ( "hotgo/internal/library/dict" "hotgo/internal/model/input/sysin" "hotgo/utility/convert" + "strings" "github.com/gogf/gf/v2/errors/gerror" "github.com/gogf/gf/v2/frame/g" @@ -24,6 +25,7 @@ type StateItem struct { Name string DefaultValue interface{} Dc string + DataType string // 新增字段:存储字段类型信息 } func (l *gCurd) webModelTplData(ctx context.Context, in *CurdPreviewInput) (data g.Map, err error) { @@ -112,13 +114,20 @@ func (l *gCurd) generateWebModelImport(ctx context.Context, in *CurdPreviewInput func (l *gCurd) generateWebModelStateItems(ctx context.Context, in *CurdPreviewInput) (items []*StateItem) { for _, field := range in.masterFields { + dataType := field.DataType + if dataType == "" && field.SqlType != "" { + if parts := strings.SplitN(field.SqlType, "(", 2); len(parts) > 0 { + dataType = parts[0] + } + } var value = field.DefaultValue if value == nil { value = "null" } - if value == "" { - value = `''` - } + //注释为空判断 避免模版生成的model.ts重复加引号 + //if value == "" { + // value = `''` + //} // 选项组件默认值调整 if gconv.Int(value) == 0 && IsSelectFormMode(field.FormMode) { @@ -145,6 +154,7 @@ func (l *gCurd) generateWebModelStateItems(ctx context.Context, in *CurdPreviewI items = append(items, &StateItem{ Name: field.TsName + "Summa?: null | MemberSumma", DefaultValue: "null", + DataType: dataType, Dc: field.Dc + "摘要信息", }) } diff --git a/server/resource/generate/default/curd/web.model.ts.template b/server/resource/generate/default/curd/web.model.ts.template index bd7659e..3543624 100644 --- a/server/resource/generate/default/curd/web.model.ts.template +++ b/server/resource/generate/default/curd/web.model.ts.template @@ -2,9 +2,16 @@ @{.const} -export class State {@{range .stateItems} - public @{.Name} = @{.DefaultValue}; // @{.Dc}@{end} - +export class State { +@{range .stateItems} + public @{.Name} = @{if and .DataType (or + (eq .DataType "varchar") + (eq .DataType "char") + (eq .DataType "text") + (eq .DataType "json") + (eq .DataType "date") + (eq .DataType "datetime") + )}'@{.DefaultValue}'@{else}@{.DefaultValue}@{end};//@{.Dc}@{end} constructor(state?: Partial) { if (state) { Object.assign(this, state);