Parcourir la source

完成保存流程为新版本功能

huqi il y a 5 ans
Parent
commit
8d715e2b00

+ 19 - 13
o2web/gulpfile.js

@@ -23,22 +23,28 @@ var o_options = minimist(process.argv.slice(2), {//upload: local ftp or sftp
 var options = {};
 
 var uploadOptions = ftpconfig.dev;
-if (o_options.ev && o_options.ev=="dev"){
-    options.ev = "dev";
-    uploadOptions = ftpconfig.dev;
-}else if (o_options.ev && o_options.ev=="release"){
-    options.ev = "release";
-    uploadOptions = ftpconfig.release;
-}else if (o_options.ev && o_options.ev=="wrdp"){
-    options.ev = "wrdp";
-    uploadOptions = ftpconfig.wrdp;
-}else if (o_options.ev && o_options.ev=="develop"){
-    options.ev = "develop";
-    uploadOptions = ftpconfig.develop;
-}else{
+options.ev = o_options.ev;
+uploadOptions = (ftpconfig[o_options.ev]) || null;
+if (!uploadOptions){
     options.ev = "dev";
     uploadOptions = ftpconfig.dev;
 }
+// if (o_options.ev && o_options.ev=="dev"){
+//     options.ev = "dev";
+//     uploadOptions = ftpconfig.dev;
+// }else if (o_options.ev && o_options.ev=="release"){
+//     options.ev = "release";
+//     uploadOptions = ftpconfig.release;
+// }else if (o_options.ev && o_options.ev=="wrdp"){
+//     options.ev = "wrdp";
+//     uploadOptions = ftpconfig.wrdp;
+// }else if (o_options.ev && o_options.ev=="develop"){
+//     options.ev = "develop";
+//     uploadOptions = ftpconfig.develop;
+// }else{
+//     options.ev = "dev";
+//     uploadOptions = ftpconfig.dev;
+// }
 
 options.upload = o_options.upload || "";
 options.location = o_options.location || uploadOptions.location;

+ 2 - 2
o2web/source/x_component_process_ProcessDesigner/$Main/processToolbars.html

@@ -43,8 +43,8 @@
 <!--		<option value="flat">flat</option>-->
 <!--	</select>-->
 
-	<span class="mainColor_bg processEdition" style="margin-top: 3px; line-height: 14px; float: right; margin-right: 10px; padding: 5px 8px; border-radius: 30px;">当前版本已启用</span>
-	<span class="processEditionInfor" style="line-height: 32px; float: right; margin-right: 10px">版本号:1 (2020-04-10 13:50)</span>
+	<span class="mainColor_bg processEdition" style="background-color:#cccccc; color:#333333; margin-top: 3px; line-height: 14px; float: right; margin-right: 10px; padding: 5px 8px; border-radius: 30px;"></span>
+	<span class="processEditionInfor" style="line-height: 32px; float: right; margin-right: 10px"></span>
 
 
 </div>

+ 4 - 0
o2web/source/x_component_process_ProcessDesigner/$Process/process.html

@@ -5,6 +5,10 @@
                 <td class="editTableTitle">标识:</td>
                 <td class="editTableValue">text{$.id}</td>
             </tr>
+            <tr>
+                <td class="editTableTitle">版本:</td>
+                <td class="editTableValue">text{$.editionName}</td>
+            </tr>
             <tr>
                 <td class="editTableTitle">创建人:</td>
                 <td class="editTableValue">text{$.creatorPerson}</td>

+ 4 - 0
o2web/source/x_component_process_ProcessDesigner/Main.js

@@ -789,6 +789,10 @@ MWF.xApplication.process.ProcessDesigner.Main = new Class({
     processExplode: function(){
         this.process.explode();
     },
+    saveNewEdition: function(el, e){
+        this.process.saveNewEdition(e);
+    },
+
 
     onPostClose: function() {
         if (this.process) {

+ 96 - 5
o2web/source/x_component_process_ProcessDesigner/Process.js

@@ -174,7 +174,6 @@ MWF.xApplication.process.ProcessDesigner.Process = new Class({
 			for (var i=0; i<this.activitys.length; i++){
 				this.activitys[i].checkUUID();
 			}
-			//
 		}.bind(this));
 	},
 	
@@ -206,6 +205,7 @@ MWF.xApplication.process.ProcessDesigner.Process = new Class({
 		//	this.loadActivityDecisions();
 		}.bind(this));
 		this.showProperty();
+		this.showEditionInfor();
 	},
 	setEvent: function(){
 		this.paper.canvas.addEvent("selectstart", function(e){e.preventDefault();e.stopPropagation();});
@@ -368,7 +368,28 @@ MWF.xApplication.process.ProcessDesigner.Process = new Class({
     //    this.isFocus = true;
 	},
 	showEditionInfor: function(){
+		if (this.process.edition){
+			if (this.designer.processEditionNode){
+				if (this.process.editionEnable){
+					this.designer.processEditionNode.set("text", this.designer.lp.enable);
+				}else{
+					this.designer.processEditionNode.set("text", this.designer.lp.notEnable);
+					this.designer.processEditionNode.removeClass("mainColor_bg");
+				}
 
+
+				this.designer.processEditionNode.addEvent("click", function(){
+					this.enableCurrentEdition();
+				}.bind(this));
+			}
+			if (this.designer.processEditionInforNode){
+				var text = this.designer.lp.currentEdition+": <span class='mainColor_color'>"+this.process.editionName+"</span> "+"("+this.process.lastUpdatePerson+")";
+				this.designer.processEditionInforNode.set("html", text);
+			}
+		}
+	},
+	enableCurrentEdition: function(){
+		//@todo enable edition
 	},
 
 	unSelected: function(e){
@@ -488,6 +509,70 @@ MWF.xApplication.process.ProcessDesigner.Process = new Class({
 		//unrealized
 		this.designer.alert("error", e, "", MWF.APPPD.LP.unrealized, 220, 100);
 	},
+	saveNewEdition: function(e){
+		if (this.process.isNewProcess){
+			this.save();
+		}else{
+			var _self = this;
+			this.designer.confirm("infor", e, this.designer.lp.upgradeConfirm, {"html": this.designer.lp.upgradeInfor}, 520, 210, function(){
+				var checkbox = this.content.getElement("input");
+				var enable = (!!checkbox && checkbox.get("checked"));
+				_self.doSaveNewEdition(enable);
+				this.close();
+			}, function(){
+				this.close();
+			});
+		}
+	},
+	doSaveNewEdition: function(enable){
+		debugger;
+		var process = Object.clone(this.process);
+		var oldIds = [];
+		oldIds.push(process.id);
+		if (process.begin) oldIds.push(process.begin.id);
+		if (process.endList) process.endList.each(function(a){oldIds.push(a.id);});
+		if (process.agentList) process.agentList.each(function(a){oldIds.push(a.id);});
+		if (process.manualList) process.manualList.each(function(a){oldIds.push(a.id);});
+		if (process.conditionList) process.conditionList.each(function(a){oldIds.push(a.id);});
+		if (process.choiceList) process.choiceList.each(function(a){oldIds.push(a.id);});
+		if (process.parallelList) process.parallelList.each(function(a){oldIds.push(a.id);});
+		if (process.splitList) process.splitList.each(function(a){oldIds.push(a.id);});
+		if (process.mergeList) process.mergeList.each(function(a){oldIds.push(a.id);});
+		if (process.embedList) process.embedList.each(function(a){oldIds.push(a.id);});
+		if (process.invokeList) process.invokeList.each(function(a){oldIds.push(a.id);});
+		if (process.cancelList) process.cancelList.each(function(a){oldIds.push(a.id);});
+		if (process.delayList) process.delayList.each(function(a){oldIds.push(a.id);});
+		if (process.messageList) process.messageList.each(function(a){oldIds.push(a.id);});
+		if (process.serviceList) process.serviceList.each(function(a){oldIds.push(a.id);});
+		if (process.routeList) process.routeList.each(function(a){oldIds.push(a.id);});
+
+		var actions = o2.Actions.load("x_processplatform_assemble_designer");
+		this.designer.actions.getId(oldIds.length, function(ids) {
+			var checkUUIDs = ids.data;
+			var processStr = JSON.encode(process);
+			oldIds.each(function(oid, i){
+				var reg = new RegExp(oid, "ig");
+				processStr = processStr.replace(reg, checkUUIDs[i].id);
+			}.bind(this));
+			process = JSON.decode(processStr);
+			actions.ProcessAction.upgrade(this.process.id, process, function(json){
+				var processId = json.data.id;
+				if (enable){
+					actions.ProcessAction.enableProcess(processId, function(processJson){
+						actions.ProcessAction.get(processId, function(processJson){
+							this.reload(processJson.data);
+						}.bind(this))
+					}.bind(this))
+				}else{
+					actions.ProcessAction.get(processId, function(processJson){
+						this.reload(processJson.data);
+					}.bind(this))
+				}
+			}.bind(this));
+		}.bind(this));
+	},
+
+
 	switchGrid: function(item){
 		if (this.isGrid){
 			this.hideGrid();
@@ -749,15 +834,19 @@ MWF.xApplication.process.ProcessDesigner.Process = new Class({
             this.isSave = true;
             //check empty routeList
 			this.checkEmptyRouteList();
+			var reload = !!this.process.isNewProcess;
             this.designer.actions.saveProcess(this.process, function(responseJSON){
                 this.isSave = false;
                 this.process.isNewProcess = false;
                 this.designer.notice(MWF.APPPD.LP.notice["save_success"], "ok", null, {x: "left", y:"bottom"} );
                 this.isNewProcess = false;
-                //this.designer.actions.getProcess(responseJSON.data.id, function(json){
-                //    this.reload(json.data);
-                //    if (callback) callback();
-                //}.bind(this));
+                if (reload){
+					this.designer.actions.getProcess(responseJSON.data.id, function(json){
+					   this.reload(json.data);
+					   if (callback) callback();
+					}.bind(this));
+				}
+
                 this.designer.options.id = responseJSON.data.id;
             }.bind(this), function(xhr, text, error){
                 this.isSave = false;
@@ -836,6 +925,8 @@ MWF.xApplication.process.ProcessDesigner.Process = new Class({
             activityData.process = this.process.id;
             activityData.createTime = new Date().format('db');
             activityData.updateTime = new Date().format('db');
+
+			activityData.position = position.x+","+position.y;
             activity = new MWF.APPPD.Activity[c](activityData, this);
             activity.create(position);
 

+ 8 - 1
o2web/source/x_component_process_ProcessDesigner/lp/zh-cn.js

@@ -114,5 +114,12 @@ MWF.xApplication.process.ProcessDesigner.LP = {
 	"projectionRunTitle": "立即执行确认",
 	"projectionRunText": "请确认立即执行数据映射",
 	"projectionRunSuccess": "数据映射已开始执行",
-	"projectionRunError": "不需要执行数据映射"
+	"projectionRunError": "不需要执行数据映射",
+
+	"enable": "已启用",
+	"notEnable": "未启用",
+	"currentEdition": "当前版本",
+
+	"upgradeConfirm": "保存为新版本确认",
+	"upgradeInfor": "<div style='overflow: hidden; line-height: 26px'>您是否确定要将当前流程保存为新版?<br/>选中\"同时启用新版本\"在保存完成之后,会将新版本设置为启用版本.</div><div style='margin-top:10px'><input type='checkbox' checked>同时启用新版本</div>"
 };