Compare commits

...

2 Commits

Author SHA1 Message Date
8b551128e0 bugfix 2025-12-24 15:47:57 +08:00
f5874a0d0c bugfix 2025-12-24 15:38:09 +08:00
2 changed files with 22 additions and 5 deletions

View File

@ -23,7 +23,7 @@ bricks.FieldGroup = class {
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'); dc.set_id(fields[i].name+'_box');
if (fields[i].disabled)) if (fields[i].nonuse))
dc.disabled(true); dc.disabled(true);
} }
} else { } else {
@ -47,7 +47,7 @@ bricks.FieldGroup = class {
i18n:true}); i18n:true});
box.add_widget(txt); box.add_widget(txt);
box.set_id(fields[i].name + '_box') box.set_id(fields[i].name + '_box')
if (fields[i].disabled)) if (fields[i].nonuse))
box.disabled(true); box.disabled(true);
} }
var w = Input.factory(fields[i]); var w = Input.factory(fields[i]);
@ -252,13 +252,15 @@ bricks.FormBase = class extends bricks.Layout {
w.disabled(flg); w.disabled(flg);
if (flg) return; if (flg) return;
this.exclusionfields.forEach(arr =>{ this.exclusionfields.forEach(arr =>{
if arr.include(field_name)){ if (arr.include(field_name)){
arr.forEach(x => { arr.forEach(x => {
if (x!=field_name){ if (x!=field_name){
var w1 = bricks.getWidgetById(x + '_box', this); var w1 = bricks.getWidgetById(x + '_box', this);
if (w1) w1.disabled(! flg); if (w1) {
w1.disabled(! flg);
} }
}) }
});
} }
}); });
} }
@ -276,6 +278,7 @@ bricks.FormBase = class extends bricks.Layout {
continue; continue;
} }
var w = this.name_inputs[name]; var w = this.name_inputs[name];
if (w.parent.is_disabled()) continue;
var d = w.getValue(); var d = w.getValue();
if (w.required && ( d[name] == '' || d[name] === null)){ if (w.required && ( d[name] == '' || d[name] === null)){
new bricks.Error({title:'Requirement', message:'required field must input"' + w.label + '"'}) new bricks.Error({title:'Requirement', message:'required field must input"' + w.label + '"'})
@ -359,8 +362,19 @@ bricks.Form = class extends bricks.FormBase {
toolbar: toolbar:
submit_url: submit_url:
method: method:
exclussionfields:[
[a,b,c],
[x,y]
]
fields fields
} }
field {
name:
label:
uitype:
nonuse: # 不使用
...
}
*/ */
constructor(opts){ constructor(opts){
opts.height = "100%"; opts.height = "100%";

View File

@ -94,6 +94,9 @@ bricks.JsWidget = class {
observable(name, value){ observable(name, value){
return new bricks.Observable(this, name, value); return new bricks.Observable(this, name, value);
} }
is_disabled(){
return this.dom_element.disabled == true;
}
disabled(flag){ disabled(flag){
if(flag){ if(flag){
this.dom_element.disabled = true; this.dom_element.disabled = true;