From 4fb0d60cde4b8aedc4bb34ebb199fc53343a874b Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 22 Jan 2021 16:43:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=85=E5=AE=B9=E7=AE=A1=E7=90=86=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E9=A2=84=E5=8A=A0=E8=BD=BD=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- o2web/source/x_component_cms_Document/Main.js | 21 +++++++++++---- o2web/source/x_component_cms_Xform/Form.js | 16 ++++++++++++ o2web/source/x_component_cms_Xform/Subform.js | 26 ++++++++++++------- 3 files changed, 48 insertions(+), 15 deletions(-) diff --git a/o2web/source/x_component_cms_Document/Main.js b/o2web/source/x_component_cms_Document/Main.js index b359fd6482..d1aa707eab 100644 --- a/o2web/source/x_component_cms_Document/Main.js +++ b/o2web/source/x_component_cms_Document/Main.js @@ -171,13 +171,24 @@ MWF.xApplication.cms.Document.Main = new Class({ }, loadForm : function( formId, flag ){ var success = function(json){ - if( layout.mobile ){ - this.form = (json.data.mobileData) ? JSON.decode(MWF.decodeJsonString(json.data.mobileData)): null; - if( !this.form ){ + if (json.form){ + this.form = (json.form.data) ? JSON.decode(MWF.decodeJsonString(json.form.data)): null; + this.relatedFormMap = json.relatedFormMap; + this.relatedScriptMap = json.relatedScriptMap; + if( json.form.data )delete json.form.data; + this.formInfor = json.form; + }else{ + if( layout.mobile ){ + this.form = (json.data.mobileData) ? JSON.decode(MWF.decodeJsonString(json.data.mobileData)): null; + if( !this.form ){ + this.form = (json.data.data) ? JSON.decode(MWF.decodeJsonString(json.data.data)): null; + } + }else{ this.form = (json.data.data) ? JSON.decode(MWF.decodeJsonString(json.data.data)): null; } - }else{ - this.form = (json.data.data) ? JSON.decode(MWF.decodeJsonString(json.data.data)): null; + if( json.data.data )delete json.data.data; + if( json.data.mobileData )delete json.data.mobileData; + this.formInfor = json.form; } //this.listAttachment(); this.openDocument(); diff --git a/o2web/source/x_component_cms_Xform/Form.js b/o2web/source/x_component_cms_Xform/Form.js index d5464e7151..3b9607b3cd 100644 --- a/o2web/source/x_component_cms_Xform/Form.js +++ b/o2web/source/x_component_cms_Xform/Form.js @@ -214,6 +214,8 @@ MWF.xApplication.cms.Xform.Form = MWF.CMSForm = new Class( this.node = this.container.getFirst(); this._loadEvents(); + this.loadRelatedScript(); + if (this.fireEvent("queryLoad")) { MWF.xDesktop.requireApp("cms.Xform", "lp." + MWF.language, null, false); @@ -225,6 +227,20 @@ MWF.xApplication.cms.Xform.Form = MWF.CMSForm = new Class( this.loadContent(callback) } }, + loadRelatedScript: function () { + if (this.json.includeScripts && this.json.includeScripts.length) { + var includeScriptText = ""; + var includedIds = []; + this.json.includeScripts.each(function (s) { + if (this.app.relatedScriptMap && this.app.relatedScriptMap[s.id]) { + includeScriptText += "\n" + this.app.relatedScriptMap[s.id].text; + includedIds.push(s.id); + } + }.bind(this)); + + if (includeScriptText) this.Macro.exec(includeScriptText, this); + } + }, loadContent: function (callback) { this.subformCount = 0; this.subformLoadedCount = 0; diff --git a/o2web/source/x_component_cms_Xform/Subform.js b/o2web/source/x_component_cms_Xform/Subform.js index d715d68843..8f3ea1fc43 100644 --- a/o2web/source/x_component_cms_Xform/Subform.js +++ b/o2web/source/x_component_cms_Xform/Subform.js @@ -4,7 +4,7 @@ MWF.xApplication.cms.Xform.Subform = MWF.CMSSubform = new Class({ getSubform: function(callback){ if (this.json.subformType==="script"){ - if (this.json.subformScript.code){ + if (this.json.subformScript && this.json.subformScript.code){ var data = this.form.Macro.exec(this.json.subformScript.code, this); if (data){ var formName, app; @@ -29,16 +29,22 @@ MWF.xApplication.cms.Xform.Subform = MWF.CMSSubform = new Class({ } }else{ if (this.json.subformSelected && this.json.subformSelected!=="none"){ - var app; - if( this.json.subformAppSelected ){ - app = this.json.subformAppSelected; - }else{ - app = this.form.businessData.document.appId || this.form.businessData.document.application; - } - MWF.Actions.get("x_cms_assemble_control").getFormWithColumn(this.json.subformSelected, app, function(json){ - this.getSubformData(json.data); + var subformData = (this.form.app.relatedFormMap) ? this.form.app.relatedFormMap[this.json.subformSelected] : null; + if (subformData) { + this.getSubformData({"data": subformData.data}); if (callback) callback(); - }.bind(this)); + } else { + var app; + if( this.json.subformAppSelected ){ + app = this.json.subformAppSelected; + }else{ + app = this.form.businessData.document.appId || this.form.businessData.document.application; + } + MWF.Actions.get("x_cms_assemble_control").getFormWithColumn(this.json.subformSelected, app, function(json){ + this.getSubformData(json.data); + if (callback) callback(); + }.bind(this)); + } }else{ if (callback) callback(); } -- GitLab