Merge pull request #294 from trheyi/main

[fix] widget form tab columns bug
This commit is contained in:
Max 2022-12-16 18:22:43 +08:00 committed by GitHub
commit a5c0abd7bd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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 {
for k := range sections[i].Columns[j].Tabs {
tab := sections[i].Columns[j].Tabs[k]
layout.listColumns(
fn,
fmt.Sprintf("%s[%d].Columns[%d].tabs[%d]", path, i, j, k),
[]SectionDSL{sections[i].Columns[j].Tabs[k]},
[]SectionDSL{tab},
)
}
continue
}
if path == "layout.sections" {
fn(fmt.Sprintf("%s[%d].Columns[%d]", path, i, j), sections[i].Columns[j])
} else {

View file

@ -45,36 +45,33 @@ func (dsl *DSL) mapping() error {
// Mapping compute and id
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 {
// Mapping ID
dsl.Mapping.Columns[field.ID] = inst.Name
dsl.Mapping.Columns[inst.Name] = field.ID
// 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})
// 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})
}
// Edit
if field.Edit != nil && field.Edit.Compute != nil {
bind := field.EditBind()
if _, has := dsl.Computes.Edit[bind]; !has {
dsl.Computes.Edit[bind] = []compute.Unit{}
}
dsl.Computes.Edit[bind] = append(dsl.Computes.Edit[bind], compute.Unit{Name: inst.Name, Kind: compute.Edit})
// Edit
if field.Edit != nil && field.Edit.Compute != nil {
bind := field.EditBind()
if _, has := dsl.Computes.Edit[bind]; !has {
dsl.Computes.Edit[bind] = []compute.Unit{}
}
dsl.Computes.Edit[bind] = append(dsl.Computes.Edit[bind], compute.Unit{Name: inst.Name, Kind: compute.Edit})
}
}
}
}, "", nil)
}
// Mapping Actions