| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020 |
- /*
- * control.show(id);
- *属性设置框
- */
- var control={
- //临时AJAX数据
- close:true,
- closeButton:"<div id='closeBtn' onclick='control.hidden()'></div>",
- temp:null,
- setFieldData:null,
- $dom:$("#control"),
- /// 增加,读取分支字典下拉列表所选字典的 playDesc。lin
- // 为设置分支属性页面里的 "名称" 录入框的默认值
- rdDecDictPlayDesc:function(selVal) {
- for (var i= 0; i < this.temp.length; i ++) {
- if (selVal == this.temp[i].name) {
- return this.temp[i].playDesc;
- }
- }
- return "";
- },
- ///
- /// 再增加,刷新 "分支"、"并行"、"可变" 图标样式。Lin
- wrDecStyle:function(selIdx, selval) {
- var dom = demo.$nodeDom[this.json.id];
- var tableB = dom.children("table").children("tbody").children("tr").children("td").children("b");
- if (selIdx == 0) {
- // <div class="GooFlow_item node_decision"。Lin
- dom.removeClass("node_decision");
- dom.addClass("node_fork");
- // <b class="ico_node2"。Lin
- tableB.removeClass("ico_node2");
- tableB.addClass("ico_fork2");
- // 刷新 "分支" 框里的名称。Lin
- dom.children("div.span")[0].innerHTML=selval;
- } else {
- // <div class="GooFlow_item node_fork"。Lin
- dom.removeClass("node_fork");
- dom.addClass("node_decision");
- // <b class="ico_fork2"。Lin
- tableB.removeClass("ico_fork2");
- tableB.addClass("ico_node2");
- // 刷新 "分支" 框里的名称。Lin
- dom.children("div.span")[0].innerHTML=control.rdDecDictPlayDesc(selval);
- }
- },
- ///
- //设置框
- dom:"<div id='control' onmousedown='control.dragDom(this)' style='background-color:#fff;border:solid 1px #c7c7c7;height:auto;padding:18px 15px 14px;position:absolute;left:614px;top:19px;display:none;z-index:2000;border-radius:4px;'></div>",
- dragDom:function(dom){
- var e=window.event;
- if(e.target.nodeName=="INPUT"||e.target.nodeName=="SELECT"){return;}
- // 获取鼠标初始位置
- var lastmouseX=e.pageX
- var lastmouseY=e.pageY
- document.onmousemove=function(){
- var e=window.event
- // 获取最新鼠标位置
- var aa=e.pageX
- var bb=e.pageY
- // console.log("xxx "+aa)
- var left=parseInt(dom.style.left)
- var top=parseInt(dom.style.top)
- // 根据鼠标新旧位置差值 移动
- dom.style.left=left+e.pageX-lastmouseX+"px"
- dom.style.top=top+e.pageY-lastmouseY+"px"
- // 保存最新鼠标位置
- lastmouseX=aa
- lastmouseY=bb
- }
- document.onmouseup=function(dom){
- this.onmousemove=null
- }
- },
- // 保存按钮
- saveButton:"<button style='background-color:#bd1f16;border-color:#9c1911;height:38px;width:117px;font-size:16px;color:#fff;margin-top:15px; cursor:pointer;' class='btn-submit' style='left: 195px' onclick='control.save()'>保存</button>",
- // 保存程序
- save:function(){
- // var data=this.$dom[0].getElementsByTagName("input")
- //
- // for (var i=0;i<data.length;i++) {
- // var name=data[i].name;
- // var value=data[i].value
- // if(name==""||name==null){continue}
- // this.json[name]=value;
- // console.log(name+" " +value)
- // }
- var data=this.$dom[0].querySelectorAll("input[type=text],input[type=number]")
- for (var i=0;i<data.length;i++) {
- var name=data[i].name;
- var value=data[i].value
- if(name==""||name==null){continue}
- this.json[name]=value;
- console.log(name+" " +value)
- }
- if(this.json.realtype=="start"){
- if(this.$dom[0].querySelector("#secondpersion")){
- var checked=this.$dom[0].querySelector("#secondpersion").checked
- if(checked){
- this.json.secondpersion=1;
- }else{
- this.json.secondpersion=0;
- }
- }
- }
- if(this.json.realtype=="task"){
- var selects= this.$dom[0].getElementsByTagName("select")[0]
- var index=selects.selectedIndex
- var value=selects.options[index].value
- this.json.assignee=value;
- if(this.json.assignee=="zdbm"){ // =="指定部门")。Lin
- var selects2= this.$dom[0].getElementsByTagName("select")[1]
- var index2=selects2.selectedIndex
- var value2=selects2.options[index2].value
- this.json.scopeParam=value2;
- }
- else{
- delete this.json.scopeParam
- }
- this.json.duedatetype=document.getElementById("duedatetype").value
- /* 再改,恢复 <tr id='taskChain'。Lin
- //document.getElementById("taskChain").getElementsByTagName("input")[0].checked&&.
- if(this.useTaskChain(this.json.assignee)){
- */ if (document.getElementById("taskChain").getElementsByTagName("input")[0].checked) {
- this.json.taskChain=1;
- }else{
- this.json.taskChain=0;
- }
- if(document.getElementById("taskSubprocess").getElementsByTagName("input")[0].checked){
- this.json.usesubprocess=1
- }else{
- this.json.usesubprocess=0;
- }
- if(this.$dom[0].querySelector("input[name=messagereceipt]").checked){
- this.json.messagereceipt=1
- }else{
- this.json.messagereceipt=0
- }
- this.json.rejectnode=this.$dom[0].querySelector("#rejectnodeoption select").value
- this.json.sfsxps=this.$dom[0].querySelector("#sfsxpsoption select").value
- this.json.sfRedo = this.$dom[0].querySelector("#sfRedooption select").value; // 增加 是否重做节点。Lin
- this.json.sfRun = this.$dom[0].querySelector("#sfRunoption select").value; // 增加 是否执行节点。Lin
- }
- if(this.json.realtype=="task"||this.json.realtype=="end"){
- var finishServices=document.querySelectorAll(".finishService")
- var finishServiceData=[]
- for(var i=0;i<finishServices.length;i++){
- if(!finishServices[i].checked)continue;
- var d=eval("("+finishServices[i].getAttribute("name")+")")
- finishServiceData.push(d);
- }
- var setFieldSelect=document.querySelectorAll(".setFieldSelect");
- if(setFieldSelect.length>0){
- var aa={"name":"setField","desc":"改变对象属性值","type":"agree",param:{}};
- for(var i=0;i<setFieldSelect.length;i++){
- var n=setFieldSelect[i].getAttribute("name");
- var v=setFieldSelect[i].value;
- if(!v)continue;
- aa.param[n]=v;
- }
- if("{}"!=JSON.stringify(aa.param)){
- finishServiceData.push(aa);
- }
- }
- this.json.finishService=JSON.stringify(finishServiceData);
- }
- if(this.json.realtype=="transmit"){
- var selects= this.$dom[0].getElementsByTagName("select")[0]
- var index=selects.selectedIndex
- var value=selects.options[index].value
- this.json.assignee=value;
- if(this.json.assignee=="zdbm"){ // =="指定部门")。Lin
- var selects2= this.$dom[0].getElementsByTagName("select")[1]
- var index2=selects2.selectedIndex
- var value2=selects2.options[index2].value
- this.json.scopeParam=value2;
- }
- else{
- delete this.json.scopeParam
- }
- this.json.duedatetype=document.getElementById("duedatetype").value
- if(this.$dom[0].querySelector("input[name=messagereceipt]").checked){
- this.json.messagereceipt=1
- }else{
- this.json.messagereceipt=0;
- }
- }
- if (this.json.realtype == "decision" || this.json.realtype == "fork" || this.json.realtype == "foreach") {
- var selects = this.$dom[0].getElementsByTagName("select")[0]
- var index = selects.selectedIndex
- console.log(document.getElementById("foreachCheckBox").checked)
- // 用户选中值
- var option = selects.options[index].value
- // 定义分支条件
- var transition_name=[];
- // 搜索分支条件
- for (var i= 0; i < this.temp.length; i ++) {
- if (option == this.temp[i].name) {
- /* 再改,去掉 DictDecB -- 把 <dec name= val= /> 改为 <fork></fork>。Lin
- transition_name = this.temp[i].decVal // .transition_name。Lin
- */ transition_name = this.temp[i].forkValList
- break;
- }
- }
- //检查checkedbox
- if (document.getElementById("foreachCheckBox").checked) {
- this.json.type = "foreach";
- this.json.realtype = "foreach"
- this.json.condition_name = transition_name;
- this.json.key = option;
- //不勾选的时候
- } else {
- // 改变分支类型:空:并行、非空:分支
- if (option == "") {
- this.json.type = "fork"; // 英文用得不好,fork = 分叉。Lin
- this.json.realtype = "fork"
- this.json.condition_name = transition_name;
- removeDecisionLine(this.json.id)
- } else {
- this.json.type = "node";
- this.json.realtype = "decision"
- //条件为:(搜索到分支条件|| 用户选择为空)&&用户选中值和原本值不同
- if ((transition_name.length > 0 || option == "") && (option != this.json.key)) {
- removeDecisionLine(this.json.id)
- //设置分支条件
- this.json.condition_name = transition_name;
- initDecisionLine($("#"+this.json.id))
- }
- }
- this.json.key = option;
- }
- if (this.json.name == "分支" || this.json.name == "并行" || this.json.name == "可变") { // == "可变并行")。Lin
- if (this.json.realtype == "decision")
- this.json.name="分支"
- if (this.json.realtype == "fork")
- this.json.name="并行"
- if (this.json.realtype == "foreach")
- this.json.name="可变" // ="可变并行"。Lin
- }
- /// 增加。刷新 "分支"、"并行"、"可变" style。Lin
- if (this.json.realtype == "decision")
- control.wrDecStyle(index, option);
- else if (this.json.realtype == "fork")
- control.wrDecStyle(index, "并行");
- else
- control.wrDecStyle(index, "可变");
- ///
- }
- if(this.json.realtype=="subprocess"){
- }
- if (this.json.realtype == "join") {
- //设置分支条件
- var confirmthis= this.$dom[0].querySelector("[name=confirmthis]").checked;
- this.json.confirmthis = confirmthis? "1" : "0"
- this.json.service_dest = "joinSure"; // = "sureJoin" < "env_confirm"。Lin
- this.json.service_name = "sureJoin"; // = "env_confirm"。Lin
- if (confirmthis) {
- this.json.assignee = this.$dom[0].querySelector("select[name=assignee]").value;
- if (this.json.assignee == "zdbm")
- this.json.scopeParam = this.$dom[0].querySelector("select[name=scopeParam]").value;
- this.json.taskChain = 0;
- this.json.service_dest = "joinSure"; // = "sureJoin" < "env_confirm"。Lin
- this.json.service_name = "sureJoin"; // = "env_confirm"。Lin
- this.json.condition_name = []
- var addcondition=true
- for (var key in demo.$lineData) {
- if (demo.$lineData[key].from == this.json.id)
- addcondition = false;
- }
- if (addcondition)
- this.json.condition_name = ["补发",""]
- removeDecisionLine(this.json.id);
- initDecisionLine($("#"+this.json.id));
- }
- }
- demo.setName(this.json.id,this.json.name,"node")
- this.hidden()
- },
- json:null,
- html:"",
- // 隐藏设置框
- hidden:function(){
- this.$dom.fadeOut(200)
- this.close=true
- },
- // 显示设置框-
- show:function(nodeData){
- this.$dom=$("#control");
- // 清除缓存文档
- this.$dom.html("")
- this.json=nodeData;
- // 获取主要信息
- this.$dom.append(this.getMain(nodeData.realtype))
- // 闪亮出现设置框
- this.$dom.fadeIn(0)
- this.html="";
- },
- // 主体信息
- getMain:function(nodeType){
- switch (nodeType){
- case "task":
- this.switchToTask();
- break;
- case "transmit":
- this.switchToTransmit();
- break;
- case "decision":
- this.switchToDecision();
- break;
- case "fork":
- this.switchToFork();
- break;
- case "end":
- this.switchToEnd();
- break;
- case "foreach":
- this.switchToForeach();
- break;
- case "subprocess":
- this.switchToSubprocess();
- break;
- case "start":
- this.switchToStart();
- break;
- case "join":
- this.switchToJoin();
- break;
- default :
- this.html="不用设置";
- }
- this.receiveData()
- return this.html
- },
- //判断字典是否使用部门内审核
- useTaskChain:function(assignee){
- /* 重写,改为根据 <dict type= 判断。Lin
- var a=["szbm","zdbm","dwld"]
- for(var i=0;i<a.length;i++){
- if(a[i]==assignee){
- return true;
- }
- }
- if(assignee && assignee.indexOf("部门")>-1){ // 增加非空判断 assignee &&。Lin
- return true;
- }
- */
- var dictList = this.temp.dictionaryData;
- for (var i=0;i<dictList.length;i++) {
- if (dictList[i].name == assignee)
- return (dictList[i].type == 5); // DictC.DICT_bpmDeptHandlerType。Lin
- }
- return false
- },
- // ajax获取的所有数据 options
- receiveData:function(){
- // //同步接收
- $.ajaxSetup({async:false})
- if(this.json.realtype=="task"||this.json.realtype=="end"){
- var finishService=[{name:"agreeToUse",desc:"完成后启用",type:"agree"}]
- var finishServiceStr="";
- var finishServiceData=[];
- if(this.json.finishService)
- finishServiceData=eval("("+this.json.finishService+")");
- var json_agreeToUseData;
- var json_setFieldData;
- for(var j=0;j<finishServiceData.length;j++){
- if(finishServiceData[j].name=="agreeToUse"){
- json_agreeToUseData=finishServiceData[j];
- }else if(finishServiceData[j].name=="setField"){
- json_setFieldData=finishServiceData[j];
- }
- }
- for(var i=0;i<finishService.length;i++){
- var cc=finishService[i];
- var checkIt=json_agreeToUseData?true: false;
- finishServiceStr+="<tr><th>"+cc.desc+"</th><td><input class=\"finishService\" "+(checkIt?"checked":"")+" name=\'"+JSON.stringify(cc)+"\' type=\"checkbox\"/></td></tr>"
- }
- if(this.setFieldData){
- for(var i=0;i<this.setFieldData.length;i++){
- var f=this.setFieldData[i];
- var op="<option value=\"\"></option>";
- var currentValue;
- if(json_setFieldData){
- currentValue=json_setFieldData.param[f.field];
- }
- for(var j=0;j<f.codebook.length;j++){
- var codebookValue=f.codebook[j][0];
- var checkId=(codebookValue==currentValue)?true:false;
- op+="<option value=\""+codebookValue+"\" "+(checkId?"selected":"")+">"+f.codebook[j][1]+"</option>";
- }
- finishServiceStr+="<tr><th>"+f.desc+"</th><td><select name=\""+f.field+"\" class=\"setFieldSelect\">"+op+"</select></td></tr>";
- }
- }
- this.html=this.html.replace("$finishService",finishServiceStr);
- }
- //task
- if(this.json.realtype=="task"||this.json.realtype=="transmit"||this.json.realtype=="join"){
- /*
- */
- /* 再改,去掉 thisAppName。Lin
- var url=$("#scopeDictionaryURL")[0].value + '&thisAppName=' + document.getElementById("thisAppName").value;
- */ var url=$("#scopeDictionaryURL")[0].value;
- var fileName=$("#fileName").val()
- // $.post(url,{
- // 'fileName':fileName
- // },function(data,status){
- // var result=new DOMParser().parseFromString(data,"text/html")
- // window.self.control.temp=result
- // })
- $.ajax({
- type:"post",
- url:url,
- data:{'fileName':fileName},
- async:false,
- dataType: "json", // 再增加,不通过 lc_scopeDictionary.jsp 中转。Lin
- success:function(data){
- /* 再改,不通过 lc_scopeDictionary.jsp 中转。Lin
- var result=new DOMParser().parseFromString(data,"text/html")
- window.self.control.temp=result
- */ window.self.control.temp = data;
- }
- });
- var aa=this.json.assignee;
- if(aa)
- this.json.assignee=aa.replace(/@env.|@/g,"")
- console.log(this.temp)
- if(this.json.assignee=="zdbm"){ // =="指定部门")。Lin
- this.html=this.html.replace("$displayable","");
- }
- /* 再改,不通过 lc_scopeDictionary.jsp 中转。Lin
- var bmList=eval( this.temp.getElementById("bmListData").value)
- */ var bmList = this.temp.bmListData;
- var bm=this.buildingValue("TASK_scopeParam_option",bmList,this.json.scopeParam)
- /* 再改,不通过 lc_scopeDictionary.jsp 中转。Lin
- var optionsList=eval( this.temp.getElementById("dictionaryData").value);
- */ var optionsList = this.temp.dictionaryData;
- var options=this.buildingValue("TASK_dictionary_option",optionsList,this.json.assignee)
- var usesubprocessdisplay="none";
- var usesubprocesscheck="";
- var usesubprocessname="";
- if(this.json.subprocess_key){
- usesubprocessdisplay=""
- usesubprocessname=this.json.subprocess_name;
- if(this.json.usesubprocess==1){
- usesubprocesscheck="checked"
- }
- }
- this.html=this.html.replace("$rejectnodeoption",this.buildingValue("TASK_rejectnode_option"));
- this.html=this.html.replace("$sfsxpsoption",this.buildingValue("TASK_sfsxps_option",[{name:"否",value:"0"},{name:"是",value:"1"}],this.json.sfsxps||0));
- /// 增加 是否重做节点、是否执行节点。Lin
- this.html=this.html.replace("$sfRedooption",this.buildingValue("TASK_sfRedo_option",[{name:"否",value:"0"},{name:"是",value:"1"}],this.json.sfRedo||0));
- this.html=this.html.replace("$sfRunoption",this.buildingValue("TASK_sfRun_option",[{name:"否",value:"0"},{name:"是",value:"1"}],this.json.sfRun||0));
- ///
- this.html=this.html.replace("$usesubprocessname",usesubprocessname)
- this.html=this.html.replace("$usesubprocessdisplay",usesubprocessdisplay)
- this.html=this.html.replace("$usesubprocesscheck",usesubprocesscheck)
- if(this.json.confirmthis){
- this.html=this.html.replace("$confirmthischecked","1"==this.json.confirmthis?"checked":"");
- }
- this.html=this.html.replace("$options",options)
- this.html=this.html.replace("$bmList",bm);
- var displayable=this.json.scopeParam?"":"none";
- this.html=this.html.replace("$displayable",displayable);
- /* 再改为,对部门字典,显示属性 <tr id='taskChain',且增加赋值 this.json.taskChain = 1。Lin
- var taskChainDisplayable=(this.useTaskChain(this.json.assignee))?'none':'none';
- */
- var taskChainDisplayable = 'none';
- if (this.useTaskChain(this.json.assignee)) {
- taskChainDisplayable = '';
- this.json.taskChain = 1;
- }
- this.html=this.html.replace("$taskChainDisplayable",taskChainDisplayable);
- if(this.json.taskChain&&this.json.taskChain==1){
- this.html=this.html.replace("$taskChainCheck","checked")
- }else{
- this.html=this.html.replace("$taskChainCheck","")
- }
- var duedatetypeoption="";
- duedateDisplayable="";
- duedatetypeoption=this.buildingValue("duedatetypeoption",[{name:"",value:"0"},{name:"退回",value:"1"},{name:"越过",value:"2"}],this.json.duedatetype||0)
- console.log(duedatetypeoption)
- //已选择退回。越过
- if(1==this.json.duedatetype||2==this.json.duedatetype){
- duedateDisplayable="";
- this.html=this.html.replace("$days",this.json.days?this.json.days:"0");
- this.html=this.html.replace("$hours",this.json.hours?this.json.hours:"0");
- this.html=this.html.replace("$minutes",this.json.minutes?this.json.minutes:"0");
- }else{
- duedateDisplayable="none"
- }
- var istaskmessagereceipt=""
- if(this.json.messagereceipt&&this.json.messagereceipt==1){
- istaskmessagereceipt="checked"
- }
- this.html=this.html.replace("$taskmessagereceipt", istaskmessagereceipt)
- this.html=this.html.replace("$duedatetypeoption",duedatetypeoption);
- this.html=this.html.replace("$duedateDisplayable",duedateDisplayable)
- }
- if(this.json.realtype=="decision"||this.json.realtype=="fork"||this.json.realtype=="foreach"){
- /*
- */
- /* 再改,去掉 thisAppName。Lin
- var url=$("#decisionDictionaryURL")[0].value+ '&thisAppName=' + document.getElementById("thisAppName").value;
- */ var url=$("#decisionDictionaryURL")[0].value;
- var fileName=$("#fileName").val()
- /* 改,不通过 lc_decisionDictionary.jsp 中转。Lin
- $.post(url,{'fileName':fileName},function(data,status){
- var result=new DOMParser().parseFromString(data,"text/html")
- window.self.control.temp=eval( result.getElementById("dictionaryData").value)
- })
- */
- $.ajax({
- type:"post",
- url:url,
- data:{'fileName':fileName},
- async:false,
- dataType: "json",
- success:function(data){
- window.self.control.temp = data;
- }
- });
- var options=this.buildingValue("DECISION_key_option",this.temp,this.json.key);
- this.html=this.html.replace("$displayable",this.json.realtype=="decision"?"none":"")
- this.html=this.html.replace("$isForeach",(this.json.realtype=="foreach"?"checked":""))
- this.html=this.html.replace("$options",options)
- /*
- */
- }
- if(this.json.realtype=="subprocess"){
- var subprocesstype="";
- if(this.json.subprocesstype){
- if(this.json.subprocesstype=="multiple"){
- subprocesstype="多个子流程";
- }
- }else{
- }
- this.html=this.html.replace("$subprocesstype",subprocesstype);
- }
- if(this.json.realtype=="start"){
- if(this.json.secondpersion&&this.json.secondpersion==1){
- this.html=this.html.replace("$secondpersionchecked","checked")
- }else{
- this.html=this.html.replace("$secondpersionchecked","")
- }
- //
- // var url=$("#scopeDictionaryURL")[0].value + '&thisAppName=' + document.getElementById("thisAppName").value;
- // var fileName=$("#fileName").val()
- // $.post(url,{
- // 'fileName':fileName
- // },function(data,status){
- // var result=new DOMParser().parseFromString(data,"text/html")
- // window.self.control.temp=result
- // })
- // var aa=this.json.assignee;
- // if(aa)
- // this.json.assignee=aa.replace(/@env.|@/g,"")
- // console.log(this.temp)
- // var bmList=eval( this.temp.getElementById("bmListData").value)
- // var bm=this.buildingValue("TASK_scopeParam_option",bmList,this.json.scopeParam)
- //
- // var optionsList=eval( this.temp.getElementById("dictionaryData").value);
- //
- // var options=this.buildingValue("Start_dictionary_option",optionsList,this.json.assignee)
- //
- // var usesubprocessdisplay="none";
- // var usesubprocesscheck="";
- // var usesubprocessname="";
- //
- // if(this.json.subprocess_key){
- // usesubprocessdisplay=""
- // usesubprocessname=this.json.subprocess_name;
- //
- // if(this.json.usesubprocess==1){
- // usesubprocesscheck="checked"
- // }
- // }
- // this.html=this.html.replace("$options",options)
- // this.html=this.html.replace("$bmList",bm);
- //
- // var displayable=this.json.scopeParam?"":"none";
- //
- // var taskChainDisplayable=(this.useTaskChain(this.json.assignee))?'':'none';
- // this.html=this.html.replace("$displayable",displayable);
- // this.html=this.html.replace("$taskChainDisplayable",taskChainDisplayable);
- // if(this.json.taskChain&&this.json.taskChain==1){
- // this.html=this.html.replace("$taskChainCheck","checked")
- // }else{
- // this.html=this.html.replace("$taskChainCheck","")
- // }
- }
- },
- switchToTask:function(){
- this.html=""
- +"<table>"
- +"<tr><th>节点名称</th><td><input name='name' type='text' value='$name'></td></tr>"
- +"<tr><th>办理人</th><td><select name='assignee' onchange=\"control.changeScope(this)\">$options</select>"
- +"</td></tr>"
- +"<tr id='scopeParam' style='display:$displayable;'><th>选择部门</th><td><select name='scopeParam'>$bmList</select></td></tr>"
- +"<tr id='taskChain' style='display:$taskChainDisplayable;'><th>按层级先后</th><td><input type='checkbox' $taskChainCheck onclick='control.clickTaskChainOrTaskSubprocess(this)'/></td></tr>"
- +"<tr id='taskSubprocess' style='display:$usesubprocessdisplay;'><th class='h'>$usesubprocessname</th><td><input type='checkbox' $usesubprocesscheck onclick='control.clickTaskChainOrTaskSubprocess(this)'></td></tr>"
- +"<tr><th>消息标题</th><td><input name='message_title' type='text' value='$message_title'></td></tr>"
- +"<tr><th>消息内容</th><td><input name='message_content' type='text' value='$message_content'></td></tr>"
- +"<tr><th>节点序号</th><td><input name='step' type='number' value='$step'></td></tr>"
- // +"<tr><th>指定序号:</th><td><input name='bgbj_xh' type='number' value='$bgbj_xh'></td></tr>"
- +"<tr><th>批示意见序号</th><td><input name='psyj_xh' type='number' value='$psyj_xh'></td></tr>"
- +"<tr><th>批示落款序号</th><td><input name='pslk_xh' type='number' value='$pslk_xh'></td></tr>"
- +"<tr id='sfsxpsoption'><th>是否手写批示</th><td><select>$sfsxpsoption</select></td></tr>"
- +"<tr id='sfRedooption'><th>是否重做节点</th><td><select>$sfRedooption</select></td></tr>" // 增加 是否重做节点。Lin
- +"<tr id='sfRunoption'><th>是否执行节点</th><td><select>$sfRunoption</select></td></tr>" // 增加 是否执行节点。Lin
- +"$finishService"
- +"<tr><th>限时</th><td style='width: 66%;'>"
- +"<select id='duedatetype' onchange=\"control.selectDueDate(this)\" >$duedatetypeoption</select>"
- +"<tr id='taskDuedate' style='display:$duedateDisplayable;'><th class='h'>时间</th><td style='padding-left:10px;'>"
- +"<input name='days' type='number' style='width:15%' value='$days'>天"
- +"<input name='hours' style='width:15%' type='number' value='$hours'>时"
- +"<input name='minutes' style='width:15%' type='number' value='$minutes'>分"
- +"</td></tr>"
- +"<tr id='rejectnodeoption'><th>退回处理</th><td><select>$rejectnodeoption</select></td></tr>"
- +"<tr><th class='h'>系统消息回执</th><td><input name='messagereceipt' type='checkbox' value='1' $taskmessagereceipt></td></tr>"
- +"<tr><th>显示名称</th><td><input name='displayName' type='text' value='$displayName'></td></tr>"
- /// 再增加编辑 "前置服务"、"后置服务" -- 临时实现 并行 的一票否决,后置服务终止掉其他人的待办。Lin
- +"<tr><th>前置服务</th><td><input name='Bservice_name' type='text' value='$Bservice_name'></td></tr>"
- +"<tr><th>后置服务</th><td><input name='Aservice_name' type='text' value='$Aservice_name'></td></tr>"
- ///
- +"<tr><th colspan='2'>$button</td></th>"
- +"</table>"
- /* 再改,增加编辑 "前置服务"、"后置服务" -- 临时实现 并行 的一票否决,后置服务终止掉其他人的待办。Lin
- this.setValue(["message_title","message_content","step","name","psyj_xh","pslk_xh","displayName"]) */
- this.setValue(["message_title","message_content","step","name","psyj_xh","pslk_xh","displayName",
- "Bservice_name","Aservice_name"])
- },
- changeScope:function(v){
- /* 再改为,对部门字典,显示属性 <tr id='taskChain',并置 taskChain.input.checked = true。Lin
- if(this.useTaskChain(v.value)){
- document.getElementById('scopeParam').style.display=v.value=='zdbm'?'':'none';
- if(document.getElementById('taskChain'))
- document.getElementById('taskChain').style.display='none';
- }else{
- document.getElementById('scopeParam').style.display='none';
- if(document.getElementById('taskChain')){
- document.getElementById('taskChain').style.display='none';
- document.getElementById('taskChain').getElementsByTagName('input').checked=false;
- }
- }
- */
- var taskChainByChgScope = document.getElementById('taskChain');
- if (this.useTaskChain(v.value)) {
- document.getElementById('scopeParam').style.display = (v.value == 'zdbm')? '' : 'none';
- taskChainByChgScope.style.display = '';
- taskChainByChgScope.getElementsByTagName('input')[0].checked = true; // 原语句有错,要加 [0]。Lin
- } else {
- document.getElementById('scopeParam').style.display = 'none';
- taskChainByChgScope.style.display = 'none';
- taskChainByChgScope.getElementsByTagName('input')[0].checked = false; // 原语句有错,要加 [0]。Lin
- }
- },
- switchToTransmit:function(){
- this.html=""
- +"<table>"
- +"<tr><th>节点名称</th><td><input name='name' type='text' value='$name'></td></tr>"
- +"<tr><th>办理人</th><td><select name='assignee' onchange=\""+
- /* 再改,共用 changeScope(。Lin
- "if(this.value=='zdbm'||this.value=='szbm'){"+
- "document.getElementById('scopeParam').style.display=this.value=='zdbm'?'':'none';"+
- "document.getElementById('taskChain').style.display='';"+
- "}else{"+
- "document.getElementById('scopeParam').style.display='none';"+
- "document.getElementById('taskChain').style.display='none';"+
- "document.getElementById('taskChain').getElementsByTagName('input').checked=false;"+
- "}"+
- */ "changeScope(this)"+
- "\">$options</select>"
- +"</td></tr>"
- +"<tr id='scopeParam' style='display:$displayable;'><th>选择部门</th><td><select name='scopeParam'>$bmList</select></td></tr>"
- +"<tr id='taskSubprocess' style='display:$usesubprocessdisplay;'><th>$usesubprocessname</th><td><input type='checkbox' $usesubprocesscheck onclick='control.clickTaskChainOrTaskSubprocess(this)'></td></tr>"
- +"<tr><th>消息标题</th><td><input name='message_title' type='text' value='$message_title'></td></tr>"
- +"<tr><th>消息内容</th><td><input name='message_content' type='text' value='$message_content'></td></tr>"
- +"<tr><th>节点序号</th><td><input name='step' type='number' value='$step'></td></tr>"
- +"<tr><th>限时</th><td style='width: 66%;'>"
- +"<select id='duedatetype' onchange=\"control.selectDueDate(this)\" >$duedatetypeoption</select>"
- +"<tr id='taskDuedate' style='display:$duedateDisplayable;'><th>时间</th><td>"
- +"<input name='days' type='number' style='width:15%' value='$days'>天"
- +"<input name='hours' style='width:15%' type='number' value='$hours'>小时"
- +"<input name='minutes' style='width:15%' type='number' value='$minutes'>分"
- +"</td></tr>"
- +"<tr><th>系统消息回执</th><td><input name='messagereceipt' type='checkbox' value='1' $taskmessagereceipt></td></tr>"
- +"<tr><th colspan='2'>$button</th></tr>"
- +"</table>"
- this.setValue(["message_title","message_content","step","name"])
- },
- switchToDecision:function(){
- this.html=""
- /* +"分支"*/
- +"<table>"
- +"<tr><th>名称</th><td><input name='name' type='text' value='$name' readonly></td></tr>" // 增加 readonly,名称被作为判断条件了。Lin
- /* 改,select 值改变时,设置 name 的默认值。并改写图标的 style。Lin
- +"<tr><th>分支条件</th><td><select onchange=\"if(this.selectedIndex==0){document.getElementById('control_variable').style.display=''}else{document.getElementById('control_variable').style.display='none';document.getElementById('foreachCheckBox').checked=false;}\" name='key'>$options</select></td></tr>" */
- +"<tr><th>分支条件</th><td><select onchange=\"if(this.selectedIndex==0){document.getElementById('control_variable').style.display='';$('[name=name]').val('并行');control.wrDecStyle(0,'并行');}else{document.getElementById('control_variable').style.display='none';document.getElementById('foreachCheckBox').checked=false;$('[name=name]').val(control.rdDecDictPlayDesc(this.value));control.wrDecStyle(this.selectedIndex,this.value);}\" name='key'>$options</select></td></tr>"
- +"<tr id='control_variable' style='display:$displayable;'><th>分支数量可变</th><td><input id='foreachCheckBox' type='checkbox' value='1' $isForeach /></td></tr>"
- +"<tr><th colspan='2'>$button</th></tr>"
- +"</table>"
- this.setValue(["name"])
- },
- switchToFork:function(){
- this.html=""
- /* +"并行"*/
- +"<table>"
- +"<tr><th>名称</th><td><input name='name' type='text' value='$name' readonly></td></tr>" // 增加 readonly,名称被作为判断条件了。Lin
- /* 改,select 值改变时,置 name 的默认值。并改写图标的 style。Lin
- +"<tr><th>分支条件</th><td><select class='s' onchange=\"if(this.selectedIndex==0){document.getElementById('control_variable').style.display=''}else{document.getElementById('control_variable').style.display='none';document.getElementById('foreachCheckBox').checked=false;}\" name='key'>$options</select></td></tr>" */
- +"<tr><th>分支条件</th><td><select class='s' onchange=\"if(this.selectedIndex==0){document.getElementById('control_variable').style.display='';$('[name=name]').val('并行');control.wrDecStyle(0,'并行');}else{document.getElementById('control_variable').style.display='none';document.getElementById('foreachCheckBox').checked=false;$('[name=name]').val(control.rdDecDictPlayDesc(this.value));control.wrDecStyle(this.selectedIndex,this.value);}\" name='key'>$options</select></td></tr>"
- +"<tr id='control_variable' style='display:$displayable;'><th>分支数量可变</th><td><input id='foreachCheckBox' type='checkbox' value='1' $isForeach /></td></tr>"
- +"<tr><th colspan='2'>$button</th></tr>"
- +"</table>"
- this.setValue(["name"])
- },
- switchToForeach:function(){
- this.html=""
- +"可变" // +"可变并行"。Lin
- +"<table>"
- +"<tr><th>名称</th><td><input name='name' type='text' value='$name' readonly></td></tr>" // 增加 readonly,名称被作为判断条件了。Lin
- /* 改,select 值改变时,置 name 的默认值。并改写图标的 style。Lin
- +"<tr><th>分支条件</th><td><select onchange=\"if(this.selectedIndex==0){document.getElementById('control_variable').style.display=''}else{document.getElementById('control_variable').style.display='none';document.getElementById('foreachCheckBox').checked=false;}\" name='key'>$options</select></td></tr>" */
- +"<tr><th>分支条件</th><td><select onchange=\"if(this.selectedIndex==0){document.getElementById('control_variable').style.display='';$('[name=name]').val('并行');control.wrDecStyle(0,'并行');}else{document.getElementById('control_variable').style.display='none';document.getElementById('foreachCheckBox').checked=false;$('[name=name]').val(control.rdDecDictPlayDesc(this.value));control.wrDecStyle(this.selectedIndex,this.value);}\" name='key'>$options</select></td></tr>"
- +"<tr id='control_variable' style='display:$displayable;'><th>分支数量可变</th><td><input id='foreachCheckBox' type='checkbox' value='1' $isForeach /></td></tr>"
- +"<tr><th colspan='2'>$button</th></tr>"
- +"</table>"
- this.setValue(["name"])
- },
- switchToEnd:function(){
- this.html=""
- +"<table>"
- +"<tr><th style='padding:0 5px;'>同意标题</th><td><input name='agree_message_title' type='text' value='$agree_message_title'></td></tr>"
- +"<tr><th>同意内容</th><td><input name='agree_message_content' type='text' value='$agree_message_content'></td></tr>"
- +"<tr><th>退回标题</th><td><input name='reject_message_title' type='text' value='$reject_message_title'></td></tr>"
- +"<tr><th>退回内容</th><td><input name='reject_message_content' type='text' value='$reject_message_content'></td></tr>"
- +"$finishService"
- +"<tr><th colspan='2'>$button</th></tr>"
- +"</table>"
- this.setValue(["agree_message_title","agree_message_content","reject_message_title","reject_message_content"])
- //加载节点数据
- //添加保存按钮
- //加载本地数据
- },
- switchToSubprocess:function(){
- this.html=""
- +"<table>"
- +"<tr><th>子流程</th><td><input name='subprocesskey' type='text' value='$subprocesskey'></td></tr>"
- +"<tr><th>类型</th><td>$subprocesstype</td></tr>"
- +"<tr><th colspan='2'>$button</th></tr>"
- +"</table>";
- this.setValue(["subprocesskey"])
- },
- switchToStart:function(){
- this.html=""
- +"<table>"
- +"<tr><th>审核处理者</th><td><input id='secondpersion' type='checkbox' $secondpersionchecked /></td></tr>"
- // +"<tr><th>处理者:</th><td><select name='assignee' onchange=\"control.changeScope(this)\">$options</select>"
- // +"</td></tr>"
- +"<tr id='scopeParam' style='display:$displayable;'><th>选择部门</th><td><select name='scopeParam'>$bmList</select></td></tr>"
- +"<tr><th colspan='2'>$button</th></tr>"
- +"</table>";
- this.setValue([]);
- },
- switchToJoin:function(){
- this.html=""
- +"<table>"
- +"<tr><th>汇签确认</th><td><input name='confirmthis' type='checkbox' $confirmthischecked/></td></tr>"
- +"<tr><th>办理人</th><td><select name='assignee' onchange=\"control.changeScope(this)\">$options</select>"
- +"</td></tr>"
- +"<tr id='scopeParam' style='display:$displayable;'><th>选择部门</th><td><select name='scopeParam'>$bmList</select></td></tr>"
- // +"<tr id='taskChain' style='display:$taskChainDisplayable;'><th>部门内审核:</th><td><input type='checkbox' $taskChainCheck onclick='control.clickTaskChainOrTaskSubprocess(this)'/></td></tr>"
- // +"<tr id='taskSubprocess' style='display:$usesubprocessdisplay;'><th class='h'>$usesubprocessname</th><td><input type='checkbox' $usesubprocesscheck onclick='control.clickTaskChainOrTaskSubprocess(this)'></td></tr>"
- // +"<tr><th>消息标题:</th><td><input name='message_title' type='text' value='$message_title'></td></tr>"
- // +"<tr><th>消息内容:</th><td><input name='message_content' type='text' value='$message_content'></td></tr>"
- // +"<tr><th>节点序号:</th><td><input name='step' type='number' value='$step'></td></tr>"
- // +"<tr><th>指定序号:</th><td><input name='bgbj_xh' type='number' value='$bgbj_xh'></td></tr>"
- // +"$finishService"
- // +"<tr><th>限时:</th><td style='width: 66%;'>"
- // +"<select id='duedatetype' onchange=\"control.selectDueDate(this)\" >$duedatetypeoption</select>"
- // +"<tr id='taskDuedate' style='display:$duedateDisplayable;'><th class='h'>时间:</th><td style='padding-left:10px;'>"
- // +"<input name='days' type='number' style='width:15%' value='$days'>天"
- // +"<input name='hours' style='width:15%' type='number' value='$hours'>时"
- // +"<input name='minutes' style='width:15%' type='number' value='$minutes'>分"
- // +"</td></tr>"
- // +"<tr id='rejectnodeoption'><th>退回处理</th><td><select>$rejectnodeoption</select></td></tr>"
- // +"<tr><th class='h'>系统消息回执:</th><td><input name='messagereceipt' type='checkbox' value='1' $taskmessagereceipt></td></tr>"
- +"<tr><th colspan='2'>$button</td></th>"
- +"</table>"
- this.setValue([])
- // this.setValue(["message_title","message_content","step","name","bgbj_xh"])
- },
- setValue:function(keys){
- for (var i=0;i<keys.length;i++) {
- // console.log("~key: "+keys[i]+" ~value: "+this.json[keys[i]])
- this.html=this.html.replace("$"+keys[i],this.json[keys[i]]||"")
- }
- this.html=this.html.replace("$button",this.saveButton);
- this.html=this.html+this.closeButton
- },
- buildingValue:function(key,data,dafauleValue){
- /* 再增加 <option>请选择</option> -- 原来选了之后,就不能清空了。Lin
- * 再,先不改,TaskAsg 里写死了节点一定要有字典(办理人) -- 升级为 JBPM5 时再弄
- */
- var result="";
- var inList=false
- if(key=="TASK_scopeParam_option"){
- for (var i=0;i<data.length;i++) {
- result+="<option value='"+data[i].bmid+"' "
- +(dafauleValue==data[i].bmid?"selected":"")
- +">"+data[i].mc+"</option>"
- }
- return result;
- }
- if(key=="Start_dictionary_option"){
- for(var i=0;i<data.length;i++){
- if(data[i].name==dafauleValue){inList=true}
- result+="<option "+((data[i].name==dafauleValue)?"selected":"")+">"+data[i].name+"</option>"
- }
- /* 再去掉,都增加 <option>请选择</option> 了 -- 原来选了之后,就不能清空了。Lin
- * 再,先不去掉,TaskAsg 里写死了节点一定要有字典(办理人) -- 升级为 JBPM5 时再弄
- */
- result=(result.indexOf("selected")==-1)?("<option >"+(dafauleValue?dafauleValue:"请选择")+"</option>"+result):(result);
- if(!inList&&dafauleValue){alert(dafauleValue+"不存在于字典")}
- return result;
- }
- if(key=="TASK_sfsxps_option"){
- for(var i=0;i<data.length;i++){
- if(data[i].name==dafauleValue){inList=true}
- result+="<option value=\""+data[i].value+"\""+((data[i].value==dafauleValue)?"selected":"")+">"+data[i].name+"</option>"
- }
- return result;
- }
- /// 增加 是否重做节点、是否执行节点。Lin
- if(key=="TASK_sfRedo_option"){
- for(var i=0;i<data.length;i++){
- if(data[i].name==dafauleValue){inList=true}
- result+="<option value=\""+data[i].value+"\""+((data[i].value==dafauleValue)?"selected":"")+">"+data[i].name+"</option>"
- }
- return result;
- }
- if(key=="TASK_sfRun_option"){
- for(var i=0;i<data.length;i++){
- if(data[i].name==dafauleValue){inList=true}
- result+="<option value=\""+data[i].value+"\""+((data[i].value==dafauleValue)?"selected":"")+">"+data[i].name+"</option>"
- }
- return result;
- }
- ///
- if(key=="TASK_dictionary_option"){
- for(var i=0;i<data.length;i++){
- if(data[i].name==dafauleValue){inList=true}
- /* 再改为显示描述,字典的 name("所在部门") 分开为 name("szbm") 和 desc("所在部门") 了。Lin
- result+="<option "+((data[i].name==dafauleValue)?"selected":"")+">"+data[i].name+"</option>"
- */ result += "<option value='"+ data[i].name +"' "+ ((data[i].name==dafauleValue)?"selected":"") +">"+ data[i].desc +"</option>"
- }
- /* 再改为显示描述,字典的 name("所在部门") 分开为 name("szbm") 和 desc("所在部门") 了。Lin
- result=(result.indexOf("selected")==-1)?("<option >"+(dafauleValue?dafauleValue:"请选择")+"</option>"+result):(result);
- */
- /* 再去掉,都增加 <option>请选择</option> 了 -- 原来选了之后,就不能清空了。Lin
- * 再,先不去掉,TaskAsg 里写死了节点一定要有字典(办理人) -- 升级为 JBPM5 时再弄
- */
- result = (result.indexOf("selected")==-1)? ("<option>请选择</option>"+ result) : result;
- // console.log(data)
- if(!inList&&dafauleValue){alert(dafauleValue+"不存在于字典")}
- return result;
- }
- if(key=="DECISION_key_option"){
- result="<option></option>";
- for(var i=0;i<data.length;i++){
- if(data[i].name==dafauleValue){inList=true}
- if(dafauleValue==data[i].name){
- /* 再改为显示描述,字典的 name("所在部门") 分开为 name("szbm") 和 desc("所在部门") 了。Lin
- result+="<option selected >"+data[i].name+"</option>";
- */ result+="<option value='"+ data[i].name +"' selected >"+data[i].desc+"</option>";
- continue;
- }
- /* 再改为显示描述,字典的 name("所在部门") 分开为 name("szbm") 和 desc("所在部门") 了。Lin
- result+="<option>"+data[i].name+"</option>"
- */ result+="<option value='"+ data[i].name +"'>"+ data[i].desc +"</option>"
- }
- if(!inList&&dafauleValue){alert(dafauleValue+"不存在于字典")}
- return result;
- }else if(key=="duedatetypeoption"){
- var result="";
- for(var i=0;i<data.length;i++){
- if(dafauleValue==data[i].value){
- result+="<option selected value='"+data[i].value+"'>"+data[i].name+"</option>";
- continue;
- }
- result+="<option value='"+data[i].value+"'>"+data[i].name+"</option>"
- }
- return result;
- }else if(key=="TASK_rejectnode_option"){
- var result="";
- result="<option></option>";
- var allnode= demo.$nodeData
- for(var key in allnode){
- if(allnode[key].realtype=="task"&&this.json.id!=key){
- result+='<option value="'+key+'" '
- result+=(key==this.json.rejectnode)?"selected":""
- result+='>' +allnode[key].name+"</option>"
- }
- }
- console.log(result)
- return result;
- }
- },
- clickTaskChainOrTaskSubprocess:function(checkbox){
- //保存状态
- var status=checkbox.checked
- // 清除其他选中状态
- // if(status)
- // {
- // document.getElementById("taskChain").getElementsByTagName("input")[0].checked=false;
- // document.getElementById("taskSubprocess").getElementsByTagName("input")[0].checked=false;
- // }
- //
- // checkbox.checked=status;
- },
- selectDueDate:function(selecteElement){
- if(selecteElement.value==0){
- document.getElementById("taskDuedate").style.display="none"
- }else{
- document.getElementById("taskDuedate").style.display=""
- }
- }
- }
|