Przeglądaj źródła

草稿模式下,启动流程错误修复

huqi 5 lat temu
rodzic
commit
ff266bf628

+ 24 - 8
o2web/source/o2_core/o2/xScript/CMSEnvironment.js

@@ -1224,15 +1224,31 @@ MWF.xScript.CMSEnvironment = function(ev){
                             "identity": identity,
                             "latest": latest,
                             "onStarted": function(data, title, processName){
-                                var currentTask = [];
-                                data.each(function(work){
-                                    if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
-                                }.bind(this));
-
-                                if (currentTask.length==1){
-                                    var options = {"workId": currentTask[0], "appId": currentTask[0]};
+                                if (data.work){
+                                    var work = data.work;
+                                    var options = {"draft": work, "appId": "process.Work"+(new o2.widget.UUID).toString(), "desktopReload": false};
                                     layout.desktop.openApplication(null, "process.Work", options);
-                                }else{}
+                                }else{
+                                    var currentTask = [];
+                                    data.each(function(work){
+                                        if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
+                                    }.bind(this));
+
+                                    if (currentTask.length==1){
+                                        var options = {"workId": currentTask[0], "appId": currentTask[0]};
+                                        layout.desktop.openApplication(null, "process.Work", options);
+                                    }else{}
+                                }
+
+                                // var currentTask = [];
+                                // data.each(function(work){
+                                //     if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
+                                // }.bind(this));
+                                //
+                                // if (currentTask.length==1){
+                                //     var options = {"workId": currentTask[0], "appId": currentTask[0]};
+                                //     layout.desktop.openApplication(null, "process.Work", options);
+                                // }else{}
 
                                 if (callback) callback(data);
                             }.bind(this)

+ 14 - 8
o2web/source/o2_core/o2/xScript/Environment.js

@@ -1350,15 +1350,21 @@ debugger;
                             "identity": identity,
                             "latest": latest,
                             "onStarted": function(data, title, processName){
-                                var currentTask = [];
-                                data.each(function(work){
-                                    if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
-                                }.bind(this));
-
-                                if (currentTask.length==1){
-                                    var options = {"workId": currentTask[0], "appId": currentTask[0]};
+                                if (data.work){
+                                    var work = data.work;
+                                    var options = {"draft": work, "appId": "process.Work"+(new o2.widget.UUID).toString(), "desktopReload": false};
                                     layout.desktop.openApplication(null, "process.Work", options);
-                                }else{}
+                                }else{
+                                    var currentTask = [];
+                                    data.each(function(work){
+                                        if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
+                                    }.bind(this));
+
+                                    if (currentTask.length==1){
+                                        var options = {"workId": currentTask[0], "appId": currentTask[0]};
+                                        layout.desktop.openApplication(null, "process.Work", options);
+                                    }else{}
+                                }
 
                                 if (callback) callback(data);
                             }.bind(this)

+ 24 - 8
o2web/source/o2_core/o2/xScript/PageEnvironment.js

@@ -1178,15 +1178,31 @@ MWF.xScript.PageEnvironment = function (ev) {
                             "identity": identity,
                             "latest": latest,
                             "onStarted": function (data, title, processName) {
-                                var currentTask = [];
-                                data.each(function (work) {
-                                    if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
-                                }.bind(this));
-
-                                if (currentTask.length == 1) {
-                                    var options = { "workId": currentTask[0], "appId": currentTask[0] };
+                                if (data.work){
+                                    var work = data.work;
+                                    var options = {"draft": work, "appId": "process.Work"+(new o2.widget.UUID).toString(), "desktopReload": false};
                                     layout.desktop.openApplication(null, "process.Work", options);
-                                } else { }
+                                }else{
+                                    var currentTask = [];
+                                    data.each(function(work){
+                                        if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
+                                    }.bind(this));
+
+                                    if (currentTask.length==1){
+                                        var options = {"workId": currentTask[0], "appId": currentTask[0]};
+                                        layout.desktop.openApplication(null, "process.Work", options);
+                                    }else{}
+                                }
+
+                                // var currentTask = [];
+                                // data.each(function (work) {
+                                //     if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
+                                // }.bind(this));
+                                //
+                                // if (currentTask.length == 1) {
+                                //     var options = { "workId": currentTask[0], "appId": currentTask[0] };
+                                //     layout.desktop.openApplication(null, "process.Work", options);
+                                // } else { }
 
                                 if (callback) callback(data);
                             }.bind(this)

+ 24 - 8
o2web/source/o2_core/o2/xScript/ViewEnvironment.js

@@ -1066,15 +1066,31 @@ MWF.xScript.ViewEnvironment = function (ev) {
                             "identity": identity,
                             "latest": latest,
                             "onStarted": function (data, title, processName) {
-                                var currentTask = [];
-                                data.each(function (work) {
-                                    if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
-                                }.bind(this));
-
-                                if (currentTask.length == 1) {
-                                    var options = { "workId": currentTask[0], "appId": currentTask[0] };
+                                if (data.work){
+                                    var work = data.work;
+                                    var options = {"draft": work, "appId": "process.Work"+(new o2.widget.UUID).toString(), "desktopReload": false};
                                     layout.desktop.openApplication(null, "process.Work", options);
-                                } else { }
+                                }else{
+                                    var currentTask = [];
+                                    data.each(function(work){
+                                        if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
+                                    }.bind(this));
+
+                                    if (currentTask.length==1){
+                                        var options = {"workId": currentTask[0], "appId": currentTask[0]};
+                                        layout.desktop.openApplication(null, "process.Work", options);
+                                    }else{}
+                                }
+
+                                // var currentTask = [];
+                                // data.each(function (work) {
+                                //     if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
+                                // }.bind(this));
+                                //
+                                // if (currentTask.length == 1) {
+                                //     var options = { "workId": currentTask[0], "appId": currentTask[0] };
+                                //     layout.desktop.openApplication(null, "process.Work", options);
+                                // } else { }
 
                                 if (callback) callback(data);
                             }.bind(this)

+ 0 - 2
o2web/source/x_component_process_TaskCenter/Main.js

@@ -1063,8 +1063,6 @@ MWF.xApplication.process.TaskCenter.Process = new Class({
     afterStartProcess: function(data, title, processName){
         this.recordProcessData();
 
-        //if (data[0].startMode==="draft"){
-        debugger;
         if (data.work){
             this.startProcessDraft(data, title, processName);
         }else{

+ 34 - 21
o2web/source/x_component_process_Xform/Form.js

@@ -1235,11 +1235,11 @@ MWF.xApplication.process.Xform.Form = MWF.APPForm = new Class({
         }
     },
 
-    saveFormData: function (callback, failure, history, data, issubmit) {
+    saveFormData: function (callback, failure, history, data, issubmit, isstart) {
         if (this.businessData.work.startTime) {
             this.saveFormDataInstance(callback, failure, history, data, issubmit);
         } else {
-            this.saveFormDataDraft(callback, failure, history, data, issubmit);
+            this.saveFormDataDraft(callback, failure, history, data, issubmit, isstart);
         }
     },
     saveFormDataInstance: function (callback, failure, history, data, issubmit) {
@@ -1258,7 +1258,7 @@ MWF.xApplication.process.Xform.Form = MWF.APPForm = new Class({
         this.businessData.originalData = null;
         this.businessData.originalData = Object.clone(data);
     },
-    saveFormDataDraft: function (callback, failure, history, data, issubmit) {
+    saveFormDataDraft: function (callback, failure, history, data, issubmit, isstart) {
         if (this.officeList) {
             this.officeList.each(function (module) {
                 module.save(history);
@@ -1274,17 +1274,25 @@ MWF.xApplication.process.Xform.Form = MWF.APPForm = new Class({
             this.workAction.getDraft(json.data.id, function (json) {
                 this.businessData.work = json.data.work;
                 this.app.options.draftId = json.data.work.id;
-                this.app.options.desktopReload = true;
 
-                this.app.appId = "process.Work" + json.data.work.id;
-                if (layout.desktop.apps) {
-                    delete layout.desktop.apps[this.app.options.appId];
-                } else {
-                    layout.desktop.apps = {};
+                if (layout.app && layout.app.inBrowser){
+                    if (layout.app) layout.app.$openWithSelf = true;
+                    if (callback) callback();
+                    if (!isstart) layout.desktop.openApplication(null, "process.Work", {"draftId": this.app.options.draftId});
+                }else{
+                    this.app.options.desktopReload = true;
+
+                    this.app.appId = "process.Work" + json.data.work.id;
+                    if (layout.desktop.apps) {
+                        delete layout.desktop.apps[this.app.options.appId];
+                    } else {
+                        layout.desktop.apps = {};
+                    }
+                    layout.desktop.apps[this.app.appId] = this.app;
+
+                    if (callback) callback();
                 }
-                layout.desktop.apps[this.app.appId] = this.app;
 
-                if (callback) callback();
             }.bind(this));
         }.bind(this), failure);
         this.businessData.originalData = null;
@@ -1840,20 +1848,25 @@ MWF.xApplication.process.Xform.Form = MWF.APPForm = new Class({
         this.saveFormData(function () {
             this.workAction.startDraft(this.businessData.work.id, function (json) {
                 this.app.options.workId = json.data[0].work;
-                if (layout.mobile) {
+                if (layout.mobile || !layout.desktop.message) {
                     if (layout.notice) {
                         layout.notice(MWF.xApplication.process.Xform.LP.processStartedMessage + "“[" + json.data[0].processName + "]" + (this.businessData.data.title || this.businessData.data.subject));
                     }
                 } else {
-                    var msg = {
-                        "subject": MWF.xApplication.process.Xform.LP.processStarted,
-                        "content": "<div>" + MWF.xApplication.process.Xform.LP.processStartedMessage + "“[" + json.data[0].processName + "]" + (this.businessData.data.title || this.businessData.data.subject) + "”</div>"
-                    };
-                    var tooltip = layout.desktop.message.addTooltip(msg);
-                    var item = layout.desktop.message.addMessage(msg);
+                    if (layout.desktop.message){
+                        var msg = {
+                            "subject": MWF.xApplication.process.Xform.LP.processStarted,
+                            "content": "<div>" + MWF.xApplication.process.Xform.LP.processStartedMessage + "“[" + json.data[0].processName + "]" + (this.businessData.data.title || this.businessData.data.subject) + "”</div>"
+                        };
+
+                        var tooltip = layout.desktop.message.addTooltip(msg);
+                        var item = layout.desktop.message.addMessage(msg);
+                    }
+                }
+                if (layout.app && layout.app.inBrowser){
+                    if (layout.app) layout.app.$openWithSelf = true;
+                    layout.desktop.openApplication(null, "process.Work", {"workId": this.app.options.workId});
                 }
-
-
                 this.app.reload();
 
                 //this.app.notice(MWF.xApplication.process.Xform.LP.dataSaved, "success");
@@ -1892,7 +1905,7 @@ MWF.xApplication.process.Xform.Form = MWF.APPForm = new Class({
                 // }.bind(this), "failure": function(){}}, json.data[0].work);
 
             }.bind(this));
-        }.bind(this), null, false, null, false)
+        }.bind(this), null, false, null, false, true)
     },
     getCurrentTaskData: function (data) {
         if ((data.currentTaskIndex || data.currentTaskIndex === 0) && data.currentTaskIndex != -1) {

+ 4 - 0
o2web/source/x_desktop/js/base.js

@@ -232,6 +232,10 @@ o2.xDesktop.requireApp = function (module, clazz, callback, async) {
                 } else if (options.workCompletedId) {
                     url += "?workcompletedid=" + options.workCompletedId;
                     //window.location = o2.filterUrl("../x_desktop/workmobilewithaction.html?workcompletedid=" + options.workCompletedId + ((layout.debugger) ? "&debugger" : "") + "&redirectlink=" + redirectlink);
+                } else if (options.draftId){
+                    url += "?draftId=" + options.draftId;
+                } else if (options.draft) {
+                    url = "../x_desktop/app.html?" + par;
                 }
                 var job = (options.jobid || options.jobId || options.job);
                 if (job) url += ((url.indexOf("?")!=-1) ? "&" : "?") + "jobid="+job;