urgeHomep_curTask.jsp 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447
  1. <%@ page import="ss.bpm.BpmC" %>
  2. <%@ page import="ss.AppC" %>
  3. <%@ page language="java" pageEncoding="UTF-8" isELIgnored="false" %>
  4. <%@ taglib uri="/ssTag" prefix="ss"%>
  5. <% pageContext.setAttribute(ss.page.PageC.PAGE_objName,"sh");%>
  6. <%pageContext.setAttribute("wdpageinformation","{'hastab':'0'}");%>
  7. <!DOCTYPE html>
  8. <html>
  9. <head>
  10. <meta http-equiv="pragma" content="no-cache">
  11. <meta http-equiv="cache-control" content="no-cache">
  12. <meta http-equiv="expires" content="0">
  13. <script>window.loginStatus="${empty sessionScope['ssUser']?'0':'1'}"</script>
  14. <ss:skin file='main.css'/>
  15. <script type="text/javascript" src="/ss/jquery/jquery.js"></script>
  16. <script type="text/javascript" src="/ss/artdialog/artDialogUtil.js"></script>
  17. <script type="text/javascript" src="/ss/js/base.js"></script>
  18. <script> if(!window.wd) var wd={}; if(!wd.display) wd.display={}; wd.display.wdDialogId="urgeHomep_curTask"; if(!wd.app) wd.app={}; wd.app.name='pms';</script>
  19. <script type="text/javascript" src="/ss/js/masklayer.js"></script>
  20. <script type="text/javascript" src="/ss/js/wdDialogInit.js"></script>
  21. <script type="text/javascript" src="/ss/js/common.js"></script>
  22. <script type="text/javascript" src="/ss/js/display.js"></script>
  23. <script type="text/javascript" src="/ss/js/edit.js"></script>
  24. <script type="text/javascript" src="/ss/nicescroll/jquery.nicescroll.js"></script>
  25. <script type="text/javascript" src="/ss/nicescroll/jquery.nicescroll.iframehelper.min.js"></script>
  26. <link rel="stylesheet" type="text/css" href="/ss/window/theme/dhtmlxwindows.css">
  27. <link rel="stylesheet" type="text/css" href="/ss/window/theme/dhx_blue/dhtmlxwindows_dhx_blue.css">
  28. <script type="text/javascript" src="/ss/window/dhtmlxcommon.js"></script>
  29. <script type="text/javascript" src="/ss/window/dhtmlxwindows.js"></script>
  30. <script type="text/javascript" src="/ss/window/dhtmlxcontainer.js"></script>
  31. <script type="text/javascript" src="/ss/js/common.js"></script>
  32. <script type="text/javascript" src="/ss/js/display.js"></script>
  33. <script type="text/javascript" src="/ss/datePicker/WdatePicker.js"></script>
  34. <script type="text/javascript" src="/ss/js/edit.js"></script>
  35. <script src="/js/load.js"></script> <%-- ="/newUI/ss/js/base.js"。Lin(新UI) --%>
  36. <style>
  37. .icon-unchecked,.icon-checked{
  38. margin-top: 9px;
  39. }
  40. .longCardList-highlight{
  41. width: 765px !important;
  42. white-space: nowrap;
  43. text-overflow: ellipsis;
  44. overflow: hidden;
  45. }
  46. #sm{
  47. border: 1px solid #e1e1e1;
  48. }
  49. .input-div{
  50. width:95% !important;
  51. box-sizing: border-box;
  52. }
  53. </style>
  54. </head>
  55. <body>
  56. <div id="app">
  57. <div class="content-div" ssFith="true" style="height:600px;">
  58. <div class="longCardList-div" style="width: calc(100% - 4px);box-sizing: border-box;">
  59. <table class="scrollbar" style="max-height: 100%;width: 100%;">
  60. <tbody ssFith='{list:true,rowHeight:66}' style="width: 100%;padding: 0px 4px 0px 11px;box-sizing: border-box;">
  61. <%-- 去掉闭标签 />,与下面的 </tr> 不配对。Lin
  62. 再改为 WebC.REQ_objName、WebC.REQ_objId,避免与数据表里的 对象名、对象ID 字段重名
  63. <tr onclick='wd.display.showComponent({show:["wdDialog"],hide:[],url:"<wd:token service='${button.service}' dest='${button.dest}' param='"dxm":"${dxm}","dxid":"${dxid}","${objectId}":"${dxid}","dataType":"play"' test='false' />",title:"${button.title}",width:${button.width},height:${button.height},minHeight:${button.minHeight},maxHeight:${button.maxHeight},showTitle:${button.showTitle}});'/> --%>
  64. <tr onclick='wd.display.showComponent({show:["wdDialog"],url:"<ss:serv name='${button.service}' dest='${button.dest}' parm='{ssObjName:"${ssObjName}",ssObjId:"${ssObjId}","${objectId}":"${ssObjId}",dataType:"play"}'/>",title:"${button.title}",width:"${button.width}",height:"${button.height}",minHeight:"${button.minHeight}",maxHeight:"${button.maxHeight}",showTitle:"${button.showTitle}"});'>
  65. <td class="hLine">
  66. <div class="longCardList-info" style="font-size: 0px;display: inline-block;float: left;">
  67. <span class="longCardList-highlight" style="margin-bottom: 3px;">
  68. <a>
  69. <%-- 去掉,去掉 objectName.codebook。ObjU.toPlayDescByFieldVal( 已经翻译为 playDesc 了。Lin
  70. <wd:equal leftValue="${empty objectName.codebook}" rightValue="true">
  71. --%>
  72. <ss:txt val='${objectName.value}'/>
  73. <input id="atext" type="hidden" value="${objectName.value}"/>
  74. <%-- 去掉,去掉 objectName.codebook。ObjU.toPlayDescByFieldVal( 已经翻译为 playDesc 了。Lin
  75. </wd:equal>
  76. <wd:equal leftValue="${empty objectName.codebook}" rightValue="false">
  77. <codebook:translate name="${objectName.codebook}" value="${objectName.value}" />
  78. <input id="atext" type="hidden" value="<codebook:translate name="${objectName.codebook}" value="${objectName.value}" />"/>
  79. </wd:equal>
  80. --%>
  81. </a>
  82. </span>
  83. <ss:equal val='${empty abstractName.value}' val2='false'>
  84. <div id="cardList-abstract" class="longCardList-dim" style="height: auto;min-height: 20px;max-height: 40px;">
  85. <%-- 去掉,去掉 abstractName.codebook。ObjU.toPlayDescByFieldVal( 已经翻译为 playDesc 了。Lin
  86. <wd:equal leftValue="${empty abstractName.codebook}" rightValue="true">
  87. --%>
  88. <ss:txt val='${abstractName.value}'/>
  89. <%-- 去掉,去掉 abstractName.codebook。ObjU.toPlayDescByFieldVal( 已经翻译为 playDesc 了。Lin
  90. </wd:equal>
  91. <wd:equal leftValue="${empty abstractName.codebook}" rightValue="false">
  92. <codebook:translate name="${abstractName.codebook}" value="${abstractName.value}" />
  93. </wd:equal>
  94. --%>
  95. </div>
  96. </ss:equal>
  97. <ss:equal val='${empty categoryNoList}' val2='false'>
  98. <div class="longCardList">
  99. <ss:rpt name='categoryNoList' id='item'>
  100. <span>
  101. <ss:txt val='${item.dest}'/>
  102. <ss:equal val='${empty item.dest}' val2='false'>
  103. </ss:equal>
  104. <%-- 去掉,去掉 categoryNoList.item.codebook。ObjU.toPlayDescByFieldVal( 已经翻译为 playDesc 了。Lin
  105. <wd:equal leftValue="${empty item.codebook}" rightValue="true">
  106. --%>
  107. <ss:txt val='${item.value}'/>
  108. <%-- 去掉,去掉 categoryNoList.item.codebook。ObjU.toPlayDescByFieldVal( 已经翻译为 playDesc 了。Lin
  109. </wd:equal>
  110. <wd:equal leftValue="${empty item.codebook}" rightValue="false">
  111. <codebook:translate name="${item.codebook}" value="${item.value}" />
  112. </wd:equal>
  113. --%>
  114. </span>
  115. </ss:rpt>
  116. </div>
  117. </ss:equal>
  118. </div>
  119. </td>
  120. </tr>
  121. </tbody>
  122. </table>
  123. </div>
  124. <div class="nbFrame">
  125. <div id="nbSelected" ssSelClazz="list-checkedIcon" class="scrollbar">
  126. <ss:rpt name='shList' id='sh'>
  127. <div ssObjId='${sh.shryid}' shid="${sh.shid}" isSq="true" class='list nb-Div' style='overflow:hidden;'>
  128. <div class='nbLeft'>
  129. <span class="icon-unchecked" style="float: left;margin-right: 6px"></span>
  130. <span class="indenter cursor icon-doc" style="padding-left: 0px;"></span>
  131. <span class='nbName list-dim' style='display: inline-block;float: left;width: 85px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;height:41px;line-height:41px;'>
  132. <%-- 再改,直接用 ${sh.shryxm}。已在 UrgeHomepServ.searchTask() 翻译好了。Lin
  133. <ss:cbTrans cb='ry' val='${sh.shryid}'/> --%>
  134. ${sh.shryxm}
  135. </span>
  136. <div class='sj list-smallDim cursor' style='float: right;display: flex;flex-direction: column;align-items: center;justify-content: center;margin: 0 10px;'>
  137. <span class="cursor">
  138. <ss:txt val='${sh.fssj}' fmt='HH:mm ' miniDate='false'/>
  139. </span>
  140. <span class="cursor">
  141. <ss:txt val='${sh.fssj}' fmt='MM-dd ' miniDate='false'/>
  142. </span>
  143. </div>
  144. <div class="vLine-dashed" style="float:right;display:inline-block;width:1px;height:30px;margin-top:5px;">
  145. </div>
  146. </div>
  147. </div>
  148. </ss:rpt>
  149. </div>
  150. </div>
  151. </div>
  152. <form id="sendMsgDialog" method="post">
  153. <input type="hidden" id="shidList" name="shidList" value=""/>
  154. <%-- 再增加 shryidList,收回等同于审核人的退回。Lin
  155. 原,在 BpmServ.forceRejTask() 里,使用当前登录用户作为审核人,导致 "当前操作人不是改当前审核节点的审核人或者代理人" --%>
  156. <input type="hidden" id="shryidList" name="shryidList" value=""/>
  157. <div class="" style="width: 100%;height:65px;border-top: 1px solid rgb(210, 210, 210);">
  158. <input name="title" id="title" type="hidden" value="${sq.mc}" />
  159. <div id="sm" width="73%" height="63px" style="margin: 20px;width: 100%;"></div>
  160. <script type="text/javascript" charset="utf-8" src="/ss/js/growHeight.js"></script>
  161. <script type="text/javascript" charset="utf-8" src="/ss/js/edit.js"></script>
  162. <script type="text/javascript" charset="utf-8" >
  163. wd.edit.initGrowHigh('sm','null',{},null,false);
  164. </script>
  165. </div>
  166. <div class="bottom-div" style="border: none; display:flex;flex-direction: column;position: absolute;">
  167. <div class="bottom-div-button" style="width: 100%;display:flex;justify-content: flex-end; gap:10px;padding-bottom: 10px;padding-top: 10px;">
  168. <ss-bottom-button
  169. text="催促"
  170. onclick="sendMsg();"
  171. ></ss-bottom-button>
  172. <ss-bottom-button
  173. text="代签"
  174. onclick="dq();"
  175. ></ss-bottom-button>
  176. <ss-bottom-button
  177. text="收回"
  178. onclick="ch();"
  179. ></ss-bottom-button>
  180. <ss-bottom-button
  181. text="终止整个流程"
  182. onclick="forceClBpm();"
  183. ></ss-bottom-button>
  184. <%-- 补发start 补发可能有多个,但系只显最新第一个--%>
  185. <%-- 改。Lin
  186. <wd:equal leftValue="${not empty bbList}" rightValue="true"> --%>
  187. <ss:equal val='${empty bbList}' val2='false'>
  188. <ss:rpt name='${bbList}' id='bb'>
  189. <ss:equal val='${index}' val2='0'>
  190. <ss-bottom-button
  191. text="补发"
  192. onclick="wd.display.showComponent({show:['wdDialog'],url:'<ss:serv name='${bb.service}' dest='${bb.dest}' parm='${bb.param}'/>',title:'${bb.title}',width:'${bb.width}',height:'${bb.height}',minHeight:'${empty bb.minHeight? 'null' : bb.minHeight}',maxHeight:'${empty bb.maxHeight? 'null' : bb.maxHeight}'});;
  193. event.stopPropagation();')"
  194. ></ss-bottom-button>
  195. </ss:equal>
  196. </ss:rpt>
  197. </ss:equal>
  198. <%-- 补发end--%>
  199. <ss-bottom-button
  200. text="关闭"
  201. onclick="wd.display.closeDialog();"
  202. ></ss-bottom-button>
  203. </div>
  204. </div>
  205. <div class="bottom-div" style="display: none;">
  206. <div class="bottom-up-div">
  207. <%-- <div class="bottom-up-div-left" style="width: 16%;display: inline-block;height: 100%;line-height: 99px;font-size: 16px;text-align: right;padding-right: 16px;box-sizing: border-box;">
  208. 说明
  209. </div> --%>
  210. <%-- <div class="bottom-up-div-left-right" style="width: 84%;display: inline-block;float: right;height: 100%;"> --%>
  211. <%-- <input name="title" id="title" type="hidden" value="${sq.mc}" />
  212. <div id="sm" width="73%" height="63px" style="margin-top: 20px;border: 1px solid #e1e1e1;"></div>
  213. <script type="text/javascript" charset="utf-8" src="/ss/js/growHeight.js"></script>
  214. <script type="text/javascript" charset="utf-8" src="/ss/js/edit.js"></script>
  215. <script type="text/javascript" charset="utf-8" >
  216. wd.edit.initGrowHigh('sm','null',{},null,false);
  217. </script> --%>
  218. <%-- </div> --%>
  219. </div>
  220. <div class="bottom-down-div" >
  221. <input type="button" name="button" onclick='sendMsg();' value="催促" class="bottom-button"/>
  222. <input type="button" name="button" onclick='dq();' value="代签" class="bottom-button"/>
  223. <input type="button" name="button" onclick='ch()' value="收回" class="bottom-button"/>
  224. <input type="button" name="button" onclick='forceClBpm()' value="终止整个流程" class="bottom-button" /> <%-- 增加。Lin --%>
  225. <%-- 补发start 补发可能有多个,但系只显最新第一个--%>
  226. <%-- 改。Lin
  227. <wd:equal leftValue="${not empty bbList}" rightValue="true"> --%>
  228. <ss:equal val='${empty bbList}' val2='false'>
  229. <ss:rpt name='${bbList}' id='bb'>
  230. <ss:equal val='${index}' val2='0'>
  231. <input type="button" name="bb" value="补发" class="bottom-button"
  232. onclick='wd.display.showComponent({show:["wdDialog"],url:"<ss:serv name='${bb.service}' dest='${bb.dest}' parm='${bb.param}'/>",title:"${bb.title}",width:"${bb.width}",height:"${bb.height}",minHeight:"${empty bb.minHeight? "null" : bb.minHeight}",maxHeight:"${empty bb.maxHeight? "null" : bb.maxHeight}"});;
  233. event.stopPropagation();'
  234. />
  235. </ss:equal>
  236. </ss:rpt>
  237. </ss:equal>
  238. <%-- 补发end--%>
  239. <input type="button" name="button" onClick="wd.display.closeDialog();" value="关闭" class="bottom-button" />
  240. </div>
  241. </div>
  242. </div>
  243. <input name='wdComponentID' type='hidden' value='urgeHomep_curTask'/></form>
  244. <script type="text/javascript">var wdRecordValue='${wdRecordValue}';</script>
  245. <script type="text/javascript" src="/ss/js/wdRecord.js"></script>
  246. <script type="text/javascript">(function(){wdRecord("urgeHomep_curTask");})();</script>
  247. <script type="text/javascript" src="/ss/js/wdFitHeight.js"></script>
  248. <script type="text/javascript">initWdFitHeight(150)</script>
  249. <script type="text/javascript">initWdFitHeightFunction=function(){initWdFitHeight(150);};</script>
  250. <ss:equal val="${empty resizeComponent}" val2="false">
  251. <script>{var iframe=wd.display.getFrameOfWindow();
  252. if(iframe&&iframe.contentWindow==window)
  253. wd.display.resizeComponent(${resizeComponent.width}, ${resizeComponent.height}, ${empty resizeComponent.minHeight?'null':resizeComponent.minHeight}, ${empty resizeComponent.maxHeight?'null':resizeComponent.maxHeight});}</script>
  254. </ss:equal>
  255. <ss:help/>
  256. </body>
  257. <script type="text/javascript">
  258. try{wd.display.showMsgPopup('${msg}');
  259. }catch(err){console.error(err);}
  260. </script>
  261. <ss:equal val="${empty wdclosewindowparam}" val2="false">
  262. <script type="text/javascript">
  263. try{wd.display.setCloseWindowParam('${wdclosewindowparam}');
  264. }catch(err){console.error(err);}
  265. </script>
  266. </ss:equal>
  267. <script>
  268. $(function(){
  269. var _div = $(".nb-Div");
  270. console.log(_div);
  271. _div.each(function(index){
  272. $(this).on("click",function(){
  273. if($(this).hasClass("list-checkedIcon")){
  274. $(this).find('.icon-checked').addClass('icon-unchecked').removeClass('icon-checked');
  275. $(this).removeClass("list-checkedIcon");
  276. }else{
  277. $(this).addClass("list-checkedIcon");
  278. $(this).find('.icon-unchecked').addClass('icon-checked').removeClass('icon-unchecked');
  279. }
  280. var shidList="";//已选中shidList
  281. $(".list-checkedIcon").each(function(){
  282. if($(this).attr("shid"))
  283. shidList+=$(this).attr("shid")+ '<%=AppC.SEP_abbrJson%>'; // +"|"。改为 ","。Lin
  284. })
  285. $("#shidList").val(shidList);
  286. /// 再增加 shryidList,收回等同于审核人的退回。Lin
  287. // 原,在 BpmServ.forceRejTask() 里,使用当前登录用户作为审核人,导致 "当前操作人不是改当前审核节点的审核人或者代理人"
  288. var shryidList="";//已选中shryidList
  289. $(".list-checkedIcon").each(function(){
  290. if($(this).attr("shid"))
  291. shryidList += $(this).attr("ssObjId") + '<%=AppC.SEP_abbrJson%>'; // ("wdObjectId") +"|"。改为 ","。Lin
  292. })
  293. $("#shryidList").val(shryidList);
  294. ///
  295. })
  296. })
  297. })
  298. function sendMsg() {
  299. console.log("------");
  300. var arr = new Array();
  301. var shid_arr = new Array();
  302. var _divs = $(".list-checkedIcon");
  303. if(_divs.length>0){
  304. _divs.each(function(index){
  305. arr.push($(this).attr("ssObjId")); // ("wdObjectId"))。Lin
  306. shid_arr.push($(this).attr("shid"));
  307. });
  308. }
  309. if(arr.length < 1) {
  310. wd.display.alert("请选择一个消息接收用户");
  311. return;
  312. }
  313. var atext =$("#atext").val();
  314. var title =$("#title").val();
  315. var content=$("textarea[name='sm']").val();
  316. var sqid = "${sqid}";
  317. console.log("??-"+content);
  318. if(!content||content==null||content==''){
  319. wd.display.alert("请选择填写催促内容");
  320. return;
  321. }
  322. //发送消息弹窗
  323. var json = JSON.parse('{"title":"'+encodeURIComponent(title)+'","shid":"'+encodeURIComponent(shid_arr)+'","atext":"'+encodeURIComponent(atext)+'","content":"'+encodeURIComponent(content)+'","shryid":"'+arr+'","sqid":"'+encodeURIComponent(sqid)+'"}');
  324. var url = '@service{name:"sendMsg",dest:"sys_info",param:{"title":"ssVal{title}","shid":"ssVal{shid}","atext":"ssVal{atext}","content":"ssVal{content}","shryid":"ssVal{shryid}","sqid":"ssVal{sqid}"}}@';
  325. url = wd.display.replaceDynamicParam(url, json);
  326. $('#sendMsgDialog').attr('action',url);
  327. $('#sendMsgDialog').submit();
  328. }
  329. // "越过"。Lin
  330. function yg() {
  331. if($("#shidList").val()) {
  332. $('#sendMsgDialog').attr('action', '@service{name:"yg",dest:"sys_info",param:{sqid:"${sqid}",isClose:"true"}}@').submit();
  333. } else {
  334. wd.display.alert("请选人")
  335. }
  336. }
  337. // "代签"。Lin
  338. function dq(){
  339. var checkAll=$(".list-checkedIcon");
  340. if(checkAll.length<1){
  341. wd.display.alert("请选人")
  342. return;
  343. }
  344. var shryid=$(checkAll[0]).attr("wdObjId"); // ("wdobjectid")。是 wdobjectid,不是 wdObjectId。Lin
  345. var shid=$(checkAll[0]).attr("shid");
  346. var json={};
  347. json["ryid"]=shryid;
  348. json["shid"]=shid;
  349. /* 改。pp = 代签。Lin
  350. var url='@service{name:"dq_cx",dest:"dcry_input",show:"wdDialog",param:{shid:"wdVal{shid}",ryid:"wdVal{ryid}"}}@'; */
  351. /* 再改,去掉 initPp,去掉 "代签人" 字段的默认值 "$@{sh.dlryid}" -- 就算原来有代理人员,也不会用了。Lin
  352. 先不实现 <serv po="ShPo",用到再弄
  353. var url='wd.display.showComponent({show:["wdDialog"],url:"<ss:serv name='initPp' parm='{"wdConfirmationCaptchaService":"0","shid":"wdVal{shid}","ryid":"wdVal{ryid}"}' dest='urgeHomep_ppSure'/>",title:"代签确认",width:500,height:300});'; */
  354. var url='wd.display.showComponent({show:["wdDialog"],url:"<ss:serv parm='{"wdConfirmationCaptchaService":"0","shid":"ssVal{shid}","ryid":"ssVal{ryid}"}' dest='urgeHomep_ppSure'/>",title:"代签确认",width:500,height:300});';
  355. url=wd.display.replaceDynamicParam(url,json);
  356. eval(url);
  357. }
  358. // "撤回"。Lin
  359. function ch() {
  360. var shidStr = $("#shidList").val();
  361. var shListData = ${shListData};
  362. if (shidStr) {
  363. // 增加确认过程,增加选择信息。Lin
  364. var taskMsg = "";
  365. var shidList = shidStr.split('<%=AppC.SEP_abbrJson%>'); // ("|")。改为 ","。Lin
  366. shidList.forEach(function(item) {
  367. if (item) {
  368. var idx; // 在 ${shListData} 中的。Lin
  369. for(var i = 0; i < shListData.length; i++) {
  370. if (item == shListData[i].shid) {
  371. idx = i;
  372. break;
  373. }
  374. }
  375. if (!taskMsg)
  376. taskMsg += "当前节点:"+ shListData[idx].jdmc +"<br>要收回的审核人:";
  377. taskMsg += shListData[idx].shryid +"("+ shListData[idx].shbm +") "
  378. }
  379. });
  380. wd.display.confirm("收回", taskMsg +"<br><br>没有上下级的部门内审,只能选择一个审核人<br>等同于审核人的退回,并根据流程图退回,确定吗?", function() { // 增加确认过程。Lin
  381. <%-- 改。Lin
  382. $('#sendMsgDialog').attr('action', '@service{name:"ch",dest:"sys_info",param:{sqid:"${sqid}"}}@').submit(); --%>
  383. $('#sendMsgDialog').attr('action', "<ss:serv name='ss.forceRejTask' parm='{"wdConfirmationCaptchaService":"0","sqid":"${sqid}"}' dest='info'/>").submit();
  384. }) // 增加确认过程。Lin
  385. } else {
  386. wd.display.alert("请选人")
  387. }
  388. }
  389. // 增加,终止整个流程。Lin
  390. // cl = 终止
  391. function forceClBpm() {
  392. var shListData = ${shListData};
  393. var shidList = ""; // 所有的 shidList
  394. var taskMsg = "";
  395. shListData.forEach(function(item) {
  396. shidList += item.shid + '<%=AppC.SEP_abbrJson%>'; // +"|"。改为 ","。Lin
  397. if (!taskMsg)
  398. taskMsg += "当前节点:"+ item.jdmc +"<br>审核人:";
  399. taskMsg += item.shryid +"("+ item.shbm +") "
  400. })
  401. if (shidList) {
  402. wd.display.confirm("终止整个流程", taskMsg +"<br><br>整个流程将被终止,确定吗?", function(){
  403. $('#sendMsgDialog').attr('action', "<ss:serv name='ss.forceClBpm' parm='{"wdConfirmationCaptchaService":"0","sqid":"${sqid}"}' dest='info'/>").submit();
  404. })
  405. } else {
  406. wd.display.alert("没有审核人")
  407. }
  408. }
  409. </script>
  410. </html>
  411. <script type="text/javascript">
  412. tokenCleanser("<ss:serv name='ss.clearPageToken'/>", {tokenList:"<%= pageContext.getAttribute(ss.page.PageC.PAGE_tokenList)%>"});
  413. </script>
  414. <script type="module">
  415. SS.ready(function() {
  416. window.SS.dom.initializeFormApp({
  417. el: '#app',
  418. data() {
  419. return{
  420. }
  421. },
  422. methods: {
  423. onDialogClose() {
  424. wd.display.closeDialog();
  425. },
  426. }
  427. });
  428. });
  429. </script>