diff --git a/server/resource/autocode_template/server/service.go.tpl b/server/resource/autocode_template/server/service.go.tpl
index dd411339..634af7ed 100644
--- a/server/resource/autocode_template/server/service.go.tpl
+++ b/server/resource/autocode_template/server/service.go.tpl
@@ -140,8 +140,11 @@ func ({{.Abbreviation}}Service *{{.StructName}}Service)Get{{.StructName}}InfoLis
{{- if .HasDataSource }}
func ({{.Abbreviation}}Service *{{.StructName}}Service)Get{{.StructName}}DataSource() (res map[string][]map[string]any, err error) {
+ res = make(map[string][]map[string]any)
{{range $key, $value := .DataSourceMap}}
- {{$db}}.Table("{{$value.Table}}").Select("{{$value.Label}} as label,{{$value.Value}} as value").Scan(&res["{{$key}}"])
+ {{$key}} := make([]map[string]any, 0)
+ {{$db}}.Table("{{$value.Table}}").Select("{{$value.Label}} as label,{{$value.Value}} as value").Scan(&{{$key}})
+ res["{{$key}}"] = {{$key}}
{{- end }}
return
}
diff --git a/server/resource/autocode_template/web/form.vue.tpl b/server/resource/autocode_template/web/form.vue.tpl
index e28e9e09..693ae0d5 100644
--- a/server/resource/autocode_template/web/form.vue.tpl
+++ b/server/resource/autocode_template/web/form.vue.tpl
@@ -164,6 +164,7 @@ const elFormRef = ref()
dataSource.value = res.data
}
}
+ getDataSourceFunc()
{{- end }}
// 初始化方法
diff --git a/server/resource/autocode_template/web/table.vue.tpl b/server/resource/autocode_template/web/table.vue.tpl
index 834d14c7..39c7f22f 100644
--- a/server/resource/autocode_template/web/table.vue.tpl
+++ b/server/resource/autocode_template/web/table.vue.tpl
@@ -109,6 +109,7 @@
{{"{{"}} filterDataSource(dataSource.{{.FieldJson}},scope.row.{{.FieldJson}}) {{"}}"}}
+
{{- else if .DictType}}
@@ -369,6 +370,7 @@ const formData = ref({
dataSource.value = res.data
}
}
+ getDataSourceFunc()
{{- end }}
diff --git a/web/src/utils/format.js b/web/src/utils/format.js
index 7539abed..f4e227c3 100644
--- a/web/src/utils/format.js
+++ b/web/src/utils/format.js
@@ -24,7 +24,7 @@ export const filterDict = (value, options) => {
export const filterDataSource = (dataSource, value) => {
const rowLabel = dataSource && dataSource.find(item => item.value === value)
- return rowLabel.label
+ return rowLabel?.label
}
export const getDictFunc = async(type) => {