This commit is contained in:
yumoqing 2025-12-24 15:21:26 +08:00
parent 3c0fd2fe0e
commit 7a97e94192

View File

@ -22,6 +22,10 @@ bricks.FieldGroup = class {
this.build_fields(form, dc, fields[i].fields); this.build_fields(form, dc, fields[i].fields);
parent.add_widget(dc); parent.add_widget(dc);
dc = new bricks.DynamicColumn({mobile_cols:2}); dc = new bricks.DynamicColumn({mobile_cols:2});
dc.set_id(fields[i].name+'_box');
if (fields[i].disabled))
dc.disabled(true);
}
} else { } else {
var box; var box;
if (! form.opts.input_layout || form.opts.input_layout == 'VBox'){ if (! form.opts.input_layout || form.opts.input_layout == 'VBox'){
@ -42,6 +46,10 @@ bricks.FieldGroup = class {
height:'auto', height:'auto',
i18n:true}); i18n:true});
box.add_widget(txt); box.add_widget(txt);
box.set_id(fields[i].name + '_box')
if (fields[i].disabled))
box.disabled(true);
}
var w = Input.factory(fields[i]); var w = Input.factory(fields[i]);
if (w){ if (w){
box.add_widget(w); box.add_widget(w);
@ -72,6 +80,10 @@ bricks.FormBody = class extends bricks.VScrollPanel {
}, },
... ...
] ]
exclusionfields:[
[a,b,c], # a,b,c互斥a enabledb,c必须disabled
[x,y] # x,y互斥
]
} }
*/ */
constructor(form, opts){ constructor(form, opts){
@ -234,7 +246,28 @@ bricks.FormBase = class extends bricks.Layout {
} }
return this.get_formdata(); return this.get_formdata();
} }
toggle_disable(field_name, flg){
var w = bricks.getWidgetById(field_name + '_box', this);
if (! w) return;
w.disabled(flg);
if (flg) return;
this.exclusionfields.forEach(arr =>{
if arr.include(field_name)){
arr.forEach(x => {
if (x!=field_name){
var w1 = bricks.getWidgetById(x + '_box', this);
if (w1) w1.disabled(! flg);
}
})
}
});
}
enable_field(field_name){
this.toggle_disable(field_name, false);
}
disable_field(field_name){
this.toggle_disable(field_name, true);
}
get_formdata(){ get_formdata(){
var data = new FormData(); var data = new FormData();
var changed = false; var changed = false;