| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669 |
- 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<json.objectKey.length;i++){
- if(json.objectKey[i].version==version){
- demo.loadData(json.objectKey[i]);
- }
- }
- //检查开始,结束按钮
- checkStartEnd(demo.exportData())
-
- objectKeyOption.style.display="";
- // var selects=objectKeyOption.getElementsByTagName("select")[0];
-
-
- //
- // //生成下拉
- var kkk=json.objectKey
- // //多流程--显隐
- // var selects=objectKeyOption.getElementsByTagName("select")[0];
- // var selectworkFolw=window.parent.document.getElementById("selectWorkFlow");
- // var index=selectworkFolw.selectedIndex;
- // var flowName=selectworkFolw.options[index].innerHTML
- //// selects.innerHTML="<option value=''>"+flowName+"</option>"
- // selects.innerHTML=""
- //
- //// 生成第一个
- if(false&&kkk&&kkk.length>0){
- objectKeyOption.style.display="";
-
- for(var i=0;i<kkk.length;i++){
- var tempOption=document.createElement("option");
- //计算该类别流程是否有设置类别
- console.log(kkk[i])
- tempOption.innerHTML=kkk[i].name?kkk[i].name:"默认";
- tempOption.value=kkk[i].version;
-
- if(false==kkk[i].display){
- continue;
- }
- if(kkk[i].version==version){tempOption.setAttribute("selected",true)}
- selects.appendChild(tempOption)
- }
- }
-
- if((function(){
- return componentData.key.length>0;
-
- })()){
- objectKeyOption.style.display="";
- //新增类别
- objectKeyOption.querySelectorAll("[type=button]")[0].style.display=""
- //修改
- objectKeyOption.querySelectorAll("[type=button]")[1].style.display=""
- }else{
- objectKeyOption.style.display="";
- //新增类别
- objectKeyOption.querySelectorAll("[type=button]")[0].style.display=""
- //修改
- objectKeyOption.querySelectorAll("[type=button]")[1].style.display=""
- }
-
-
- //删除按钮
- if(window.parent){
- var deleteButton=window.parent.document.querySelector("#deletebutton");
- if(!deleteButton){
- // deleteButton=document.createElement("input");
- // deleteButton.setAttribute("type","button");
- // deleteButton.setAttribute("value","删除");
- // deleteButton.setAttribute("id","deletebutton");
- // deleteButton.setAttribute("class","list-button");
- // objectKeyOption.appendChild(deleteButton)
- var ce=window.parent.$("#save").clone();
- ce.val("删除").attr("id","deletebutton").attr("title","");
- deleteButton=ce[0];
- window.parent.$("#save").before(deleteButton)
- }
-
- if(componentData.key.length==0){
- $(deleteButton).remove();
- }
-
-
-
-
- deleteButton.onclick=function(){
- if(window.confirm("删除当前流程类别?")){
-
- if(version!=""){
-
- var datas = $("#jsonData").html();
- var json=eval("("+datas+")");
-
- for(var i=0;i<json.objectKey.length;i++){
- if(json.objectKey[i].version==version){
- json.objectKey[i].display=false;
- json.objectKey[i].codebooks=[];
- console.log(json.objectKey[i])
- }
- }
-
-
- }else{
- alert('非法操作!')
- return false;
- }
- /* 再改,去掉 thisAppName。Lin
- $.post($("#saveURL").val() + '&thisAppName=' + document.getElementById("thisAppName").value, {
- */ $.post($("#saveURL").val(), {
- 'jsonData': JSON.stringify(json),
- 'fileName': $("#fileName").val()
- }, function(result) {
- console.log(result);
- //提示弹窗
- var notificationScript =document.getElementById("notificationURL").value
- if(notificationScript.indexOf("$result")!=-1){
- notificationScript=notificationScript.replace("$result",result);
- }else{
- notificationScript=notificationScript.split("ssToken")[0]+"&result="+result+"&ssToken"+notificationScript.split("ssToken")[1] // ("token"),+"&token"+("token")。Lin
- }
- eval(notificationScript)
- });
- }
- }
- }
- //解析数据成工具按钮
- if (property.haveTool == false) {
- return;
- }
- // window.event.preventDefault()
- var selectdiv = $("#leftDiv");
- var allNodes=demo.exportData().nodes;
- var modifyData=[];
- //task
- for (var i = 0; i < taskList.length; i++) {
- var task = taskList[i];
- var dd=compareNodeData(task,allNodes,"task");
- if(dd){
- modifyData=modifyData.concat(dd);
- }
- //杨20210817改 demo.$tool.append("<div draggable='true' ondragend='aNewTask(this," + i + ")' onclick='selectAsTask(this," + i + ")' title='" + task.name + "'><b class='ico2_task'></b><p class='ico2_task_show' >" + task.name + "</p></div>")
- demo.$tool.append("<div draggable='true' ondragend='aNewTask(this," + i + ")' onclick='selectAsTask(this," + i + ")' title='" + task.name + "'><b class='ico2_task' style='display: inline-block;'></b><span class='ico2_task_show' style='display: inline-block;height: 36px;border: 0;line-height: 36px;position: absolute;'>" + task.name + "</span></div>")
- }
- //transmit
- for (var i = 0; i < transmitList.length; i++) {
- var transmit = transmitList[i];
- //杨 demo.$tool.append("<div draggable='true' ondragend='aNewTransmit(this," + i + ")' onclick='selectAsTransmit(this," + i + ")' title='" + transmit.name + "'><b class='ico2_task'></b><p class='ico2_task_show'>" + transmit.name + "</p></div>")
- demo.$tool.append("<div draggable='true' ondragend='aNewTransmit(this," + i + ")' onclick='selectAsTransmit(this," + i + ")' title='" + transmit.name + "'><b class='ico2_task' style='display: inline-block;'></b><span class='ico2_task_show' style='display: inline-block;height: 36px;border: 0;line-height: 36px;position: absolute;'>" + transmit.name + "</span></div>")
- }
- //subprocess
- for(var i=0;i<subprocessList.length;i++){
- var subprocess=subprocessList[i]
- //杨 demo.$tool.append("<div draggable='true' ondragend='aNewSubrocess(this,"+i+")' onclick='selectAsSubprocess(this,"+i+")' title='" + "子工作流" + "'><b class='ico2_task'></b><p class='ico2_task_show'>" + subprocess.name + "</p></div>")
- demo.$tool.append("<div draggable='true' ondragend='aNewSubrocess(this,"+i+")' onclick='selectAsSubprocess(this,"+i+")' title='" + "子工作流" + "'><b class='ico2_task' style='display: inline-block;'></b><span class='ico2_task_show' style='display: inline-block;height: 36px;border: 0;line-height: 36px;position: absolute;'>" + subprocess.name + "</span></div>")
- }
- //decision
- for (var i = 0; i < decisionList.length; i++) {
- var decision = decisionList[i];
- //杨 demo.$tool.append("<div draggable='true' ondragend='aNewDecision(this," + i + ")' onclick='selectAsDecision(this," + i + ")' title='" + decision.name + "'><b class='icon2_decision'></b><p>" + decision.name + "</p></div>")
- demo.$tool.append("<div draggable='true' ondragend='aNewDecision(this," + i + ")' onclick='selectAsDecision(this," + i + ")' title='" + decision.name + "'><b class='icon2_decision' style='display: inline-block;'></b><span style='display: inline-block;height: 36px;border: 0;line-height: 36px;position: absolute;'>" + decision.name + "</span></div>")
- }
- // //start
- for (var i = 0; i < startList.length; i++) {
- var dd=compareNodeData(startList[i],allNodes,"start");
- if(dd){
- modifyData=modifyData.concat(dd);
- }
- // demo.$tool.append("<div draggable='true' ondragend='aNewStart(this," + i + ")' onclick='selectAsStart(this," + i + ")' ><b class='ico2_start'></b><p>" + "开始" + "</p></div>")
- }
- // //end
- for (var i = 0; i < endList.length; i++) {
- var dd=compareNodeData(endList[i],allNodes,"end");
- if(dd){
- modifyData=modifyData.concat(dd);
- }
- // demo.$tool.append("<div draggable='true' ondragend='aNewEnd(this," + i + ")' onclick='selectAsEnd(this," + i + ");' ><b class='ico2_end'></b><p>" + "结束" + "</p></div>")
- }
- //分支
- // demo.$tool.append("<div draggable='true' ondragend='aNewDecision(this)' onclick='selectAsDecisionDictionary(this)' title='字典'><b class='icon2_decision'></b><p>字典</p></div>")
- //并发(合并分支, 动态分支foreach)
- //杨 demo.$tool.append("<div draggable='true' ondragend='aNewFork(this)' onclick='selectAsFork(this)' title='分支'><b class='ico2_fork'></b><p>" + "并行" + "</p></div>")
- /* "并行" 改为 "并行/分支"。Lin
- demo.$tool.append("<div draggable='true' ondragend='aNewFork(this)' onclick='selectAsFork(this)' title='分支'><b class='ico2_fork' style='display: inline-block;'></b><span style='display: inline-block;height: 36px;border: 0;line-height: 36px;position: absolute;'>" + "并行" + "</span></div>") */
- demo.$tool.append("<div draggable='true' ondragend='aNewFork(this)' onclick='selectAsFork(this)' title='分支'><b class='ico2_fork' style='display: inline-block;'></b><span style='display: inline-block;height: 36px;border: 0;line-height: 36px;position: absolute;'>" + "并行/分支" + "</span></div>")
- //动态分支foreach
- // demo.$tool.append("<div draggable='true' ondragend='aNewForeach(this)' onclick='selectAsForeach(this)' title='动态分支'><b class='ico2_fork'></b><p>" + "动态分支" + "</p></div>")
- //汇合,等待
- //杨 demo.$tool.append("<div draggable='true' ondragend='aNewJoin(this)' onclick='selectAsJoin(this)' title='汇合'><b class='ico2_join'></b><p>" + "汇合" + "</p></div>")
- demo.$tool.append("<div draggable='true' ondragend='aNewJoin(this)' onclick='selectAsJoin(this)' title='汇合'><b class='ico2_join' style='display: inline-block;'></b><span style='display: inline-block;height: 36px;border: 0;line-height: 36px;position: absolute;'>" + "汇合" + "</span></div>")
- //连线'划线
- //杨 demo.$tool.append("<div onclick='selectAsLine(this)' title='连线'><b class='ico2_direct'></b><p>" + "连线" + "</p></div>")
- demo.$tool.append("<div onclick='selectAsLine(this)' title='连线'><b class='ico2_direct' style='display: inline-block;'></b><span style='display: inline-block;height: 36px;border: 0;line-height: 36px;position: absolute;'>" + "连线" + "</span></div>")
- //鼠标
- //杨 demo.$tool.append("<div onclick='selectAsMouse(this)' title='鼠标'><b class='ico2_cursor'></b><p>" + "鼠标" + "</p></div>")
- demo.$tool.append("<div onclick='selectAsMouse(this)' title='鼠标'><b class='ico2_cursor' style='display: inline-block;'></b><span style='display: inline-block;height: 36px;border: 0;line-height: 36px;position: absolute;'>" + "鼠标" + "</span></div>")
- //////////////////////////
- //头信息初始化
- setTimeout(function(){
-
- var allNodes=demo.exportData().nodes;
- if(modifyData.length>0){
- for(var i=0;i<modifyData.length;i++){
- var data=modifyData[i];
- var id=data.id;
-
- var content="";
- var count=1;
- for(var key in data){
- if(key=="id")continue;
- var oldvalue=allNodes[id][key];
- var newvalue=data[key];
- if(!oldvalue)oldvalue="null"
- if(!newvalue)newvalue="null"
-
- content+="\r"+count+".("+ key+")\r"+oldvalue+"\r"+newvalue;
-
- count++;
- }
-
-
- if(window.confirm("发现 流程配置文件 里有新数据(旧值在前):"+ allNodes[id].name+"?\r"+content)){ // "发现新数据! 旧值同新值:"。Lin
- for(var key in data){
- allNodes[id][key]=data[key];
- }
-
-
- }
-
-
-
-
- }
-
- }
-
-
-
- },1000)
- /* 再去掉,去掉 thisAppName -- 本来也没用到,IDEA(Unused local variable appName)。Lin
- var appName= document.getElementById("thisAppName").value;
- */
- // var headtext="<bpm name='" + $(head).attr("name") +(version!=""?("."+version):"")+ "' desc='" + $(head).attr("desc")+(version!=""?("."+version):"") + "' key='" + $(head).attr("key") + "' type='" + $(head).attr("type") + "' agree='" + $(head).attr("agree") + "' reject='" + $(head).attr("reject") + "'></bpm>";
- HEADTEXT={
- bpm_name:componentData.bpm.bpm_name,
- bpm_desc:componentData.bpm.bpm_desc,
- bpm_type:componentData.bpm.bpm_type,
- bpm_agree:componentData.bpm.bpm_agree,
- bpm_reject:componentData.bpm.bpm_reject
- };
- // $("#head_text").html(headtext);
- //////////////////////////////
- //绑定iframe外按钮保存和发布
- if (window.parent.document.getElementById("save") != null) {
- window.parent.document.getElementById("save").onclick = function() {
- demo.onBtnSaveClick();
- }
- }
-
- if(window.parent.document.getElementById("deployment")!=null){
- window.parent.document.getElementById("deployment").onclick = function() {
- // head_confirm();
- var version=document.getElementById("version").value;
- var datas = $("#jsonData").html();
- var json = eval('(' + datas + ')');
- if(json.nodes||json.lines){
- alert("json数据未转换")
- return;
- }
- var trans=new translate();
- for(var i=0;i<json.objectKey.length;i++){
- if(json.objectKey[i].version==version){
- trans.obj=json.objectKey[i];
- break;
- }
- }
- console.log(trans);
-
- if(trans.obj==null){
- alert("发布失败");
- return;
- }
-
-
- var jpdl = null;
-
- try{
- jpdl = trans.toJPDL();
- }catch(e){
- console.log(e);
- alert(e);
- return;
- }
-
-
-
-
- var params={
- 'fileName': $("#fileName").val()
- }
-
-
- params.jpdlName=($("#fileName").val()).replace(".bpmComponent.xml","")
- +"."+version+".jpdl.xml"
-
- params.jpdlXML= jpdl
- console.log(params)
- /* 再改,去掉 thisAppName。Lin
- var url = $("#deplopmentURL").val() + '&thisAppName=' + document.getElementById("thisAppName").value
- */ var url = $("#deplopmentURL").val()
- $.post(url, params,
- function(result) {
- console.log(result);
- result=result.substring(0,20)
- var notificationScript =document.getElementById("notificationURL").value
- if(notificationScript.indexOf("$result")!=-1){
- notificationScript=notificationScript.replace("$result",result);
- }else{
- notificationScript=notificationScript.split("ssToken")[0]+"&result="+result+"&ssToken"+notificationScript.split("ssToken")[1] // ("token"),+"&token"+("token")。Lin
-
- }
- eval(notificationScript)
- });
-
-
-
- }
- }
-
-
- //直接部署
-
- if(window.parent.document.getElementById("deployment2")!=null){
- window.parent.document.getElementById("deployment2").onclick = function() {
- /* 再改,去掉 thisAppName。Lin
- var url = $("#deplopmentURL2").val() + '&thisAppName=' + document.getElementById("thisAppName").value;
- */ var url = $("#deplopmentURL2").val();
-
- var fileName=$("#fileName").val().replace(".bpmComponent.xml","")+(version!=""?("."+version):"")+".bpmComponent.xml"
- // return;
- $.post(url, {
- 'fileName':fileName
- },
- function(result) {
- console.log(result);
- var notificationScript =document.getElementById("notificationURL").value
- if(notificationScript.indexOf("$result")!=-1){
- notificationScript=notificationScript.replace("$result",result);
- }else{
- notificationScript=notificationScript.split("ssToken")[0]+"&result="+result+"&ssToken"+notificationScript.split("ssToken")[1] // ("token"),+"&token"+("token")。Lin
-
- }
- eval(notificationScript)
- }
- );
- }
- }
-
-
-
- if(window.parent.document.getElementById("clear")!=null){
- window.parent.document.getElementById("clear").onclick=function(){
- demo.onBtnNewClick()
- }
- }
-
- if(window.parent.document.getElementById("stop")!=null){
- window.parent.document.getElementById("stop").onclick=function(){
- demo.onBtnNewClick()
- }
- }
-
-
-
-
-
-
- //删除
- demo.onItemDel = function(id, type) {
-
- $(".decisionLine").remove();
-
- return true;
- }
- //刷新
- demo.onFreshClick = function() {
- //window.location.reload();
- this.loadData(tempData);
- console.log(tempData)
- }
- //保存
- demo.onBtnSaveClick = function() {
- // head_confirm();
- tempData = clone(this.exportData());
- //要保存的数据
- var data=this.exportData();
- var datas = $("#jsonData").html();
- var json=eval("("+datas+")");
- if(datas.length==0||json.objectKey.length==0){
- alert("流程未添加!");
- return;
- }
- for(var k in data.nodes){
- if("task"==data.nodes[k].realtype){
- if(control.useTaskChain(data.nodes[k].assignee)){
- data.nodes[k].taskChain=1;
- }
- }
- }
- var findthat=false;
- for(var i=0;i<json.objectKey.length;i++){
- if(json.objectKey[i].version==version){
- json.objectKey[i].nodes=data.nodes
- json.objectKey[i].lines=data.lines;
- for(var key2 in HEADTEXT){
- json.objectKey[i][key2]=HEADTEXT[key2]
- }
- if(!json.objectKey[i].display){
- json.objectKey[i].display="true"
- }
- if(!json.objectKey[i].codebooks){
- json.objectKey[i].codebooks=[];
- }
- data=json;
- findthat=true
- break;
- }
- }
- if(findthat==false){
- alert("version"+version+"查找失败!")
- return;
- }
-
-
- /* 再改,去掉 thisAppName。Lin
- $.post($("#saveURL").val() + '&thisAppName=' + document.getElementById("thisAppName").value, {
- */ $.post($("#saveURL").val(), {
- 'jsonData': JSON.stringify(data),
- 'fileName': $("#fileName").val()
- }, function(result) {
- //提示弹窗
- var notificationScript =document.getElementById("notificationURL").value
- if(notificationScript.indexOf("$result")!=-1){
- notificationScript=notificationScript.replace("$result",result);
- }else{
- notificationScript=notificationScript.split("ssToken")[0]+"&result="+result+"&ssToken"+notificationScript.split("ssToken")[1] // ("token"),+"&token"+("token")。Lin
-
- }
- eval(notificationScript)
-
- });
- }
- //新表
- demo.onBtnNewClick = function() {
- $(".decisionLine").remove();
- this.clearData()
- }
- //打开文件
- demo.onBtnOpenClick = function() {
- console.log("打开")
- var datas = $("#jsonData").val();
- var json = eval('(' + datas + ')');
- console.log(json)
- this.loadData(json);
- return true;
- }
- //选中
- var lastId;
- demo.onItemFocus = function(id, type) {
- // console.log(this.$nowType)
- console.log(this.exportData()["nodes"][id]||this.exportData()["lines"][id])
- selectId = id;
- selectType = type;
- // if(id==lastId){return;}
- lastId = id
- var node = (this.exportData())[type + "s"][id];
- var co = $("#control_planel");
- if (typeof(node) == "undefined") return;
- //设置窗口打开中
- if(type=="node"&&control.close==false){control.show(demo.$nodeData[selectId])}
- co.html("<p><button onClick='control_planel_confirm()'>确定</button></p>")
- //.append("<input type='hidden' id='selectType' value='"+node.realtype+"'/>")
- //.append("name:<input type='text' id='p_name' value='"+node.name+"'/>")
- //选中分支节点decision,显示分支线
- if (node.type == "node"||node.type == "fork") {
- function timeDelay() {
- var thisselectId = selectId;
- return function() {
- if (haveDrag == false) {
- initDecisionLine($("#" + thisselectId));
- }
- haveDrag = false;
- };
- }
- // 定时触发:
- // var aa = timeDelay();
- setTimeout(timeDelay(), 100)
- co
- .append("<p>one thing left to do!</p>")
- }
- //任务节点task
- if (node.type == "task") {
- // $(".decisionLine").remove();
- co
- .append("<p><textarea id='node_text' cols='50' rows='5'><task name='" + node.name + "' assignee='" + node.assignee + "'><service name='" + node.service_name + "' dest='" + node.service_dest + "'/><message title='" + node.message_title + "' content='" + node.message_content + "' /></task></textarea></p>")
- }
- //结束节点end
- if (node.type == "end") {
- // $(".decisionLine").remove();
- co
- .append("<p><textarea id='node_text' cols='50' rows='5'><end name='" + node.bpm_agree + "' ><service name='" + node.agree_service_name + "'/><message title='" + node.agree_message_title + "' content='" + node.agree_message_content + "'></end><end name='" + node.bpm_reject + "' ><service name='" + node.reject_service_name + "'/><message title='" + node.reject_message_title + "' content='" + node.reject_message_content + "'></end></textarea></p>")
- }
- //开始节点start
- if (node.type == "start") {
- // $(".decisionLine").remove();
- co
- .append("<p><textarea id='node_text' cols='50' rows='5'><start><service name='" + node.service_name + "'></start></textarea></p>")
- }
- //点击线条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<thisLines.length;i++){
- $(thisLines[i]).remove()
- }
- // console.log(thisLines)
- // delete thisLines
- }
- function moveDececisionLine($re){
- var e = window.event;
- var Xi = 0,Yi = 0;
- var tempX, tempY;
-
-
-
- // tempX = parseInt($re.css("left")) + parseInt($re.css("width")) / 2;
- // tempY = parseInt($re.css("top")) + parseInt($re.css("height")) / 2;
- //
- tempX=parseInt(findPosX(demo.$ghost[0])) + parseInt(demo.$ghost.css("width")) / 2;
- tempY=parseInt(findPosY(demo.$ghost[0])) + parseInt(demo.$ghost.css("height")) / 2;
-
- var startX, startY, temp;
- startX = parseInt(findPosX($re[0])) + parseInt($re.css("width")) / 2;
- startY =parseInt(findPosY($re[0])) + parseInt($re.css("height")) / 2;
-
- Xi = tempX - startX;
- Yi = tempY - startY;
- // console.log("ghost"+tempX+" "+tempY)
- // console.log("$re"+startX+" "+startY)
- // console.log(Xi+" "+Yi)
- var lines = decisionLineData[$re[0].id];
-
- if(typeof lines=="undefined"){
- initDecisionLine($re);
- lines=decisionLineData[$re[0].id];
- }
-
- for (var i = 0; i < lines.length; i++) {
- var g = lines[i];
- var a, b, c;
- a = g.childNodes[0];
- b = g.childNodes[1];
- c = g.childNodes[2];
- temp = a.getAttribute("d").split(" ");
- a.setAttribute("d", temp[0] + " " + (parseInt(temp[1])+Xi) + " " + (parseInt(temp[2])+Yi) + " " + temp[3] + " " + (parseInt(temp[4]) + Xi) + " " + (parseInt(temp[5]) + Yi));
- temp = b.getAttribute("d").split(" ");
- b.setAttribute("d", temp[0] + " " + (parseInt(temp[1])+Xi) + " " + (parseInt(temp[2])+Yi) + " " + temp[3] + " " + (parseInt(temp[4]) + Xi) + " " + (parseInt(temp[5]) + Yi));
-
- c.setAttribute("x", (parseInt(temp[4]) + Xi + parseInt(temp[1])+Xi) / 2);
- c.setAttribute("y", (parseInt(temp[5]) + Yi + parseInt(temp[2])+Yi) / 2);
- }
- tempX = startX;
- tempY = startY;
-
- }
- //初始化(指定容器relative,线总数number)
- function initDecisionLine($re) {
-
-
- removeDecisionLine($re[0].id)
-
- // console.log(decisionLineData)
-
- var startpoint, endpoint;
- var lines = new Array()
- var Xi = 0,Yi = 0;
- var tempX, tempY;
- tempX = parseInt($re.css("left")) + parseInt($re.css("width")) / 2;
- tempY = parseInt($re.css("top")) + parseInt($re.css("height")) / 2;
- var thisNode=demo.$nodeData[$re[0].id]
-
- var conditions=thisNode.condition_name;
- if(!conditions)conditions=[];
-
- var num=conditions.length
-
- //// 删除线
- // if ($(".decisionLine").length > 0) {
- // $(".decisionLine").remove();
- // }
-
- for (var i = 0; i < num; i++) {
-
- // 计算线开始点、结束点
- startpoint = [parseInt($re.css("left")) + parseInt($re.css("width")) / 2,parseInt($re.css("top")) + parseInt($re.css("height")) / 2];
- endpoint=(function(i){return [
- startpoint[0] + 100 *(Math.sin(Math.PI*(0.666 / num * i+1.333))),
- startpoint[1] + 100 *(Math.cos(Math.PI*(0.666 / num * i+1.333)))]
- }(i))
-
- var line = drawDecisionLine($re[0].id + "Line" + i, startpoint, endpoint, false, false, conditions[i]);
-
- lines.push(line);
-
- // 线移动程序
- line.onmousedown = function(e){
- if (!e) e = window.event;
- var lastmouseX, lastmouseY;
- // 鼠标最开始位置
- lastmouseX = e.pageX;
- lastmouseY = e.pageY;
- //当前line传给mousemove使用
- var thisline = this;
- document.onmousemove = function(e) {
- if (!e) e = window.event;
- var endX, endY, startX, startY, top, left;
- // 当前鼠标位置
- endX = e.pageX + $(".GooFlow_work")[0].scrollLeft;
- endY = e.pageY + $(".GooFlow_work")[0].scrollTop;
- // ["M", "250", "250", "L", "415.3018194483593", "609.8219781415537"]
- var temp = thisline.childNodes[0].getAttribute("d").split(" ");
- startX = parseInt(temp[1]);
- startY = parseInt(temp[2]);
- //设置位置
- thisline.childNodes[0].setAttribute("d", "M " + startX + " " + startY + " L " + (endX - 63) + " " + (endY));
- thisline.childNodes[1].setAttribute("d", "M " + startX + " " + startY + " L " + (endX - 63) + " " + (endY));
- //文子
- thisline.childNodes[2].setAttribute("x", (endX - 55 + startX) / (2));
- thisline.childNodes[2].setAttribute("y", (endY + startY) / (2));
- //更新鼠标最开始位置
- lastmouseX = endX;
- lastmouseY = endY;
- demo.$workArea.delegate(".GooFlow_item", "mouseenter", {
- inthis: this
- }, function(e) {
- $(this).addClass("item_mark");
- });
- demo.$workArea.delegate(".GooFlow_item", "mouseleave", {
- inthis: this
- }, function(e) {
- $(this).removeClass("item_mark");
- });
- return false;
- }
- document.onmouseup = function(e) {
- document.onmousemove = null;
- // console.log(document.onmousemove);
- var fromId, toId;
- fromId = $re[0].id;
- // console.log(typeof($(".item_mark")[0])!="undefined");
- if ((typeof($(".item_mark")[0])) != "undefined") {
- toId = $(".item_mark")[0].id
- }
- if (toId != null) {
- //添加线
- // var lineId = demo.$id + "_line_" + demo.$max;
- var lineId = composeId("line")
- var newCondition = thisline.childNodes[2].innerHTML
- var lines = demo.exportData()["lines"];
- var fromNode = demo.exportData()["nodes"][fromId];
- var aa = function(){
- var aa = fromNode.condition_name;
- for (var i = 0; i < aa.length; i++) {
- if (aa[i] == newCondition) {
- return i;
- }
- }
- return null;
- }();
-
- if (aa != null) {
- fromNode.condition_name.splice(aa, 1)
- }
- var isExist = false;
- for (var key in lines) {
- if (lines[key].from == fromId && lines[key].to == toId) {
- var existName = lines[key].name
- newCondition = newCondition + "," + existName
- isExist = true;
- lineId = lines[key].id;
- break;
- }
- }
- if (isExist == false) {
- demo.addLine(lineId, {
- from: fromId,
- to: toId,
- name: newCondition,
- realtype: "decision"
- });
- } else {
- demo.setName(lineId, newCondition, "line")
- }
- // demo.$max++;
- //删除这条分支线
- $(thisline).remove();
- }
- demo.$workArea.undelegate(".GooFlow_item", "mouseenter").undelegate(".GooFlow_item", "mouseleave",
- function() {
- $(".item_mark").remove();
- })
- }
- }
- //
- // 线移动结束
-
- //提示这条线可以移动
- $(line).css("cursor", "move");
- $("#draw_demo")[0].appendChild(line);
- };
-
- decisionLineData[$re[0].id]=lines
- }
-
- ///////////////////////////////////////////////////////////////////////////////////////////////
- //画箭头
- function drawDecisionLine(id, sp, ep, mark, dash, conditionText) {
- var line;
- if (true) {
- line = document.createElementNS("http://www.w3.org/2000/svg", "g");
- var hi = document.createElementNS("http://www.w3.org/2000/svg", "path");
- var path = document.createElementNS("http://www.w3.org/2000/svg", "path");
- if (id != "") line.setAttribute("id", id);
- line.setAttribute("from", sp[0] + "," + sp[1]);
- line.setAttribute("to", ep[0] + "," + ep[1]);
- hi.setAttribute("visibility", "hidden");
- hi.setAttribute("stroke-width", 9);
- hi.setAttribute("fill", "none");
- hi.setAttribute("stroke", "white");
- hi.setAttribute("d", "M " + sp[0] + " " + sp[1] + " L " + ep[0] + " " + ep[1]);
- hi.setAttribute("pointer-events", "stroke");
- path.setAttribute("d", "M " + sp[0] + " " + sp[1] + " L " + ep[0] + " " + ep[1]);
- path.setAttribute("stroke-width", 1.4);
- path.setAttribute("stroke-linecap", "round");
- path.setAttribute("fill", "none");
- if (dash) path.setAttribute("style", "stroke-dasharray:6,5");
- if (mark) {
- path.setAttribute("stroke", "#ff3300");
- path.setAttribute("marker-end", "url(#arrow2)");
- } else {
- // path.setAttribute("stroke","#5068AE");
- path.setAttribute("stroke", "black");
- path.setAttribute("marker-end", "url(#arrow1)");
- }
- line.appendChild(hi);
- line.appendChild(path);
- line.setAttribute("class", "decisionLine")
- line.style.cursor = "crosshair";
- if (id != "" && id != "GooFlow_tmp_line") {
- var text = document.createElementNS("http://www.w3.org/2000/svg", "text");
- line.appendChild(text);
- var x = (ep[0] + sp[0]) / 2;
- var y = (ep[1] + sp[1]) / 2;
- text.setAttribute("text-anchor", "middle");
- text.setAttribute("x", x);
- text.setAttribute("y", y);
- line.style.cursor = "pointer";
- text.style.cursor = "text";
- text.innerHTML = conditionText
- }
- } else {
- line = document.createElement("v:polyline");
- if (id != "") line.id = id;
- //line.style.position="absolute";
- line.points.value = sp[0] + "," + sp[1] + " " + ep[0] + "," + ep[1];
- line.setAttribute("fromTo", sp[0] + "," + sp[1] + "," + ep[0] + "," + ep[1]);
- line.strokeWeight = "1.2";
- line.stroke.EndArrow = "Block";
- line.style.cursor = "crosshair";
- if (id != "" && id != "GooFlow_tmp_line") {
- var text = document.createElement("div");
- //text.innerHTML=id;
- line.appendChild(text);
- var x = (ep[0] - sp[0]) / 2;
- var y = (ep[1] - sp[1]) / 2;
- if (x < 0) x = x * -1;
- if (y < 0) y = y * -1;
- text.style.left = x + "px";
- text.style.top = y - 6 + "px";
- line.style.cursor = "pointer";
- }
- if (dash) line.stroke.dashstyle = "Dash";
- if (mark) line.strokeColor = "#ff3300";
- else line.strokeColor = "#5068AE";
- }
- return line;
- }
- ///////////////////////////////////////////////////////////////////
- //工具程序
- function findPosX(obj) {
- var curleft = 0;
- if (obj && obj.offsetParent) {
- while (obj.offsetParent) {
- curleft += obj.offsetLeft;
- obj = obj.offsetParent;
- }
- } else if (obj && obj.x) curleft += obj.x;
- return curleft;
- }
- function findPosY(obj) {
- var curtop = 0;
- if (obj && obj.offsetParent) {
- while (obj.offsetParent) {
- curtop += obj.offsetTop;
- obj = obj.offsetParent;
- }
- } else if (obj && obj.y) curtop += obj.y;
- return curtop;
- }
- //从URL获取参数
- function getURLParam(name) {
- var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
- var r = window.location.search.substr(1).match(reg);
- // console.log(r)
- if (r != null) return unescape(r[2]);
- return null;
- }
- function getPositioin(ele) {
- function findX(obj) {
- var curleft = 0;
- if (obj && obj.offsetParent) {
- while (obj.offsetParent) {
- curleft += obj.offsetLeft-parseInt(obj.style.marginLeft?obj.style.marginLeft:"0");
- obj = obj.offsetParent;
- }
- } else if (obj && obj.x) curleft += obj.x;
- return curleft;
- }
- function findY(obj) {
- var curtop = 0;
- if (obj && obj.offsetParent) {
- while (obj.offsetParent) {
- curtop += obj.offsetTop-parseInt(obj.style.marginTop?obj.style.marginTop:"0");
- obj = obj.offsetParent;
- }
- } else if (obj && obj.y) curtop += obj.y;
- return curtop;
- }
- var left =0-ele.parentNode.scrollLeft,top = 0-ele.parentNode.scrollTop;
- var win = self
- do {
- left = findX(ele) + left-win.document.body.scrollLeft
- top = findY(ele) + top-win.document.body.scrollTop
- win = win.parent;
- ele = win.document.getElementsByTagName("iframe")[0];
- if (window.top == win) {
- left = findX(ele) + left
- top = findY(ele) + top
- }
- } while (function() {
- return window.top != win;
- }())
- return {
- left: left,
- top: (top)
- }
- }
- function checkStartEnd(json){
-
- var allnodes=json.nodes;
- var hasStartNodes=false;
- var hasEndNode=false;
-
- //查找是否存在start ,end
- for(var key in allnodes){
- console.log(allnodes[key])
- if(allnodes[key].realtype=="start"){
- hasStartNodes=true;
- }
- if(allnodes[key].realtype=="end"){
- hasEndNode=true;
- }
- }
-
- if(!hasStartNodes){
- aNewNode("start");
- }
- if(!hasEndNode){
- aNewNode("end")
- }
-
- }
-
- function aNewNode(type){
- if(type=="start"){
- var selectStart = startList[0];
- startList
- var newjson={}
- for(var key in selectStart){
- newjson[key]=selectStart[key]
- }
-
- newjson.left = 200
- newjson.top = 100
- newjson.type = "start";
- newjson.realtype = "start";
- newjson.name = "开始";
-
-
-
- newjson.id=composeId("node")
- demo.addNode(newjson.id, newjson);
-
- }
-
- if(type=="end"){
-
- var selectEnd = endList[0];
- var newjson={}
- for(var key in selectEnd){
- newjson[key]=selectEnd[key]
- }
- newjson.left = 100
- newjson.top = 200
- newjson.type = "end";
- newjson.realtype = "end";
- newjson.name = "结束";
- newjson.finishService="[{\"name\":\"agreeToUse\",\"desc\":\"完成后启用\",\"type\":\"agree\"}]";
- newjson.id = composeId("node")
- demo.addNode(newjson.id, newjson);
- }
-
-
-
-
- }
-
- function jpdlFilter(filter){
-
- var datas = $("#jsonData").html();
- if(datas==""){return false}
- var json=eval("("+datas+")");
- //搜索属性
- var objectKey;
-
- if(json.objectKey==null){return false}
- for(var i=0;i<json.objectKey.length;i++){
- if(json.objectKey[i].version==version){
- objectKey=json.objectKey[i];
- }
- }
- //没有filter属性
-
- if(version=="" && !typeof filter=="undefined" ){return true}//隐藏
- if(typeof filter=="undefined" ){return false;}//显示
- if(filter==""){return true;}//隐藏
- if(version==""){return true}//显示
- var taskfilter=eval("({"+filter+"})");
- console.log(taskfilter);
- console.log(objectKey)
-
- for(var key in taskfilter){
- var filtertype=typeof taskfilter[key];
- console.log(filtertype)
- var dataValue=[];
- var needIt=false;//值相等
- var inIt=false;//有这个参数
- if(filtertype=="number"||filtertype=="string"){
- dataValue.push(taskfilter[key])
- }else if(filtertype=="object"){
- for(var key2 in taskfilter[key]){
- dataValue.push(taskfilter[key][key2])
- }
- }else{
- alert("未知的数据类型");
- }
-
- console.log(dataValue)
-
- if(dataValue.length==1){
- if(dataValue[0]==key){
- return false
- }
- }
-
- for(var i=0;i<objectKey.codebooks.length;i++){
- var codebooks=objectKey.codebooks[i]
- console.log(codebooks)
-
- for(var j=0;j<codebooks.length;j++){
- var codebook=codebooks[j]
- if(codebook.name==key){
- inIt=true;
- for(var k=0;k<dataValue.length;k++){
- if(dataValue[k]==codebook.value){
- needIt=true;//找到值
- }
- }
- }
- }
- }
-
- if(!inIt){return true;}
- if(!needIt){return true}
-
- }
- return false;//显示
- }
- function compareNodeData(componentData,allNodes,type){
-
- var result=[];
-
- if(allNodes){
-
- for(var key in allNodes){
- var node=allNodes[key];
- if(node.realtype!=type)continue;
- if(type=="end"
- ||type=="start" ||
- (type=="task"&&node.service_name==componentData.service_name)){
- // &&node.service_dest==componentData.service_dest
- var dd={}
- var ddcount=0;
- for(var key2 in componentData){
- if(componentData[key2]&&node[key2]!=componentData[key2]){
- if(type=="task"){
- //assignee:"@env.所在部门@"message_content:"请审核播放设备"message_title:"播放设备发布审核"name:"部门审"
- if(key2!="taskChain"&&key2!="name"&&key2!="assignee"&&key2!="message_content"&&key2!="message_title"&&key2!="messagereceipt"&&key2!="usesubprocess"){
- dd[key2]=componentData[key2];
- ddcount++;
- }
- }else{
- if(key2!="name"&&key2!="agree_message_content"&&key2!="agree_message_title"&&key2!="reject_message_content"&&key2!="reject_message_title" ){
- dd[key2]=componentData[key2];
- ddcount++;
- }
-
-
- }
-
-
-
-
- }
- }
-
- if(ddcount>0){
- dd.id=node.id;
- result.push(dd);
- }
-
- }
-
-
-
-
-
-
-
-
-
-
-
-
- }
-
-
- }
-
- if(result.length>0)return result;
-
-
-
-
- }
|