bpmDefinitionOtherParam.jsp 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424
  1. <%--
  2. time:2012-01-05 12:01:21
  3. desc:edit the 其它参数
  4. --%>
  5. <%@page language="java" pageEncoding="UTF-8"%>
  6. <%@include file="/commons/include/html_doctype.html"%>
  7. <html>
  8. <head>
  9. <title>其他参数设置</title>
  10. <%@include file="/commons/include/get.jsp" %>
  11. <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/FlowVarWindow.js"></script>
  12. <script type="text/javascript" src="${ctx}/js/hotent/platform/system/FlexUploadDialog.js"></script>
  13. <script type="text/javascript" charset="utf-8" src="${ctx}/js/ueditor2/form-setting/editor_config.js"></script>
  14. <script type="text/javascript" charset="utf-8" src="${ctx}/js/ueditor2/editor_api.js"></script>
  15. <script type="text/javascript">
  16. var defId=${bpmDefinition.defId };
  17. var ortherParamUeditor;//百度编辑器
  18. $(function(){
  19. ueditorInit();//初始化编辑器
  20. handFlowVars();
  21. //状态改变
  22. handleStatusChange();
  23. });
  24. function ueditorInit(){
  25. ortherParamUeditor = new baidu.editor.ui.Editor
  26. ({minFrameHeight:100,initialFrameWidth:'100%',lang:'zh_cn',
  27. toolbars:[['undo','redo','bold','italic', 'underline',
  28. 'subscript','superscript', 'removeformat',
  29. 'selectall', 'forecolor','fontsize', 'backcolor','justifyleft',
  30. 'justifyright', 'justifycenter', 'justifyjustify',
  31. 'subject','startuser', 'startdate','starttime','businesskey']]
  32. });
  33. ortherParamUeditor.render("taskNameRule");
  34. }
  35. function handleStatusChange(){
  36. $("#status").change(function(){
  37. var v=$(this).val();
  38. if(v=="2" || v=="3"){
  39. $("#spanMessage").hide();
  40. }
  41. else{
  42. $("#spanMessage").show();
  43. }
  44. if(v=="4"){
  45. $("#testTag").show();
  46. }else{
  47. $("#testTag").hide();
  48. }
  49. });
  50. }
  51. function handFlowVars(){
  52. var objConditionCode=$("#taskNameRule");
  53. $("select[name='selFlowVar']").change(function(){
  54. var val=$(this).val();
  55. var text=$(this).find("option:selected").text();
  56. if(val.length==0) return;
  57. if(text=="发起人(长整型)")
  58. text=text.replace("(长整型)","");
  59. var inStr="{"+text+":"+val+"}";
  60. InsertText(inStr);
  61. });
  62. }
  63. function InsertText(val){
  64. var html = ortherParamUeditor.getContent();
  65. ortherParamUeditor.setContent(html+val);
  66. }
  67. function getCheckedValue(id){
  68. var checked=$(id).attr("checked");
  69. if(checked==undefined){
  70. return 0;
  71. }else if(checked){
  72. return 1;
  73. }else{
  74. return 0;
  75. }
  76. }
  77. function getMsgTypeList(id){
  78. var msgTypeList=[];
  79. $("input[name='"+id+"']").each(function(){
  80. var me = $(this),
  81. val = me.val(),
  82. state = me.attr("checked");
  83. if(state)
  84. msgTypeList.push(val);
  85. });
  86. return msgTypeList;
  87. }
  88. function saveParam(){
  89. var taskNameRule=ortherParamUeditor.getContent().replace("<p>", "").replace("</p>","");
  90. var toFirstNode=getCheckedValue("#toFirstNode");
  91. var showFirstAssignee=getCheckedValue("#showFirstAssignee");
  92. var submitConfirm=getCheckedValue("#submitConfirm");
  93. var allowDivert=getCheckedValue("#allowDivert");
  94. var allowFinishedDivert=getCheckedValue("#allowFinishedDivert");
  95. var informStart = getMsgTypeList("informStart");
  96. var informType = getMsgTypeList("informType");
  97. var allowFinishedCc=getCheckedValue("#allowFinishedCc");
  98. var isPrintForm=getCheckedValue("#isPrintForm");
  99. var formDetailUrl=$('#formDetailUrl').val();
  100. var attachment=$('#attachment').val();
  101. var status=$('#status').val();
  102. var isUseOutForm=getCheckedValue("#isUseOutForm");
  103. var isUseOutForm=getCheckedValue("#isUseOutForm");
  104. var allowRefer=getCheckedValue("#allowRefer");
  105. var instanceAmount=$('#instanceAmount').val();
  106. var testStatusTag=$('#testStatusTag').val();
  107. var directstart=getCheckedValue("#directstart");
  108. var ccMessageType = $("input[name='ccMessageType']").val();
  109. var allowMobile=getCheckedValue("#allowMobile");
  110. var skipSetting=getMsgTypeList("skipSetting");
  111. var params={defId:defId,taskNameRule:taskNameRule,toFirstNode:toFirstNode,
  112. showFirstAssignee:showFirstAssignee,
  113. submitConfirm:submitConfirm,allowDivert:allowDivert,
  114. allowFinishedDivert:allowFinishedDivert,informStart:informStart.join(','),
  115. informType:informType.join(','),allowFinishedCc:allowFinishedCc,
  116. isPrintForm:isPrintForm,attachment:attachment,
  117. status:status,isUseOutForm:isUseOutForm,allowRefer:allowRefer,
  118. instanceAmount:instanceAmount,directstart:directstart,ccMessageType:ccMessageType,
  119. testStatusTag:testStatusTag,allowMobile:allowMobile,
  120. skipSetting:skipSetting.join(',')};
  121. $.post("saveParam.ht",params,function(msg){
  122. var obj=new com.hotent.form.ResultMessage(msg);
  123. if(obj.isSuccess()){
  124. $.ligerDialog.success(obj.getMessage(),"操作成功");
  125. }else{
  126. $.ligerDialog.err('出错信息',"流程定义其他参数设置失败",obj.getMessage());
  127. }
  128. });
  129. }
  130. function openCcUserList(){
  131. var url=__ctx +'/platform/bpm/bpmDefinition/copyUserList.ht?defId=${bpmDefinition.defId}&parentActDefId=${parentActDefId}';
  132. var winArgs="height=450,width=750,status=no,toolbar=no,menubar=no,location=no,resizable=1,scrollbars=1";
  133. url=url.getNewUrl();
  134. window.open(url,"",winArgs);
  135. $("#allowFinishedCc").attr("checked","checked");
  136. };
  137. //添加附件
  138. function addFile(){
  139. FlexUploadDialog({isSingle:true,callback:fileCallback});
  140. };
  141. function fileCallback(fileIds,fileNames,filePaths){
  142. if(fileIds==undefined || fileIds=="") return ;
  143. var url=__ctx+"/platform/system/sysFile/file_"+fileIds +".ht";
  144. $("#attachment").val(fileIds);
  145. if($("#file").length>0){
  146. $("#file").attr("href",url).text(fileNames);
  147. }else{
  148. var node='<a href="'+url+'" target="_blank" id="file">'+fileNames+' </a><a class="link del" onclick="del(this)" style="cursor:pointer;"> 删除</a>';
  149. $("#attachment").after(node);
  150. }
  151. }
  152. function del(obj){
  153. $("#attachment").val("");
  154. $("#file").remove();
  155. $(obj).remove();
  156. }
  157. var referDef;
  158. function referDefinition(){
  159. var url=__ctx +'/platform/bpm/bpmDefinition/defReferSelector.ht?defId=${bpmDefinition.defId}';
  160. referDef = $.ligerDialog.open({
  161. title:'流程引用',
  162. mask:true,
  163. isResize:true,
  164. height: 500,
  165. url:url,
  166. width:700,
  167. buttons:[
  168. { text: '确定', onclick: function (item, dialog) {
  169. var contents=$("iframe",dialog.dialog).contents()
  170. var chKeys=contents.find("input.pk[name=defKey]:checked");
  171. var defId=contents.find("#bpmDefId").val();
  172. var aryDefKey = [];
  173. $.each(chKeys,function(i,ch){
  174. aryDefKey.push($(ch).val());
  175. });
  176. var params={defId:defId,refers:aryDefKey.join(",")};
  177. if(aryDefKey.length > 0){
  178. $.post("saveReferDef.ht",params,function(map){
  179. var spanHtml='';
  180. for (var key in map) {
  181. spanHtml=spanHtml+"<span id='ref_"+key+"'>"+map[key]+"<a href='javascript:void(0);' onclick='delRefer("+key+")'>删除</a>&nbsp;&nbsp;&nbsp;&nbsp;</span>"
  182. }
  183. $("span#refDefArray").html(spanHtml);
  184. $.ligerDialog.success('流程引用成功!','提示');
  185. });
  186. }else{
  187. $.ligerDialog.warn('请选择引用流程!','提示');
  188. }
  189. dialog.close();
  190. }
  191. },
  192. { text: '取消', onclick: function (item, dialog) { dialog.close(); } }
  193. ]});
  194. };
  195. function clickAllowRefer(obj){
  196. var $obj=$(obj);
  197. if($obj.attr("checked")){
  198. $("#spanInstanceAmount").show();
  199. }
  200. else{
  201. $("#spanInstanceAmount").hide();
  202. }
  203. }
  204. function delRefer(refId){
  205. $.post("delReferDef.ht",{refId:refId},function(msg){
  206. var obj=new com.hotent.form.ResultMessage(msg);
  207. if(obj.isSuccess()){
  208. $.ligerDialog.success(obj.getMessage(),'提示');
  209. $('#ref_'+refId).remove();
  210. }else{
  211. $.ligerDialog.err("提示信息","删除流程引用失败!",obj.getMessage());
  212. }
  213. });
  214. }
  215. </script>
  216. </head>
  217. <body>
  218. <jsp:include page="incDefinitionHead.jsp">
  219. <jsp:param value="其他参数" name="title"/>
  220. </jsp:include>
  221. <div class="panel-container">
  222. <f:tab curTab="otherParam" tabName="flow"/>
  223. <div class="panel-top">
  224. <div class="tbar-title">
  225. <span class="tbar-label">流程定义其他参数设置</span>
  226. </div>
  227. <div class="panel-toolbar">
  228. <div class="toolBar">
  229. <div class="group"><a class="link save" onclick="saveParam()"><span></span>保存</a></div>
  230. </div>
  231. </div>
  232. </div>
  233. <div class="panel-detail">
  234. <table class="table-detail" cellpadding="0" cellspacing="0" border="0">
  235. <tr>
  236. <th width="15%">流程标题规则定义</th>
  237. <td>
  238. 表单变量:<f:flowVar defId="${defId}" controlName="selFlowVar"></f:flowVar>
  239. <textarea id="taskNameRule" row="6" name="taskNameRule" >${bpmDefinition.taskNameRule }</textarea>
  240. </td>
  241. </tr>
  242. <tr>
  243. <th width="15%">跳过第一个任务:</th>
  244. <td>
  245. <input id="toFirstNode" type="checkbox" name="toFirstNode" value="0" <c:if test="${bpmDefinition.toFirstNode==1 }">checked="checked"</c:if> />
  246. <div class="tipbox"><a href="javascript:;" class="tipinfo"><span>流程启动后直接完成第一个节点的任务。</span></a></div>
  247. </td>
  248. </tr>
  249. <c:if test="${!isStartMultipleNode}">
  250. <tr>
  251. <th width="15%">直接启动流程:</th>
  252. <td>
  253. <input id="directstart" type="checkbox" name="directstart" value="0" <c:if test="${bpmDefinition.directstart==1 }">checked="checked"</c:if> />
  254. <div class="tipbox"><a href="javascript:;" class="tipinfo"><span>不使用表单直接启动流程,启动流程时不传入主键。</span></a></div>
  255. </td>
  256. </tr>
  257. </c:if>
  258. <tr>
  259. <th width="15%">流程启动选择执行人:</th>
  260. <td>
  261. <input id="showFirstAssignee" type="checkbox" name="showFirstAssignee" value="1" <c:if test="${bpmDefinition.showFirstAssignee==1 }">checked="checked"</c:if> />
  262. <div class="tipbox"><a href="javascript:;" class="tipinfo"><span>如果勾选,那么流程启动时可以改变下一步的执行人,默认不可以。</span></a></div>
  263. </td>
  264. </tr>
  265. <tr>
  266. <th width="15%">允许API调用:</th>
  267. <td>
  268. <input id="isUseOutForm" type="checkbox" name="isUseOutForm" value="1" <c:if test="${bpmDefinition.isUseOutForm==1 }">checked="checked"</c:if> />
  269. <div class="tipbox"><a href="javascript:;" class="tipinfo"><span>如果勾选,那么流程执行时会转向设置的url业务表单上去。</span></a></div>
  270. </td>
  271. </tr>
  272. <tr>
  273. <th width="20%">提交是否需要确认:</th>
  274. <td>
  275. <input id="submitConfirm" type="checkbox" name="submitConfirm" value="${bpmDefinition.submitConfirm}" <c:if test="${bpmDefinition.submitConfirm==1 }">checked="checked"</c:if> />
  276. <div class="tipbox"><a href="javascript:;" class="tipinfo"><span>如果勾选,在每一次提交提示确认对话框,默认关闭。</span></a></div>
  277. </td>
  278. </tr>
  279. <tr>
  280. <th width="20%">是否允许转办:</th>
  281. <td>
  282. <input id="allowDivert" type="checkbox" name="allowDivert" value="${bpmDefinition.allowDivert}" <c:if test="${bpmDefinition.allowDivert==1 }">checked="checked"</c:if> />
  283. <div class="tipbox"><a href="javascript:;" class="tipinfo"><span>如果勾选,则允许转办,默认不允许转办。</span></a></div>
  284. </td>
  285. </tr>
  286. <tr>
  287. <th width="20%">是否允许我的办结转发:</th>
  288. <td>
  289. <input id="allowFinishedDivert" type="checkbox" name="allowFinishedDivert" <c:if test="${bpmDefinition.allowFinishedDivert==1 }">checked="checked"</c:if> />
  290. <div class="tipbox"><a href="javascript:;" class="tipinfo"><span>如果勾选,则允许转发,默认不允许。</span></a></div>
  291. </td>
  292. </tr>
  293. <tr>
  294. <th width="20%">归档时发送消息给发起人:</th>
  295. <td>
  296. <c:forEach items="${handlersMap}" var="item">
  297. <input type="checkbox" name="informStart" value="${item.key }" <c:if test="${fn:contains(bpmDefinition.informStart,item.key)}">checked="checked"</c:if> />
  298. ${item.value.title }
  299. </c:forEach>
  300. </td>
  301. </tr>
  302. <tr>
  303. <th width="20%">是否允许办结抄送:</th>
  304. <td>
  305. <input id="allowFinishedCc" type="checkbox" name="allowFinishedCc" value="${bpmDefinition.allowFinishedCc}" <c:if test="${bpmDefinition.allowFinishedCc==1 }">checked="checked"</c:if> />
  306. <!-- 抄送消息提醒方式 -->
  307. <input class="send_type" name="ccMessageType" type="hidden" value='${bpmDefinition.ccMessageType}' />
  308. <a href="###" onclick="openCcUserList()">抄送人员设置</a>
  309. <div class="tipbox"><a class="tipinfo"><span>如果勾选,则允许在流程结束时抄送,默认不抄送。</span></a></div>
  310. </td>
  311. </tr>
  312. <tr>
  313. <th width="20%">流程实例归档后是否允许打印表单:</th>
  314. <td>
  315. <input id="isPrintForm" type="checkbox" name="isPrintForm" value="${bpmDefinition.isPrintForm}" <c:if test="${bpmDefinition.isPrintForm==1 }">checked="checked"</c:if> />
  316. <div class="tipbox"><a href="javascript:;" class="tipinfo"><span>如果勾选,则流程实例归档后将提供打印表单功能。</span></a></div>
  317. </td>
  318. </tr>
  319. <tr>
  320. <th width="20%">流程帮助:</th>
  321. <td>
  322. <input id="attachment" type="hidden" name="attachment" value="${bpmDefinition.attachment}" />
  323. <c:if test="${sysFile !=null }">
  324. <a href="${ctx}/platform/system/sysFile/file_${sysFile.fileId}.ht" target="_blank" id="file">${sysFile.fileName }</a><a class="link del" onclick="del(this)" style="cursor:pointer;">删除</span>
  325. </c:if>
  326. <a href="javascript:void(0);" class="link selectFile" onclick="addFile()">添加附件</a>
  327. <div class="tipbox"><a href="javascript:;" class="tipinfo"><span>流程帮助附件</span></a></div>
  328. </td>
  329. </tr>
  330. <tr>
  331. <th width="20%">引用的流程:</th>
  332. <td>
  333. <span id="refDefArray">
  334. <c:forEach items="${referList}" var="refer">
  335. <span id="ref_${refer.id}"><c:out value="${refer.subject}"></c:out><a href="javascript:void(0);" onclick="delRefer(${refer.id})">删除</a>&nbsp;&nbsp;&nbsp;&nbsp;</span>
  336. </c:forEach>
  337. </span><span id="refDefs"></span>
  338. <a class="link search" href="javascript:void(0);" onclick="referDefinition()">引用</a>
  339. <div class="tipbox"><a href="javascript:;" class="tipinfo"><span>维护该流程可以进行引用的流程。</span></a></div>
  340. </td>
  341. </tr>
  342. <tr>
  343. <th width="20%">流程参考:</th>
  344. <td>
  345. <input type="checkbox" value="${bpmDefinition.allowRefer}" name="allowRefer" id="allowRefer" onclick="clickAllowRefer(this)" <c:if test="${bpmDefinition.allowRefer==1 }">checked="checked"</c:if> >允许参考
  346. <span id="spanInstanceAmount" <c:if test="${bpmDefinition.allowRefer==0 }">style="display:none;"</c:if> >
  347. 参考条数:<input type="text" value="${bpmDefinition.instanceAmount }" name="instanceAmount" id="instanceAmount" style="width:30px;" >
  348. </span>
  349. </td>
  350. </tr>
  351. <tr>
  352. <th width="20%">状态:</th>
  353. <td>
  354. <select id="status" name="status">
  355. <option value="1" <c:if test="${bpmDefinition.status==1}">selected='selected'</c:if>>启用</option>
  356. <option value="2" <c:if test="${bpmDefinition.status==2}">selected='selected' </c:if>>禁用</option>
  357. <option value="3" <c:if test="${bpmDefinition.status==3}">selected='selected' </c:if>>禁用(实例)</option>
  358. <option value="4" <c:if test="${bpmDefinition.status==4}">selected='selected' </c:if>>测试</option>
  359. </select>
  360. <span id="spanMessage" <c:if test="${bpmDefinition.status==2||bpmDefinition.status==3}">style="display:none;"</c:if>>
  361. <c:forEach items="${handlersMap}" var="item">
  362. <input type="checkbox" name="informType" value="${item.key }" <c:if test="${fn:contains(bpmDefinition.informType,item.key)}">checked="checked"</c:if> />
  363. ${item.value.title }
  364. </c:forEach>
  365. </span>
  366. <span id="testTag"<c:if test="${bpmDefinition.status!=4}">style="display:none;"</c:if>>
  367. &nbsp;&nbsp;测试标签:<input type="text" id="testStatusTag" name="testStatusTag" value="${bpmDefinition.testStatusTag}" >
  368. </span>
  369. </td>
  370. </tr>
  371. <tr>
  372. <th width="20%">是否手机审批:</th>
  373. <td>
  374. <c:choose>
  375. <c:when test="${bpmDefinition.allowMobile==1}">是</c:when>
  376. <c:otherwise>否</c:otherwise>
  377. </c:choose>
  378. </td>
  379. </tr>
  380. <tr>
  381. <th width="20%">节点跳过设定:</th>
  382. <td>
  383. <c:forEach items="${skipMap}" var="item">
  384. <label><input type="checkbox" name="skipSetting" value="${item.key}" <c:if test="${fn:contains(bpmDefinition.skipSetting,item.key)}">checked="checked"</c:if>/>${item.value.title }</label>
  385. </c:forEach>
  386. </td>
  387. </tr>
  388. </table>
  389. </div>
  390. </div>
  391. <input type="hidden" id="defId" name="defId" value="${bpmDefinition.defId }">
  392. </body>
  393. </html>