diff --git a/o2web/source/x_component_process_FormDesigner/Module/Datatable/template.json b/o2web/source/x_component_process_FormDesigner/Module/Datatable/template.json
index 4901f7fadc00a9cfb2148b92484f302a70236933..a44e3620007a2c7ed06587d5ddfa3496706341b1 100644
--- a/o2web/source/x_component_process_FormDesigner/Module/Datatable/template.json
+++ b/o2web/source/x_component_process_FormDesigner/Module/Datatable/template.json
@@ -77,6 +77,10 @@
"code": "",
"html": ""
},
+ "afterImport": {
+ "code": "",
+ "html": ""
+ },
"click": {
"code": "",
"html": ""
diff --git a/o2web/source/x_component_process_FormDesigner/Module/Datatemplate/template.json b/o2web/source/x_component_process_FormDesigner/Module/Datatemplate/template.json
index ded06edc88230b1d6c90d86f5a895903d01bb263..5cd355b71d3afce346319aacb5257fa66fd8adb7 100644
--- a/o2web/source/x_component_process_FormDesigner/Module/Datatemplate/template.json
+++ b/o2web/source/x_component_process_FormDesigner/Module/Datatemplate/template.json
@@ -62,6 +62,10 @@
"code": "",
"html": ""
},
+ "afterImport": {
+ "code": "",
+ "html": ""
+ },
"click": {
"code": "",
"html": ""
diff --git a/o2web/source/x_component_process_Xform/DatatablePC.js b/o2web/source/x_component_process_Xform/DatatablePC.js
index 86007dda4f66a00df37166c4623733123daf78f6..201b4e11c07d7d4d57df5508e2a74e984c4253af 100644
--- a/o2web/source/x_component_process_Xform/DatatablePC.js
+++ b/o2web/source/x_component_process_Xform/DatatablePC.js
@@ -165,8 +165,13 @@ MWF.xApplication.process.Xform.DatatablePC = new Class(
* @event MWF.xApplication.process.Xform.DatatablePC#import
* @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",
- "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){
@@ -476,13 +481,10 @@ MWF.xApplication.process.Xform.DatatablePC = new Class(
this.table.setStyles(this.json.tableStyles);
this.table.set(this.json.properties);
},
- _getValue: function(){
- if (this.moduleValueAG) return this.moduleValueAG;
- var value = this._getBusinessData();
- 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)==="array") value = {"data": value || [], "total":{}};
- }
+ getDefaultValue: function(){
+ var 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)==="array") value = {"data": value || [], "total":{}};
if(!value && this.multiEditMode){
value = {"data": [], "total":{}};
var count = this.json.defaultCount ? this.json.defaultCount.toInt() : 0;
@@ -490,6 +492,14 @@ MWF.xApplication.process.Xform.DatatablePC = new Class(
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":{}};
},
getValue: function(){
@@ -828,7 +838,8 @@ MWF.xApplication.process.Xform.DatatablePC = new Class(
* this.form.get('fieldId').resetData();
*/
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处理表单异步}
* 当表单上没有对应组件的时候,可以使用this.data[fieldId] = data赋值。
@@ -2400,6 +2411,9 @@ MWF.xApplication.process.Xform.DatatablePC.Importer = new Class({
this.datatable.fireEvent("import", [data] );
this.datatable.setData( { "data" : data } );
+
+ this.datatable.fireEvent("afterImport", [data] );
+
this.form.notice( MWF.xApplication.process.Xform.LP.importSuccess );
},
diff --git a/o2web/source/x_component_process_Xform/Datatemplate.js b/o2web/source/x_component_process_Xform/Datatemplate.js
index f6a6dec3004a86263366e40a0fb611cfb03eaa85..29cccd470cd74d383c017b39b900db4030fd137f 100644
--- a/o2web/source/x_component_process_Xform/Datatemplate.js
+++ b/o2web/source/x_component_process_Xform/Datatemplate.js
@@ -144,8 +144,13 @@ MWF.xApplication.process.Xform.Datatemplate = MWF.APPDatatemplate = new Class(
* @event MWF.xApplication.process.Xform.Datatemplate#import
* @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",
- "beforeLoadLine", "afterLoadLine","addLine", "deleteLine", "afterDeleteLine","export", "import", "validImport"]
+ "beforeLoadLine", "afterLoadLine","addLine", "deleteLine", "afterDeleteLine","export", "import", "validImport", "afterImport"]
},
initialize: function(node, json, form, options){
@@ -326,13 +331,10 @@ MWF.xApplication.process.Xform.Datatemplate = MWF.APPDatatemplate = new Class(
//去要表单的所有组件加载完成以后再去获取外部组件
this.form.addEvent("afterModulesLoad", this.bindEvent );
},
- _getValue: function(){
- if (this.moduleValueAG) return this.moduleValueAG;
- var value = this._getBusinessData();
- 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];
- }
+ getDefaultValue: function(){
+ var 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;
@@ -340,6 +342,23 @@ MWF.xApplication.process.Xform.Datatemplate = MWF.APPDatatemplate = new Class(
}
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
* 当表单上没有对应组件的时候,可以使用this.data[fieldId] = data赋值。
@@ -1802,6 +1822,9 @@ MWF.xApplication.process.Xform.Datatemplate.Importer = new Class({
this.template.fireEvent("import", [data] );
this.template.setData( data );
+
+ this.template.fireEvent("afterImport", [data] );
+
this.form.notice( MWF.xApplication.process.Xform.LP.importSuccess );
},