123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319 |
- <%--
- time:2011-12-14 15:41:53
- desc:edit the 流程节点规则
- --%>
- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
- <%@include file="/commons/include/html_doctype.html" %>
- <html>
- <head>
- <title>流程节点跳转规则设置</title>
- <%@include file="/commons/include/form.jsp" %>
- <script type="text/javascript" src="${ctx}/servlet/ValidJs?form=bpmNodeRule"></script>
- <script type="text/javascript" src="${ctx}/js/hotent/platform/system/ScriptDialog.js" ></script>
- <script type="text/javascript" src="${ctx}/js/javacode/codemirror.js"></script>
- <script type="text/javascript" src="${ctx}/js/javacode/InitMirror.js"></script>
- <style type="text/css">
- a.ruledetail,a.delrule {
- cursor: pointer;
- }
- </style>
- <script type="text/javascript">
- /*KILLDIALOG*/
- var dialog = frameElement.dialog; //调用页面的dialog对象(ligerui对象)
- var deployId="${deployId}";
- var actDefId="${actDefId}";
- var nodeId="${nodeId}";
- function showRequest(formData, jqForm, options) {
- return true;
- }
- $(function() {
- valid(showRequest,function(){});
- $("#layoutFlowRule").ligerLayout({ rightWidth:200, height: '95%' });
- //加载列表
- loadRuleList();
- $("#btnScript").click(selectScript);
- $("a.save").click(save);
- $("#btnAdd").click(addRule);
- handFlowVars();
- });
-
- function handFlowVars(){
- $("select[name='selFlowVar']").change(function(){
- var val=$(this).val();
- InitMirror.editor.insertCode(val);
- });
- }
-
- function addRule(){
- $("#ruleId").val("0");
- $("#memo").val("");
- $("#ruleName").val("");
- InitMirror.editor.setCode("return true;");
- }
-
- function save(){
- InitMirror.editor.save();
- var rtn=$("#bpmNodeRuleForm").valid();
- if(!rtn) return;
- var url=__ctx+ "/platform/bpm/bpmNodeRule/save.ht";
- var para=$('#bpmNodeRuleForm').serialize();
- $.post(url,para,showResult);
- }
-
-
- function showResult(responseText)
- {
- var obj=new com.hotent.form.ResultMessage(responseText);
- var ruleId=$("#ruleId").val();
- if(!obj.isSuccess()){
- $.ligerDialog.err('出错信息',"添加规则失败",obj.getMessage());
- return;
- }
- //添加
- if(ruleId=="0"){
- $.ligerDialog.confirm('添加规则成功,继续添加吗?','提示信息',function(rtn){
- if(!rtn){
- dialog.close();
- }
- else{
- __valid.resetForm();
- loadRuleList();
- }
- });
- }
- //更新
- else{
- $.ligerDialog.confirm('更新规则成功,继续更新吗?','提示信息',function(rtn){
- if(!rtn){
- dialog.close();
- }
- else{
- loadRuleList();
- }
- });
- }
- }
- function selectScript(){
- ScriptDialog({callback:function(script){
- InitMirror.editor.insertCode(script);
- }});
- }
-
-
- //显示规则明细
- function showDetail(){
- var obj=$(this);
- var ruleId=obj.attr("rule");
- var url=__ctx + "/platform/bpm/bpmNodeRule/getById.ht?ruleId=" + ruleId;
- $.get(url,function(data) {
- var json=jQuery.parseJSON(data);
- jQuery.setFormByJson(json);
- var tmp=json.targetNode +"," + json.targetNodeName;
- $("select[name='targetNode']").val(tmp);
- InitMirror.editor.setCode(document.getElementById("conditionCode").value);
- });
- }
-
- function getRow(ruleId,ruleName,idx){
- var className=(idx % 2==0)?"odd":"even";
- var aryRow=["<tr class='"+className+"'>",
- "<td>",
- "<a class='ruledetail' rule='"+ruleId+"'>"+ruleName+"</a>",
- "</td>",
- "<td>",
- "<a alt='上移' href='#' class='link moveup' onclick='sortUp(this)'> </a>",
- "<a alt='下移' href='#' class='link movedown' onclick='sortDown(this)'> </a>",
- "<a alt='删除' class='delrule link del' rule='"+ruleId+"'> </a>",
- "</td>",
- "</tr>"];
- return aryRow.join("");
- }
- //加载规则列表
- function loadRuleList(){
- var url=__ctx + "/platform/bpm/bpmNodeRule/getByDefIdNodeId.ht?actDefId=" + actDefId +"&nodeId=" + nodeId;
- url=url.getNewUrl();
- var tbodyList=$("#ruleList");
- tbodyList.empty();
- $.get(url,function(data) {
- var jsonAry=jQuery.parseJSON(data);
- for(var i=0;i<jsonAry.length;i++){
- var obj=jsonAry[i];
- var row=getRow(obj.ruleId,obj.ruleName,i);
- tbodyList.append($(row));
- }
- $("a.ruledetail").click(showDetail);
- $("a.delrule").click(delByRule);
- });
- }
- //删除规则
- function delByRule(){
- var obj=$(this);
- var ruleId=obj.attr("rule");
- $.ligerDialog.confirm('确认删除吗?','提示信息',function(rtn) {
- if(!rtn) return;
- var url=__ctx + "/platform/bpm/bpmNodeRule/del.ht?ruleId=" + ruleId;
- $.get(url,function(data) {
- var obj=new com.hotent.form.ResultMessage(data);
- if(obj.isSuccess()){
- $.ligerDialog.success('删除成功!','提示信息',function(){
- loadRuleList();
- });
- }
- else{
- $.ligerDialog.warn('删除失败!','提示信息');
- }
- });
- });
- }
-
- //规则上移
- function sortUp(obj) {
- var thisTr = $(obj).parents("tr");
- var prevTr = $(thisTr).prev();
- if(prevTr){
- thisTr.insertBefore(prevTr);
- reSort();
- }
- };
- //重新排序
- function reSort(){
- var ruleids="";
- $("a.ruledetail").each(function(i){
- ruleids+=$(this).attr("rule") +",";
- });
- if(ruleids!="")
- ruleids=ruleids.substring(0, ruleids.length-1);
-
- var url=__ctx + "/platform/bpm/bpmNodeRule/sortRule.ht";
- var params="ruleids=" +ruleids;
- $.post(url,params,function(data){});
- }
-
- // 规则下移
- function sortDown(obj) {
- var thisTr = $(obj).parents("tr");
- var nextTr = $(thisTr).next();
- if(nextTr){
- thisTr.insertAfter(nextTr);
- reSort();
- }
- }
-
- //更新那个bpm_node_set的IsJumpForDef字段
- function updateIsJumpForDef(ck){
- var url=__ctx+"/platform/bpm/bpmNodeRule/updateIsJumpForDef.ht";
- var params={
- nodeId:nodeId,
- actDefId:actDefId,
- isJumpForDef:ck.checked? 1:0
- };
- $.post(url,params,function(data){});
- }
- </script>
- <style>
- html { overflow-x: hidden; }
- </style>
- <body>
- <div class="panel">
- <div class="panel-top">
- <div class="tbar-title">
- <span class="tbar-label">流程节点跳转规则设置</span>
- </div>
- <div class="panel-toolbar">
- <div class="toolBar">
- <div class="group"><a class="link add" id="btnAdd"><span></span>增加</a></div>
- <div class="l-bar-separator"></div>
- <div class="group"><a class="link save" id="btnSearch"><span></span>保存</a></div>
- <div class="l-bar-separator"></div>
- <div class="group"><a class="link del" onclick="javasrcipt:dialog.close()"><span></span>关闭</a></div>
- </div>
- </div>
- </div>
- <div class="panel-body">
- <div id="layoutFlowRule" style="width: 100%">
- <div style="width:100%;" position="right" title="规则列表">
- <table cellpadding="1" class="table-grid table-list" cellspacing="1">
- <tr>
- <th>规则名称</th><th>管理</th>
- </tr>
- <tbody id="ruleList">
- </tbody>
- </table>
- </div>
- <div id="framecenter" position="center">
- <form id="bpmNodeRuleForm" method="post" action="save.ht">
- <div class="panel-detail">
- <table class="table-detail" cellpadding="0" cellspacing="0" border="0">
- <tr>
- <th width="20%">当前节点名称:</th>
- <td>${nodeName}</td>
- </tr>
- <tr>
- <th width="20%">后续节点:</th>
- <td>
- <c:forEach items="${nextNodes}" var="node" varStatus="status">
-
- ${node.nodeName } (${node.nodeId })
- <c:if test="${! status.last }">,</c:if>
- </c:forEach>
- </td>
- </tr>
- <tr>
- <th>当规则符合时是否正常跳转</th>
- <td>
- <input type="checkbox" name="isJumpForDef" value="1" onclick="updateIsJumpForDef(this);" <c:if test="${bpmNodeSet.isJumpForDef==1}">checked="checked"</c:if> >
- </td>
- </tr>
- <tr>
- <th width="20%">规则名称: <span class="required">*</span></th>
- <td><input type="text" id="ruleName" name="ruleName" size="40" value="${bpmNodeRule.ruleName}" class="inputText" /></td>
- </tr>
- <tr>
- <th width="20%">规则表达式:<span class="required">*</span></th>
- <td>
- <div style="margin:8px 0;">
-
- <a href="javascript:;" id="btnScript" class="link var" title="常用脚本">常用脚本</a>
- 表单变量:<f:flowVar defId="${defId}" controlName="selFlowVar" parentActDefId="${parentActDefId}"></f:flowVar>
- </div>
- <textarea id="conditionCode" codemirror="true" rows="12" cols="55" name="conditionCode" >return true;</textarea>
- <br/>
- <div style="margin:8px 0;">这个脚本需要使用返回语句(return)返回布尔值,返回true流程将跳转到指定的节点。</div>
- </td>
- </tr>
- <tr>
- <th width="20%">跳转节点名称:</th>
- <td>
- <select name="targetNode">
- <c:forEach items="${activityList}" var="item">
- <optgroup label="${item.key}">
- <c:forEach items="${item.value}" var="node">
- <option value="${node.key},${node.value}">${node.value}</option>
- </c:forEach>
- </optgroup>
- </c:forEach>
- </select></td>
- </tr>
- <tr>
- <th width="20%">备注:</th>
- <td>
- <textarea id="memo" rows="4" cols="40" name="memo" >${bpmNodeRule.memo}</textarea>
- </td>
- </tr>
- </table>
- <input type="hidden" id="ruleId" name="ruleId" value="${bpmNodeRule.ruleId}" />
- <input type="hidden" name="priority" value="${bpmNodeRule.priority}" />
- <input type="hidden" name="actDefId" value="${bpmNodeRule.actDefId}" />
- <input type="hidden" name="nodeId" value="${bpmNodeRule.nodeId}" />
- </div>
- </form>
- </div>
- </div>
- </div>
- </div>
- </body>
- </html>
|