var property = {
width: 3000,
height: 3000,
toolBtns: ["task", "node"],
haveHead: (window.top==self),
headBtns: ["new", "save"], //如果haveHead=true,则定义HEAD区的按钮
haveTool: true, //(重要)是否可编辑??????????????????????????????????
useOperStack: true,
initNum: 1
};
var remark = {
cursor: "指针",
direct: "连线",
start: "start",
end: "end",
task: "task",
node: "decision"
};
var tempData;
var demo;
var selectId;
var selectType;
var HEADTEXT={};
//bpmComponent解析后的数据容器
var startList = new Array();
var endList = new Array();
var taskList = new Array();
var subprocessList=new Array();
var decisionList = new Array();
var transmitList=new Array()
//选中的start,end,task,decision的容器
var selectTask = null;
var selectTransmit = null;
var selectStart = null;
var selectEnd = null;
var selectDecision = null;
var selectSubprocess=null;
var haveDrag = false;
$(document).ready(function() {
$(document.body).append(control.dom)
//url获取设置应用名,默认为env
/* 再去掉,去掉 thisAppName。Lin
var urlAppName = getURLParam("thisAppName");
if (urlAppName != "" || urlAppName != null) {
document.getElementById("thisAppName").value = urlAppName
}
*/
property.initLabelText = $("#fileName").val();
demo = $.createGooFlow($("#demo"), property);
demo.setNodeRemarks(remark);
var datas = $("#jsonData").html();
var objectKeyOption= window.parent.document.getElementById("objectKeyOption");
version=document.getElementById("version").value
//先隐藏\n
if(version==""){
version="0";
document.getElementById("version").value="0";
}
//读取检查jaondata
if(datas.length==0){datas="{objectKey:{}}"}
var json = eval('(' + datas + ')');
if(json.nodes||json.lines){
alert("json数据未转换")
return;
}
var componentData=eval("("+ $("#bpmComponentData").html()+")");
taskList=componentData.task;
transmitList=componentData.transmit;
subprocessList=componentData.subprocess;
startList=[componentData.start];
endList=[componentData.end];
console.log(componentData);
for(var i=0;i " + task.name + " " + transmit.name + " " + subprocess.name + " " + decision.name + " " + "开始" + " " + "结束" + " 字典 " + "并行" + " " + "动态分支" + " " + "汇合" + " " + "连线" + " " + "鼠标" + "
one thing left to do!
") } //任务节点task if (node.type == "task") { // $(".decisionLine").remove(); co .append("") } //结束节点end if (node.type == "end") { // $(".decisionLine").remove(); co .append("") } //开始节点start if (node.type == "start") { // $(".decisionLine").remove(); co .append("") } //点击线条line if (type == "line") { co.append("") } return true; } // console.log($("#draw_demo")) }); //确定 function control_planel_confirm() { var node_text = $("#node_text").val(); var id = selectId; var type = selectType; if (type == "node") { var node = demo.$nodeData[id]; if (node.realtype == "start") { node.service_name = $($(node_text).find("service")[0]).attr("name"); }; if (node.realtype == "end") { console.log($(node_text).length); $(node_text).each(function(index, end) { if (index == 0) { node.agree_service_name = $($(end).find("service")[0]).attr("name"); node.agree_message_title = $($(end).find("message")[0]).attr("title"); node.agree_message_content = $($(end).find("message")[0]).attr("content"); } else if (index == 1) { node.reject_service_name = $($(end).find("service")[0]).attr("name"); node.reject_message_title = $($(end).find("message")[0]).attr("title"); node.reject_message_content = $($(end).find("message")[0]).attr("content"); } }) }; if (node.realtype == "decision") { node.key = $("#p_key").val(); }; if (node.realtype == "task") { var newname = $(node_text).attr("name"); demo.$nodeDom[id].children(".span").text(newname); demo.$nodeData[id].name = newname; node.name = $(node_text).attr("name"); node.assignee = $(node_text).attr("assignee"); node.service_name = $($(node_text).find("service")).attr("name"); node.service_dest = $($(node_text).find("service")).attr("dest"); node.message_title = $($(node_text).find("message")).attr("title"); node.message_content = $($(node_text).find("message")).attr("content"); }; } if (type == "line") { if (GooFlow.prototype.useSVG != "") { demo.$lineDom[id].childNodes[2].textContent = newname; } else { demo.$lineDom[id].childNodes[1].innerHTML = newname; } demo.$lineData[id].name = newname; } // $("#control_planel").fadeOut(200).fadeIn(200); } function selectAsTask(thisdiv, index) { var e = window.event; demo.$nowType = 'task'; $(thisdiv).toggleClass("elementListSelected"); selectTask = taskList[index]; $(".elementListSelected").removeClass("elementListSelected"); $(thisdiv).addClass("elementListSelected") } function aNewTask(thisdiv, index) { var e = window.event; var selecTask=taskList[index]; var newjson={} for(var key in selecTask){ newjson[key]=selecTask[key] } var aa=getPositioin(demo.$workArea[0]); newjson.left=parseInt(e.pageX-aa.left); newjson.top=parseInt(e.pageY-aa.top); newjson.type="task"; newjson.realtype="task"; // demo.$max++; // var idd = demo.$id + "_node_" + demo.$max+""; var idd = composeId("node"); demo.addNode(idd, newjson); demo.$ghost.empty().hide(); } function selectAsTransmit(thisdiv, index) { var e = window.event; demo.$nowType = 'transmit'; $(thisdiv).toggleClass("elementListSelected"); selectTransmit = transmitList[index]; $(".elementListSelected").removeClass("elementListSelected"); $(thisdiv).addClass("elementListSelected") } function aNewTransmit(thisdiv, index) { var e = window.event; var selecTransmit=transmitList[index]; var newjson={} for(var key in selecTransmit){ newjson[key]=selecTransmit[key] } var aa=getPositioin(demo.$workArea[0]); newjson.left=parseInt(e.pageX-aa.left); newjson.top=parseInt(e.pageY-aa.top); newjson.type="transmit"; newjson.realtype="transmit"; // demo.$max++; // var idd = demo.$id + "_node_" + demo.$max+""; var idd = composeId("node"); demo.addNode(idd, newjson); demo.$ghost.empty().hide(); } function selectAsDecision(thisdiv, index) { var e = window.event; demo.$nowType = 'node'; $(thisdiv).toggleClass("elementListSelected"); selectDecision = decisionList[index]; $(".elementListSelected").removeClass("elementListSelected"); $(thisdiv).addClass("elementListSelected"); } function aNewDecision(thisdiv, index) { if(typeof index=="undefined"){ selectAsDecisionDictionary(); return } var e = window.event; var selectDecision = decisionList[index]; var newjson={} for(var key in selectDecision){ newjson[key]=selectDecision[key] } newjson.condition_name=newjson.condition_name.concat() var aa=getPositioin(demo.$workArea[0]) newjson.left = e.pageX-aa.left; newjson.top = e.pageY-aa.top; newjson.type = "node"; newjson.realtype = "decision"; // console.log(newjson.condition_name) // demo.$max++ // newjson.id = demo.$id + "_node_" + demo.$max newjson.id = composeId("node") demo.addNode(newjson.id, newjson); // console.log(newjson[id]) initDecisionLine($("#"+newjson.id),newjson.condition_name.length) } function selectAsStart(thisdiv, index) { var e = window.event; demo.$nowType = 'start'; selectStart = startList[index]; $(".elementListSelected").removeClass("elementListSelected"); $(thisdiv).addClass("elementListSelected") } function aNewStart(thisdiv, index) { var e = window.event; var selectStart = startList[index]; var newjson={} for(var key in selectStart){ newjson[key]=selectStart[key] } var aa=getPositioin(demo.$workArea[0]) newjson.left = e.pageX-aa.left; newjson.top = e.pageY-aa.top; newjson.type = "start"; newjson.realtype = "start"; newjson.name = "开始"; // demo.$max++ // newjson.id = demo.$id + "_node_" + demo.$max newjson.id=composeId("node") demo.addNode(newjson.id, newjson); } function selectAsEnd(thisdiv, index) { var e = window.event; demo.$nowType = 'end'; selectEnd = endList[index]; $(".elementListSelected").removeClass("elementListSelected"); $(".elementListSelected").removeClass("elementListSelected"); $(thisdiv).addClass("elementListSelected"); } function aNewEnd(thisdiv, index) { var e = window.event; var selectEnd = endList[index]; var newjson={} for(var key in selectEnd){ newjson[key]=selectEnd[key] } var aa=getPositioin(demo.$workArea[0]) newjson.left = e.pageX-aa.left; newjson.top = e.pageY-aa.top; newjson.type = "end"; newjson.realtype = "end"; newjson.name = "结束"; // demo.$max++ // newjson.id = demo.$id + "_node_" + demo.$max newjson.id=composeId("node") demo.addNode(newjson.id, newjson); } function selectAsLine(thisdiv) { var e = window.event; demo.$nowType = 'direct'; $(".elementListSelected").removeClass("elementListSelected"); $(thisdiv).addClass("elementListSelected"); }; function selectAsMouse(thisdiv) { var e = window.event; demo.$nowType = 'mouse'; $(".elementListSelected").removeClass("elementListSelected"); $(thisdiv).addClass("elementListSelected"); }; function selectAsFork(thisdiv) { demo.$nowType = 'fork' $(".elementListSelected").removeClass("elementListSelected"); $(thisdiv).addClass("elementListSelected"); }; function aNewFork(thisdiv){ var e = window.event; var json ={} var aa=getPositioin(demo.$workArea[0]) json.left = e.pageX-aa.left; json.top = e.pageY-aa.top; json.type = "fork"; json.realtype = "fork"; json.name = "并行"; // demo.$max++ // json.id = demo.$id + "_node_" + demo.$max json.id=composeId("node") demo.addNode(json.id, json); } function selectAsForeach(thisdiv){ demo.$nowType="foreach"; $(".elementListSelected").removeClass("elementListSelected"); $(thisdiv).addClass("elementListSelected"); } function aNewForeach(thisdiv){ var e = window.event; var json ={}; var aa=getPositioin(demo.$workArea[0]) json.left = e.pageX-aa.left; json.top = e.pageY-aa.top; json.type = "foreach"; json.realtype = "foreach"; json.name = "动态分支"; // demo.$max++ // json.id = demo.$id + "_node_" + demo.$max json.id=composeId("node") demo.addNode(json.id, json); } function selectAsJoin(thisdiv) { demo.$nowType = 'join'; $(".elementListSelected").removeClass("elementListSelected"); $(thisdiv).addClass("elementListSelected"); }; function aNewJoin(thisdiv){ var e = window.event; var json ={}; var aa=getPositioin(demo.$workArea[0]) json.left = e.pageX-aa.left; json.top = e.pageY-aa.top; json.type = "join"; json.realtype = "join"; json.name = "汇合"; // demo.$max++ // json.id = demo.$id + "_node_" + demo.$max json.id=composeId("node") demo.addNode(json.id, json); } function aNewSubrocess(thisdiv,i){ var e = window.event; var json ={}; var subprocess=subprocessList[i] for(var key in subprocess){ if(subprocess[key]){ json[key]=subprocess[key]; } } var aa=getPositioin(demo.$workArea[0]) json.left = e.pageX-aa.left; json.top = e.pageY-aa.top; json.type = "subprocess"; json.realtype = "subprocess"; // json.name = subprocess.name; // json.subprocesskey=subprocess.subprocesskey; // if(subprocess.subprocesstype){ // json.subprocesstype=subprocess.subprocesstype // } // demo.$max++ // json.id = demo.$id + "_node_" + demo.$max json.id=composeId("node") demo.addNode(json.id, json); } function selectAsSubprocess(thisdiv,i){ demo.$nowType = 'subprocess'; $(".elementListSelected").removeClass("elementListSelected"); selectSubprocess=subprocessList[i] $(thisdiv).addClass("elementListSelected"); } function selectAsDecisionDictionary() { /* 再改,去掉 thisAppName。Lin var decisionURL = $("#decisionDictionaryURL")[0].value + "&isNew=1" + '&thisAppName=' + document.getElementById("thisAppName").value; */ var decisionURL = $("#decisionDictionaryURL")[0].value + "&isNew=1"; // var pp=wd.topWindow.dhxWins.createWindow('wsd',300,300,300,300) // wd.display.showComponent({show:["wdDialog"],hide:[],url:"",dest:"bgmb_zj",title:"增加",width:300,high:200,wdDialogId:44012802,form:""}) wd.display.showComponent({ show: ["wdDialog"], hide: [], url: decisionURL, title: "字典", width: 500, high: 300, wdDialogId: 223555, form: "" }) } //双击设置 function settingIt(it) { var id = selectId; var node = demo.$nodeData[id] control.show(node) control.close=false; return; if (node.realtype == "task") { /* 再改,去掉 thisAppName。Lin var scopeURL = $("#scopeDictionaryURL")[0].value + '&thisAppName=' + document.getElementById("thisAppName").value; */ var scopeURL = $("#scopeDictionaryURL")[0].value; wd.display.showComponent({ show: ["wdDialog"], hide: [], url: scopeURL, title: "字典", width: 500, high: 300, wdDialogId: 223555, form: "" }) } if (node.realtype == "decision") { /* 再改,去掉 thisAppName。Lin var decisionURL = $("#decisionDictionaryURL")[0].value + "&isNew=0" + '&thisAppName=' + document.getElementById("thisAppName").value; */ var decisionURL = $("#decisionDictionaryURL")[0].value + "&isNew=0"; wd.display.showComponent({ show: ["wdDialog"], hide: [], url: decisionURL, title: "字典", width: 500, high: 300, wdDialogId: 223555, form: "" }) } } //头部信息确定按钮 function head_confirm(thisdiv) { // var allnode = demo.exportData()["nodes"]; // for (var key in allnode) { // for(var key2 in HEADTEXT){ // allnode[key][key2]=HEADTEXT[key2] // } // } } //复制对象 function clone(myObj) { if (typeof(myObj) != 'object') return myObj; if (myObj == null) return myObj; var myNewObj = new Object(); for (var i in myObj) myNewObj[i] = clone(myObj[i]); return myNewObj; } /////////////////////////////////////////////////////////////// //decision分支线 var decisionLineData={} function removeDecisionLine(id){ var thisLines=decisionLineData[id]; // console.log(decisionLineData[id]) if(!thisLines){return} for(var i=0;i