提交 26a0fc4f 编写于 作者: NoSubject's avatar NoSubject

修复setData方法的,增加fireChange参数

上级 cac60f39
......@@ -354,6 +354,7 @@ MWF.xApplication.process.Xform.$Input = MWF.APP$Input = new Class(
* 当表单上没有对应组件的时候,可以使用this.data[fieldId] = data赋值。
* @summary 为组件赋值。
* @param data{String|Promise} .
* @param fireChange{boolean} 可选,是否触发change事件,默认false.
* @example
* this.form.get("fieldId").setData("test"); //赋文本值
* @example
......@@ -370,7 +371,7 @@ MWF.xApplication.process.Xform.$Input = MWF.APP$Input = new Class(
* var promise = dict.get("tools", true); //异步使用数据字典的get方法时返回Promise,参数true表示异步
* field.setData( promise );
*/
setData: function(data){
setData: function(data, fireChange){
// if (data && data.isAG){
// var ag = o2.AG.all(data).then(function(v){
// if (o2.typeOf(v)=="array") v = v[0];
......@@ -383,7 +384,7 @@ MWF.xApplication.process.Xform.$Input = MWF.APP$Input = new Class(
// }else{
if (!!data && o2.typeOf(data.then)=="function"){
var p = o2.promiseAll(data).then(function(v){
this.__setData(v);
this.__setData(v, fireChange);
// if (this.node.getFirst() && !this.readonly && !this.json.isReadonly) {
// this.checkDescription();
// this.validationMode();
......@@ -397,7 +398,7 @@ MWF.xApplication.process.Xform.$Input = MWF.APP$Input = new Class(
}.bind(this));
}else{
this.moduleValueAG = null;
this.__setData(data);
this.__setData(data, fireChange);
// if (this.node.getFirst() && !this.readonly && !this.json.isReadonly) {
// this.checkDescription();
// this.validationMode();
......@@ -406,7 +407,7 @@ MWF.xApplication.process.Xform.$Input = MWF.APP$Input = new Class(
//this.__setData(data);
//}
},
__setData: function(data){
__setData: function(data, fireChange){
var old = this.getInputData();
this._setBusinessData(data);
if (this.node.getFirst()){
......@@ -416,7 +417,7 @@ MWF.xApplication.process.Xform.$Input = MWF.APP$Input = new Class(
}else{
this.node.set("text", data);
}
if (old!==data) this.fireEvent("change");
if (fireChange && old!==data) this.fireEvent("change");
this.moduleValueAG = null;
},
......
......@@ -217,7 +217,7 @@ MWF.xApplication.process.Xform.Checkbox = MWF.APPCheckbox = new Class(
}.bind(this));
},
_setValue: function(value, m){
_setValue: function(value, m, fireChange){
var mothed = m || "__setValue";
if (!!value){
var p = o2.promiseAll(value).then(function(v){
......@@ -225,11 +225,11 @@ MWF.xApplication.process.Xform.Checkbox = MWF.APPCheckbox = new Class(
if (this.moduleSelectAG){
this.moduleValueAG = this.moduleSelectAG;
this.moduleSelectAG.then(function(){
this[mothed](v);
this[mothed](v, fireChange);
return v;
}.bind(this), function(){});
}else{
this[mothed](v)
this[mothed](v, fireChange)
}
return v;
}.bind(this), function(){});
......@@ -240,7 +240,7 @@ MWF.xApplication.process.Xform.Checkbox = MWF.APPCheckbox = new Class(
this.moduleValueAG = null;
}.bind(this));
}else{
this[mothed](value);
this[mothed](value, fireChange);
}
......@@ -339,6 +339,7 @@ MWF.xApplication.process.Xform.Checkbox = MWF.APPCheckbox = new Class(
/**当参数为Promise的时候,请查看文档: {@link https://www.yuque.com/o2oa/ixsnyt/ws07m0|使用Promise处理表单异步}
* @summary 为字段赋值,并且使值对应的选项选中。
* @param data{String|Promise} .
* @param fireChange{boolean} 可选,是否触发change事件,默认false.
* @example
* this.form.get("fieldId").setData("test"); //赋文本值
* @example
......@@ -348,8 +349,8 @@ MWF.xApplication.process.Xform.Checkbox = MWF.APPCheckbox = new Class(
* var promise = dict.get("tools", true); //异步使用数据字典的get方法时返回Promise,参数true表示异步
* field.setData( promise );
*/
setData: function(data){
return this._setValue(data, "__setData");
setData: function(data, fireChange){
return this._setValue(data, "__setData", fireChange);
// if (data && data.isAG){
// this.moduleValueAG = data;
// data.addResolve(function(v){
......@@ -361,7 +362,7 @@ MWF.xApplication.process.Xform.Checkbox = MWF.APPCheckbox = new Class(
// }
},
__setData: function(data){
__setData: function(data, fireChange){
this.moduleValueAG = null;
var old = this.getInputData();
this._setBusinessData(data);
......@@ -387,7 +388,7 @@ MWF.xApplication.process.Xform.Checkbox = MWF.APPCheckbox = new Class(
}
this.fieldModuleLoaded = true;
this.fireEvent("setData");
if (old!==data) this.fireEvent("change");
if (fireChange && old!==data) this.fireEvent("change");
},
notValidationMode: function(text){
......
......@@ -1021,24 +1021,17 @@ MWF.xApplication.process.Xform.Org = MWF.APPOrg = new Class(
}
if (change) this.fireEvent("change");
},
setData: function(value){
setData: function(value, fireChange){
if (!value) return false;
var oldValues = this.getData();
if (value.length==1 && !(value[0])) value=[];
var promise = this._setValue(value);
Promise.resolve(promise).then(function(values){
if (fireChange) Promise.resolve(promise).then(function(values){
o2.promiseAll(values).then(function(v){
this.checkChange(oldValues, v)
}.bind(this), function(){});
// if (values && values.isAG){
// values.then(function(v){
// this.checkChange(oldValues, v)
// }.bind(this));
// }else{
// this.checkChange(oldValues, values)
// }
}.bind(this), function(){});
},
// __setData: function(value){
......
......@@ -288,7 +288,7 @@ MWF.xApplication.process.Xform.Radio = MWF.APPRadio = new Class(
// }.bind(this));
},
_setValue: function(value, m){
_setValue: function(value, m, fireChange){
var mothed = m || "__setValue";
if (!!value){
var p = o2.promiseAll(value).then(function(v){
......@@ -296,11 +296,11 @@ MWF.xApplication.process.Xform.Radio = MWF.APPRadio = new Class(
if (this.moduleSelectAG){
this.moduleValueAG = this.moduleSelectAG;
this.moduleSelectAG.then(function(){
this[mothed](v);
this[mothed](v, fireChange);
return v;
}.bind(this), function(){});
}else{
this[mothed](v)
this[mothed](v, fireChange)
}
return v;
}.bind(this), function(){});
......@@ -312,7 +312,7 @@ MWF.xApplication.process.Xform.Radio = MWF.APPRadio = new Class(
this.moduleValueAG = null;
}.bind(this));
}else{
this[mothed](value);
this[mothed](value, fireChange);
}
......@@ -411,8 +411,8 @@ MWF.xApplication.process.Xform.Radio = MWF.APPRadio = new Class(
return null;
},
setData: function(data){
return this._setValue(data, "__setData");
setData: function(data, fireChange){
return this._setValue(data, "__setData", fireChange);
// if (data && data.isAG){
// this.moduleValueAG = o2.AG.all(data).then(function(v){
// if (o2.typeOf(v)=="array") v = v[0];
......@@ -433,7 +433,7 @@ MWF.xApplication.process.Xform.Radio = MWF.APPRadio = new Class(
// }
},
__setData: function(data){
__setData: function(data, fireChange){
this.moduleValueAG = null;
var old = this.getInputData();
this._setBusinessData(data);
......@@ -451,7 +451,7 @@ MWF.xApplication.process.Xform.Radio = MWF.APPRadio = new Class(
}
this.fieldModuleLoaded = true;
this.fireEvent("setData");
if (old!==data) this.fireEvent("change");
if (fireChange && old!==data) this.fireEvent("change");
},
notValidationMode: function(text){
......
......@@ -278,7 +278,7 @@ MWF.xApplication.process.Xform.Select = MWF.APPSelect = new Class(
this.fireEvent("addOption", [text, value])
},
_setValue: function(value, m){
_setValue: function(value, m, fireChange){
var mothed = m || "__setValue";
if (!!value){
var p = o2.promiseAll(value).then(function(v){
......@@ -286,11 +286,11 @@ MWF.xApplication.process.Xform.Select = MWF.APPSelect = new Class(
if (this.moduleSelectAG){
this.moduleValueAG = this.moduleSelectAG;
this.moduleSelectAG.then(function(){
this[mothed](v);
this[mothed](v, fireChange);
return v;
}.bind(this), function(){});
}else{
this[mothed](v)
this[mothed](v, fireChange)
}
return v;
}.bind(this), function(){});
......@@ -302,7 +302,7 @@ MWF.xApplication.process.Xform.Select = MWF.APPSelect = new Class(
this.moduleValueAG = null;
}.bind(this));
}else{
this[mothed](value);
this[mothed](value, fireChange);
}
......@@ -424,8 +424,8 @@ MWF.xApplication.process.Xform.Select = MWF.APPSelect = new Class(
this.setData(this.getValue());
},
setData: function(data){
return this._setValue(data, "__setData");
setData: function(data, fireChange){
return this._setValue(data, "__setData", fireChange);
// if (data && data.isAG){
// this.moduleValueAG = o2.AG.all(data).then(function(v){
// if (o2.typeOf(v)=="array") v = v[0];
......@@ -478,7 +478,7 @@ MWF.xApplication.process.Xform.Select = MWF.APPSelect = new Class(
}
this.fieldModuleLoaded = true;
this.fireEvent("setData", [data]);
if (old!==data) this.fireEvent("change");
if (fireChange && old!==data) this.fireEvent("change");
}
});
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册