Sfoglia il codice sorgente

内容管理表单和脚本预加载

unknown 5 anni fa
parent
commit
166e948bd0

+ 50 - 9
o2web/source/o2_core/o2/xAction/services/x_cms_assemble_control.js

@@ -100,22 +100,43 @@ MWF.xAction.RestActions.Action["x_cms_assemble_control"] = new Class({
     updateForm: function(formData, mobileData, fieldList, success, failure){ 
         var data, mobileData;
         if (formData) data = MWF.encodeJsonString(JSON.encode(formData));
-        if (mobileData) mobileData = MWF.encodeJsonString(JSON.encode(mobileData));
+        if (mobileData) mobileDataStr = MWF.encodeJsonString(JSON.encode(mobileData));
+
+        var relatedScriptMap = null;
+        if (formData && formData.json.includeScripts && formData.json.includeScripts.length){
+            relatedScriptMap = {};
+            formData.json.includeScripts.each(function(s){
+                relatedScriptMap[s.id] = ((s.appType==="process") ? "processPlatform" : s.appType);
+            });
+        }
+
+        var mobileRelatedScriptMap = null;
+        if (mobileData && mobileData.json.includeScripts && mobileData.json.includeScripts.length){
+            mobileRelatedScriptMap = {};
+            mobileData.json.includeScripts.each(function(s){
+                mobileRelatedScriptMap[s.id] = ((s.appType==="process") ? "processPlatform" : s.appType);
+            });
+        }
+
         var json = {
             "id": formData.json.id,
             "name": formData.json.name,
             "alias": formData.json.name,
             "description": formData.json.description,
             "appId": formData.json.application,
-            "formFieldList": fieldList
+            "formFieldList": fieldList,
+            "relatedScriptMap": relatedScriptMap,
+            "relatedFormList": (formData && formData.json.subformList) ? formData.json.subformList : [],
+            "mobileRelatedScriptMap": mobileRelatedScriptMap,
+            "mobileRelatedFormList": (mobileData && mobileData.json.subformList) ? mobileData.json.subformList : []
         };
         if (formData) json.data = data;
-        if (mobileData) json.mobileData = mobileData;
+        if (mobileData) json.mobileData = mobileDataStr;
 
         this.action.invoke({"name": "updataForm","data": json,"parameter": {"id": formData.json.id},"success": success,"failure": failure});
     },
     addForm: function(formData, mobileData, fieldList, success, failure){
-        var data, mobileData;
+        var data, mobileDataStr;
         if (!formData.json.id){
             this.getUUID(function(id){
                 formData.json.id = id;
@@ -125,7 +146,23 @@ MWF.xAction.RestActions.Action["x_cms_assemble_control"] = new Class({
                 if ( mobileData && !mobileData.json.id ){
                     mobileData.json.id = id;
                 }
-                if (mobileData) mobileData = MWF.encodeJsonString(JSON.encode(mobileData));
+                if (mobileData) mobileDataStr = MWF.encodeJsonString(JSON.encode(mobileData));
+
+                var relatedScriptMap = null;
+                if (formData && formData.json.includeScripts && formData.json.includeScripts.length){
+                    relatedScriptMap = {};
+                    formData.json.includeScripts.each(function(s){
+                        relatedScriptMap[s.id] = ((s.appType==="process") ? "processPlatform" : s.appType);
+                    });
+                };
+
+                var mobileRelatedScriptMap = null;
+                if (mobileData && mobileData.json.includeScripts && mobileData.json.includeScripts.length){
+                    mobileRelatedScriptMap = {};
+                    mobileData.json.includeScripts.each(function(s){
+                        mobileRelatedScriptMap[s.id] = ((s.appType==="process") ? "processPlatform" : s.appType);
+                    });
+                }
 
                 var json = {
                     "id": formData.json.id,
@@ -133,10 +170,14 @@ MWF.xAction.RestActions.Action["x_cms_assemble_control"] = new Class({
                     "alias": formData.json.name,
                     "description": formData.json.description,
                     "appId": formData.json.application,
-                    "formFieldList": fieldList
+                    "formFieldList": fieldList,
+                    "relatedScriptMap": relatedScriptMap,
+                    "relatedFormList": (formData && formData.json.subformList) ? formData.json.subformList : [],
+                    "mobileRelatedScriptMap": mobileRelatedScriptMap,
+                    "mobileRelatedFormList": (mobileData && mobileData.json.subformList) ? mobileData.json.subformList : []
                 };
                 if (formData) json.data = data;
-                if (mobileData) json.mobileData = mobileData;
+                if (mobileData) json.mobileData = mobileDataStr;
                 this.action.invoke({"name": "addForm","data": json, "parameter": {"id": formData.json.id }, "success": success,"failure": failure});
             }.bind(this));
         }else{
@@ -145,7 +186,7 @@ MWF.xAction.RestActions.Action["x_cms_assemble_control"] = new Class({
             if ( mobileData && !mobileData.json.id ){
                 mobileData.json.id = formData.json.id;
             }
-            if (mobileData) mobileData = MWF.encodeJsonString(JSON.encode(mobileData));
+            if (mobileData) mobileDataStr = MWF.encodeJsonString(JSON.encode(mobileData));
 
             var json = {
                 "id": formData.json.id,
@@ -156,7 +197,7 @@ MWF.xAction.RestActions.Action["x_cms_assemble_control"] = new Class({
                 "formFieldList": fieldList
             };
             if (formData) json.data = data;
-            if (mobileData) json.mobileData = mobileData;
+            if (mobileData) json.mobileData = mobileDataStr;
             this.action.invoke({"name": "addForm","data": json, "parameter": {"id": formData.json.categoryId}, "success": success,"failure": failure});
         }
     },

+ 17 - 1
o2web/source/x_component_cms_FormDesigner/Main.js

@@ -1329,11 +1329,15 @@ MWF.xApplication.cms.FormDesigner.Main = new Class({
         }.bind(this));
         return fieldList;
     },
-       checkSubform: function(){
+    checkSubform: function(){
         var pcSubforms = [];
         if (this.pcForm){
+            this.pcForm.data.json.subformList = [];
             this.pcForm.moduleList.each(function(module){
                 if (module.moduleName==="subform"){
+                    if (module.json.subformSelected && module.json.subformSelected!=="none" && module.json.subformType!=="script"){
+                        if (this.pcForm.data.json.subformList.indexOf(module.json.subformSelected) === -1) this.pcForm.data.json.subformList.push(module.json.subformSelected);
+                    }
                     if (module.regetSubformData()){
                         module.subformData.updateTime = "";
                         var moduleNames = module.getConflictFields();
@@ -1351,8 +1355,12 @@ MWF.xApplication.cms.FormDesigner.Main = new Class({
         }
         var mobileSubforms = [];
         if (this.mobileForm){
+            this.mobileForm.data.json.subformList = [];
             this.mobileForm.moduleList.each(function(module){
                 if (module.moduleName==="subform"){
+                    if (module.json.subformSelected && module.json.subformSelected!=="none" && module.json.subformType!=="script"){
+                        if (this.mobileForm.data.json.subformList.indexOf(module.json.subformSelected) === -1) this.mobileForm.data.json.subformList.push(module.json.subformSelected);
+                    }
                     if (module.regetSubformData()){
                         module.subformData.updateTime = "";
                         var moduleNames = module.getConflictFields();
@@ -1385,7 +1393,15 @@ MWF.xApplication.cms.FormDesigner.Main = new Class({
         return txt;
     },
     saveForm: function(){
+        debugger;
         if (!this.isSave){
+            var txt = this.checkSubform();
+            if (txt){
+                txt = this.lp.checkFormSaveError+txt;
+                this.notice(txt, "error", this.form.node);
+                return false;
+            }
+
             var pcData, mobileData;
             if (this.pcForm){
                 pcData = this.pcForm._getFormData();

+ 11 - 0
o2web/source/x_component_cms_FormDesigner/Module/Form/form.html

@@ -37,6 +37,17 @@
             </tr>
         </table>
 
+        <div style="height:24px; text-align: center; line-height: 24px; background-color: #EEE; border-top: 1px solid #999;font-weight:bold;">预加载脚本</div>
+        <table width="100%" border="0" cellpadding="5" cellspacing="0" class="editTable">
+            <tr>
+                <td class="editTableTitle">脚本:</td>
+                <td class="editTableValue">
+                    <div class="MWFScriptSelect" data-count=0 name="includeScripts"></div>
+                    <div class="MWFScriptSelectAction"><div style="color: #0b58a2; cursor: pointer; float: left">复制</div><div style="color: #0b58a2; cursor: pointer; float: left; margin-left:10px">粘贴</div></div>
+                </td>
+            </tr>
+        </table>
+
 		<!--<div class="MWFArraylist" name="cssLinks" title="CSS引用"></div>-->
 		<!--<div class="MWFArraylist" name="scriptSrc" title="JS引用"></div>-->