提交 b6c34a51 编写于 作者: U unknown

为数据表格、数据模板添加afterImport事件,修复数据表格、数据模板的resetData问题

上级 03c9eec2
...@@ -77,6 +77,10 @@ ...@@ -77,6 +77,10 @@
"code": "", "code": "",
"html": "" "html": ""
}, },
"afterImport": {
"code": "",
"html": ""
},
"click": { "click": {
"code": "", "code": "",
"html": "" "html": ""
......
...@@ -62,6 +62,10 @@ ...@@ -62,6 +62,10 @@
"code": "", "code": "",
"html": "" "html": ""
}, },
"afterImport": {
"code": "",
"html": ""
},
"click": { "click": {
"code": "", "code": "",
"html": "" "html": ""
......
...@@ -165,8 +165,13 @@ MWF.xApplication.process.Xform.DatatablePC = new Class( ...@@ -165,8 +165,13 @@ MWF.xApplication.process.Xform.DatatablePC = new Class(
* @event MWF.xApplication.process.Xform.DatatablePC#import * @event MWF.xApplication.process.Xform.DatatablePC#import
* @see {@link https://www.yuque.com/o2oa/ixsnyt/hm5uft#i0zTS|组件事件说明} * @see {@link https://www.yuque.com/o2oa/ixsnyt/hm5uft#i0zTS|组件事件说明}
*/ */
/**
* 在导入excel,数据设置回数据表格以后触发,this.event指向整理过的导入数据,格式见{@link DatatableData}。
* @event MWF.xApplication.process.Xform.DatatablePC#afterImport
* @see {@link https://www.yuque.com/o2oa/ixsnyt/hm5uft#i0zTS|组件事件说明}
*/
"moduleEvents": ["queryLoad","postLoad","load", "afterLoad", "moduleEvents": ["queryLoad","postLoad","load", "afterLoad",
"beforeLoadLine", "afterLoadLine", "addLine", "deleteLine", "afterDeleteLine", "editLine", "completeLineEdit", "cancelLineEdit", "export", "import", "validImport"] "beforeLoadLine", "afterLoadLine", "addLine", "deleteLine", "afterDeleteLine", "editLine", "completeLineEdit", "cancelLineEdit", "export", "import", "validImport", "afterImport"]
}, },
initialize: function(node, json, form, options){ initialize: function(node, json, form, options){
...@@ -476,13 +481,10 @@ MWF.xApplication.process.Xform.DatatablePC = new Class( ...@@ -476,13 +481,10 @@ MWF.xApplication.process.Xform.DatatablePC = new Class(
this.table.setStyles(this.json.tableStyles); this.table.setStyles(this.json.tableStyles);
this.table.set(this.json.properties); this.table.set(this.json.properties);
}, },
_getValue: function(){ getDefaultValue: function(){
if (this.moduleValueAG) return this.moduleValueAG; var value;
var value = this._getBusinessData(); if (this.json.defaultData && this.json.defaultData.code) value = this.form.Macro.exec(this.json.defaultData.code, this);
if (!value){ if (value && !value.then) if (o2.typeOf(value)==="array") value = {"data": value || [], "total":{}};
if (this.json.defaultData && this.json.defaultData.code) value = this.form.Macro.exec(this.json.defaultData.code, this);
if (value && !value.then) if (o2.typeOf(value)==="array") value = {"data": value || [], "total":{}};
}
if(!value && this.multiEditMode){ if(!value && this.multiEditMode){
value = {"data": [], "total":{}}; value = {"data": [], "total":{}};
var count = this.json.defaultCount ? this.json.defaultCount.toInt() : 0; var count = this.json.defaultCount ? this.json.defaultCount.toInt() : 0;
...@@ -490,6 +492,14 @@ MWF.xApplication.process.Xform.DatatablePC = new Class( ...@@ -490,6 +492,14 @@ MWF.xApplication.process.Xform.DatatablePC = new Class(
value.data.push({}) value.data.push({})
} }
} }
return value;
},
_getValue: function(){
if (this.moduleValueAG) return this.moduleValueAG;
var value = this._getBusinessData();
if (!value){
value = this.getDefaultValue();
}
return value || {"data": [], "total":{}}; return value || {"data": [], "total":{}};
}, },
getValue: function(){ getValue: function(){
...@@ -828,7 +838,8 @@ MWF.xApplication.process.Xform.DatatablePC = new Class( ...@@ -828,7 +838,8 @@ MWF.xApplication.process.Xform.DatatablePC = new Class(
* this.form.get('fieldId').resetData(); * this.form.get('fieldId').resetData();
*/ */
resetData: function(){ resetData: function(){
this.setData(this._getValue()); var value = this.getDefaultValue() || {"data": [], "total":{}};
this.setData( value );
}, },
/**当参数为Promise的时候,请查看文档: {@link https://www.yuque.com/o2oa/ixsnyt/ws07m0|使用Promise处理表单异步}<br/> /**当参数为Promise的时候,请查看文档: {@link https://www.yuque.com/o2oa/ixsnyt/ws07m0|使用Promise处理表单异步}<br/>
* 当表单上没有对应组件的时候,可以使用this.data[fieldId] = data赋值。 * 当表单上没有对应组件的时候,可以使用this.data[fieldId] = data赋值。
...@@ -2400,6 +2411,9 @@ MWF.xApplication.process.Xform.DatatablePC.Importer = new Class({ ...@@ -2400,6 +2411,9 @@ MWF.xApplication.process.Xform.DatatablePC.Importer = new Class({
this.datatable.fireEvent("import", [data] ); this.datatable.fireEvent("import", [data] );
this.datatable.setData( { "data" : data } ); this.datatable.setData( { "data" : data } );
this.datatable.fireEvent("afterImport", [data] );
this.form.notice( MWF.xApplication.process.Xform.LP.importSuccess ); this.form.notice( MWF.xApplication.process.Xform.LP.importSuccess );
}, },
......
...@@ -144,8 +144,13 @@ MWF.xApplication.process.Xform.Datatemplate = MWF.APPDatatemplate = new Class( ...@@ -144,8 +144,13 @@ MWF.xApplication.process.Xform.Datatemplate = MWF.APPDatatemplate = new Class(
* @event MWF.xApplication.process.Xform.Datatemplate#import * @event MWF.xApplication.process.Xform.Datatemplate#import
* @see {@link https://www.yuque.com/o2oa/ixsnyt/hm5uft#i0zTS|组件事件说明} * @see {@link https://www.yuque.com/o2oa/ixsnyt/hm5uft#i0zTS|组件事件说明}
*/ */
/**
* 在导入excel,数据设置回数据模板以后触发,this.event指向整理过的导入数据,格式见{@link DatatemplateData}。
* @event MWF.xApplication.process.Xform.Datatemplate#afterImport
* @see {@link https://www.yuque.com/o2oa/ixsnyt/hm5uft#i0zTS|组件事件说明}
*/
"moduleEvents": ["queryLoad","postLoad","load", "afterLoad", "moduleEvents": ["queryLoad","postLoad","load", "afterLoad",
"beforeLoadLine", "afterLoadLine","addLine", "deleteLine", "afterDeleteLine","export", "import", "validImport"] "beforeLoadLine", "afterLoadLine","addLine", "deleteLine", "afterDeleteLine","export", "import", "validImport", "afterImport"]
}, },
initialize: function(node, json, form, options){ initialize: function(node, json, form, options){
...@@ -326,13 +331,10 @@ MWF.xApplication.process.Xform.Datatemplate = MWF.APPDatatemplate = new Class( ...@@ -326,13 +331,10 @@ MWF.xApplication.process.Xform.Datatemplate = MWF.APPDatatemplate = new Class(
//去要表单的所有组件加载完成以后再去获取外部组件 //去要表单的所有组件加载完成以后再去获取外部组件
this.form.addEvent("afterModulesLoad", this.bindEvent ); this.form.addEvent("afterModulesLoad", this.bindEvent );
}, },
_getValue: function(){ getDefaultValue: function(){
if (this.moduleValueAG) return this.moduleValueAG; var value;
var value = this._getBusinessData(); if (this.json.defaultData && this.json.defaultData.code) value = this.form.Macro.exec(this.json.defaultData.code, this);
if (!value){ if (value && !value.then) if (o2.typeOf(value)==="object") value = [value];
if (this.json.defaultData && this.json.defaultData.code) value = this.form.Macro.exec(this.json.defaultData.code, this);
if (value && !value.then) if (o2.typeOf(value)==="object") value = [value];
}
if(!value){ if(!value){
value = []; value = [];
var count = this.json.defaultCount ? this.json.defaultCount.toInt() : 0; var count = this.json.defaultCount ? this.json.defaultCount.toInt() : 0;
...@@ -340,6 +342,23 @@ MWF.xApplication.process.Xform.Datatemplate = MWF.APPDatatemplate = new Class( ...@@ -340,6 +342,23 @@ MWF.xApplication.process.Xform.Datatemplate = MWF.APPDatatemplate = new Class(
} }
return value; return value;
}, },
_getValue: function(){
if (this.moduleValueAG) return this.moduleValueAG;
var value = this._getBusinessData();
if( !value ){
value = this.getDefaultValue();
}
// if (!value){
// if (this.json.defaultData && this.json.defaultData.code) value = this.form.Macro.exec(this.json.defaultData.code, this);
// if (value && !value.then) if (o2.typeOf(value)==="object") value = [value];
// }
// if(!value){
// value = [];
// var count = this.json.defaultCount ? this.json.defaultCount.toInt() : 0;
// for( var i=0; i<count; i++ )value.push({})
// }
return value;
},
getValue: function(){ getValue: function(){
return this._getValue(); return this._getValue();
}, },
...@@ -623,7 +642,8 @@ MWF.xApplication.process.Xform.Datatemplate = MWF.APPDatatemplate = new Class( ...@@ -623,7 +642,8 @@ MWF.xApplication.process.Xform.Datatemplate = MWF.APPDatatemplate = new Class(
* this.form.get('fieldId').resetData(); * this.form.get('fieldId').resetData();
*/ */
resetData: function(){ resetData: function(){
this.setData(this._getValue()); var value = this.getDefaultValue() || [];
this.setData(value);
}, },
/**当参数为Promise的时候,请查看文档: {@link https://www.yuque.com/o2oa/ixsnyt/ws07m0|使用Promise处理表单异步}<br/> /**当参数为Promise的时候,请查看文档: {@link https://www.yuque.com/o2oa/ixsnyt/ws07m0|使用Promise处理表单异步}<br/>
* 当表单上没有对应组件的时候,可以使用this.data[fieldId] = data赋值。 * 当表单上没有对应组件的时候,可以使用this.data[fieldId] = data赋值。
...@@ -1802,6 +1822,9 @@ MWF.xApplication.process.Xform.Datatemplate.Importer = new Class({ ...@@ -1802,6 +1822,9 @@ MWF.xApplication.process.Xform.Datatemplate.Importer = new Class({
this.template.fireEvent("import", [data] ); this.template.fireEvent("import", [data] );
this.template.setData( data ); this.template.setData( data );
this.template.fireEvent("afterImport", [data] );
this.form.notice( MWF.xApplication.process.Xform.LP.importSuccess ); this.form.notice( MWF.xApplication.process.Xform.LP.importSuccess );
}, },
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册