control.js 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020
  1. /*
  2. * control.show(id);
  3. *属性设置框
  4. */
  5. var control={
  6. //临时AJAX数据
  7. close:true,
  8. closeButton:"<div id='closeBtn' onclick='control.hidden()'></div>",
  9. temp:null,
  10. setFieldData:null,
  11. $dom:$("#control"),
  12. /// 增加,读取分支字典下拉列表所选字典的 playDesc。lin
  13. // 为设置分支属性页面里的 "名称" 录入框的默认值
  14. rdDecDictPlayDesc:function(selVal) {
  15. for (var i= 0; i < this.temp.length; i ++) {
  16. if (selVal == this.temp[i].name) {
  17. return this.temp[i].playDesc;
  18. }
  19. }
  20. return "";
  21. },
  22. ///
  23. /// 再增加,刷新 "分支"、"并行"、"可变" 图标样式。Lin
  24. wrDecStyle:function(selIdx, selval) {
  25. var dom = demo.$nodeDom[this.json.id];
  26. var tableB = dom.children("table").children("tbody").children("tr").children("td").children("b");
  27. if (selIdx == 0) {
  28. // <div class="GooFlow_item node_decision"。Lin
  29. dom.removeClass("node_decision");
  30. dom.addClass("node_fork");
  31. // <b class="ico_node2"。Lin
  32. tableB.removeClass("ico_node2");
  33. tableB.addClass("ico_fork2");
  34. // 刷新 "分支" 框里的名称。Lin
  35. dom.children("div.span")[0].innerHTML=selval;
  36. } else {
  37. // <div class="GooFlow_item node_fork"。Lin
  38. dom.removeClass("node_fork");
  39. dom.addClass("node_decision");
  40. // <b class="ico_fork2"。Lin
  41. tableB.removeClass("ico_fork2");
  42. tableB.addClass("ico_node2");
  43. // 刷新 "分支" 框里的名称。Lin
  44. dom.children("div.span")[0].innerHTML=control.rdDecDictPlayDesc(selval);
  45. }
  46. },
  47. ///
  48. //设置框
  49. 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>",
  50. dragDom:function(dom){
  51. var e=window.event;
  52. if(e.target.nodeName=="INPUT"||e.target.nodeName=="SELECT"){return;}
  53. // 获取鼠标初始位置
  54. var lastmouseX=e.pageX
  55. var lastmouseY=e.pageY
  56. document.onmousemove=function(){
  57. var e=window.event
  58. // 获取最新鼠标位置
  59. var aa=e.pageX
  60. var bb=e.pageY
  61. // console.log("xxx "+aa)
  62. var left=parseInt(dom.style.left)
  63. var top=parseInt(dom.style.top)
  64. // 根据鼠标新旧位置差值 移动
  65. dom.style.left=left+e.pageX-lastmouseX+"px"
  66. dom.style.top=top+e.pageY-lastmouseY+"px"
  67. // 保存最新鼠标位置
  68. lastmouseX=aa
  69. lastmouseY=bb
  70. }
  71. document.onmouseup=function(dom){
  72. this.onmousemove=null
  73. }
  74. },
  75. // 保存按钮
  76. 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>",
  77. // 保存程序
  78. save:function(){
  79. // var data=this.$dom[0].getElementsByTagName("input")
  80. //
  81. // for (var i=0;i<data.length;i++) {
  82. // var name=data[i].name;
  83. // var value=data[i].value
  84. // if(name==""||name==null){continue}
  85. // this.json[name]=value;
  86. // console.log(name+" " +value)
  87. // }
  88. var data=this.$dom[0].querySelectorAll("input[type=text],input[type=number]")
  89. for (var i=0;i<data.length;i++) {
  90. var name=data[i].name;
  91. var value=data[i].value
  92. if(name==""||name==null){continue}
  93. this.json[name]=value;
  94. console.log(name+" " +value)
  95. }
  96. if(this.json.realtype=="start"){
  97. if(this.$dom[0].querySelector("#secondpersion")){
  98. var checked=this.$dom[0].querySelector("#secondpersion").checked
  99. if(checked){
  100. this.json.secondpersion=1;
  101. }else{
  102. this.json.secondpersion=0;
  103. }
  104. }
  105. }
  106. if(this.json.realtype=="task"){
  107. var selects= this.$dom[0].getElementsByTagName("select")[0]
  108. var index=selects.selectedIndex
  109. var value=selects.options[index].value
  110. this.json.assignee=value;
  111. if(this.json.assignee=="zdbm"){ // =="指定部门")。Lin
  112. var selects2= this.$dom[0].getElementsByTagName("select")[1]
  113. var index2=selects2.selectedIndex
  114. var value2=selects2.options[index2].value
  115. this.json.scopeParam=value2;
  116. }
  117. else{
  118. delete this.json.scopeParam
  119. }
  120. this.json.duedatetype=document.getElementById("duedatetype").value
  121. /* 再改,恢复 <tr id='taskChain'。Lin
  122. //document.getElementById("taskChain").getElementsByTagName("input")[0].checked&&.
  123. if(this.useTaskChain(this.json.assignee)){
  124. */ if (document.getElementById("taskChain").getElementsByTagName("input")[0].checked) {
  125. this.json.taskChain=1;
  126. }else{
  127. this.json.taskChain=0;
  128. }
  129. if(document.getElementById("taskSubprocess").getElementsByTagName("input")[0].checked){
  130. this.json.usesubprocess=1
  131. }else{
  132. this.json.usesubprocess=0;
  133. }
  134. if(this.$dom[0].querySelector("input[name=messagereceipt]").checked){
  135. this.json.messagereceipt=1
  136. }else{
  137. this.json.messagereceipt=0
  138. }
  139. this.json.rejectnode=this.$dom[0].querySelector("#rejectnodeoption select").value
  140. this.json.sfsxps=this.$dom[0].querySelector("#sfsxpsoption select").value
  141. this.json.sfRedo = this.$dom[0].querySelector("#sfRedooption select").value; // 增加 是否重做节点。Lin
  142. this.json.sfRun = this.$dom[0].querySelector("#sfRunoption select").value; // 增加 是否执行节点。Lin
  143. }
  144. if(this.json.realtype=="task"||this.json.realtype=="end"){
  145. var finishServices=document.querySelectorAll(".finishService")
  146. var finishServiceData=[]
  147. for(var i=0;i<finishServices.length;i++){
  148. if(!finishServices[i].checked)continue;
  149. var d=eval("("+finishServices[i].getAttribute("name")+")")
  150. finishServiceData.push(d);
  151. }
  152. var setFieldSelect=document.querySelectorAll(".setFieldSelect");
  153. if(setFieldSelect.length>0){
  154. var aa={"name":"setField","desc":"改变对象属性值","type":"agree",param:{}};
  155. for(var i=0;i<setFieldSelect.length;i++){
  156. var n=setFieldSelect[i].getAttribute("name");
  157. var v=setFieldSelect[i].value;
  158. if(!v)continue;
  159. aa.param[n]=v;
  160. }
  161. if("{}"!=JSON.stringify(aa.param)){
  162. finishServiceData.push(aa);
  163. }
  164. }
  165. this.json.finishService=JSON.stringify(finishServiceData);
  166. }
  167. if(this.json.realtype=="transmit"){
  168. var selects= this.$dom[0].getElementsByTagName("select")[0]
  169. var index=selects.selectedIndex
  170. var value=selects.options[index].value
  171. this.json.assignee=value;
  172. if(this.json.assignee=="zdbm"){ // =="指定部门")。Lin
  173. var selects2= this.$dom[0].getElementsByTagName("select")[1]
  174. var index2=selects2.selectedIndex
  175. var value2=selects2.options[index2].value
  176. this.json.scopeParam=value2;
  177. }
  178. else{
  179. delete this.json.scopeParam
  180. }
  181. this.json.duedatetype=document.getElementById("duedatetype").value
  182. if(this.$dom[0].querySelector("input[name=messagereceipt]").checked){
  183. this.json.messagereceipt=1
  184. }else{
  185. this.json.messagereceipt=0;
  186. }
  187. }
  188. if (this.json.realtype == "decision" || this.json.realtype == "fork" || this.json.realtype == "foreach") {
  189. var selects = this.$dom[0].getElementsByTagName("select")[0]
  190. var index = selects.selectedIndex
  191. console.log(document.getElementById("foreachCheckBox").checked)
  192. // 用户选中值
  193. var option = selects.options[index].value
  194. // 定义分支条件
  195. var transition_name=[];
  196. // 搜索分支条件
  197. for (var i= 0; i < this.temp.length; i ++) {
  198. if (option == this.temp[i].name) {
  199. /* 再改,去掉 DictDecB -- 把 <dec name= val= /> 改为 <fork></fork>。Lin
  200. transition_name = this.temp[i].decVal // .transition_name。Lin
  201. */ transition_name = this.temp[i].forkValList
  202. break;
  203. }
  204. }
  205. //检查checkedbox
  206. if (document.getElementById("foreachCheckBox").checked) {
  207. this.json.type = "foreach";
  208. this.json.realtype = "foreach"
  209. this.json.condition_name = transition_name;
  210. this.json.key = option;
  211. //不勾选的时候
  212. } else {
  213. // 改变分支类型:空:并行、非空:分支
  214. if (option == "") {
  215. this.json.type = "fork"; // 英文用得不好,fork = 分叉。Lin
  216. this.json.realtype = "fork"
  217. this.json.condition_name = transition_name;
  218. removeDecisionLine(this.json.id)
  219. } else {
  220. this.json.type = "node";
  221. this.json.realtype = "decision"
  222. //条件为:(搜索到分支条件|| 用户选择为空)&&用户选中值和原本值不同
  223. if ((transition_name.length > 0 || option == "") && (option != this.json.key)) {
  224. removeDecisionLine(this.json.id)
  225. //设置分支条件
  226. this.json.condition_name = transition_name;
  227. initDecisionLine($("#"+this.json.id))
  228. }
  229. }
  230. this.json.key = option;
  231. }
  232. if (this.json.name == "分支" || this.json.name == "并行" || this.json.name == "可变") { // == "可变并行")。Lin
  233. if (this.json.realtype == "decision")
  234. this.json.name="分支"
  235. if (this.json.realtype == "fork")
  236. this.json.name="并行"
  237. if (this.json.realtype == "foreach")
  238. this.json.name="可变" // ="可变并行"。Lin
  239. }
  240. /// 增加。刷新 "分支"、"并行"、"可变" style。Lin
  241. if (this.json.realtype == "decision")
  242. control.wrDecStyle(index, option);
  243. else if (this.json.realtype == "fork")
  244. control.wrDecStyle(index, "并行");
  245. else
  246. control.wrDecStyle(index, "可变");
  247. ///
  248. }
  249. if(this.json.realtype=="subprocess"){
  250. }
  251. if (this.json.realtype == "join") {
  252. //设置分支条件
  253. var confirmthis= this.$dom[0].querySelector("[name=confirmthis]").checked;
  254. this.json.confirmthis = confirmthis? "1" : "0"
  255. this.json.service_dest = "joinSure"; // = "sureJoin" < "env_confirm"。Lin
  256. this.json.service_name = "sureJoin"; // = "env_confirm"。Lin
  257. if (confirmthis) {
  258. this.json.assignee = this.$dom[0].querySelector("select[name=assignee]").value;
  259. if (this.json.assignee == "zdbm")
  260. this.json.scopeParam = this.$dom[0].querySelector("select[name=scopeParam]").value;
  261. this.json.taskChain = 0;
  262. this.json.service_dest = "joinSure"; // = "sureJoin" < "env_confirm"。Lin
  263. this.json.service_name = "sureJoin"; // = "env_confirm"。Lin
  264. this.json.condition_name = []
  265. var addcondition=true
  266. for (var key in demo.$lineData) {
  267. if (demo.$lineData[key].from == this.json.id)
  268. addcondition = false;
  269. }
  270. if (addcondition)
  271. this.json.condition_name = ["补发",""]
  272. removeDecisionLine(this.json.id);
  273. initDecisionLine($("#"+this.json.id));
  274. }
  275. }
  276. demo.setName(this.json.id,this.json.name,"node")
  277. this.hidden()
  278. },
  279. json:null,
  280. html:"",
  281. // 隐藏设置框
  282. hidden:function(){
  283. this.$dom.fadeOut(200)
  284. this.close=true
  285. },
  286. // 显示设置框-
  287. show:function(nodeData){
  288. this.$dom=$("#control");
  289. // 清除缓存文档
  290. this.$dom.html("")
  291. this.json=nodeData;
  292. // 获取主要信息
  293. this.$dom.append(this.getMain(nodeData.realtype))
  294. // 闪亮出现设置框
  295. this.$dom.fadeIn(0)
  296. this.html="";
  297. },
  298. // 主体信息
  299. getMain:function(nodeType){
  300. switch (nodeType){
  301. case "task":
  302. this.switchToTask();
  303. break;
  304. case "transmit":
  305. this.switchToTransmit();
  306. break;
  307. case "decision":
  308. this.switchToDecision();
  309. break;
  310. case "fork":
  311. this.switchToFork();
  312. break;
  313. case "end":
  314. this.switchToEnd();
  315. break;
  316. case "foreach":
  317. this.switchToForeach();
  318. break;
  319. case "subprocess":
  320. this.switchToSubprocess();
  321. break;
  322. case "start":
  323. this.switchToStart();
  324. break;
  325. case "join":
  326. this.switchToJoin();
  327. break;
  328. default :
  329. this.html="不用设置";
  330. }
  331. this.receiveData()
  332. return this.html
  333. },
  334. //判断字典是否使用部门内审核
  335. useTaskChain:function(assignee){
  336. /* 重写,改为根据 <dict type= 判断。Lin
  337. var a=["szbm","zdbm","dwld"]
  338. for(var i=0;i<a.length;i++){
  339. if(a[i]==assignee){
  340. return true;
  341. }
  342. }
  343. if(assignee && assignee.indexOf("部门")>-1){ // 增加非空判断 assignee &&。Lin
  344. return true;
  345. }
  346. */
  347. var dictList = this.temp.dictionaryData;
  348. for (var i=0;i<dictList.length;i++) {
  349. if (dictList[i].name == assignee)
  350. return (dictList[i].type == 5); // DictC.DICT_bpmDeptHandlerType。Lin
  351. }
  352. return false
  353. },
  354. // ajax获取的所有数据 options
  355. receiveData:function(){
  356. // //同步接收
  357. $.ajaxSetup({async:false})
  358. if(this.json.realtype=="task"||this.json.realtype=="end"){
  359. var finishService=[{name:"agreeToUse",desc:"完成后启用",type:"agree"}]
  360. var finishServiceStr="";
  361. var finishServiceData=[];
  362. if(this.json.finishService)
  363. finishServiceData=eval("("+this.json.finishService+")");
  364. var json_agreeToUseData;
  365. var json_setFieldData;
  366. for(var j=0;j<finishServiceData.length;j++){
  367. if(finishServiceData[j].name=="agreeToUse"){
  368. json_agreeToUseData=finishServiceData[j];
  369. }else if(finishServiceData[j].name=="setField"){
  370. json_setFieldData=finishServiceData[j];
  371. }
  372. }
  373. for(var i=0;i<finishService.length;i++){
  374. var cc=finishService[i];
  375. var checkIt=json_agreeToUseData?true: false;
  376. finishServiceStr+="<tr><th>"+cc.desc+"</th><td><input class=\"finishService\" "+(checkIt?"checked":"")+" name=\'"+JSON.stringify(cc)+"\' type=\"checkbox\"/></td></tr>"
  377. }
  378. if(this.setFieldData){
  379. for(var i=0;i<this.setFieldData.length;i++){
  380. var f=this.setFieldData[i];
  381. var op="<option value=\"\"></option>";
  382. var currentValue;
  383. if(json_setFieldData){
  384. currentValue=json_setFieldData.param[f.field];
  385. }
  386. for(var j=0;j<f.codebook.length;j++){
  387. var codebookValue=f.codebook[j][0];
  388. var checkId=(codebookValue==currentValue)?true:false;
  389. op+="<option value=\""+codebookValue+"\" "+(checkId?"selected":"")+">"+f.codebook[j][1]+"</option>";
  390. }
  391. finishServiceStr+="<tr><th>"+f.desc+"</th><td><select name=\""+f.field+"\" class=\"setFieldSelect\">"+op+"</select></td></tr>";
  392. }
  393. }
  394. this.html=this.html.replace("$finishService",finishServiceStr);
  395. }
  396. //task
  397. if(this.json.realtype=="task"||this.json.realtype=="transmit"||this.json.realtype=="join"){
  398. /*
  399. */
  400. /* 再改,去掉 thisAppName。Lin
  401. var url=$("#scopeDictionaryURL")[0].value + '&thisAppName=' + document.getElementById("thisAppName").value;
  402. */ var url=$("#scopeDictionaryURL")[0].value;
  403. var fileName=$("#fileName").val()
  404. // $.post(url,{
  405. // 'fileName':fileName
  406. // },function(data,status){
  407. // var result=new DOMParser().parseFromString(data,"text/html")
  408. // window.self.control.temp=result
  409. // })
  410. $.ajax({
  411. type:"post",
  412. url:url,
  413. data:{'fileName':fileName},
  414. async:false,
  415. dataType: "json", // 再增加,不通过 lc_scopeDictionary.jsp 中转。Lin
  416. success:function(data){
  417. /* 再改,不通过 lc_scopeDictionary.jsp 中转。Lin
  418. var result=new DOMParser().parseFromString(data,"text/html")
  419. window.self.control.temp=result
  420. */ window.self.control.temp = data;
  421. }
  422. });
  423. var aa=this.json.assignee;
  424. if(aa)
  425. this.json.assignee=aa.replace(/@env.|@/g,"")
  426. console.log(this.temp)
  427. if(this.json.assignee=="zdbm"){ // =="指定部门")。Lin
  428. this.html=this.html.replace("$displayable","");
  429. }
  430. /* 再改,不通过 lc_scopeDictionary.jsp 中转。Lin
  431. var bmList=eval( this.temp.getElementById("bmListData").value)
  432. */ var bmList = this.temp.bmListData;
  433. var bm=this.buildingValue("TASK_scopeParam_option",bmList,this.json.scopeParam)
  434. /* 再改,不通过 lc_scopeDictionary.jsp 中转。Lin
  435. var optionsList=eval( this.temp.getElementById("dictionaryData").value);
  436. */ var optionsList = this.temp.dictionaryData;
  437. var options=this.buildingValue("TASK_dictionary_option",optionsList,this.json.assignee)
  438. var usesubprocessdisplay="none";
  439. var usesubprocesscheck="";
  440. var usesubprocessname="";
  441. if(this.json.subprocess_key){
  442. usesubprocessdisplay=""
  443. usesubprocessname=this.json.subprocess_name;
  444. if(this.json.usesubprocess==1){
  445. usesubprocesscheck="checked"
  446. }
  447. }
  448. this.html=this.html.replace("$rejectnodeoption",this.buildingValue("TASK_rejectnode_option"));
  449. this.html=this.html.replace("$sfsxpsoption",this.buildingValue("TASK_sfsxps_option",[{name:"否",value:"0"},{name:"是",value:"1"}],this.json.sfsxps||0));
  450. /// 增加 是否重做节点、是否执行节点。Lin
  451. this.html=this.html.replace("$sfRedooption",this.buildingValue("TASK_sfRedo_option",[{name:"否",value:"0"},{name:"是",value:"1"}],this.json.sfRedo||0));
  452. this.html=this.html.replace("$sfRunoption",this.buildingValue("TASK_sfRun_option",[{name:"否",value:"0"},{name:"是",value:"1"}],this.json.sfRun||0));
  453. ///
  454. this.html=this.html.replace("$usesubprocessname",usesubprocessname)
  455. this.html=this.html.replace("$usesubprocessdisplay",usesubprocessdisplay)
  456. this.html=this.html.replace("$usesubprocesscheck",usesubprocesscheck)
  457. if(this.json.confirmthis){
  458. this.html=this.html.replace("$confirmthischecked","1"==this.json.confirmthis?"checked":"");
  459. }
  460. this.html=this.html.replace("$options",options)
  461. this.html=this.html.replace("$bmList",bm);
  462. var displayable=this.json.scopeParam?"":"none";
  463. this.html=this.html.replace("$displayable",displayable);
  464. /* 再改为,对部门字典,显示属性 <tr id='taskChain',且增加赋值 this.json.taskChain = 1。Lin
  465. var taskChainDisplayable=(this.useTaskChain(this.json.assignee))?'none':'none';
  466. */
  467. var taskChainDisplayable = 'none';
  468. if (this.useTaskChain(this.json.assignee)) {
  469. taskChainDisplayable = '';
  470. this.json.taskChain = 1;
  471. }
  472. this.html=this.html.replace("$taskChainDisplayable",taskChainDisplayable);
  473. if(this.json.taskChain&&this.json.taskChain==1){
  474. this.html=this.html.replace("$taskChainCheck","checked")
  475. }else{
  476. this.html=this.html.replace("$taskChainCheck","")
  477. }
  478. var duedatetypeoption="";
  479. duedateDisplayable="";
  480. duedatetypeoption=this.buildingValue("duedatetypeoption",[{name:"",value:"0"},{name:"退回",value:"1"},{name:"越过",value:"2"}],this.json.duedatetype||0)
  481. console.log(duedatetypeoption)
  482. //已选择退回。越过
  483. if(1==this.json.duedatetype||2==this.json.duedatetype){
  484. duedateDisplayable="";
  485. this.html=this.html.replace("$days",this.json.days?this.json.days:"0");
  486. this.html=this.html.replace("$hours",this.json.hours?this.json.hours:"0");
  487. this.html=this.html.replace("$minutes",this.json.minutes?this.json.minutes:"0");
  488. }else{
  489. duedateDisplayable="none"
  490. }
  491. var istaskmessagereceipt=""
  492. if(this.json.messagereceipt&&this.json.messagereceipt==1){
  493. istaskmessagereceipt="checked"
  494. }
  495. this.html=this.html.replace("$taskmessagereceipt", istaskmessagereceipt)
  496. this.html=this.html.replace("$duedatetypeoption",duedatetypeoption);
  497. this.html=this.html.replace("$duedateDisplayable",duedateDisplayable)
  498. }
  499. if(this.json.realtype=="decision"||this.json.realtype=="fork"||this.json.realtype=="foreach"){
  500. /*
  501. */
  502. /* 再改,去掉 thisAppName。Lin
  503. var url=$("#decisionDictionaryURL")[0].value+ '&thisAppName=' + document.getElementById("thisAppName").value;
  504. */ var url=$("#decisionDictionaryURL")[0].value;
  505. var fileName=$("#fileName").val()
  506. /* 改,不通过 lc_decisionDictionary.jsp 中转。Lin
  507. $.post(url,{'fileName':fileName},function(data,status){
  508. var result=new DOMParser().parseFromString(data,"text/html")
  509. window.self.control.temp=eval( result.getElementById("dictionaryData").value)
  510. })
  511. */
  512. $.ajax({
  513. type:"post",
  514. url:url,
  515. data:{'fileName':fileName},
  516. async:false,
  517. dataType: "json",
  518. success:function(data){
  519. window.self.control.temp = data;
  520. }
  521. });
  522. var options=this.buildingValue("DECISION_key_option",this.temp,this.json.key);
  523. this.html=this.html.replace("$displayable",this.json.realtype=="decision"?"none":"")
  524. this.html=this.html.replace("$isForeach",(this.json.realtype=="foreach"?"checked":""))
  525. this.html=this.html.replace("$options",options)
  526. /*
  527. */
  528. }
  529. if(this.json.realtype=="subprocess"){
  530. var subprocesstype="";
  531. if(this.json.subprocesstype){
  532. if(this.json.subprocesstype=="multiple"){
  533. subprocesstype="多个子流程";
  534. }
  535. }else{
  536. }
  537. this.html=this.html.replace("$subprocesstype",subprocesstype);
  538. }
  539. if(this.json.realtype=="start"){
  540. if(this.json.secondpersion&&this.json.secondpersion==1){
  541. this.html=this.html.replace("$secondpersionchecked","checked")
  542. }else{
  543. this.html=this.html.replace("$secondpersionchecked","")
  544. }
  545. //
  546. // var url=$("#scopeDictionaryURL")[0].value + '&thisAppName=' + document.getElementById("thisAppName").value;
  547. // var fileName=$("#fileName").val()
  548. // $.post(url,{
  549. // 'fileName':fileName
  550. // },function(data,status){
  551. // var result=new DOMParser().parseFromString(data,"text/html")
  552. // window.self.control.temp=result
  553. // })
  554. // var aa=this.json.assignee;
  555. // if(aa)
  556. // this.json.assignee=aa.replace(/@env.|@/g,"")
  557. // console.log(this.temp)
  558. // var bmList=eval( this.temp.getElementById("bmListData").value)
  559. // var bm=this.buildingValue("TASK_scopeParam_option",bmList,this.json.scopeParam)
  560. //
  561. // var optionsList=eval( this.temp.getElementById("dictionaryData").value);
  562. //
  563. // var options=this.buildingValue("Start_dictionary_option",optionsList,this.json.assignee)
  564. //
  565. // var usesubprocessdisplay="none";
  566. // var usesubprocesscheck="";
  567. // var usesubprocessname="";
  568. //
  569. // if(this.json.subprocess_key){
  570. // usesubprocessdisplay=""
  571. // usesubprocessname=this.json.subprocess_name;
  572. //
  573. // if(this.json.usesubprocess==1){
  574. // usesubprocesscheck="checked"
  575. // }
  576. // }
  577. // this.html=this.html.replace("$options",options)
  578. // this.html=this.html.replace("$bmList",bm);
  579. //
  580. // var displayable=this.json.scopeParam?"":"none";
  581. //
  582. // var taskChainDisplayable=(this.useTaskChain(this.json.assignee))?'':'none';
  583. // this.html=this.html.replace("$displayable",displayable);
  584. // this.html=this.html.replace("$taskChainDisplayable",taskChainDisplayable);
  585. // if(this.json.taskChain&&this.json.taskChain==1){
  586. // this.html=this.html.replace("$taskChainCheck","checked")
  587. // }else{
  588. // this.html=this.html.replace("$taskChainCheck","")
  589. // }
  590. }
  591. },
  592. switchToTask:function(){
  593. this.html=""
  594. +"<table>"
  595. +"<tr><th>节点名称</th><td><input name='name' type='text' value='$name'></td></tr>"
  596. +"<tr><th>办理人</th><td><select name='assignee' onchange=\"control.changeScope(this)\">$options</select>"
  597. +"</td></tr>"
  598. +"<tr id='scopeParam' style='display:$displayable;'><th>选择部门</th><td><select name='scopeParam'>$bmList</select></td></tr>"
  599. +"<tr id='taskChain' style='display:$taskChainDisplayable;'><th>按层级先后</th><td><input type='checkbox' $taskChainCheck onclick='control.clickTaskChainOrTaskSubprocess(this)'/></td></tr>"
  600. +"<tr id='taskSubprocess' style='display:$usesubprocessdisplay;'><th class='h'>$usesubprocessname</th><td><input type='checkbox' $usesubprocesscheck onclick='control.clickTaskChainOrTaskSubprocess(this)'></td></tr>"
  601. +"<tr><th>消息标题</th><td><input name='message_title' type='text' value='$message_title'></td></tr>"
  602. +"<tr><th>消息内容</th><td><input name='message_content' type='text' value='$message_content'></td></tr>"
  603. +"<tr><th>节点序号</th><td><input name='step' type='number' value='$step'></td></tr>"
  604. // +"<tr><th>指定序号:</th><td><input name='bgbj_xh' type='number' value='$bgbj_xh'></td></tr>"
  605. +"<tr><th>批示意见序号</th><td><input name='psyj_xh' type='number' value='$psyj_xh'></td></tr>"
  606. +"<tr><th>批示落款序号</th><td><input name='pslk_xh' type='number' value='$pslk_xh'></td></tr>"
  607. +"<tr id='sfsxpsoption'><th>是否手写批示</th><td><select>$sfsxpsoption</select></td></tr>"
  608. +"<tr id='sfRedooption'><th>是否重做节点</th><td><select>$sfRedooption</select></td></tr>" // 增加 是否重做节点。Lin
  609. +"<tr id='sfRunoption'><th>是否执行节点</th><td><select>$sfRunoption</select></td></tr>" // 增加 是否执行节点。Lin
  610. +"$finishService"
  611. +"<tr><th>限时</th><td style='width: 66%;'>"
  612. +"<select id='duedatetype' onchange=\"control.selectDueDate(this)\" >$duedatetypeoption</select>"
  613. +"<tr id='taskDuedate' style='display:$duedateDisplayable;'><th class='h'>时间</th><td style='padding-left:10px;'>"
  614. +"<input name='days' type='number' style='width:15%' value='$days'>天"
  615. +"<input name='hours' style='width:15%' type='number' value='$hours'>时"
  616. +"<input name='minutes' style='width:15%' type='number' value='$minutes'>分"
  617. +"</td></tr>"
  618. +"<tr id='rejectnodeoption'><th>退回处理</th><td><select>$rejectnodeoption</select></td></tr>"
  619. +"<tr><th class='h'>系统消息回执</th><td><input name='messagereceipt' type='checkbox' value='1' $taskmessagereceipt></td></tr>"
  620. +"<tr><th>显示名称</th><td><input name='displayName' type='text' value='$displayName'></td></tr>"
  621. /// 再增加编辑 "前置服务"、"后置服务" -- 临时实现 并行 的一票否决,后置服务终止掉其他人的待办。Lin
  622. +"<tr><th>前置服务</th><td><input name='Bservice_name' type='text' value='$Bservice_name'></td></tr>"
  623. +"<tr><th>后置服务</th><td><input name='Aservice_name' type='text' value='$Aservice_name'></td></tr>"
  624. ///
  625. +"<tr><th colspan='2'>$button</td></th>"
  626. +"</table>"
  627. /* 再改,增加编辑 "前置服务"、"后置服务" -- 临时实现 并行 的一票否决,后置服务终止掉其他人的待办。Lin
  628. this.setValue(["message_title","message_content","step","name","psyj_xh","pslk_xh","displayName"]) */
  629. this.setValue(["message_title","message_content","step","name","psyj_xh","pslk_xh","displayName",
  630. "Bservice_name","Aservice_name"])
  631. },
  632. changeScope:function(v){
  633. /* 再改为,对部门字典,显示属性 <tr id='taskChain',并置 taskChain.input.checked = true。Lin
  634. if(this.useTaskChain(v.value)){
  635. document.getElementById('scopeParam').style.display=v.value=='zdbm'?'':'none';
  636. if(document.getElementById('taskChain'))
  637. document.getElementById('taskChain').style.display='none';
  638. }else{
  639. document.getElementById('scopeParam').style.display='none';
  640. if(document.getElementById('taskChain')){
  641. document.getElementById('taskChain').style.display='none';
  642. document.getElementById('taskChain').getElementsByTagName('input').checked=false;
  643. }
  644. }
  645. */
  646. var taskChainByChgScope = document.getElementById('taskChain');
  647. if (this.useTaskChain(v.value)) {
  648. document.getElementById('scopeParam').style.display = (v.value == 'zdbm')? '' : 'none';
  649. taskChainByChgScope.style.display = '';
  650. taskChainByChgScope.getElementsByTagName('input')[0].checked = true; // 原语句有错,要加 [0]。Lin
  651. } else {
  652. document.getElementById('scopeParam').style.display = 'none';
  653. taskChainByChgScope.style.display = 'none';
  654. taskChainByChgScope.getElementsByTagName('input')[0].checked = false; // 原语句有错,要加 [0]。Lin
  655. }
  656. },
  657. switchToTransmit:function(){
  658. this.html=""
  659. +"<table>"
  660. +"<tr><th>节点名称</th><td><input name='name' type='text' value='$name'></td></tr>"
  661. +"<tr><th>办理人</th><td><select name='assignee' onchange=\""+
  662. /* 再改,共用 changeScope(。Lin
  663. "if(this.value=='zdbm'||this.value=='szbm'){"+
  664. "document.getElementById('scopeParam').style.display=this.value=='zdbm'?'':'none';"+
  665. "document.getElementById('taskChain').style.display='';"+
  666. "}else{"+
  667. "document.getElementById('scopeParam').style.display='none';"+
  668. "document.getElementById('taskChain').style.display='none';"+
  669. "document.getElementById('taskChain').getElementsByTagName('input').checked=false;"+
  670. "}"+
  671. */ "changeScope(this)"+
  672. "\">$options</select>"
  673. +"</td></tr>"
  674. +"<tr id='scopeParam' style='display:$displayable;'><th>选择部门</th><td><select name='scopeParam'>$bmList</select></td></tr>"
  675. +"<tr id='taskSubprocess' style='display:$usesubprocessdisplay;'><th>$usesubprocessname</th><td><input type='checkbox' $usesubprocesscheck onclick='control.clickTaskChainOrTaskSubprocess(this)'></td></tr>"
  676. +"<tr><th>消息标题</th><td><input name='message_title' type='text' value='$message_title'></td></tr>"
  677. +"<tr><th>消息内容</th><td><input name='message_content' type='text' value='$message_content'></td></tr>"
  678. +"<tr><th>节点序号</th><td><input name='step' type='number' value='$step'></td></tr>"
  679. +"<tr><th>限时</th><td style='width: 66%;'>"
  680. +"<select id='duedatetype' onchange=\"control.selectDueDate(this)\" >$duedatetypeoption</select>"
  681. +"<tr id='taskDuedate' style='display:$duedateDisplayable;'><th>时间</th><td>"
  682. +"<input name='days' type='number' style='width:15%' value='$days'>天"
  683. +"<input name='hours' style='width:15%' type='number' value='$hours'>小时"
  684. +"<input name='minutes' style='width:15%' type='number' value='$minutes'>分"
  685. +"</td></tr>"
  686. +"<tr><th>系统消息回执</th><td><input name='messagereceipt' type='checkbox' value='1' $taskmessagereceipt></td></tr>"
  687. +"<tr><th colspan='2'>$button</th></tr>"
  688. +"</table>"
  689. this.setValue(["message_title","message_content","step","name"])
  690. },
  691. switchToDecision:function(){
  692. this.html=""
  693. /* +"分支"*/
  694. +"<table>"
  695. +"<tr><th>名称</th><td><input name='name' type='text' value='$name' readonly></td></tr>" // 增加 readonly,名称被作为判断条件了。Lin
  696. /* 改,select 值改变时,设置 name 的默认值。并改写图标的 style。Lin
  697. +"<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>" */
  698. +"<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>"
  699. +"<tr id='control_variable' style='display:$displayable;'><th>分支数量可变</th><td><input id='foreachCheckBox' type='checkbox' value='1' $isForeach /></td></tr>"
  700. +"<tr><th colspan='2'>$button</th></tr>"
  701. +"</table>"
  702. this.setValue(["name"])
  703. },
  704. switchToFork:function(){
  705. this.html=""
  706. /* +"并行"*/
  707. +"<table>"
  708. +"<tr><th>名称</th><td><input name='name' type='text' value='$name' readonly></td></tr>" // 增加 readonly,名称被作为判断条件了。Lin
  709. /* 改,select 值改变时,置 name 的默认值。并改写图标的 style。Lin
  710. +"<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>" */
  711. +"<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>"
  712. +"<tr id='control_variable' style='display:$displayable;'><th>分支数量可变</th><td><input id='foreachCheckBox' type='checkbox' value='1' $isForeach /></td></tr>"
  713. +"<tr><th colspan='2'>$button</th></tr>"
  714. +"</table>"
  715. this.setValue(["name"])
  716. },
  717. switchToForeach:function(){
  718. this.html=""
  719. +"可变" // +"可变并行"。Lin
  720. +"<table>"
  721. +"<tr><th>名称</th><td><input name='name' type='text' value='$name' readonly></td></tr>" // 增加 readonly,名称被作为判断条件了。Lin
  722. /* 改,select 值改变时,置 name 的默认值。并改写图标的 style。Lin
  723. +"<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>" */
  724. +"<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>"
  725. +"<tr id='control_variable' style='display:$displayable;'><th>分支数量可变</th><td><input id='foreachCheckBox' type='checkbox' value='1' $isForeach /></td></tr>"
  726. +"<tr><th colspan='2'>$button</th></tr>"
  727. +"</table>"
  728. this.setValue(["name"])
  729. },
  730. switchToEnd:function(){
  731. this.html=""
  732. +"<table>"
  733. +"<tr><th style='padding:0 5px;'>同意标题</th><td><input name='agree_message_title' type='text' value='$agree_message_title'></td></tr>"
  734. +"<tr><th>同意内容</th><td><input name='agree_message_content' type='text' value='$agree_message_content'></td></tr>"
  735. +"<tr><th>退回标题</th><td><input name='reject_message_title' type='text' value='$reject_message_title'></td></tr>"
  736. +"<tr><th>退回内容</th><td><input name='reject_message_content' type='text' value='$reject_message_content'></td></tr>"
  737. +"$finishService"
  738. +"<tr><th colspan='2'>$button</th></tr>"
  739. +"</table>"
  740. this.setValue(["agree_message_title","agree_message_content","reject_message_title","reject_message_content"])
  741. //加载节点数据
  742. //添加保存按钮
  743. //加载本地数据
  744. },
  745. switchToSubprocess:function(){
  746. this.html=""
  747. +"<table>"
  748. +"<tr><th>子流程</th><td><input name='subprocesskey' type='text' value='$subprocesskey'></td></tr>"
  749. +"<tr><th>类型</th><td>$subprocesstype</td></tr>"
  750. +"<tr><th colspan='2'>$button</th></tr>"
  751. +"</table>";
  752. this.setValue(["subprocesskey"])
  753. },
  754. switchToStart:function(){
  755. this.html=""
  756. +"<table>"
  757. +"<tr><th>审核处理者</th><td><input id='secondpersion' type='checkbox' $secondpersionchecked /></td></tr>"
  758. // +"<tr><th>处理者:</th><td><select name='assignee' onchange=\"control.changeScope(this)\">$options</select>"
  759. // +"</td></tr>"
  760. +"<tr id='scopeParam' style='display:$displayable;'><th>选择部门</th><td><select name='scopeParam'>$bmList</select></td></tr>"
  761. +"<tr><th colspan='2'>$button</th></tr>"
  762. +"</table>";
  763. this.setValue([]);
  764. },
  765. switchToJoin:function(){
  766. this.html=""
  767. +"<table>"
  768. +"<tr><th>汇签确认</th><td><input name='confirmthis' type='checkbox' $confirmthischecked/></td></tr>"
  769. +"<tr><th>办理人</th><td><select name='assignee' onchange=\"control.changeScope(this)\">$options</select>"
  770. +"</td></tr>"
  771. +"<tr id='scopeParam' style='display:$displayable;'><th>选择部门</th><td><select name='scopeParam'>$bmList</select></td></tr>"
  772. // +"<tr id='taskChain' style='display:$taskChainDisplayable;'><th>部门内审核:</th><td><input type='checkbox' $taskChainCheck onclick='control.clickTaskChainOrTaskSubprocess(this)'/></td></tr>"
  773. // +"<tr id='taskSubprocess' style='display:$usesubprocessdisplay;'><th class='h'>$usesubprocessname</th><td><input type='checkbox' $usesubprocesscheck onclick='control.clickTaskChainOrTaskSubprocess(this)'></td></tr>"
  774. // +"<tr><th>消息标题:</th><td><input name='message_title' type='text' value='$message_title'></td></tr>"
  775. // +"<tr><th>消息内容:</th><td><input name='message_content' type='text' value='$message_content'></td></tr>"
  776. // +"<tr><th>节点序号:</th><td><input name='step' type='number' value='$step'></td></tr>"
  777. // +"<tr><th>指定序号:</th><td><input name='bgbj_xh' type='number' value='$bgbj_xh'></td></tr>"
  778. // +"$finishService"
  779. // +"<tr><th>限时:</th><td style='width: 66%;'>"
  780. // +"<select id='duedatetype' onchange=\"control.selectDueDate(this)\" >$duedatetypeoption</select>"
  781. // +"<tr id='taskDuedate' style='display:$duedateDisplayable;'><th class='h'>时间:</th><td style='padding-left:10px;'>"
  782. // +"<input name='days' type='number' style='width:15%' value='$days'>天"
  783. // +"<input name='hours' style='width:15%' type='number' value='$hours'>时"
  784. // +"<input name='minutes' style='width:15%' type='number' value='$minutes'>分"
  785. // +"</td></tr>"
  786. // +"<tr id='rejectnodeoption'><th>退回处理</th><td><select>$rejectnodeoption</select></td></tr>"
  787. // +"<tr><th class='h'>系统消息回执:</th><td><input name='messagereceipt' type='checkbox' value='1' $taskmessagereceipt></td></tr>"
  788. +"<tr><th colspan='2'>$button</td></th>"
  789. +"</table>"
  790. this.setValue([])
  791. // this.setValue(["message_title","message_content","step","name","bgbj_xh"])
  792. },
  793. setValue:function(keys){
  794. for (var i=0;i<keys.length;i++) {
  795. // console.log("~key: "+keys[i]+" ~value: "+this.json[keys[i]])
  796. this.html=this.html.replace("$"+keys[i],this.json[keys[i]]||"")
  797. }
  798. this.html=this.html.replace("$button",this.saveButton);
  799. this.html=this.html+this.closeButton
  800. },
  801. buildingValue:function(key,data,dafauleValue){
  802. /* 再增加 <option>请选择</option> -- 原来选了之后,就不能清空了。Lin
  803. * 再,先不改,TaskAsg 里写死了节点一定要有字典(办理人) -- 升级为 JBPM5 时再弄
  804. */
  805. var result="";
  806. var inList=false
  807. if(key=="TASK_scopeParam_option"){
  808. for (var i=0;i<data.length;i++) {
  809. result+="<option value='"+data[i].bmid+"' "
  810. +(dafauleValue==data[i].bmid?"selected":"")
  811. +">"+data[i].mc+"</option>"
  812. }
  813. return result;
  814. }
  815. if(key=="Start_dictionary_option"){
  816. for(var i=0;i<data.length;i++){
  817. if(data[i].name==dafauleValue){inList=true}
  818. result+="<option "+((data[i].name==dafauleValue)?"selected":"")+">"+data[i].name+"</option>"
  819. }
  820. /* 再去掉,都增加 <option>请选择</option> 了 -- 原来选了之后,就不能清空了。Lin
  821. * 再,先不去掉,TaskAsg 里写死了节点一定要有字典(办理人) -- 升级为 JBPM5 时再弄
  822. */
  823. result=(result.indexOf("selected")==-1)?("<option >"+(dafauleValue?dafauleValue:"请选择")+"</option>"+result):(result);
  824. if(!inList&&dafauleValue){alert(dafauleValue+"不存在于字典")}
  825. return result;
  826. }
  827. if(key=="TASK_sfsxps_option"){
  828. for(var i=0;i<data.length;i++){
  829. if(data[i].name==dafauleValue){inList=true}
  830. result+="<option value=\""+data[i].value+"\""+((data[i].value==dafauleValue)?"selected":"")+">"+data[i].name+"</option>"
  831. }
  832. return result;
  833. }
  834. /// 增加 是否重做节点、是否执行节点。Lin
  835. if(key=="TASK_sfRedo_option"){
  836. for(var i=0;i<data.length;i++){
  837. if(data[i].name==dafauleValue){inList=true}
  838. result+="<option value=\""+data[i].value+"\""+((data[i].value==dafauleValue)?"selected":"")+">"+data[i].name+"</option>"
  839. }
  840. return result;
  841. }
  842. if(key=="TASK_sfRun_option"){
  843. for(var i=0;i<data.length;i++){
  844. if(data[i].name==dafauleValue){inList=true}
  845. result+="<option value=\""+data[i].value+"\""+((data[i].value==dafauleValue)?"selected":"")+">"+data[i].name+"</option>"
  846. }
  847. return result;
  848. }
  849. ///
  850. if(key=="TASK_dictionary_option"){
  851. for(var i=0;i<data.length;i++){
  852. if(data[i].name==dafauleValue){inList=true}
  853. /* 再改为显示描述,字典的 name("所在部门") 分开为 name("szbm") 和 desc("所在部门") 了。Lin
  854. result+="<option "+((data[i].name==dafauleValue)?"selected":"")+">"+data[i].name+"</option>"
  855. */ result += "<option value='"+ data[i].name +"' "+ ((data[i].name==dafauleValue)?"selected":"") +">"+ data[i].desc +"</option>"
  856. }
  857. /* 再改为显示描述,字典的 name("所在部门") 分开为 name("szbm") 和 desc("所在部门") 了。Lin
  858. result=(result.indexOf("selected")==-1)?("<option >"+(dafauleValue?dafauleValue:"请选择")+"</option>"+result):(result);
  859. */
  860. /* 再去掉,都增加 <option>请选择</option> 了 -- 原来选了之后,就不能清空了。Lin
  861. * 再,先不去掉,TaskAsg 里写死了节点一定要有字典(办理人) -- 升级为 JBPM5 时再弄
  862. */
  863. result = (result.indexOf("selected")==-1)? ("<option>请选择</option>"+ result) : result;
  864. // console.log(data)
  865. if(!inList&&dafauleValue){alert(dafauleValue+"不存在于字典")}
  866. return result;
  867. }
  868. if(key=="DECISION_key_option"){
  869. result="<option></option>";
  870. for(var i=0;i<data.length;i++){
  871. if(data[i].name==dafauleValue){inList=true}
  872. if(dafauleValue==data[i].name){
  873. /* 再改为显示描述,字典的 name("所在部门") 分开为 name("szbm") 和 desc("所在部门") 了。Lin
  874. result+="<option selected >"+data[i].name+"</option>";
  875. */ result+="<option value='"+ data[i].name +"' selected >"+data[i].desc+"</option>";
  876. continue;
  877. }
  878. /* 再改为显示描述,字典的 name("所在部门") 分开为 name("szbm") 和 desc("所在部门") 了。Lin
  879. result+="<option>"+data[i].name+"</option>"
  880. */ result+="<option value='"+ data[i].name +"'>"+ data[i].desc +"</option>"
  881. }
  882. if(!inList&&dafauleValue){alert(dafauleValue+"不存在于字典")}
  883. return result;
  884. }else if(key=="duedatetypeoption"){
  885. var result="";
  886. for(var i=0;i<data.length;i++){
  887. if(dafauleValue==data[i].value){
  888. result+="<option selected value='"+data[i].value+"'>"+data[i].name+"</option>";
  889. continue;
  890. }
  891. result+="<option value='"+data[i].value+"'>"+data[i].name+"</option>"
  892. }
  893. return result;
  894. }else if(key=="TASK_rejectnode_option"){
  895. var result="";
  896. result="<option></option>";
  897. var allnode= demo.$nodeData
  898. for(var key in allnode){
  899. if(allnode[key].realtype=="task"&&this.json.id!=key){
  900. result+='<option value="'+key+'" '
  901. result+=(key==this.json.rejectnode)?"selected":""
  902. result+='>' +allnode[key].name+"</option>"
  903. }
  904. }
  905. console.log(result)
  906. return result;
  907. }
  908. },
  909. clickTaskChainOrTaskSubprocess:function(checkbox){
  910. //保存状态
  911. var status=checkbox.checked
  912. // 清除其他选中状态
  913. // if(status)
  914. // {
  915. // document.getElementById("taskChain").getElementsByTagName("input")[0].checked=false;
  916. // document.getElementById("taskSubprocess").getElementsByTagName("input")[0].checked=false;
  917. // }
  918. //
  919. // checkbox.checked=status;
  920. },
  921. selectDueDate:function(selecteElement){
  922. if(selecteElement.value==0){
  923. document.getElementById("taskDuedate").style.display="none"
  924. }else{
  925. document.getElementById("taskDuedate").style.display=""
  926. }
  927. }
  928. }