diff --git a/internal/consts/version.go b/internal/consts/version.go index c46bf19..ac57950 100644 --- a/internal/consts/version.go +++ b/internal/consts/version.go @@ -9,5 +9,5 @@ package consts const ( Logo = `CiAgIF9fX19fX19fX19fXyAgICAgICAgICAgX18gCiAgLyBfX19fLyBfX19fL19fXyBfX19fX18vIC9fCiAvIC8gX18vIC9fICAvIF9fIGAvIF9fXy8gX18vCi8gL18vIC8gX18vIC8gL18vIChfXyAgKSAvXyAgClxfX19fL18vICAgIFxfXyxfL19fX18vXF9fLyAg` - Version = "3.2.30" + Version = "3.2.31" ) diff --git a/resource/template/vm/go/api.template b/resource/template/vm/go/api.template index 8721858..6cbe462 100644 --- a/resource/template/vm/go/api.template +++ b/resource/template/vm/go/api.template @@ -134,3 +134,19 @@ type {{.table.ClassName}}DeleteReq struct { type {{.table.ClassName}}DeleteRes struct { commonApi.EmptyRes } + +{{range $index,$column:= .table.Columns}} +{{if eq $column.HtmlType "switch"}} +// {{$.table.FunctionName}}{{$column.ColumnComment}}修改(状态) +type {{$column.GoField}}SwitchReq struct { + g.Meta `path:"/change{{$column.GoField}}" tags:"{{$.table.FunctionName}}" method:"put" summary:"修改{{$column.ColumnComment}}"` + commonApi.Author + {{$.table.PkColumn.GoField}} {{$.table.PkColumn.GoType}} `p:"{{$.table.PkColumn.HtmlField}}" v:"required#主键必须"` //通过主键修改 + {{$column.GoField}} {{$column.GoType}} `p:"{{$column.HtmlField}}" v:"required#状态必须"` //通过主键获取 +} + +type {{$column.GoField}}SwitchRes struct { + commonApi.EmptyRes +} +{{end}} +{{end}} \ No newline at end of file diff --git a/resource/template/vm/go/controller.template b/resource/template/vm/go/controller.template index d6fae02..5241730 100644 --- a/resource/template/vm/go/controller.template +++ b/resource/template/vm/go/controller.template @@ -19,6 +19,10 @@ package controller {{$hasSystemApi:=false}} {{$hasCommonService:=false}} {{$excel :=false}} +{{$serviceVal := "service"}} +{{if ne .table.ModuleName "system"}} + {{$serviceVal = "systemService"}} +{{end}} {{if or .table.ExcelPort .table.ExcelImp}} {{$excel = true}} {{end}} @@ -320,10 +324,6 @@ func(c *{{$structName}}Controller)Import(ctx context.Context,req *{{.table.Modul {{if gt (len .table.LinkedTables) 0}} // Linked{{$.table.ClassName}}DataSearch 相关连表查询数据 func(c *{{$structName}}Controller) Linked{{$.table.ClassName}}DataSearch(ctx context.Context, req *{{.table.ModuleName}}.Linked{{$.table.ClassName}}DataSearchReq) (res *{{.table.ModuleName}}.Linked{{$.table.ClassName}}DataSearchRes, err error) { - {{$serviceVal := "service"}} - {{if ne $.table.ModuleName "system"}} - {{$serviceVal = "systemService"}} - {{end}} if !{{$serviceVal}}.SysUser().AccessRule(ctx, {{$serviceVal}}.Context().GetUserId(ctx), "{{.apiVersion}}/{{.modulePath}}/{{.table.BusinessName | CaseCamelLower}}/list") { err = errors.New("没有访问权限") return @@ -363,3 +363,16 @@ func (c *{{$structName}}Controller) Delete(ctx context.Context, req *{{.table.Mo return } +{{range $index,$column:= .table.Columns}} +{{if eq $column.HtmlType "switch"}} +// {{$.table.FunctionName}}{{$column.ColumnComment}}修改(状态) +func(c *{{$structName}}Controller)Change{{$column.GoField}}(ctx context.Context, req *{{$.table.ModuleName}}.{{$column.GoField}}SwitchReq)(res *{{$.table.ModuleName}}.{{$column.GoField}}SwitchRes,err error){ + if !{{$serviceVal}}.SysUser().AccessRule(ctx, {{$serviceVal}}.Context().GetUserId(ctx), "{{$.apiVersion}}/{{$.modulePath}}/{{$.table.BusinessName | CaseCamelLower}}/edit") { + err = errors.New("没有修改权限") + return + } + err = service.{{$.table.ClassName}}().Change{{$column.GoField}}(ctx,req.{{$.table.PkColumn.GoField}},req.{{$column.GoField}}) + return +} +{{end}} +{{end}} \ No newline at end of file diff --git a/resource/template/vm/go/logic.template b/resource/template/vm/go/logic.template index bdb8697..7a3ab7c 100644 --- a/resource/template/vm/go/logic.template +++ b/resource/template/vm/go/logic.template @@ -613,4 +613,20 @@ func (s *s{{$.table.ClassName}}) List{{$.table.ClassName}}{{$column.ClassName}}( //// {{end}} {{end}} +{{end}} + +{{range $index,$column:= .table.Columns}} +{{if eq $column.HtmlType "switch"}} +// {{$.table.FunctionName}}{{$column.ColumnComment}}修改(状态) +func (s *s{{$.table.ClassName}}) Change{{$column.GoField}} (ctx context.Context,{{$.table.PkColumn.HtmlField}} {{$.table.PkColumn.GoType}},{{$column.HtmlField}} {{$column.GoType}})(err error){ + err = g.Try(ctx, func(ctx context.Context) { + _, err = dao.{{$.table.ClassName}}.Ctx(ctx).WherePri({{$.table.PkColumn.HtmlField}}). + Update(do.{{$.table.ClassName}}{ + {{$column.GoField}}:{{$column.HtmlField}}, + }) + liberr.ErrIsNil(ctx, err, "修改失败") + }) + return +} +{{end}} {{end}} \ No newline at end of file diff --git a/resource/template/vm/go/service.template b/resource/template/vm/go/service.template index 6bf992d..95a9be4 100644 --- a/resource/template/vm/go/service.template +++ b/resource/template/vm/go/service.template @@ -46,6 +46,12 @@ type I{{.table.ClassName}} interface { {{if gt (len .table.LinkedTables) 0}} Linked{{$.table.ClassName}}DataSearch(ctx context.Context)(res *model.Linked{{$.table.ClassName}}DataSearchRes,err error) {{end}} + {{range $index,$column:= .table.Columns}} + {{if eq $column.HtmlType "switch"}} + // {{$.table.FunctionName}}{{$column.ColumnComment}}修改(状态) + Change{{$column.GoField}} (ctx context.Context,{{$.table.PkColumn.HtmlField}} {{$.table.PkColumn.GoType}},{{$column.HtmlField}} {{$column.GoType}})(err error) + {{end}} + {{end}} } //// diff --git a/resource/template/vm/ts/api.template b/resource/template/vm/ts/api.template index e25e60b..53713c3 100644 --- a/resource/template/vm/ts/api.template +++ b/resource/template/vm/ts/api.template @@ -58,7 +58,7 @@ export function del{{.table.ClassName}}({{.table.PkColumn.HtmlField}}s:{{.table. {{/*去重处理*/}} {{$hasMethods:=newArray}} {{range $index,$column:= .table.Columns}} -{{if and $column.IsStatus $column.IsList}} +{{if eq $column.HtmlType "switch"}} // {{$.table.FunctionName}}{{$column.ColumnComment}}修改 export function change{{$.table.ClassName}}{{$column.GoField}}({{$.table.PkColumn.HtmlField}}:{{$.table.PkColumn.TsType}},{{$column.HtmlField}}:{{$column.TsType}}) { const data = { diff --git a/resource/template/vm/ts/model.template b/resource/template/vm/ts/model.template index 696637d..9108426 100644 --- a/resource/template/vm/ts/model.template +++ b/resource/template/vm/ts/model.template @@ -40,7 +40,7 @@ export interface {{.table.ClassName}}TableColumns { //// export interface {{.table.ClassName}}InfoData { {{range $index, $column := .table.Columns}} - {{if $column.IsPk}}{{$column.HtmlField}}:{{if eq $column.HtmlType "images" "file" "files" "checkbox" "selects" "treeSelects"}}any[]{{else if eq $column.HtmlType "radio"}}boolean{{else if eq $column.HtmlType "keyValue"}}{key:string,value:any}[]{{else}}{{$column.TsType}}|undefined{{end}}; // {{$column.ColumnComment}} {{else}}{{$column.HtmlField}}:{{if eq $column.HtmlType "images" "file" "files" "checkbox" "selects" "treeSelects"}}any[]{{else if eq $column.HtmlType "radio"}}boolean{{else if eq $column.HtmlType "keyValue"}}{key:string,value:any}[]{{else}}{{$column.TsType}}|undefined{{end}}; // {{$column.ColumnComment}} {{end}} + {{if $column.IsPk}}{{$column.HtmlField}}:{{if eq $column.HtmlType "images" "file" "files" "checkbox" "selects" "treeSelects"}}any[]{{else if eq $column.HtmlType "switch"}}boolean{{else if eq $column.HtmlType "keyValue"}}{key:string,value:any}[]{{else}}{{$column.TsType}}|undefined{{end}}; // {{$column.ColumnComment}} {{else}}{{$column.HtmlField}}:{{if eq $column.HtmlType "images" "file" "files" "checkbox" "selects" "treeSelects"}}any[]{{else if eq $column.HtmlType "switch"}}boolean{{else if eq $column.HtmlType "keyValue"}}{key:string,value:any}[]{{else}}{{$column.TsType}}|undefined{{end}}; // {{$column.ColumnComment}} {{end}} {{range $ti, $linkedTable := $.table.LinkedTables}} {{if eq $column.LinkTableClass $linkedTable.ClassName}} linked{{$column.GoField}}?:Linked{{$.table.ClassName}}{{$linkedTable.ClassName}}{{if eq $column.HtmlType "checkbox" "selects" "treeSelects"}}[]{{end}}; // {{$column.ColumnComment}} diff --git a/resource/template/vm/vue/detail-vue.template b/resource/template/vm/vue/detail-vue.template index 2b12d24..760d382 100644 --- a/resource/template/vm/vue/detail-vue.template +++ b/resource/template/vm/vue/detail-vue.template @@ -66,6 +66,15 @@ {{"{{"}} formData.{{$column.HtmlField}} {{"}}"}} {{end}} + {{else if eq $column.HtmlType "switch"}} + + + + {{else if eq $column.HtmlType "date"}} + {{else if eq $column.HtmlType "switch"}} + + + {{else if eq $column.HtmlType "selects" "checkbox" "treeSelects"}} {{if ne $column.LinkTableName ""}} @@ -444,7 +459,7 @@ import { add{{.table.ClassName}}, update{{.table.ClassName}}, {{range $index,$column:= .table.Columns}} - {{if and $column.IsStatus $column.IsList}} + {{if eq $column.HtmlType "switch"}} change{{$.table.ClassName}}{{$column.GoField}}, {{end}} {{end}} @@ -624,6 +639,16 @@ const {{$column.HtmlField}}Format = (row:{{$.table.ClassName}}TableColumns) => { } {{end}} {{end}} +{{if eq $column.HtmlType "switch"}} +const change{{$column.GoField}} = (row:{{$.table.ClassName}}TableColumns) => { + change{{$.table.ClassName}}{{$column.GoField}}(row.{{$.table.PkColumn.HtmlField}},row.{{$column.HtmlField}}) + .catch(()=>{ + setTimeout(()=>{ + row.{{$column.HtmlField}} = !row.{{$column.HtmlField}} + },300) + }) +} +{{end}} {{end}} // 多选框选中数据 const handleSelectionChange = (selection:Array<{{.table.ClassName}}InfoData>) => { diff --git a/resource/template/vm/vue/tree-virtual-vue.template b/resource/template/vm/vue/tree-virtual-vue.template index c1a5903..203be77 100644 --- a/resource/template/vm/vue/tree-virtual-vue.template +++ b/resource/template/vm/vue/tree-virtual-vue.template @@ -49,6 +49,12 @@ {{$colIndex = ($colIndex | plus 1)}} + {{else if eq $column.HtmlType "switch"}} + + + + + {{else if and (eq $column.HtmlType "select" "radio" "checkbox" "selects") (ne $column.DictType "") }} @@ -311,7 +317,7 @@ {{$hasImports:=newArray}} import {ItemOptions} from "/@/api/items"; import {toRefs, reactive, onMounted, ref, defineComponent, computed,getCurrentInstance,toRaw,h,unref,FunctionalComponent} from 'vue'; -import {ElMessageBox, ElMessage, FormInstance,RowExpandHandler,ExpandedRowsChangeHandler,TableV2FixedDir, Column, ElLink, ElIcon, ElCheckbox, CheckboxValueType,ElImage,ElTag} from 'element-plus'; +import {ElMessageBox, ElMessage, FormInstance,RowExpandHandler,ExpandedRowsChangeHandler,TableV2FixedDir, Column, ElLink, ElIcon, ElCheckbox, CheckboxValueType,ElImage,ElTag,ElSwitch} from 'element-plus'; import { EditPen,View,DeleteFilled } from '@element-plus/icons-vue' import { list{{.table.ClassName}}, @@ -320,7 +326,7 @@ import { add{{.table.ClassName}}, update{{.table.ClassName}}, {{range $index,$column:= .table.Columns}} - {{if and $column.IsStatus $column.IsList}} + {{if eq $column.HtmlType "switch"}} change{{$.table.ClassName}}{{$column.GoField}}, {{end}} {{end}} @@ -500,6 +506,16 @@ const {{$column.HtmlField}}Format = (row:{{$.table.ClassName}}TableColumns) => { } {{end}} {{end}} +{{if eq $column.HtmlType "switch"}} +const change{{$column.GoField}} = (row:{{$.table.ClassName}}TableColumns) => { + change{{$.table.ClassName}}{{$column.GoField}}(row.{{$.table.PkColumn.HtmlField}},row.{{$column.HtmlField}}) + .catch(()=>{ + setTimeout(()=>{ + row.{{$column.HtmlField}} = !row.{{$column.HtmlField}} + },300) + }) +} +{{end}} {{end}} // 多选框选中数据 const handleSelectionChange = (selection:Array<{{.table.ClassName}}InfoData>) => { @@ -648,6 +664,19 @@ const setVrData = (list:{{$.table.ClassName}}TableColumns[])=>{ return ('div',children) } }) + {{else if eq $column.HtmlType "switch"}} + _columns.push({key: '{{$column.HtmlField}}',dataKey: '{{$column.HtmlField}}',title: `{{$column.ColumnComment}}`, + {{if gt $column.MinWidth 0}}width:{{$column.MinWidth}},{{end}} + {{if $column.IsFixed}}fixed: TableV2FixedDir.LEFT,{{end}} + cellRenderer: ({ rowData:row,cellData:{{$column.HtmlField}} }) => { + return h(ElSwitch,{modelValue:{{$column.HtmlField}}, + 'onUpdate:modelValue': (value) => { + // 更新数据 + row.{{$column.HtmlField}} = value; + }, + onClick: () => { change{{$column.GoField}}(row)}}); + } + }) {{else if eq $column.HtmlType "selects" "checkbox" "treeSelects"}} {{if ne $column.LinkTableName ""}} _columns.push({key: '{{$column.HtmlField}}',dataKey: '{{$column.HtmlField}}',title: `{{$column.ColumnComment}}`, diff --git a/resource/template/vm/vue/tree-vue.template b/resource/template/vm/vue/tree-vue.template index 443cc79..2cddb2f 100644 --- a/resource/template/vm/vue/tree-vue.template +++ b/resource/template/vm/vue/tree-vue.template @@ -47,6 +47,12 @@ {{$colIndex = ($colIndex | plus 1)}} + {{else if eq $column.HtmlType "switch"}} + + + + + {{else if and (eq $column.HtmlType "select" "radio" "checkbox" "selects") (ne $column.DictType "") }} @@ -283,6 +289,15 @@ fit="contain"> + {{else if eq $column.HtmlType "switch"}} + + + {{else if eq $column.HtmlType "selects" "checkbox" "treeSelects"}} {{if ne $column.LinkTableName ""}} { } {{end}} {{end}} +{{if eq $column.HtmlType "switch"}} +const change{{$column.GoField}} = (row:{{$.table.ClassName}}TableColumns) => { + change{{$.table.ClassName}}{{$column.GoField}}(row.{{$.table.PkColumn.HtmlField}},row.{{$column.HtmlField}}) + .catch(()=>{ + setTimeout(()=>{ + row.{{$column.HtmlField}} = !row.{{$column.HtmlField}} + },300) + }) +} +{{end}} {{end}} // 多选框选中数据 const handleSelectionChange = (selection:Array<{{.table.ClassName}}InfoData>) => {