[fix] widget form tab columns bug

This commit is contained in:
Max 2022-12-16 18:05:55 +08:00
parent 4707c17518
commit 112d6619dd
2 changed files with 23 additions and 24 deletions

View file

@ -159,14 +159,16 @@ func (layout *LayoutDSL) listColumns(fn func(string, Column), path string, secti
if sections[i].Columns[j].Tabs != nil { if sections[i].Columns[j].Tabs != nil {
for k := range sections[i].Columns[j].Tabs { for k := range sections[i].Columns[j].Tabs {
tab := sections[i].Columns[j].Tabs[k]
layout.listColumns( layout.listColumns(
fn, fn,
fmt.Sprintf("%s[%d].Columns[%d].tabs[%d]", path, i, j, k), fmt.Sprintf("%s[%d].Columns[%d].tabs[%d]", path, i, j, k),
[]SectionDSL{sections[i].Columns[j].Tabs[k]}, []SectionDSL{tab},
) )
} }
continue continue
} }
if path == "layout.sections" { if path == "layout.sections" {
fn(fmt.Sprintf("%s[%d].Columns[%d]", path, i, j), sections[i].Columns[j]) fn(fmt.Sprintf("%s[%d].Columns[%d]", path, i, j), sections[i].Columns[j])
} else { } else {

View file

@ -45,36 +45,33 @@ func (dsl *DSL) mapping() error {
// Mapping compute and id // Mapping compute and id
if dsl.Fields.Form != nil && dsl.Layout.Form != nil && dsl.Layout.Form.Sections != nil { if dsl.Fields.Form != nil && dsl.Layout.Form != nil && dsl.Layout.Form.Sections != nil {
for _, section := range dsl.Layout.Form.Sections { dsl.Layout.listColumns(func(path string, inst Column) {
for _, inst := range section.Columns { if field, has := dsl.Fields.Form[inst.Name]; has {
// Mapping ID
dsl.Mapping.Columns[field.ID] = inst.Name
dsl.Mapping.Columns[inst.Name] = field.ID
if field, has := dsl.Fields.Form[inst.Name]; has { // View
if field.View != nil && field.View.Compute != nil {
// Mapping ID bind := field.ViewBind()
dsl.Mapping.Columns[field.ID] = inst.Name if _, has := dsl.Computes.View[bind]; !has {
dsl.Mapping.Columns[inst.Name] = field.ID dsl.Computes.View[bind] = []compute.Unit{}
// View
if field.View != nil && field.View.Compute != nil {
bind := field.ViewBind()
if _, has := dsl.Computes.View[bind]; !has {
dsl.Computes.View[bind] = []compute.Unit{}
}
dsl.Computes.View[bind] = append(dsl.Computes.View[bind], compute.Unit{Name: inst.Name, Kind: compute.View})
} }
dsl.Computes.View[bind] = append(dsl.Computes.View[bind], compute.Unit{Name: inst.Name, Kind: compute.View})
}
// Edit // Edit
if field.Edit != nil && field.Edit.Compute != nil { if field.Edit != nil && field.Edit.Compute != nil {
bind := field.EditBind() bind := field.EditBind()
if _, has := dsl.Computes.Edit[bind]; !has { if _, has := dsl.Computes.Edit[bind]; !has {
dsl.Computes.Edit[bind] = []compute.Unit{} dsl.Computes.Edit[bind] = []compute.Unit{}
}
dsl.Computes.Edit[bind] = append(dsl.Computes.Edit[bind], compute.Unit{Name: inst.Name, Kind: compute.Edit})
} }
dsl.Computes.Edit[bind] = append(dsl.Computes.Edit[bind], compute.Unit{Name: inst.Name, Kind: compute.Edit})
} }
} }
}
}, "", nil)
} }
// Mapping Actions // Mapping Actions