bpmNodeUserUplowDialog.jsp 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412
  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. <script type="text/javascript" src="${ctx }/js/hotent/displaytag.js"></script>
  8. <script type="text/javascript" src="${ctx}/js/lg/plugins/ligerLayout.js"></script>
  9. <script type="text/javascript" src="${ctx}/servlet/ValidJs?form=bpmNodeUserUplow"></script>
  10. <style type="text/css">
  11. .error
  12. {
  13. border-color: red;
  14. }
  15. </style>
  16. <script type="text/javascript">
  17. /*KILLDIALOG*/
  18. var dialog = frameElement.dialog; //调用页面的dialog对象(ligerui对象)
  19. function add(){
  20. var tr='';
  21. tr+='<tr>';
  22. tr+='<td>';
  23. tr+='<input type="checkbox" class="pk" name="valueId" value="${demensionItem.valueId}">';
  24. tr+='</td>';
  25. tr+='<td>';
  26. tr+='<select name="demensionId" style="width: 70%;">';
  27. tr+='<c:forEach items="${demensionList}" var="d" >';
  28. tr+='<option value="${d.demId}" >${d.demName}</option>';
  29. tr+='</c:forEach>';
  30. tr+='</select>';
  31. tr+='</td>';
  32. tr+='<td>';
  33. tr+='<select name="upLowType" style="width: 70%;" onchange="validUpLowType(this);">';
  34. tr+='<c:forEach items="${uplowtypeList}" var="t" >';
  35. tr+='<option value="${t.value }">${t.key }</option>';
  36. tr+='</c:forEach>';
  37. tr+='</select> ';
  38. tr+='</td>';
  39. tr+='<td>';
  40. tr+='<select name="upLowLevel" style="width: 70%;display: none;" onchange="validUpLowLevel(this);">';
  41. tr+='<option value="0" selected="selected">0</option>';
  42. tr+='<option value="1">1</option>';
  43. tr+='<option value="2">2</option>';
  44. tr+='<option value="3">3</option>';
  45. tr+='<option value="4">4</option>';
  46. tr+='<option value="5">5</option>';
  47. tr+='</select>';
  48. tr+='</td>';
  49. tr+='<td style="text-align: center;">';
  50. tr+='<input type="checkbox" class="pk" name="isCharge">';
  51. tr+='</td>';
  52. tr+='<td>';
  53. tr+='<a href="javascript:;" class="link del" onclick="handlerDelOne(this);">删除</a>';
  54. tr+='</td>';
  55. tr+='</tr>';
  56. $("#demensionItem").append(tr);
  57. };
  58. function validDuplicate(){
  59. var yes=true;
  60. var $aryId = $("select[name='demId'] option:selected");
  61. if($aryId.length > 0)
  62. {
  63. $aryId.each(function(i,t){
  64. var tp=$(t).val();
  65. $aryId.each(function(j,o){
  66. var op=$(o).val();
  67. if(i!=j&&tp==op){
  68. yes=false;
  69. $(t).parent().addClass("error");
  70. if($(t).parent().next().html()==null||$(t).parent().next().html()=='')
  71. $(t).parent().after('<font color="red">维度重复。</font>');
  72. }
  73. });
  74. });
  75. }
  76. /*if(yes){
  77. $aryId.parent().removeClass("error");
  78. if($aryId.parent().next().html()!=null)
  79. $aryId.parent().next().empty();
  80. }*/
  81. return yes;
  82. };
  83. function validateVal(){
  84. var yes=true;
  85. var $upLowLevels=$("input[name='upLowLevel']");
  86. if($upLowLevels.length>0){
  87. for(i=0;i<$upLowLevels.length;i++){
  88. var upLowLevel=$($upLowLevels[i]).val();
  89. if(isNaN(upLowLevel)||upLowLevel=="")
  90. {
  91. $($upLowLevels[i]).addClass("error");
  92. if($($upLowLevels[i]).next().html()==null||$($upLowLevels[i]).next().html()=='')
  93. $($upLowLevels[i]).after('<font color="red">请输入数字。</font>');
  94. yes=false;
  95. }
  96. }
  97. }
  98. /*if(yes){
  99. $upLowLevels.removeClass("error");
  100. if($upLowLevels.next().html()!=null)
  101. $upLowLevels.next().empty();
  102. }*/
  103. return yes;
  104. };
  105. function handlerDelSelect(){
  106. //单击删除超链接的事件处理
  107. $("div.toolBar a.del").click(function()
  108. {
  109. if(!$(this).hasClass('disabled')) {
  110. var $aryId = $("input[type='checkbox'][class='pk']:checked");
  111. //提交到后台服务器进行日志删除批处理的日志编号字符串
  112. if($aryId.length > 0)
  113. {
  114. $aryId.each(function(i){
  115. handlerDelOne(this);
  116. });
  117. }
  118. }
  119. });
  120. };
  121. function handlerDelOne(obj){
  122. var tr=$(obj).parents('tr');
  123. $(tr).remove();
  124. };
  125. $(function(){
  126. $("#defLayout").ligerLayout({
  127. height : '90%'
  128. });
  129. });
  130. /**
  131. * json:
  132. * [{userType:start,demensionId:10000002850002,demensionName:"财务维度",upLowType:0,upLowLevel:0,isCharge:0}]
  133. * show:
  134. * 发起人行政维度同0级
  135. */
  136. function selectUplow(){
  137. if(!validDuplicate())return;
  138. if(!validateVal())return;
  139. var json=getUplowJson();
  140. var show=getUplowShow();
  141. //alert(json);
  142. //alert(show);
  143. //window.returnValue={json:json,show:show};
  144. var rtn={json:json,show:show};
  145. dialog.get("sucCall")(rtn);
  146. dialog.close();
  147. };
  148. /**
  149. * 发起人行政维度同0级
  150. */
  151. function getUplowShow(){
  152. var $demensionIds=$("select[name='demensionId'] option:selected");
  153. var $upLowTypes=$("select[name='upLowType'] option:selected");
  154. var $upLowLevels=$("select[name='upLowLevel'] option:selected");
  155. var $isCharge=$("input[name='isCharge']:checkbox");
  156. var objUserType=$("[name='userType']:checked");
  157. var varUserTypeName=objUserType.attr("memo");
  158. var sb=new StringBuffer("");
  159. if($demensionIds.length>0){
  160. for(i=0;i<$demensionIds.length;i++){
  161. var demensionName=$($demensionIds[i]).text();
  162. var upLowType=$($upLowTypes[i]).val();
  163. var upLowLevel=$($upLowLevels[i]).val();
  164. var isCharge=$($isCharge[i]).attr("checked")?1:0;
  165. var type="同";
  166. if(upLowType==1) type="上";
  167. else if(upLowType==-1)type="下";
  168. else type="同";
  169. var charge = "";
  170. if(isCharge==1) charge="负责人";
  171. sb.append(varUserTypeName);
  172. sb.append(demensionName);
  173. sb.append(type);
  174. sb.append(upLowLevel);
  175. sb.append("级");
  176. sb.append(charge);
  177. sb.append(",");
  178. }
  179. sb=sb.toString();
  180. if(sb.length>0)sb=sb.substring(0,(sb.length-1));
  181. }
  182. return sb;
  183. };
  184. /**
  185. * [{userType:start,demensionId:10000002850002,demensionName:"财务维度",upLowType:0,upLowLevel:0,isCharge:0}]
  186. */
  187. function getUplowJson(){
  188. var objUserType=$("[name='userType']:checked");
  189. var varUserType=objUserType.val();
  190. var $demensionIds=$("select[name='demensionId'] option:selected");
  191. var $upLowTypes=$("select[name='upLowType'] option:selected");
  192. var $upLowLevels=$("select[name='upLowLevel'] option:selected");
  193. var $isCharge=$("input[name='isCharge']:checkbox");
  194. var sb=new StringBuffer();
  195. sb.append("[");
  196. if($demensionIds.length>0){
  197. for(i=0;i<$demensionIds.length;i++){
  198. var demensionId=$($demensionIds[i]).val();
  199. var demensionName=$($demensionIds[i]).text();
  200. var upLowType=$($upLowTypes[i]).val();
  201. var upLowLevel=$($upLowLevels[i]).val();
  202. var isCharge=$($isCharge[i]).attr("checked")?1:0;
  203. sb.append("{");
  204. sb.append("demensionId");
  205. sb.append(":");
  206. sb.append(demensionId);
  207. sb.append(",");
  208. sb.append("demensionName");
  209. sb.append(":");
  210. sb.append("\"");
  211. sb.append(demensionName);
  212. sb.append("\"");
  213. sb.append(",");
  214. sb.append("upLowType");
  215. sb.append(":");
  216. sb.append(upLowType);
  217. sb.append(",");
  218. sb.append("upLowLevel");
  219. sb.append(":");
  220. sb.append(upLowLevel);
  221. sb.append(",")
  222. sb.append("isCharge");
  223. sb.append(":");
  224. sb.append(isCharge);
  225. if(objUserType.length>0){
  226. sb.append(",");
  227. sb.append("userType");
  228. sb.append(":");
  229. sb.append("\"");
  230. sb.append(varUserType);
  231. sb.append("\"");
  232. }
  233. sb.append("}");
  234. sb.append(",");
  235. }
  236. sb=sb.toString();
  237. if(sb.length>0)sb=sb.substring(0,(sb.length-1));
  238. }
  239. sb+="]";
  240. return sb;
  241. };
  242. function validUpLowType(obj){
  243. var td1=$(obj).parents("td");
  244. var upLowType=$(obj).val();
  245. var td2=$(td1).next("td");
  246. if(upLowType==0){
  247. $(td2).find("select[name='upLowLevel']").val(0);
  248. $(td2).find("select[name='upLowLevel']").hide();
  249. }else{
  250. $(td2).find("select[name='upLowLevel']").show();
  251. var upLowLevel=$(td2).find("select[name='upLowLevel']").val();
  252. if(upLowLevel==0)
  253. $(td2).find("select[name='upLowLevel']").val(1);
  254. }
  255. };
  256. function validUpLowLevel(obj){
  257. var upLowLevel=$(obj).val();
  258. if(upLowLevel==0){
  259. var td2=$(obj).parents("td");
  260. var td1=$(td2).prev("td");
  261. $(td1).find("select[name='upLowType']").val(0);
  262. $(obj).hide();
  263. }else{
  264. var td2=$(obj).parents("td");
  265. var td1=$(td2).prev("td");
  266. var upLowType=$(td1).find("select[name='upLowType']").val();
  267. if(upLowType==0)$(obj).val(0);
  268. }
  269. };
  270. function preview(){
  271. var json=getUplowJson();
  272. var dialogWidth=650;
  273. var dialogHeight=500;
  274. var conf={dialogWidth:dialogWidth ,dialogHeight:dialogHeight ,help:0,status:0,scroll:0,center:1};
  275. var winArgs="dialogWidth="+conf.dialogWidth+"px;dialogHeight="+conf.dialogHeight
  276. +"px;help=" + conf.help +";status=" + conf.status +";scroll=" + conf.scroll +";center=" +conf.center;
  277. var url=__ctx + '/platform/bpm/bpmNodeUserUplow/getByUserId.ht?json='+json;
  278. url=url.getNewUrl();
  279. //window.showModalDialog(url,"",winArgs);
  280. DialogUtil.open({
  281. height:conf.dialogHeight,
  282. width: conf.dialogWidth,
  283. title : '预览',
  284. url: url,
  285. isResize: true,
  286. });
  287. };
  288. </script>
  289. </head>
  290. <body>
  291. <div id="defLayout">
  292. <div position="center">
  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="l-bar-separator"></div>
  301. <div class="group"><a class="link add " href="javascript:add();"><span></span>添加</a></div>
  302. <div class="l-bar-separator"></div>
  303. <div class="group"><a class="link del" action="del.ht"><span></span>删除</a></div>
  304. <!-- <div class="l-bar-separator"></div>
  305. <div class="group"><a onclick="preview();" class="link preview"><span></span>预览</a></div> -->
  306. </div>
  307. </div>
  308. </div>
  309. <div class="panel-body">
  310. <div class="panel-data" style="overflow: auto;height: 340px">
  311. <form id="sysUserParamForm" method="post" action="${ctx }/platform/system/sysUserParam/saveByUserId.ht">
  312. <input type="hidden" name="userId" value="${userId }">
  313. <table class="table-grid" width="90%">
  314. <tr>
  315. <td>人员类型:</td>
  316. <td align="left">
  317. <input type="radio" name="userType" value="start" memo="发起人" <c:if test="${empty userType|| userType eq 'start'}">checked="checked"</c:if> />
  318. 发起人
  319. <input type="radio" name="userType" value="prev" memo="上一任务执行人" <c:if test="${userType eq 'prev'}">checked="checked"</c:if> />
  320. 上一任务执行人
  321. </td>
  322. </tr>
  323. </table>
  324. <table id="demensionItem" cellpadding="1" cellspacing="1" class="table-grid">
  325. <head>
  326. <th style="text-align: center;">
  327. <input type="checkbox" id="chkall"/>
  328. </th>
  329. <th style="text-align: center;">维度</th>
  330. <th style="text-align: center;">上下级关系</th>
  331. <th style="text-align: center;">级数</th>
  332. <th style="text-align: center;">是否负责人</th>
  333. <th style="text-align: center;">管理</th>
  334. </head>
  335. <tbody>
  336. </tbody>
  337. </table>
  338. </form>
  339. </div>
  340. </div>
  341. </div>
  342. </div>
  343. </div>
  344. <div position="bottom" class="bottom" style='margin-top:10px'>
  345. <a href='#' class='button' onclick="selectUplow()" ><span class="icon ok"></span><span >选择</span></a>
  346. <a href='#' class='button' style='margin-left:10px;' onclick="dialog.close()"><span class="icon cancel"></span><span >取消</span></a>
  347. </div>
  348. </body>
  349. </html>