BpmDefinitionConditionEdit.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. var assignUseType = 0;
  2. $(function(){
  3. //绑定上下移动
  4. $("a.moveup,a.movedown").click(move);
  5. var data = getInitData();
  6. //初始化日期控件
  7. FormUtil.initCalendar();
  8. $("#ruleDiv").linkdiv({data:data,updateContent:updateContent,rule2json:rule2json});
  9. });
  10. /*KILLDIALOG*/
  11. function addDiv(ruleType){
  12. $("#ruleDiv").linkdiv("addDiv",{ruleType:ruleType});
  13. };
  14. function removeDiv(){
  15. $("#ruleDiv").linkdiv("removeDiv");
  16. };
  17. function assembleDiv(){
  18. $("#ruleDiv").linkdiv("assembleDiv");
  19. };
  20. function splitDiv(){
  21. $("#ruleDiv").linkdiv("splitDiv");
  22. };
  23. function getData(){
  24. var json = $("#ruleDiv").linkdiv("getData");
  25. return json;
  26. };
  27. function getInitData(){
  28. var data = $("#conditionTxt").val().trim();
  29. if(data=="") return;
  30. var json = eval("("+data+")");
  31. if(json.length==0)return;
  32. return json;
  33. };
  34. //保存数据
  35. function save(){
  36. //获取条件的JS,这个方法在BpmNodeRule.js
  37. var json = getData();
  38. //构建参数
  39. var param = $("#conditionEntity").val();
  40. param = eval("("+param+")");
  41. assignUseType = param.conditionType;
  42. if(json.length>0)
  43. param.condition = JSON2.stringify(json);
  44. var users = extractNodeUserDatas();
  45. if(!users){
  46. $.ligerDialog.warn("没有设置用户!","提示信息");
  47. return;
  48. }
  49. var conditionShow = getconditionShow();
  50. if(conditionShow)
  51. param.conditionShow = conditionShow;
  52. param.users = users;
  53. var parentActDefId=$('#parentActDefId').val();
  54. if(parentActDefId){
  55. param.parentActDefId = parentActDefId;
  56. }
  57. $.post(__ctx+"/platform/bpm/bpmUserCondition/save.ht",param,function(response){
  58. var resultJson=eval('('+response+')');
  59. if(resultJson.result==1){
  60. $.ligerDialog.success("保存成功!","提示信息",function(rtn){
  61. //对话框
  62. //window.returnValue=true;
  63. try{
  64. dialog.get("sucCall")(true);
  65. dialog.close();
  66. }catch (e) {
  67. //使用window open打开的处理。
  68. if(window.opener){
  69. window.opener.location.href=window.opener.location.href.getNewUrl();
  70. window.close();
  71. }
  72. }
  73. });
  74. }
  75. else{
  76. $.ligerDialog.warn(resultJson.message);
  77. }
  78. });
  79. };
  80. /******************用户设置相关代码*********************/
  81. //绑定上下移动
  82. function move(){
  83. var obj=$(this);
  84. var direct=obj.hasClass("moveup");
  85. var objTr=obj.closest("tr");
  86. if(direct){
  87. var prevObj=objTr.prev();
  88. if(prevObj.length>0){
  89. objTr.insertBefore(prevObj);
  90. }
  91. }
  92. else{
  93. var nextObj=objTr.next();
  94. if(nextObj.length>0){
  95. objTr.insertAfter(nextObj);
  96. }
  97. }
  98. };
  99. // 获取用户设置
  100. function extractNodeUserDatas(){
  101. var users = new Array();
  102. $("#tbodyUserSet").find("tr").each(function(){
  103. var tr = $(this);
  104. var assignType = tr.find("[name='assignType']").val();
  105. var nodeId = tr.find("[name='nodeId']").val();
  106. var cmpIds = tr.find("[name='cmpIds']").val();
  107. var cmpNames = tr.find("[name='cmpNames']").val();
  108. var nodeUserId = tr.find("[name='nodeUserId']").val();
  109. var compType = tr.find("[name='compType']").val();
  110. var extractUser = tr.find("[name='extractUser']").val();
  111. var user={
  112. nodeUserId:nodeUserId,
  113. assignType:assignType,
  114. assignUseType:assignUseType,
  115. nodeId:nodeId,
  116. cmpIds:cmpIds,
  117. cmpNames:cmpNames,
  118. compType:compType,
  119. extractUser:extractUser
  120. };
  121. users.push(user);
  122. });
  123. if(users.length==0)return false;
  124. return JSON2.stringify(users);
  125. };
  126. //获取用来显示的用户设置文字描述
  127. function getconditionShow(){
  128. var joinTxt = [];
  129. $("#tbodyUserSet").find("tr").each(function(){
  130. var me = $(this),
  131. assignTypeSpan = $("option:selected",$("select[name='assignType']",me)),
  132. assignType = '',
  133. cmpNames = $("textarea[name='cmpNames']",me).val(),
  134. compTypeSpan = $("option:selected",$("select[name='compType']",me)),
  135. compType = '';
  136. if(assignTypeSpan[0]){
  137. assignType = assignTypeSpan[0].text;
  138. }
  139. if(compTypeSpan[0]){
  140. compType = compTypeSpan[0].text;
  141. }
  142. if(!!!assignType){
  143. assignType = $("input[name='assignType']",me).siblings("span").text();
  144. }
  145. if(joinTxt.length > 0){
  146. joinTxt.push(' ');
  147. joinTxt.push(compType);
  148. joinTxt.push(' ');
  149. }
  150. joinTxt.push(assignType);
  151. joinTxt.push(':');
  152. joinTxt.push(cmpNames);
  153. });
  154. return joinTxt.join('');
  155. };
  156. // 获取选择的用户用户设置
  157. function getNodeUserDatas(){
  158. var users = new Array();
  159. $("#tbodyUserSet").find("tr").each(function(){
  160. var tr = $(this);
  161. var nodeUserCk=tr.find("input[name='nodeUserCk']:checked");
  162. var assignType = tr.find("[name='assignType']").val();
  163. var nodeId = tr.find("[name='nodeId']").val();
  164. var cmpIds = tr.find("[name='cmpIds']").val();
  165. var cmpNames = tr.find("[name='cmpNames']").val();
  166. var nodeUserId = tr.find("[name='nodeUserId']").val();
  167. var compType = tr.find("[name='compType']").val();
  168. var user={
  169. nodeUserCk:nodeUserCk.length>0?true:false,
  170. nodeUserId:nodeUserId,
  171. assignType:assignType,
  172. assignUseType:assignUseType,
  173. nodeId:nodeId,
  174. cmpIds:cmpIds,
  175. cmpNames:cmpNames,
  176. compType:compType
  177. };
  178. users.push(user);
  179. });
  180. if(users.length==0)return false;
  181. var userData = new Array();
  182. $.each(users,function(d, e) {
  183. if(e.nodeUserCk)
  184. userData.push(e);
  185. })
  186. if(userData.length>0){
  187. return JSON2.stringify(userData);
  188. }else{
  189. return JSON2.stringify(users);
  190. }
  191. };
  192. /**
  193. * 预览
  194. * @param {} defId
  195. */
  196. function previewUserSetting(defId){
  197. var params=getNodeUserDatas();
  198. if(!params) {
  199. alert("还没有定义用户配置!");
  200. return;
  201. }
  202. var winArgs="dialogWidth=600px;dialogHeight=400px;help=0;status=0;scroll=1;center=1";
  203. var url=__ctx + '/platform/bpm/bpmNodeUser/previewMockParams.ht?defId=' +defId;
  204. url=url.getNewUrl();
  205. DialogUtil.open({
  206. height:400,
  207. width: 600,
  208. title : '预览',
  209. url: url,
  210. isResize: true,
  211. //自定义参数
  212. params: params
  213. });
  214. }