bpmNodeMessageReceiverSetting.jsp 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@include file="/commons/include/html_doctype.html" %>
  3. <html>
  4. <head>
  5. <%@include file="/commons/include/form.jsp" %>
  6. <title>人员设置</title>
  7. <base target="_self" />
  8. <style type="text/css">
  9. html{
  10. overflow:auto;
  11. }
  12. body{
  13. overflow:auto;
  14. height: 100%;
  15. }
  16. .inputChange{
  17. background-color: #BBAAAA!important;
  18. }
  19. </style>
  20. <script type="text/javascript">
  21. /*KILLDIALOG*/
  22. var dialog = frameElement.dialog; //调用页面的dialog对象(ligerui对象)
  23. $(function(){
  24. $("a.moveup,a.movedown").unbind("click").click(function(){
  25. sortCondition(this);
  26. });
  27. $("#chkall").click(function(){
  28. var state=$(this).attr("checked");
  29. if(!state)
  30. state = false;
  31. $("input[name='nodeUserCk']").each(function(){
  32. $(this).attr("checked",state);
  33. });
  34. });
  35. $("body").delegate("tr.odd,tr.even","mouseover",function(){
  36. $(this).addClass("over");
  37. }).delegate("tr.odd,tr.even","mouseout",function(){
  38. $(this).removeClass("over");
  39. });
  40. $("tr.odd,tr.even").each(function(){
  41. $(this).bind("mousedown",function(event){
  42. if(event.target.tagName=="TD")
  43. var strFilter='input:checkbox:enabled[name="nodeUserCk"]';
  44. var obj=$(this).find(strFilter);
  45. if(obj.length==1){
  46. var state=obj.attr("checked");
  47. obj.attr("checked",!state);
  48. }
  49. }
  50. );
  51. });
  52. initConditionShow();
  53. $("body").delegate("input[name=groupNo]","change",changeGroupNo);
  54. });
  55. function initConditionShow(){
  56. $("td[name='conditionShow']").each(function(){
  57. var me = $(this),
  58. textarea = me.find("textarea"),
  59. value = textarea.val().trim();
  60. if(value=="")return true;
  61. value = eval("("+value+")");
  62. var conShow = [];
  63. for(var i=0,c;c=value[i++];){
  64. if(conShow.length>0){
  65. if(c.compType=="or")
  66. conShow.push(' '+ $lang.operateType.either +' ');
  67. else
  68. conShow.push(' '+$lang.operateType.also+' ');
  69. }
  70. conShow.push('(');
  71. conShow.push(c.conDesc);
  72. conShow.push(')');
  73. }
  74. textarea.before(conShow.join(''));
  75. });
  76. };
  77. //排序
  78. function sortCondition(btnObj){
  79. var obj=$(btnObj);
  80. var direct=obj.hasClass("moveup")?1:0;
  81. var curObj = obj.closest('tr');
  82. var tbodyObj = obj.closest('tbody');
  83. if(direct==1){
  84. var prevObj=curObj.prev();
  85. if(prevObj!=null){
  86. curObj.insertBefore(prevObj);
  87. }
  88. }
  89. else{
  90. var nextObj=curObj.next();
  91. if(nextObj!=null){
  92. curObj.insertAfter(nextObj);
  93. }
  94. }
  95. updSn(tbodyObj);
  96. }
  97. //更新排序到后台
  98. function updSn(tbodyObj){
  99. var conditionObjs=$("input[name='nodeUserCk']",tbodyObj);
  100. if(conditionObjs.length<2)return;
  101. var aryCondition=[];
  102. conditionObjs.each(function(){
  103. aryCondition.push(this.value);
  104. });
  105. var conditionIds=aryCondition.join(",");
  106. $.post('${ctx}/platform/bpm/bpmUserCondition/updateSn.ht',{"conditionIds":conditionIds},function(data){
  107. var resultData=eval('('+data+')');
  108. if(resultData.result==1){
  109. }else{
  110. $.ligerDialog.warn(resultData.message);
  111. }
  112. });
  113. }
  114. //条件规则
  115. function conditionDialog(tableId,edit){
  116. var defVal = $("#bpmDefinition").val(),
  117. defJson = eval("("+defVal+")");
  118. var conditionType = ${conditionType};
  119. var hw = $.getWindowRect();
  120. dialogH = hw.height*19/20;
  121. dialogW = hw.width*19/20;
  122. var url=__ctx + '/platform/bpm/bpmDefinition/conditionEdit.ht?defId='+defJson.defId+'&conditionType='+conditionType+'&nodeId='+defJson.nodeId;
  123. url=url.getNewUrl();
  124. var winArgs="dialogWidth="+dialogW+"px;dialogHeight="+dialogH+"px;help:0;status:0;scroll:1;center:1;resizable:1";
  125. /* var rtn = window.showModalDialog(url,"",winArgs);
  126. refresh(); */
  127. /*KILLDIALOG*/
  128. DialogUtil.open({
  129. height:600,
  130. width: 1000,
  131. title : '編輯',
  132. url: url,
  133. isResize: true,
  134. //自定义参数
  135. sucCall:function(rtn){
  136. refresh();
  137. }
  138. });
  139. };
  140. //编辑规则
  141. function editCondition(){
  142. var conditionObj = $("input[name='nodeUserCk']:checked");
  143. if(conditionObj.length!=1){
  144. $.ligerDialog.warn($lang_bpm.bpmDefinition.copyUserList.selectOneItem,$lang.tip.msg);
  145. return;
  146. }
  147. var conditionId = conditionObj.val(),
  148. defVal = $("#bpmDefinition").val(),
  149. defJson = eval("("+defVal+")");
  150. if(!conditionId){
  151. $.ligerDialog.warn($lang.operateTip.selectOneRecord,$lang.tip.msg);
  152. return;
  153. }
  154. var conditionType = ${conditionType};
  155. var hw = $.getWindowRect();
  156. dialogH = hw.height*19/20;
  157. dialogW = hw.width*19/20;
  158. var url=__ctx + '/platform/bpm/bpmDefinition/conditionEdit.ht?defId=' + defJson.defId + '&conditionType='+conditionType+'&conditionId='+ conditionId+"&nodeId="+defJson.nodeId;
  159. url=url.getNewUrl();
  160. var winArgs="dialogWidth="+dialogW+"px;dialogHeight="+dialogH+"px;help:0;status:0;scroll:1;center:1;resizable:1";
  161. /* var rtn = window.showModalDialog(url,"",winArgs);
  162. refresh(); */
  163. DialogUtil.open({
  164. height:dialogH,
  165. width: dialogW,
  166. title : '編輯',
  167. url: url,
  168. isResize: true,
  169. //自定义参数
  170. sucCall:function(rtn){
  171. refresh();
  172. }
  173. });
  174. };
  175. //删除条件
  176. function delCondition(){
  177. var conditionObj = $("input[name='nodeUserCk']:checked");
  178. if(conditionObj.length==0){
  179. $.ligerDialog.warn($lang.operateTip.selectOneRecord,$lang.tip.msg);
  180. return;
  181. }
  182. var conditionIds = [];
  183. conditionObj.each(function(){
  184. conditionIds.push($(this).val());
  185. });
  186. conditionIds = conditionIds.join(',');
  187. var url =__ctx + '/platform/bpm/bpmUserCondition/delByAjax.ht';
  188. $.ligerDialog.confirm($lang.operateTip.sureDelete,$lang.tip.msg,function(r){
  189. if(r){
  190. $.post(url,{id:conditionIds},function(t){
  191. var resultData=eval('('+t+')');
  192. if(resultData.result){
  193. $.ligerDialog.success(resultData.message,$lang.tip.msg,function(rtn){
  194. refresh();
  195. });
  196. }else{
  197. $.ligerDialog.warn(resultData.message,$lang.tip.msg);
  198. }
  199. });
  200. }
  201. });
  202. };
  203. //消息设置
  204. function messageSet(conditionId){
  205. var defVal = $("#bpmDefinition").val(),
  206. defJson = eval("("+defVal+")");
  207. var url=__ctx + '/platform/system/message/copyEdit.ht?actDefId=' + defJson.actDefId;
  208. if(conditionId){
  209. url = url + '&conditionId=' + conditionId +'&messageSetType=2';
  210. }
  211. else{
  212. url = url + '&messageSetType=1';
  213. }
  214. var winArgs="height=500,width=700,status=no,toolbar=no,menubar=no,location=no,resizable=1,scrollbars=1";
  215. url=url.getNewUrl();
  216. window.open(url,"",winArgs);
  217. };
  218. //刷新页面
  219. function refresh(){
  220. if($.isIE()){
  221. // Get the link object to simulate user click
  222. var reload = document.getElementById('goLocation');
  223. // Assign the modal url to the link then click!
  224. reload.href = window.location.href;
  225. reload.click();
  226. }else{
  227. window.location.reload();
  228. }
  229. };
  230. /**
  231. * 分组号值变更
  232. */
  233. function changeGroupNo(){
  234. var _this=$(this);
  235. var td = _this.closest("td");
  236. var tr = _this.closest("tr");
  237. var groupNo = _this.val();
  238. groupNo = groupNo.replace(/(^\s*0*)|(\s*$)/g,"");
  239. if(!/^\d+$/.test(groupNo)){
  240. groupNo=1;
  241. }
  242. _this.val(groupNo);
  243. $("div[name=groupNo]",td).text(groupNo).show();
  244. var url = __ctx+"/platform/bpm/bpmUserCondition/updateGroup.ht";
  245. var oldGroup = _this.attr("ivalue");
  246. if(oldGroup==groupNo){
  247. tr.removeClass("inputChange");
  248. return;
  249. }else{
  250. if(!tr.hasClass("inputChange"))
  251. tr.addClass("inputChange");
  252. }
  253. };
  254. /**
  255. * 保存分组号
  256. */
  257. function saveGroupNo(obj){
  258. var conditionIds=[],
  259. groupNos=[];
  260. var url = __ctx+"/platform/bpm/bpmUserCondition/updateGroup.ht";
  261. var _this = $(obj);
  262. $("tbody.data").find("input[name=groupNo]").each(function(){
  263. var _this = $(this);
  264. if(_this.val()!=_this.attr("ivalue")){
  265. var groupNo = _this.val();
  266. var tr = _this.closest("tr");
  267. var conditionId = $("input[name='nodeUserCk']",tr).val();
  268. conditionIds.push(conditionId);
  269. groupNos.push(groupNo);
  270. }
  271. });
  272. if(conditionIds.length==0){
  273. return;
  274. }
  275. var params = {
  276. conditionIds:conditionIds.join(","),
  277. groupNos:groupNos.join(",")
  278. };
  279. $.post(url,params,function(data){
  280. var obj = new com.hotent.form.ResultMessage(data);
  281. if (obj.isSuccess()) {
  282. $.ligerDialog.success( obj.getMessage(),function(){
  283. window.location.reload();
  284. });
  285. } else {
  286. $.ligerDialog.err($lang.tip.msg,obj.getMessage());
  287. }
  288. });
  289. };
  290. </script>
  291. </head>
  292. <body>
  293. <div class="panel">
  294. <div class="panel-top">
  295. <div class="tbar-title">
  296. <span class="tbar-label">抄送人员设置</span>
  297. </div>
  298. <div class="panel-toolbar">
  299. <div class="toolBar">
  300. <div class="group"><a class="link ok" href="javascript:dialog.get('sucCall')();dialog.close();" ><span></span>确定</a></div>
  301. <div class="l-bar-separator"></div>
  302. <div class="group"><a class="link add" onclick="conditionDialog()"><span></span>添加</a></div>
  303. <div class="l-bar-separator"></div>
  304. <div class="group"><a class="link update" onclick="editCondition()"><span></span>编辑</a></div>
  305. <div class="l-bar-separator"></div>
  306. <div class="group"><a class="link del" onclick="delCondition()"><span></span>删除</a></div>
  307. <div class="l-bar-separator"></div>
  308. <div class="group"><a class="link save" onclick="saveGroupNo(this)" id="btnSaveGroupNo" ><span></span>保存批次号</a></div>
  309. </div>
  310. </div>
  311. </div>
  312. <div class="panel-body">
  313. <table id="condition-table" class="table-grid" cellpadding="1" cellspacing="1" border="0" >
  314. <thead>
  315. <tr>
  316. <th width="5%" nowrap="nowrap">
  317. <label><input type="checkbox" id="chkall" />序号</label>
  318. </th>
  319. <th width="40%">规则描述</th>
  320. <th width="35%">用户描述</th>
  321. <th width="80" nowrap="nowrap">位置调整</th>
  322. <th width="90px" nowrap="nowrap">批次号</th>
  323. </tr>
  324. </thead>
  325. <tbody class="data">
  326. <c:forEach items="${receiverSettings}" var="item" varStatus="cnt">
  327. <tr id="${item.id}" class="data-tr ${cnt.index%2==0?'odd':'even'}" >
  328. <td>
  329. <input type="checkbox" name="nodeUserCk" value="${item.id}"/>&nbsp;${cnt.count}
  330. <input type="hidden" name="sn" value="${item.sn}"/>
  331. </td>
  332. <td name="conditionShow">
  333. <textarea class="hidden">
  334. ${item.condition}
  335. </textarea>
  336. </td>
  337. <td>
  338. ${item.conditionShow}
  339. </td>
  340. <td>
  341. <a class="link moveup" title="上移">&nbsp;</a>
  342. <a class="link movedown" title="下移">&nbsp;</a>
  343. </td>
  344. <td name="groupNoTd">
  345. <div style="width: 80px">
  346. <input name="groupNo" style="width:70px;" class="inputText" ivalue ="${item.groupNo}" value="${item.groupNo}" />
  347. </div>
  348. </td>
  349. </tr>
  350. </c:forEach>
  351. </tbody>
  352. </table>
  353. </div>
  354. <div class="hidden">
  355. <textarea id="bpmDefinition">
  356. {
  357. defId:"${bpmDefinition.defId}",
  358. actDefId:"${bpmDefinition.actDefId}",
  359. nodeId:"${nodeId}"
  360. }
  361. </textarea>
  362. <a href="" id="goLocation" style="display:none;"></a>
  363. </div>
  364. </div>
  365. </body>
  366. </html>