agentConditionEdit.jsp 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. <%@page language="java" 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. <f:link href="form.css" ></f:link>
  8. <link href="${ctx}/js/jquery/plugins/link-div-default.css" rel="stylesheet" type="text/css" />
  9. <script type="text/javascript" src="${ctx}/js/hotent/CustomValid.js"></script>
  10. <script type="text/javascript" src="${ctx}/js/hotent/formdata.js"></script>
  11. <script type="text/javascript" src="${ctx}/js/hotent/platform/system/SysDialog.js"></script>
  12. <script type="text/javascript" src="${ctx}/js/util/easyTemplate.js" ></script>
  13. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/BpmNodeRule.js"></script>
  14. <script type="text/javascript" src="${ctx}/js/hotent/platform/form/FormUtil.js"></script>
  15. <script type="text/javascript" src="${ctx}/js/hotent/platform/form/SelectorInit.js"></script>
  16. <script type="text/javascript" src="${ctx}/js/hotent/platform/system/ConditionScriptEditDialog.js"></script>
  17. <script type="text/javascript" src="${ctx}/js/jquery/plugins/jquery.linkdiv.js"></script>
  18. <script type="text/javascript">
  19. /*KILLDIALOG*/
  20. var dialog = frameElement.dialog; //调用页面的dialog对象(ligerui对象)
  21. //var winArgs = window.dialogArguments;
  22. var winArgs =dialog.get("params");
  23. $(function() {
  24. $("a.save").click(saveCondForm);
  25. //初始化条件
  26. var conditions = winArgs.conditions;
  27. initConditions(conditions);
  28. if($("#agentConditionForm [name='conditionItem']").length==0){
  29. addAgent();
  30. }
  31. });
  32. /**
  33. * 初始化条件设置
  34. */
  35. function initConditions(conditions){
  36. for(var i=0;i<conditions.length;i++){
  37. cond = conditions[i];
  38. constructConditionItem(cond);
  39. }
  40. };
  41. /**
  42. * 构造代理条件
  43. */
  44. function constructConditionItem(cond){
  45. var agentid = cond.agentid;
  46. var agent= cond.agent;
  47. var condition = cond.condition.condition;
  48. var memo = cond.memo;
  49. var temp = $("#divAgentTemplate [name='conditionItem']").clone();
  50. $('[name="agentid"]',temp).val(agentid);
  51. $('[name="agent"]',temp).val(agent);
  52. $("#agentConditionForm").append(temp);
  53. //初始化规则代码
  54. $("div[name='ruleDiv']",temp).linkdiv({data:condition,updateContent:updateContent,rule2json:rule2json});
  55. };
  56. /**
  57. * 处理【确定】事件,保存条件信息
  58. */
  59. function saveCondForm(){
  60. var conditions = getConditions();
  61. var status=0;
  62. var msg="";
  63. if(!conditions || conditions.length<1){
  64. status=-1;
  65. msg= '请设置至少一个以上 <B>代理人设置</B>!';
  66. }
  67. for(var i=0;i<conditions.length;i++){
  68. var cond = conditions[i];
  69. if(!cond.agentid){
  70. status=-1;
  71. msg+=String.format('第{0}个 <B>代理人设置</B> 没有指定代理人!<br/>',i+1);
  72. }
  73. }
  74. if(status){
  75. $.ligerDialog.warn(msg,$lang.tip.msg);
  76. return;
  77. }
  78. var winRtn = {
  79. status:1,
  80. conditions:conditions
  81. };
  82. //window.returnValue = winRtn;
  83. dialog.get("sucCall")(winRtn);
  84. dialog.close();
  85. };
  86. /**
  87. * 获取代理条件设置
  88. */
  89. function getConditions(){
  90. var conditions = [];
  91. var tableId = $("#tableId").val();
  92. var conditionItems = $("div[name='conditionItem']",$("#agentConditionForm"));
  93. conditionItems.each(function(){
  94. var item = $(this);
  95. var agentid = $("[name='agentid']",item).val();
  96. var agent = $("[name='agent']",item).val();
  97. var condition = getData(item);
  98. var memo = '';
  99. var cond={
  100. agentid:agentid,
  101. agent:agent,
  102. condition:{
  103. tableId:tableId,
  104. condition:condition
  105. },
  106. memo:memo
  107. };
  108. conditions.push(cond);
  109. });
  110. return conditions;
  111. };
  112. /**
  113. * 添加一个代理条件
  114. */
  115. function addAgent(){
  116. var temp = $("#divAgentTemplate [name='conditionItem']").clone();
  117. $('[name="agentid"]',temp).val("");
  118. $('[name="agent"]',temp).val("");
  119. $("#agentConditionForm").append(temp);
  120. $("div[name='ruleDiv']",temp).linkdiv({updateContent:updateContent,rule2json:rule2json});
  121. }
  122. /**
  123. * 选择代理人
  124. */
  125. function selectAgent(linkObj){
  126. var obj=$(linkObj).closest("td");
  127. UserDialog({isSingle:true,
  128. callback:function(userIds, fullnames){
  129. $("[name='agent']",obj).val(fullnames);
  130. $("[name='agentid']",obj).val(userIds);
  131. }
  132. });
  133. };
  134. /**
  135. * 删除一个代理条件
  136. */
  137. function delAgent(obj){
  138. var objFieldSet=$(obj).closest("[name='conditionItem']");
  139. objFieldSet.remove();
  140. }
  141. /*********************************************/
  142. function getRuleDiv(t){
  143. var parent = $(t).parents("div.link-div");
  144. return $("div[name='ruleDiv']",parent);
  145. };
  146. function addDiv(ruleType){
  147. getRuleDiv(this).linkdiv("addDiv",{ruleType:ruleType});
  148. };
  149. function removeDiv(){
  150. getRuleDiv(this).linkdiv("removeDiv");
  151. };
  152. function assembleDiv(){
  153. getRuleDiv(this).linkdiv("assembleDiv");
  154. };
  155. function splitDiv(){
  156. getRuleDiv(this).linkdiv("splitDiv");
  157. };
  158. function getData(t){
  159. var ruleDiv = $("div[name='ruleDiv']",t);
  160. var json = ruleDiv.linkdiv("getData");
  161. return json;
  162. };
  163. </script>
  164. </head>
  165. <body>
  166. <div class="panel">
  167. <div class="panel-top">
  168. <div class="tbar-title">
  169. <c:choose>
  170. <c:when test="${agentCondition.id !=null}">
  171. <span class="tbar-label">更新条件代理</span>
  172. </c:when>
  173. <c:otherwise>
  174. <span class="tbar-label">添加条件代理</span>
  175. </c:otherwise>
  176. </c:choose>
  177. </div>
  178. <div class="panel-toolbar">
  179. <div class="toolBar">
  180. <div class="group"><a class="link save" id="dataFormSave" href="javascript:;"><span></span></span>确定</a></div>
  181. <div class="l-bar-separator"></div>
  182. <div class="group"><a class="link add" onclick="addAgent()" href="javascript:;"><span></span>添加</a></div>
  183. <div class="l-bar-separator"></div>
  184. <div class="group"><a class="link close" href="javascript:;" onclick="dialog.close()"><span></span>关闭</a></div>
  185. </div>
  186. </div>
  187. </div>
  188. <div class="panel-body">
  189. <form id="agentConditionForm" method="post" action="save.ht">
  190. <input id="tableId" value="${tableId}" type="hidden"/>
  191. <input id="defId" value="${defId}" type="hidden"/>
  192. </form>
  193. </div>
  194. </div>
  195. <div style="display: none;" id="divAgentTemplate">
  196. <div name="conditionItem">
  197. <fieldset style="margin: 5px 0px 5px 0px;" zone="team" >
  198. <legend>
  199. <span>代理人设置</span>
  200. <a style="margin-left: 5px" class="link del" var="del" onclick="delAgent(this)" title="代理人设置">删除</a>
  201. </legend>
  202. <div>
  203. <table class="table-detail" cellpadding="0" cellspacing="0" border="0" type="main">
  204. <tr>
  205. <th width="20%">代理人: </th>
  206. <td>
  207. <input type="hidden" name="agentid" />
  208. <input type="text" name="agent" class="inputText" readonly="readonly" />
  209. <a href="javascript:;" class="button" onclick="selectAgent(this);"><span class="chosen">选 择...</span></a>
  210. </td>
  211. </tr>
  212. </table>
  213. <div class="link-div">
  214. <div class="table-top">
  215. <div class="table-top-right">
  216. <div class="toolBar" style="margin:0;">
  217. <div class="group"><a class="link add" onclick="addDiv.apply(this,[1])">添加规则</a></div>
  218. <div class="l-bar-separator"></div>
  219. <div class="group"><a class="link add" onclick="addDiv.apply(this,[2])">添加脚本</a></div>
  220. <div class="l-bar-separator"></div>
  221. <div class="group"><a class="link switchuser" onclick="assembleDiv.apply(this)">组合规则</a></div>
  222. <div class="l-bar-separator"></div>
  223. <div class="group"><a class="link switchuser" onclick="splitDiv.apply(this)">拆分规则</a></div>
  224. <div class="l-bar-separator"></div>
  225. <div class="group"><a class="link del" onclick="removeDiv.apply(this)">删除</a></div>
  226. </div>
  227. </div>
  228. </div>
  229. <div name="ruleDiv" style="border:2px solid #ccc;margin:5px 0 0 0;"></div>
  230. </div>
  231. </div>
  232. </fieldset>
  233. </div>
  234. </div>
  235. <%@include file="/commons/include/nodeRuleTemplate.jsp" %>
  236. </body>
  237. </html>