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 ); },