update
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
<%@page
|
||||
import="com.blueland.bpm.engine.core.model.ProcessDefinitionModel"%>
|
||||
<%@page import="com.blueland.bpm.engine.config.model.ProcessInfoConfig"%>
|
||||
<%@page import="com.blueland.bpm.common.page.*"%>
|
||||
<%@page import="com.blueland.bpm.common.util.*"%>
|
||||
<%@page import="java.util.*"%>
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
|
||||
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
|
||||
<%@ include file="/commons/taglibs.jsp"%>
|
||||
<%
|
||||
String path = request.getContextPath();
|
||||
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
|
||||
%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>流程历史对比</title>
|
||||
<%@ include file="/commons/meta.jsp"%>
|
||||
<link rel="stylesheet" type="text/css" href="${ctx}/resource/js/plugins/diff/app/bpmnio.css">
|
||||
<link rel="stylesheet" type="text/css" href="${ctx}/resource/js/plugins/diff/assets/diff.css">
|
||||
<link rel="stylesheet" type="text/css" href="${ctx}/resource/js/plugins/diff/app/app.css">
|
||||
<link href="${ctx}/resource/js/plugins/loadmask/jquery.loadmask.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="content">
|
||||
<textarea name="xmlOld" rows="5" cols="20" style="display:none" id="xmlOld">
|
||||
${xmlOld}
|
||||
</textarea>
|
||||
<textarea name="xmlNew" rows="5" cols="20" style="display:none" id="xmlNew">
|
||||
${xmlNew}
|
||||
</textarea>
|
||||
<div class="di-container left drop-zone" target="left">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h8>${nameOld}</h8>
|
||||
</div>
|
||||
</div>
|
||||
<div class="canvas" id="canvas-left"></div>
|
||||
</div>
|
||||
|
||||
<div class="di-container right drop-zone" target="right">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h8>${nameNew}</h8>
|
||||
</div>
|
||||
</div>
|
||||
<div class="canvas" id="canvas-right"></div>
|
||||
</div>
|
||||
|
||||
<div id="changes-overview" class="collapsed">
|
||||
<div class="io-control show-hide-toggle">对比详情</div>
|
||||
<div class="io-control changes"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- viewer -->
|
||||
<script type='text/javascript'src="${ctx}/resource/js/plugins/diff/app/bpmn-viewer.js"></script>
|
||||
<!-- app -->
|
||||
<script type='text/javascript' src="${ctx}/resource/js/plugins/diff/app/app.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
getXmlContent();
|
||||
})
|
||||
function getXmlContent(){
|
||||
openDiagram($("#xmlOld").val(),"left");
|
||||
openDiagram($("#xmlNew").val(),"right");
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
177
ebpm-process-manage/webapp/pages/procDefMgr/config.jsp
Normal file
177
ebpm-process-manage/webapp/pages/procDefMgr/config.jsp
Normal file
@@ -0,0 +1,177 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8"%>
|
||||
<%@ include file="/commons/taglibs.jsp"%>
|
||||
<%
|
||||
String path = request.getContextPath();
|
||||
String basePath = request.getScheme() + "://"
|
||||
+ request.getServerName() + ":" + request.getServerPort()
|
||||
+ path + "/";
|
||||
%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<%@ include file="/commons/meta.jsp"%>
|
||||
<base href="<%=basePath%>">
|
||||
<title>流程设置</title>
|
||||
<link href="${ctx}/resource/js/plugins/loadmask/jquery.loadmask.css" rel="stylesheet" type="text/css" />
|
||||
<script type='text/javascript' src='${ctx}/resource/js/plugins/loadmask/jquery.loadmask.js'></script>
|
||||
<script>
|
||||
function changeHref(id, srcStr) {
|
||||
var currentId = $(".active").find("a").attr("id");
|
||||
var isChange = $("#isChange").val();
|
||||
var isRedirect = true;//是否跳转页面
|
||||
if("UserContract"==currentId){//当前是基础配置,点击别的菜单会出现提示是否保存的按钮
|
||||
if("1"==isChange){//内容有更改
|
||||
//提示是否保存前面的操作
|
||||
if(confirm("是否保存当前数据?")){
|
||||
document.getElementById(id).contentWindow.save();
|
||||
isRedirect = false;//当选择确认保存后 留在当前页面
|
||||
$("#"+currentId).parent().addClass("active");
|
||||
}else{
|
||||
$("#isChange").val("0");//保存完毕后把是否已修改还原成未修改
|
||||
}
|
||||
}
|
||||
}
|
||||
//if(isRedirect){
|
||||
//返回时跳转步数+1
|
||||
var backSteps = $("#backSteps").val();
|
||||
$("#backSteps").val(parseInt(backSteps)+1);
|
||||
|
||||
document.getElementById(id).src = srcStr;
|
||||
//}
|
||||
//$("#myTab3").find('li').removeClass("active");
|
||||
}
|
||||
function iframeHeight(down){
|
||||
var height = "";
|
||||
var imgHeight = $("#imgHeight").val();
|
||||
if(imgHeight==""){
|
||||
height = $("#"+down).contents().find("body").height();
|
||||
}else{
|
||||
height = imgHeight;
|
||||
}
|
||||
$("#"+down).height(height+20);
|
||||
}
|
||||
|
||||
function gobacktolist(){
|
||||
var isRedirect = true;//是否跳转页面
|
||||
var isChange = $("#isChange").val();
|
||||
if("1"==isChange){//内容有更改
|
||||
//提示是否保存前面的操作
|
||||
if(confirm("是否保存当前数据?")){
|
||||
document.getElementById(id).contentWindow.save();
|
||||
isRedirect = false;//当选择确认保存后 留在当前页面
|
||||
}else{
|
||||
$("#isChange").val("0");//保存完毕后把是否已修改还原成未修改
|
||||
}
|
||||
}
|
||||
document.getElementById(id).src = srcStr;
|
||||
}
|
||||
|
||||
function goback(){
|
||||
var backSteps = $("#backSteps").val();
|
||||
history.go(-parseInt(backSteps));
|
||||
}
|
||||
|
||||
function publishProcess(url){
|
||||
postAjax(url,'发布成功!',false,true);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<input type="hidden" id="imgHeight" value=""/>
|
||||
<input type="hidden" id="backSteps" value="1"/>
|
||||
<div class="main-container" id="main-container">
|
||||
<%--<div class="panel-heading" style="background: #F5F5F5;color: #333;border: 0 !important;padding: 10px 20px;">
|
||||
<span style="font-size: 14px;">流程名称:${processDefinition.procDefName}</span>
|
||||
</div> --%>
|
||||
<div class="row" style="margin-right:0;">
|
||||
<div class="col-xs-12">
|
||||
|
||||
<div class="tabbable">
|
||||
<input type="hidden" id="isChange" value="0"/>
|
||||
|
||||
<ul class="nav nav-tabs padding-12 tab-color-blue background-blue"
|
||||
id="myTab3">
|
||||
<li class="active"><a id="UserContract" data-toggle="tab"
|
||||
onclick="changeHref('frmrightChild','${ctx}/processInfo/edit.do?userId=${model.userId}&procDefId=${processDefinition.procDefId }');"
|
||||
href="" target="frmrightChild" class="current">基础配置</a></li>
|
||||
|
||||
<li><a id="UserEvent" href=""
|
||||
data-toggle="tab"
|
||||
onclick="changeHref('frmrightChild','${ctx}/activityInfo/actSet.do?processDefId=${processDefinition.procDefId }&appId=${sys}&mAppId=${mAppId}');"
|
||||
target="frmrightChild">环节配置</a></li>
|
||||
<!--
|
||||
<li><a id="UserEvent" href="" data-toggle="tab"
|
||||
onclick="changeHref('frmrightChild','${ctx}/activityInfo/list.do?processDefId=${processDefinition.procDefId }');"
|
||||
target="frmrightChild">环节配置(列表)</a></li>
|
||||
-->
|
||||
<c:if test="${customSso != '1'}">
|
||||
<li><a id="UserEducation" href="" data-toggle="tab"
|
||||
onclick="changeHref('frmrightChild','${ctx}/dataObjectRelation/processList.do?processDefId=${processDefinition.procDefId }')"
|
||||
target="frmrightChild">扩展属性配置</a></li>
|
||||
<li>
|
||||
</c:if>
|
||||
<li><a id="UserPersonn" href="" data-toggle="tab"
|
||||
onclick="changeHref('frmrightChild','${ctx}/actInfo/setActResource/setAllResourcelist.do?processDefId=${processDefinition.procDefId}')"
|
||||
target="frmrightChild">环节人员配置</a></li>
|
||||
|
||||
<li>
|
||||
<!--
|
||||
<li><a id="NoticeRemind" href="" data-toggle="tab"
|
||||
onclick="changeHref('frmrightChild','${ctx}/noticeRemindConfig/edit.do?procDefId=${processDefinition.procDefId}')"
|
||||
target="frmrightChild">通知提醒规则配置</a></li>
|
||||
|
||||
<li> -->
|
||||
|
||||
<%-- <li>--%>
|
||||
<!-- <button type="button"
|
||||
class="btn btn-success" style="padding: 3px 3px 3px 0px;"
|
||||
data-toggle="dropdown"
|
||||
onclick="art.dialog.close();">
|
||||
发布流程
|
||||
</button> -->
|
||||
<%-- <a id="UserPersonn" href="" data-toggle="tab"--%>
|
||||
<%-- style="background-color: #87B97F;"--%>
|
||||
<%-- onclick="publishProcess('${ctx}/procDefMgr/releaseProcess.do?procDefId=${processDefinition.procDefId}');"--%>
|
||||
<%-- target="frmrightChild"> <i class="ace-icon fa fa-check-square-o bigger-110"></i>发布流程</a>--%>
|
||||
<%-- </li>--%>
|
||||
|
||||
<li class="right-btn">
|
||||
<button class="btn btn-sm bigger btn-yellow dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
type="button"
|
||||
onclick="publishProcess('${ctx}/procDefMgr/releaseProcess.do?procDefId=${processDefinition.procDefId}');">
|
||||
<i class="ace-icon fa fa-check-square-o bigger-110"></i>
|
||||
发布流程
|
||||
</button>
|
||||
<c:choose>
|
||||
<c:when test="${not empty isSubProcess}">
|
||||
<button class="btn btn-sm bigger btn-yellow dropdown-toggle"
|
||||
data-toggle="dropdown" type="button"
|
||||
onclick="art.dialog.close();">
|
||||
<i class="ace-icon fa fa-arrow-left"></i>关闭
|
||||
</button>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<button class="btn btn-sm bigger btn-yellow dropdown-toggle"
|
||||
data-toggle="dropdown" type="submit"
|
||||
onclick="window.location='${ctx}/procDefMgr/list.do?${queryParams}';">
|
||||
<i class="ace-icon fa fa-arrow-left"></i>返回
|
||||
</button>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<div class="tab-content" style="width: 100%; height: 100%;">
|
||||
<IFRAME style="width: 100%; height: 800px;" scrolling="no"
|
||||
src="${ctx}/processInfo/edit.do?procDefId=${processDefinition.procDefId }"
|
||||
frameBorder="0" id="frmrightChild" name="frmrightChild"
|
||||
onload="iframeHeight('frmrightChild')" allowTransparency="true"></IFRAME>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,97 @@
|
||||
<%@page import="org.activiti.engine.repository.ProcessDefinition"%>
|
||||
<%@page import="org.activiti.engine.repository.Deployment"%>
|
||||
<%@page import="com.blueland.bpm.engine.config.model.*"%>
|
||||
<%@page import="com.blueland.bpm.common.page.*"%>
|
||||
<%@page import="com.blueland.bpm.common.util.*"%>
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ include file="/commons/taglibs.jsp"%>
|
||||
<%
|
||||
String path = request.getContextPath();
|
||||
String basePath = request.getScheme() + "://"
|
||||
+ request.getServerName() + ":" + request.getServerPort()
|
||||
+ path + "/";
|
||||
%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<%@ include file="/commons/meta.jsp"%>
|
||||
<base href="<%=basePath%>">
|
||||
<link href="${ctx}/resource/js/plugins/loadmask/jquery.loadmask.css" rel="stylesheet" type="text/css" />
|
||||
<script type='text/javascript' src='${ctx}/resource/js/plugins/loadmask/jquery.loadmask.js'></script>
|
||||
|
||||
<title>导入流程模型</title>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#file').ace_file_input({
|
||||
no_file : '请您选择本地BPMN文件! ...',
|
||||
btn_choose : '选 择',
|
||||
btn_change : '选 择',
|
||||
droppable : false,
|
||||
onchange : null,
|
||||
thumbnail : false
|
||||
//| true | large
|
||||
//whitelist:'gif|png|jpg|jpeg'
|
||||
//blacklist:'exe|php'
|
||||
//onchange:''
|
||||
//
|
||||
});
|
||||
var flashSuccess = $("#flashSuccess").attr("value");
|
||||
if (flashSuccess == "导入成功!") {
|
||||
alert(flashSuccess);
|
||||
art.dialog.opener.location.reload();
|
||||
art.dialog.close();
|
||||
} else {
|
||||
if (flashSuccess != "") {
|
||||
alert(flashSuccess);
|
||||
}
|
||||
//bindMask();
|
||||
}
|
||||
});
|
||||
|
||||
function onSubmit() {
|
||||
if ($("#file").val() == "" || $("#file").val().length == 0) {
|
||||
//unBindMask();
|
||||
alert("请您选择本地文件!");
|
||||
return false;
|
||||
}
|
||||
if(confirm("您确认导入流程吗?")){
|
||||
setMask("main-container");
|
||||
document.getElementById("deployFieldForm").submit();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<%@ include file="/commons/messages.jsp"%>
|
||||
<div class="main-container" id="main-container">
|
||||
<div class="widget-box">
|
||||
<div class="widget-body">
|
||||
<div class="widget-main no-padding">
|
||||
<form id="deployFieldForm" name="deployFieldForm" action="${ctx}/procDefMgr/deploy.do" method="post" enctype="multipart/form-data">
|
||||
<!-- <legend>Form</legend> -->
|
||||
<fieldset>
|
||||
<ol>
|
||||
<li class="text-success"><b>暂只支持导入格式为*.zip、*.bar、*.bpmn\bpmn20.xml的模型文件,不支持批量导入。</b></li>
|
||||
<li class="text-success"><b>导入成功后可在(流程定义->已部署流程定义)菜单中管理该流程。</b></li>
|
||||
</ol>
|
||||
<div class="space-18"></div>
|
||||
<input type="hidden" id="flashSuccess" value="${flashSuccess }" />
|
||||
<input type="file" id="file" name="file"/>
|
||||
</fieldset>
|
||||
|
||||
<div class="form-actions center">
|
||||
<input type="button" class="btn btn-sm btn-primary"
|
||||
id="submitButton" value="导 入" onclick="onSubmit();"/> <input
|
||||
onclick="art.dialog.close();" type="button"
|
||||
class="btn btn-sm btn-primary" value="关 闭" />
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
<%@page import="org.activiti.engine.repository.ProcessDefinition"%>
|
||||
<%@page import="org.activiti.engine.repository.Deployment"%>
|
||||
<%@page import="com.blueland.bpm.engine.config.model.*" %>
|
||||
<%@page import="com.blueland.bpm.common.page.*" %>
|
||||
<%@page import="com.blueland.bpm.common.util.*" %>
|
||||
<%@page import="java.util.*"%>
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
|
||||
<%@ include file="/commons/taglibs.jsp"%>
|
||||
<%
|
||||
String path = request.getContextPath();
|
||||
String basePath = request.getScheme() + "://"
|
||||
+ request.getServerName() + ":" + request.getServerPort()
|
||||
+ path + "/";
|
||||
%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<%@ include file="/commons/meta.jsp"%>
|
||||
<base href="<%=basePath%>">
|
||||
<title>修改流程模型XML</title>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$("#submitButton").click(function() {
|
||||
var params = {
|
||||
procDefId: $('#procDefId').val(),
|
||||
bpmnXml: $('#bpmnXml').val(),
|
||||
}
|
||||
|
||||
jQuery.ajax({
|
||||
url: "${ctx}/procDefMgr/updateBpmnFile.do",
|
||||
data: JSON.stringify(params),
|
||||
contentType : 'application/json;charset=utf-8', //设置请求头信息
|
||||
type: "POST",
|
||||
success: function(resp)
|
||||
{
|
||||
alert(resp);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body class="white-page">
|
||||
<%@ include file="/commons/messages.jsp"%>
|
||||
|
||||
<form id="updateBpmnFileForm" name="updateBpmnFileForm" action="${ctx}/procDefMgr/updateBpmnFile.do" method="post">
|
||||
<input id="procDefId" name="procDefId" value="${procDefId }" type="hidden"/>
|
||||
|
||||
<div class="main-container" id="main-container">
|
||||
<div class="panel panel-primary">
|
||||
<div>
|
||||
<h8>只允许管理员修改 </h8>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<table class='table table-bordered' border="0" cellspacing="0"
|
||||
cellpadding="0" id="myTable">
|
||||
|
||||
<textarea name="bpmnXml" id="bpmnXml" style="width:920px;height:470px;">${bpmnXml }</textarea>
|
||||
</table>
|
||||
<div class="col-md-offset-1 col-md-9" style="text-align: center;margin-top: 15px">
|
||||
<button type="button" class="btn btn-sm btn-primary"
|
||||
id="submitButton">
|
||||
保存
|
||||
<i class="ace-icon fa fa-save bigger-110"></i>
|
||||
</button>
|
||||
<button onclick="art.dialog.close();" type="button"
|
||||
class="btn btn-sm btn-primary">
|
||||
关闭
|
||||
<i class="ace-icon fa fa-times bigger-110"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
138
ebpm-process-manage/webapp/pages/procDefMgr/formConfig.jsp
Normal file
138
ebpm-process-manage/webapp/pages/procDefMgr/formConfig.jsp
Normal file
@@ -0,0 +1,138 @@
|
||||
<%@page import="org.activiti.engine.repository.ProcessDefinition"%>
|
||||
<%@page import="org.activiti.bpmn.model.*"%>
|
||||
<%@page import="com.blueland.bpm.engine.config.model.*"%>
|
||||
<%@page import="com.blueland.bpm.common.page.*"%>
|
||||
<%@page import="com.blueland.bpm.common.util.*"%>
|
||||
<%@page import="java.util.*"%>
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
|
||||
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
|
||||
<%@ include file="/commons/taglibs.jsp"%>
|
||||
<%
|
||||
String path = request.getContextPath();
|
||||
String basePath = request.getScheme() + "://"
|
||||
+ request.getServerName() + ":" + request.getServerPort()
|
||||
+ path + "/";
|
||||
%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<%@ include file="/commons/meta.jsp"%>
|
||||
<base href="<%=basePath%>">
|
||||
<title>待办列表</title>
|
||||
<link href="${ctx_js_plugins}/simpletable/simpletable.css" type="text/css" rel="stylesheet">
|
||||
<script type="text/javascript" src="${ctx_js_plugins}/simpletable/simpletable.js"></script>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
|
||||
});
|
||||
|
||||
function createActivityUser(){
|
||||
var url="${ctx}/setActivityUser/create.do";
|
||||
showDiaLog(url,"新增环节人员",'800px','600px');
|
||||
}
|
||||
function editActivityUser(){
|
||||
var url="${ctx}/setActivityUser/edit.do";
|
||||
showDiaLog(url,"修改环节人员",'800px','600px');
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<%@ include file="/commons/messages.jsp"%>
|
||||
<form id="procDefForm" name="procDefForm"
|
||||
action="${ctx}/procDefMgr/list.do" method="post"
|
||||
style="display: inline;">
|
||||
<div class="position">
|
||||
<div class="center">
|
||||
<div class="left">
|
||||
<div class="right">
|
||||
<span>当前位置:流程管理 >> 表单设置</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box2" style="line-height:70%" panelTitle="全局表单" roller="false">
|
||||
<table class="tableStyle" formMode="true" footer="normal">
|
||||
<tr>
|
||||
<td width="100px">表单URL:</td>
|
||||
<td colspan="7">
|
||||
<input style="width: 600px" name="processPageUrl" id="processPageUrl" value="" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="box2" style="line-height:70%" panelTitle="环节表单" roller="false">
|
||||
|
||||
<table class="tableStyle">
|
||||
|
||||
<tr>
|
||||
<th width="60px">节点名称</th>
|
||||
<th>跳转类型</th>
|
||||
<th>环节表单</th>
|
||||
</tr>
|
||||
|
||||
|
||||
<%
|
||||
BpmnModel bpmnModel = (BpmnModel) request.getAttribute("bpmnModel");
|
||||
if (bpmnModel != null) {
|
||||
List<org.activiti.bpmn.model.Process> processes = bpmnModel
|
||||
.getProcesses();
|
||||
for (int i = 0; i < processes.size(); i++) {
|
||||
org.activiti.bpmn.model.Process process = (org.activiti.bpmn.model.Process) processes
|
||||
.get(i);
|
||||
Collection<FlowElement> flowElementList = process
|
||||
.getFlowElements();
|
||||
for (FlowElement flowElement : flowElementList) {
|
||||
if (!UserTask.class.isInstance(flowElement)) {
|
||||
continue;
|
||||
}
|
||||
UserTask userTask = (UserTask) flowElement;
|
||||
%>
|
||||
|
||||
|
||||
<tr class="<%=((i + 1) % 2 == 0 ? "odd" : "even")%>">
|
||||
|
||||
<td><%=userTask.getName()+"("+userTask.getId()+")"%> </td>
|
||||
<td>
|
||||
<%
|
||||
if(userTask.getAssignee()!=null){
|
||||
userTask.getCandidateUsers().add(userTask.getAssignee());
|
||||
}
|
||||
%>
|
||||
|
||||
<%if(userTask.getCandidateUsers()!=null&&!userTask.getCandidateUsers().isEmpty()){
|
||||
%>
|
||||
用户列表:<%=userTask.getCandidateUsers()%>
|
||||
<%
|
||||
}if(userTask.getCandidateOrgs()!=null&&!userTask.getCandidateOrgs().isEmpty()){
|
||||
%>
|
||||
组织:<%=userTask.getCandidateOrgs()%>
|
||||
<%
|
||||
}if(userTask.getCandidateGroups()!=null&&!userTask.getCandidateGroups().isEmpty()){
|
||||
%>
|
||||
角色:<%=userTask.getCandidateGroups()%>
|
||||
<%
|
||||
}
|
||||
%></td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<%
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
|
||||
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,217 @@
|
||||
<%@page
|
||||
import="com.blueland.bpm.engine.core.model.ProcessDefinitionModel"%>
|
||||
<%@page import="com.blueland.bpm.engine.config.model.ProcessInfoConfig"%>
|
||||
<%@page import="com.blueland.bpm.common.page.*"%>
|
||||
<%@page import="com.blueland.bpm.common.util.*"%>
|
||||
<%@page import="java.util.*"%>
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
|
||||
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
|
||||
<%@ include file="/commons/taglibs.jsp"%>
|
||||
<%
|
||||
String path = request.getContextPath();
|
||||
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
|
||||
%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<%@ include file="/commons/meta.jsp"%>
|
||||
<base href="<%=basePath%>">
|
||||
<%--<title>流程配置</title>--%>
|
||||
<link href="${ctx}/resource/js/plugins/loadmask/jquery.loadmask.css" rel="stylesheet" type="text/css" />
|
||||
<script type='text/javascript' src='${ctx}/resource/js/plugins/loadmask/jquery.loadmask.js'></script>
|
||||
<link href="${ctx_js_plugins}/simpletable/simpletable.css" type="text/css" rel="stylesheet">
|
||||
<script type="text/javascript" src="${ctx_js_plugins}/simpletable/simpletable.js"></script>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
function changeImage(procDefId){
|
||||
var url ="${ctx}/procDefMgr/getProcessImageWidthAndHeight.do";
|
||||
//获取图片的宽高
|
||||
$.ajax({
|
||||
url : url,
|
||||
data:{"procDefId":procDefId},
|
||||
type : "POST",
|
||||
dataType: "json",
|
||||
success : function (data){
|
||||
var imageWidth=parseInt(data.imageWidth)+20;
|
||||
var imageHeight=parseInt(data.imageHeight)+30;
|
||||
|
||||
$("#processImage").attr("style","padding-left: 30px; display: inline; float: left; margin:20px auto 0;position: relative;background:url('${ctx}/procDefMgr/resource.do?resourceType=image&procDefId="+procDefId
|
||||
+"') no-repeat;width:"+imageWidth+"px; height:"+
|
||||
imageHeight+"px;");
|
||||
$("#versionnumber").text(data.version);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function deleteDeploy(url,procDefId,deploymentId,cascode){
|
||||
if(window.confirm("删除流程会级联删除该流程定义和运行数据,请谨慎操作!为了避免误操作,在删除操作的同时会要求您导出流程作为备份!")){
|
||||
|
||||
var downloadUrl="${ctx}/procDefMgr/exportProcessAllFile.do?resourceType=xml&procDefIds="+procDefId+"&exportall=1";
|
||||
var winObj = window.open(downloadUrl);
|
||||
var loop = setInterval(function() {
|
||||
if(winObj.closed) {
|
||||
clearInterval(loop);
|
||||
setMask("main-container");
|
||||
$.ajax({
|
||||
url : url,
|
||||
data:{"procDefId":procDefId,"deploymentId":deploymentId,"cascode":cascode},
|
||||
type : "POST",
|
||||
dataType: "json",
|
||||
success : function (data){
|
||||
//alert(data);
|
||||
if(data.success){
|
||||
alert("删除成功");
|
||||
var procDefId1 = data.returnProcDefId;
|
||||
if("" != procDefId1){
|
||||
$("#procDefId").val(procDefId1);
|
||||
$("#historyForm").submit();
|
||||
}else{
|
||||
var win = art.dialog.open.origin;
|
||||
$("#procDefForm", win.document).submit();
|
||||
}
|
||||
}else{
|
||||
alert("删除失败,原因是:"+data.reason);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}, 3000);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function exportProcessAllFile(processDefIds){
|
||||
var url="${ctx}/procDefMgr/exportProcessAllFile.do?resourceType=xml&procDefIds="+processDefIds+"&exportall=1";
|
||||
window.open(url);
|
||||
}
|
||||
function flowVersionCompare(){
|
||||
var obj=getChooseProcDefId();
|
||||
if(obj==false){
|
||||
return;
|
||||
}
|
||||
|
||||
var procDefName = $("#procDefName").val();
|
||||
var height1 = window.parent.document.documentElement.clientHeight;
|
||||
var height = (parseInt(height1)-45)+"px";
|
||||
url ="${ctx}/procDefMgr/compareHistoryModel.do?procDefIdOld="+obj.procDefIdOld+"&procDefIdNew="+obj.procDefIdNew+"&nameOld="+obj.nameOld+"&nameNew="+obj.nameNew;
|
||||
showFullDiaLog(url,'流程历史版本对比 当前流程定义名称:'+procDefName);
|
||||
}
|
||||
function getChooseProcDefId(){
|
||||
var appObj={};
|
||||
var objOld={};
|
||||
var objNew={};
|
||||
var i = 0;
|
||||
var procDefName = $("#procDefName").val();
|
||||
var sortList = [];
|
||||
$("input[name='chooseProcDefId']:checkbox:checked").each(function(item){
|
||||
var list = $(this).val().split("^");
|
||||
if(i==0){
|
||||
objOld.procDefId=list[0];
|
||||
objOld.name=procDefName+"_"+list[1];
|
||||
objOld.sort = list[1];
|
||||
}
|
||||
if(i==1){
|
||||
objNew.procDefId=list[0];
|
||||
objNew.name=procDefName+"_"+list[1];
|
||||
objNew.sort = list[1];
|
||||
}
|
||||
i++;
|
||||
})
|
||||
if(i<2){
|
||||
alert("请选择两个需要对比的流程定义版本号!");
|
||||
return false;
|
||||
}else{
|
||||
if(i>2){
|
||||
alert("不能同时对比两个以上的历史版本");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(objOld.sort > objNew.sort){
|
||||
appObj.procDefIdOld=objNew.procDefId;
|
||||
appObj.nameOld=objNew.name;
|
||||
appObj.procDefIdNew=objOld.procDefId;
|
||||
appObj.nameNew=objOld.name;
|
||||
}else{
|
||||
appObj.procDefIdOld=objOld.procDefId;
|
||||
appObj.nameOld=objOld.name;
|
||||
appObj.procDefIdNew=objNew.procDefId;
|
||||
appObj.nameNew=objNew.name;
|
||||
}
|
||||
return appObj;
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body class="white-page">
|
||||
<%@ include file="/commons/messages.jsp"%>
|
||||
<form id="historyForm" name="historyForm"
|
||||
action="${ctx}/procDefMgr/getHistoryProcessDefModel.do" method="post"
|
||||
style="display: inline;">
|
||||
<input type="hidden" name="procDefId" id="procDefId"/>
|
||||
<input type="hidden" name="procDefName" id="procDefName" value="${result[0].procDefName}"/>
|
||||
<div style="margin:5px;">
|
||||
<button type="button" onclick="flowVersionCompare()" class="btn btn-xs btn btn-primary">流程版本对比<i class="ace-icon fa fa-search-plus bigger-110"></i></button>
|
||||
</div>
|
||||
<div class="main-container" id="main-container">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-body" id="panel-body" style="padding:3px;">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="table-responsive">
|
||||
<table id="sample-table-1"
|
||||
class="table table-striped table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 25px;"></th>
|
||||
<th>流程定义版本号</th>
|
||||
<th>最后更新时间</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach items="${result}" var="item"
|
||||
varStatus="status">
|
||||
|
||||
<tr class="${status.count % 2 == 0 ? 'odd' : 'even'}">
|
||||
<td><input type="checkbox" name="chooseProcDefId" id="chooseProcDefId"
|
||||
value="${item.procDefId}^${item.version}"></td>
|
||||
<td><a href="javascript:void(0);" onclick="changeImage('${item.procDefId}');">${item.version}</a></td>
|
||||
<td><fmt:formatDate value="${item.pdCreateTime}" pattern="yyyy-MM-dd hh:mm:ss"/></td>
|
||||
<td>
|
||||
<a href="javascript:void(0);" onclick="deleteDeploy('${ctx}/procDefMgr/history/delete.do','${item.procDefId}','${item.deploymentId}','true');">删除流程</a>
|
||||
<c:if test="${ebpmAdmin}">
|
||||
<a href="javascript:void(0)" onclick="showDiaLog('${ctx}/procDefMgr/editProcessFile.do?procDefId=${item.procDefId}','修改流程XML','1024px','600px');">修改流程XML</a>
|
||||
<a onclick="showDiaLog('${ctx}/procDefMgr/config.do?procDefId=${item.procDefId}','配置','1224px','600px');" href="javascript:void(0);">配置流程</a>
|
||||
<a href="javascript:void(0)" onclick="exportProcessAllFile('${item.procDefId}');">导出流程</a>
|
||||
|
||||
</c:if>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id=con >
|
||||
<span></span>
|
||||
<ul id=tags>
|
||||
<li class="selectTag">当前版本<span id="versionnumber">${result[0].version}</span>的流程图如下:</li>
|
||||
</ul>
|
||||
<div id=tagContent>
|
||||
<div class="tagContent selectTag" id="tagContent0" >
|
||||
<div id="processImage" style="padding-left: 30px; display: inline; float: left; margin:20px auto 0;position: relative;background:url('${ctx}/procDefMgr/resource.do?resourceType=image&procDefId=${result[0].procDefId}') no-repeat;width:${imageWidth+20}px; height:${imageHeight+30}px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
<%@page import="org.activiti.engine.repository.ProcessDefinition"%>
|
||||
<%@page import="org.activiti.engine.repository.Deployment"%>
|
||||
<%@page import="com.blueland.bpm.engine.config.model.*"%>
|
||||
<%@page import="com.blueland.bpm.common.page.*"%>
|
||||
<%@page import="com.blueland.bpm.common.util.*"%>
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ include file="/commons/taglibs.jsp"%>
|
||||
<%
|
||||
String path = request.getContextPath();
|
||||
String basePath = request.getScheme() + "://"
|
||||
+ request.getServerName() + ":" + request.getServerPort()
|
||||
+ path + "/";
|
||||
%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<%@ include file="/commons/meta.jsp"%>
|
||||
<link href="${ctx}/resource/js/plugins/loadmask/jquery.loadmask.css" rel="stylesheet" type="text/css" />
|
||||
<script type='text/javascript' src='${ctx}/resource/js/plugins/loadmask/jquery.loadmask.js'></script>
|
||||
<base href="<%=basePath%>">
|
||||
<title>导入流程模型</title>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#file').ace_file_input({
|
||||
no_file : '请您选择本地zip文件! ...',
|
||||
btn_choose : '选 择',
|
||||
btn_change : '选 择',
|
||||
droppable : false,
|
||||
onchange : null,
|
||||
thumbnail : false
|
||||
//| true | large
|
||||
//whitelist:'gif|png|jpg|jpeg'
|
||||
//blacklist:'exe|php'
|
||||
//onchange:''
|
||||
//
|
||||
});
|
||||
var flashSuccess = $("#flashSuccess").attr("value");
|
||||
//alert(flashSuccess == "导入成功");
|
||||
//alert(flashSuccess.indexOf("导入成功")!=-1);
|
||||
if (flashSuccess == "导入成功") {
|
||||
alert(flashSuccess);
|
||||
// alert(1);
|
||||
art.dialog.opener.location.reload();
|
||||
} else {
|
||||
if (flashSuccess != "") {
|
||||
alert(flashSuccess);
|
||||
}
|
||||
//bindMask();
|
||||
}
|
||||
});
|
||||
|
||||
function onSubmit() {
|
||||
if ($("#file").val() == "" || $("#file").val().length == 0) {
|
||||
//unBindMask();
|
||||
alert("请您选择本地文件!");
|
||||
return false;
|
||||
}
|
||||
if(!getFileFormat()){
|
||||
alert("请上传符合要求的文件!");
|
||||
return false;
|
||||
}
|
||||
//else{
|
||||
// alert("文件符合要求");
|
||||
// return false;
|
||||
//}
|
||||
if(confirm("您确认导入流程吗?建议导入前导出流程做好备份!")){
|
||||
setMask("main-container");
|
||||
document.getElementById("deployFieldForm").submit();
|
||||
}
|
||||
}
|
||||
|
||||
//判断文件的格式与文件的大小
|
||||
function getFileFormat(){
|
||||
//var aa = "*.zip、*.bar、*.bpmn\bpmn20.xml";
|
||||
var obj = document.getElementById('file');
|
||||
var fileName = obj.value;
|
||||
var fileExt=obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase();//获得文件后缀名
|
||||
if(fileExt=='.zip' || fileExt=='.bar' || fileExt=='.bpmn' || fileName.indexOf("bpmn20.xml") > 0){
|
||||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body class="white-page">
|
||||
<%@ include file="/commons/messages.jsp"%>
|
||||
<div class="main-container" id="main-container">
|
||||
<div class="widget-box">
|
||||
<div class="widget-body">
|
||||
<div class="widget-main no-padding">
|
||||
<form id="deployFieldForm" name="deployFieldForm" action="${ctx}/procDefMgr/importProcessAllFile.do" method="post" enctype="multipart/form-data">
|
||||
<!-- <legend>Form</legend> -->
|
||||
<fieldset>
|
||||
<ol>
|
||||
<!-- <li class="text-success"><b>暂只支持导入格式为*.zip、*.bar、*.bpmn\bpmn20.xml的模型文件,不支持批量导入。</b></li> -->
|
||||
<li class="text-success"><b>只支持导入格式为*.zip流程文件。</b></li>
|
||||
<li class="text-success"><b>导入成功后可在(流程定义->已部署流程定义)菜单中管理该流程。</b></li>
|
||||
<li class="text-success"><b>导入流程包含流程配置、流程模型数据,但不包括角色及角色成员的数据。</b></li>
|
||||
</ol>
|
||||
<div class="space-18"></div>
|
||||
<input type="radio" value="update" name="savetype" checked="checked"/>覆盖版本
|
||||
<input type="radio" value="create" name="savetype"/>新建版本
|
||||
<input type="hidden" id="flashSuccess" value="${flashSuccess }" />
|
||||
<input type="file" id="file" name="file"/>
|
||||
</fieldset>
|
||||
|
||||
<div class="form-actions center">
|
||||
<button type="button" class="btn btn-sm btn-primary"
|
||||
id="submitButton" onclick="onSubmit();">
|
||||
导入
|
||||
<i class="ace-icon fa fa-cloud-upload bigger-110"></i>
|
||||
</button>
|
||||
<button
|
||||
onclick="art.dialog.close();" type="button"
|
||||
class="btn btn-sm btn-primary">
|
||||
关闭
|
||||
<i class="ace-icon fa fa-times bigger-110"></i>
|
||||
</button>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
437
ebpm-process-manage/webapp/pages/procDefMgr/list.jsp
Normal file
437
ebpm-process-manage/webapp/pages/procDefMgr/list.jsp
Normal file
@@ -0,0 +1,437 @@
|
||||
<%@page import="com.blueland.bpm.engine.core.model.ProcessDefinitionModel"%>
|
||||
<%@page import="com.blueland.bpm.engine.config.model.ProcessInfoConfig"%>
|
||||
<%@page import="com.blueland.bpm.common.page.*"%>
|
||||
<%@page import="com.blueland.bpm.common.util.*"%>
|
||||
<%@page import="com.blueland.bpm.manage.util.*"%>
|
||||
<%@page import="java.util.*"%>
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
|
||||
<%@ include file="/commons/taglibs.jsp"%>
|
||||
<jsp:include page="/pages/sysGlType/selectTypeTree.jsp" flush="false" />
|
||||
<%
|
||||
String path = request.getContextPath();
|
||||
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
|
||||
%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<%@ include file="/commons/meta.jsp"%>
|
||||
<base href="<%=basePath%>">
|
||||
<title>流程配置</title>
|
||||
<link href="${ctx}/resource/js/plugins/loadmask/jquery.loadmask.css" rel="stylesheet" type="text/css" />
|
||||
<script type='text/javascript' src='${ctx}/resource/js/plugins/loadmask/jquery.loadmask.js'></script>
|
||||
<link href="${ctx_js_plugins}/simpletable/simpletable.css" type="text/css" rel="stylesheet">
|
||||
<script type="text/javascript" src="${ctx_js_plugins}/simpletable/simpletable.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
// 分页需要依赖的初始化动作
|
||||
window.simpleTable = new SimpleTable('procDefForm','${page.thisPageNumber}','${page.pageSize}','${pageRequest.sortColumns}');
|
||||
|
||||
});
|
||||
|
||||
function publishProcess(url){
|
||||
var pageNumber = ${page.thisPageNumber};
|
||||
postAjax(url,'发布成功!',true,true,"procDefForm",pageNumber);
|
||||
}
|
||||
function converToModel(url){
|
||||
postAjax(url,'操作成功!',false,true);
|
||||
}
|
||||
function deleteDeploy(url){
|
||||
if(window.confirm("您确定删除流程定义及运行时的数据吗?")){
|
||||
setMask("main-container");
|
||||
$("#procDefForm").attr("action",url);
|
||||
document.getElementById("procDefForm").submit();
|
||||
}
|
||||
}
|
||||
function importProcessBpmnXml(){
|
||||
var url="${ctx}/pages/procDefMgr/deployProcessFile.jsp";
|
||||
showDiaLog(url,"导入流程模型",'600px','320px');
|
||||
}
|
||||
function importProcessConfigData(){
|
||||
var url="${ctx}/pages/procDefMgr/importProcessConfigData.jsp";
|
||||
showDiaLog(url,"导入流程",'600px','320px');
|
||||
}
|
||||
function getItemsProcDefId(){
|
||||
var chk_value =[];
|
||||
var procDefId="";
|
||||
$("input[name='items']:checkbox:checked").each(function(){
|
||||
chk_value.push($(this).val().split("^")[0]);
|
||||
})
|
||||
if(chk_value.length==0){
|
||||
alert("请选择一项流程定义数据!");
|
||||
}else{
|
||||
if(chk_value.length>1){
|
||||
alert("不能同时查看多条记录的流程图!");
|
||||
return false;
|
||||
}
|
||||
|
||||
var items=chk_value[0].split("=");
|
||||
for(var i=0;i<items.length;i++){
|
||||
if(items[0]=="processDefinitionId"){
|
||||
procDefId=items[1];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return procDefId;
|
||||
}
|
||||
|
||||
function exportProcessImage(){
|
||||
var procDefId=getItemsProcDefId();
|
||||
if(procDefId==""){
|
||||
return;
|
||||
}
|
||||
var url="${ctx}/procDefMgr/viewImage.do?procDefId="+procDefId;
|
||||
showDiaLogList(url,'流程图');
|
||||
|
||||
}
|
||||
|
||||
function editProcess(processDefId,processStartIsshow){
|
||||
//if(processStartIsshow=="RELEASE"&&window.confirm("此流程为发布状态,点击配置后流程将处于未发布状态,您确定配置流程吗?")){
|
||||
/* jQuery.ajax({
|
||||
type: "POST",
|
||||
url: "${ctx}/procDefMgr/unReleaseProcess.do",
|
||||
data: {procDefId:processDefId},
|
||||
success: function(resp)
|
||||
{
|
||||
//alert(resp);
|
||||
}
|
||||
}); */
|
||||
//}
|
||||
//序列化表单 保存查询条件,页码则直接加在url之后,在后台存入session中
|
||||
var queryparams = $("#procDefForm").serialize();
|
||||
|
||||
window.location.href="${ctx}/procDefMgr/config.do?procDefId="+processDefId+"&"+queryparams+"&pageNumber="+${page.thisPageNumber};
|
||||
}
|
||||
|
||||
function exportProcessAllFile(isall){
|
||||
//判断是否选中全选
|
||||
var url = "";
|
||||
//if("checked"==checkbox){//全选
|
||||
if("0"==isall){//全选
|
||||
var totalCount = "${page.totalCount}";
|
||||
if("0"==totalCount){
|
||||
alert("当前没有符合要求的数据!!");
|
||||
return;
|
||||
}else{
|
||||
url="${ctx}/procDefMgr/exportProcessAllFile.do?resourceType=xml&exportall=0";
|
||||
}
|
||||
}else{//非全选
|
||||
var processDefIds = getItemsProcDefIds();
|
||||
if(""==processDefIds){
|
||||
return;
|
||||
}
|
||||
url="${ctx}/procDefMgr/exportProcessAllFile.do?resourceType=xml&procDefIds="+processDefIds+"&exportall=1";
|
||||
}
|
||||
window.open(url);
|
||||
}
|
||||
|
||||
|
||||
//获取选中的所有流程定义id值,返回的流程定义id数组
|
||||
function getItemsProcDefIds(){
|
||||
var chk_value =[];
|
||||
var procDefIds=new Array();
|
||||
$("input[name='items']:checkbox:checked").each(function(){
|
||||
chk_value.push($(this).val().split("^")[0]);
|
||||
});
|
||||
if(chk_value.length==0){
|
||||
alert("请选择流程定义数据!");
|
||||
}else{
|
||||
for(var n=0;n<chk_value.length;n++){
|
||||
var items=chk_value[n].split("=");
|
||||
if(items[0]=="processDefinitionId"){
|
||||
procDefIds.push(items[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return procDefIds;
|
||||
}
|
||||
function viewFlowFile(fileId){
|
||||
var url = "<%=MyContants.BPM_FRONT_PATH%>"+"/ebpm-bpa-front/#/detail?fileId="+fileId+"&type=.bpmn&isMenu=false";
|
||||
//window.open(url);
|
||||
showDiaLog(url,'查看流程梳理-业务流程资产','1024px','600px');
|
||||
}
|
||||
function processTypeNameOnDbClick(name, value) {
|
||||
$("#processTypeName").val(name);
|
||||
$("#processTypeId").val(value);
|
||||
}
|
||||
//流程设计
|
||||
function addBpmnModel(){
|
||||
var obj=getItemsInfo();
|
||||
if(!obj.flag){
|
||||
return;
|
||||
}
|
||||
var url = "<%=MyContants.BPM_PROCESS_MODELER_PATH%>"+"#/bpmnModel?appId="+$("#appId").val()+"&procDefKey="+obj.procDefKey;
|
||||
window.open (url,'流程建模','width='+(window.screen.availWidth-10)+',height='+(window.screen.availHeight-30)+ ',top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')
|
||||
}
|
||||
//拼装数据
|
||||
function getItemsInfo(){
|
||||
var obj ={
|
||||
"procDefKey":"",
|
||||
"flag":false
|
||||
}
|
||||
var chk_procDefKey =[];
|
||||
var chk_procDefName =[];
|
||||
$("input[name='items']:checkbox:checked").each(function(){
|
||||
chk_procDefKey.push($(this).val().split("^")[1]);
|
||||
})
|
||||
|
||||
if(chk_procDefKey.length>1){
|
||||
alert("不能同时设计多个流程!");
|
||||
return false;
|
||||
}else if(chk_procDefKey.length==1){
|
||||
obj.procDefKey = chk_procDefKey[0];
|
||||
obj.flag=true;
|
||||
}else if (chk_procDefKey.length==0) {
|
||||
obj.flag=true;
|
||||
}
|
||||
return obj
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<%@ include file="/commons/messages.jsp"%>
|
||||
<form id="procDefForm" name="procDefForm"
|
||||
action="${ctx}/procDefMgr/list.do" method="post"
|
||||
style="display: inline;">
|
||||
<input type="hidden" name="appId" id ="appId" value="<%=session.getAttribute("app_id")%>"/>
|
||||
<input type="hidden" id="flag" name="flag" value="${flag}"/>
|
||||
<!-- <input value="${query.processTypeId}" id="processTypeId"
|
||||
name="processTypeId" maxlength="30" type="hidden" /> -->
|
||||
<div class="main-container" id="main-container">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<%--<h8>流程配置</h8>--%>
|
||||
</div>
|
||||
<div class="panel-body" id="panel-body" style="padding:3px;">
|
||||
<div class="well well-sm" style="margin-bottom: 2px;">
|
||||
|
||||
<table border="0" cellspacing="0" cellpadding="0"
|
||||
class="table-search">
|
||||
<tr>
|
||||
<td>流程定义KEY:</td>
|
||||
<td><input value="${query.processDefKey}"
|
||||
id="processDefKey" name="processDefKey" maxlength="30" /></td>
|
||||
<td>流程定义名称:</td>
|
||||
<td><input value="${query.processDefName}"
|
||||
id="processDefName" name="processDefName" maxlength="30" /></td>
|
||||
|
||||
<%--<td>流程类型:</td>
|
||||
<td>
|
||||
|
||||
<!-- <select name="processTypeId">
|
||||
<option value="">--请选择--</option>
|
||||
<c:forEach items="${sysGlTypes}" var="item">
|
||||
<option ${query.processTypeId==item.typeId?"selected":""}
|
||||
value="${item.typeId}">${item.typeName}</option>
|
||||
</c:forEach>
|
||||
</select> -->
|
||||
|
||||
<input
|
||||
<c:choose>
|
||||
<c:when test="${not empty query.processTypeName}">
|
||||
value="${query.processTypeName}"
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
value="请选择"
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
name="processTypeName" id="processTypeName" readonly
|
||||
onclick="showMenu('processTypeName','',''); return false;" />
|
||||
<input
|
||||
type="hidden" name="processTypeId" id="processTypeId"
|
||||
preValue="${query.processTypeId}"
|
||||
value="${query.processTypeId}" />
|
||||
|
||||
<%– <a class="blue" href="javascript:void(0);"> –%>
|
||||
<%– <i class="ace-icon fa fa-search bigger-130" –%>
|
||||
<%– onclick="showMenu('processTypeName','',''); return false;"/> –%>
|
||||
<%– </i></a>–%>
|
||||
</td>--%>
|
||||
<td>发布状态:</td>
|
||||
<td><select name="processMgrState">
|
||||
<option value="">--请选择--</option>
|
||||
<option ${query.processMgrState=='RELEASE'?"selected":""}
|
||||
value="RELEASE">已发布</option>
|
||||
<option ${query.processMgrState=='UPDATE'?"selected":""}
|
||||
value="UPDATE">修订中</option>
|
||||
<option ${query.processMgrState=='UNRELEASE'?"selected":""}
|
||||
value="UNRELEASE">未发布</option>
|
||||
</select></td>
|
||||
<td><button type="submit" class="btn btn-xs btn-primary">查 询
|
||||
<i class="ace-icon fa fa-search bigger-110"></i></button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<%--<td>可见状态:</td>
|
||||
<td><select name="processStartIsshow">
|
||||
<option value="">--请选择--</option>
|
||||
<c:forEach items="${query.processStartIsshowMap}" var="item">
|
||||
<option ${query.processStartIsshow==item.key?"selected":""}
|
||||
value="${item.key }">${item.value}</option>
|
||||
</c:forEach>
|
||||
</select></td>--%>
|
||||
<!--
|
||||
<td>创建时间:</td>
|
||||
<td><input value="" id="deploymentTime"
|
||||
name="deploymentTime" maxlength="30"
|
||||
onclick="WdatePicker({dateFmt:'yyyy-MM-dd'})" /></td>
|
||||
-->
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="7">
|
||||
<!--
|
||||
<button type="button" onclick="importProcessBpmnXml();"
|
||||
class="btn btn-xs btn-success">导入流程模型</button>
|
||||
-->
|
||||
<!-- <button type="button" onclick="importProcessConfigData();"
|
||||
class="btn btn-xs btn-success">导入流程配置</button> -->
|
||||
<button type="button" onclick="addBpmnModel()" class="btn btn-xs btn-success">
|
||||
流程建模<i class="ace-icon fa fa-plus bigger-110"></i>
|
||||
</button>
|
||||
<button type="button" onclick="exportProcessImage();"
|
||||
class="btn btn-xs btn btn-primary">查看流程图
|
||||
<i class="ace-icon fa fa-search-plus bigger-110"></i></button>
|
||||
<c:if test="${customSso != '1'}">
|
||||
<button type="button" onclick="importProcessConfigData();"
|
||||
class="btn btn-xs btn-success">导入流程
|
||||
<i class="ace-icon fa fa-cloud-upload bigger-110"></i></button>
|
||||
<button type="button" onclick="exportProcessAllFile('1');"
|
||||
class="btn btn-xs btn-yellow">导出选中流程
|
||||
<i class="ace-icon fa fa-cloud-download bigger-110"></i></button>
|
||||
<button type="button" onclick="exportProcessAllFile('0');"
|
||||
class="btn btn-xs btn-danger">导出全部流程
|
||||
<i class="ace-icon fa fa-cloud-download bigger-110"></i></button>
|
||||
<a href="${ctx}/procDefMgr/export.do" class="btn btn-xs btn-orange">
|
||||
导出流程清单 <i class="ace-icon fa fa-cloud-download bigger-110"></i>
|
||||
</a>
|
||||
</c:if>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="table-responsive">
|
||||
<table id="sample-table-1"
|
||||
class="table table-striped table-bordered table-hover">
|
||||
<thead>
|
||||
|
||||
<tr>
|
||||
<th style="width: 25px;">
|
||||
<!-- <input type="checkbox" id="selectAll"
|
||||
onclick="setAllCheckboxState('items',this.checked)"> -->
|
||||
</th>
|
||||
<!-- 排序时为th增加sortColumn即可,new SimpleTable('sortColumns')会为tableHeader自动增加排序功能; -->
|
||||
<th style="width: 200px">流程定义KEY</th>
|
||||
<th style="width: 60px;">版本号</th>
|
||||
<th sortColumn="procDefName">流程定义名称</th>
|
||||
<th sortColumn="deployTime" style="width: 150px">创建时间</th>
|
||||
<th sortColumn="procDefVersion" style="width: 150px;">状态</th>
|
||||
<th sortColumn="processStartIsshow" style="width: 150px;">是否可见</th>
|
||||
<th style="width: 70px;">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach items="${page.result}" var="item" varStatus="status">
|
||||
<tr class="${status.count % 2 == 0 ? 'odd' : 'even'}">
|
||||
<td ><input type="checkbox" name="items" id="items"
|
||||
value="processDefinitionId=${item.processDefId}^${fn:split(item.processDefId,":")[0]}"></td>
|
||||
<td class="td" title="${fn:split(item.processDefId,":")[0]}">${fn:split(item.processDefId,":")[0]} </td>
|
||||
<td align="center" class="td" title="${fn:split(item.processDefId,":")[1]}">${fn:split(item.processDefId,":")[1]} </td>
|
||||
<td class="td" title="${item.processDefName}">${item.processDefName} </td>
|
||||
<td title=""><fmt:formatDate value="${item.createTime}" pattern="yyyy-MM-dd HH:mm:ss"/>
|
||||
<td >
|
||||
<c:choose>
|
||||
<c:when test="${item.processMgrState=='RELEASE'}">
|
||||
<span class="label label-success">已发布</span>
|
||||
</c:when>
|
||||
<c:when test="${item.processMgrState=='UPDATE'}">
|
||||
<span class="label label-yellow">修订中</span>
|
||||
</c:when>
|
||||
<c:otherwise><span class="label label-danger">未发布</span></c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td align="center">
|
||||
<c:choose>
|
||||
<c:when test="${item.processStartIsshow=='Y'}">
|
||||
可见
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
不可见
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<div class="btn-group">
|
||||
<button data-toggle="dropdown"
|
||||
class="btn btn-info btn-sm dropdown-toggle">
|
||||
配置 <span class="ace-icon fa fa-caret-down icon-on-right"></span>
|
||||
</button>
|
||||
<ul
|
||||
class="dropdown-menu dropdown-info dropdown-menu-right">
|
||||
<li style="list-style: none;"><a
|
||||
onclick="publishProcess('${ctx}/procDefMgr/releaseProcess.do?procDefId=${item.processDefId}');"
|
||||
href="javascript:void(0);">发布流程</a></li>
|
||||
<li style="list-style: none;"><a
|
||||
onclick="editProcess('${item.processDefId}','${item.processStartIsshow}')"
|
||||
href="javascript:void(0);">配置流程</a></li>
|
||||
<%-- <li style="list-style: none;"><a href="javascript:void(0);"
|
||||
onclick="converToModel('${ctx}/procDefMgr/convert-to-model.do?procDefId=${item.processDefId}');">转换成模型</a>
|
||||
</li> --%>
|
||||
<!--
|
||||
<li><a
|
||||
href="${ctx}/procDefMgr/exportProcessAllFile.do?resourceType=xml&procDefId=${item.processDefId}"
|
||||
target="_blank">导出流程</a></li>
|
||||
<li>
|
||||
<li><a
|
||||
href="${ctx}/procDefMgr/exportProcessResource.do?resourceType=xml&procDefId=${item.processDefId}"
|
||||
target="_blank">导出流程模型</a></li>
|
||||
<li><a
|
||||
href="${ctx}/procDefMgr/exportProcessConfigData.do?procDefId=${item.processDefId}"
|
||||
target="_blank">导出流程配置</a></li>
|
||||
-->
|
||||
<li style="list-style: none;"><a href="javascript:void(0)"
|
||||
onclick="showDiaLog('${ctx}/procDefMgr/editProcessFile.do?procDefId=${item.processDefId}','修改流程XML','1024px','600px');">修改流程XML</a>
|
||||
</li>
|
||||
|
||||
<li style="list-style: none;"><a href="javascript:void(0)"
|
||||
onclick="showDiaLog('${ctx}/procDefMgr/getHistoryProcessDefModel.do?procDefId=${item.processDefId}','流程历史版本 当前流程定义名称:${item.processDefName}','1024px','600px');">流程历史版本</a>
|
||||
</li>
|
||||
<c:if test="${not empty item.arisCode}">
|
||||
<li style="list-style: none;"><a href="javascript:void(0)"
|
||||
onclick="viewFlowFile(${item.arisCode})">流程资产</a>
|
||||
</li>
|
||||
</c:if>
|
||||
<!-- <li><a href="javascript:void(0)"
|
||||
onclick="deleteDeploy('${ctx}/procDefMgr/delete.do?procDefId=${item.processDefId}&deploymentId=${item.deploymentId}&cascode=true');">删除流程</a>
|
||||
</li> -->
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.btn-group -->
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
<simpletable:pageToolbar page="${page}">
|
||||
</simpletable:pageToolbar>
|
||||
</div>
|
||||
<!-- /.table-responsive -->
|
||||
</div>
|
||||
<!-- /span -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,276 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ include file="/commons/taglibs.jsp"%>
|
||||
<%
|
||||
String path = request.getContextPath();
|
||||
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
|
||||
+ path + "/";
|
||||
%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<%@ include file="/commons/meta.jsp"%>
|
||||
<base href="<%=basePath%>">
|
||||
<title>流程通知提醒规则配置</title>
|
||||
<link href="${ctx }/resource/js/plugins/loadmask/jquery.loadmask.css"
|
||||
rel="stylesheet" type="text/css">
|
||||
<script type="text/javascript"
|
||||
src="${ctx }/resource/js/plugins/loadmask/jquery.loadmask.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
var noticeScopes = '${noticeRemindConfig.noticeScopes}';
|
||||
var arr = new Array();
|
||||
arr = noticeScopes.split(',');
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
if (arr[i] == 'QC') {
|
||||
$('#noticeScopes1').attr("checked", "true");
|
||||
} else if (arr[i] == 'JB') {
|
||||
$('#noticeScopes2').attr("checked", "true");
|
||||
} else if (arr[i] == 'ZD') {
|
||||
$('#noticeScopes3').attr("checked", "true");
|
||||
}
|
||||
}
|
||||
|
||||
var inp1 = $('#appManagerNames').get(0);
|
||||
var inp2 = $('#appManagerIds').get(0);
|
||||
var inp3 = $('#noticeScopes3').attr('checked');
|
||||
if (inp3) {
|
||||
inp1.setAttribute('readonly', 'true');
|
||||
inp1.removeAttribute('disabled')
|
||||
inp2.setAttribute('readonly', 'true');
|
||||
inp2.removeAttribute('disabled')
|
||||
} else {
|
||||
inp1.setAttribute('disabled', 'disabled');
|
||||
inp1.removeAttribute('readonly');
|
||||
inp2.setAttribute('disabled', 'disabled');
|
||||
inp2.removeAttribute('readonly');
|
||||
}
|
||||
$('#noticeScopes3').on('click', function() {
|
||||
var inp1 = $('#appManagerNames').get(0);
|
||||
var inp2 = $('#appManagerIds').get(0);
|
||||
var inp3 = $('#noticeScopes3').attr('checked');
|
||||
if (inp3) {
|
||||
inp1.setAttribute('readonly', 'true');
|
||||
inp1.removeAttribute('disabled')
|
||||
inp2.setAttribute('readonly', 'true');
|
||||
inp2.removeAttribute('disabled')
|
||||
} else {
|
||||
inp1.setAttribute('disabled', 'disabled');
|
||||
inp1.removeAttribute('readonly');
|
||||
inp2.setAttribute('disabled', 'disabled');
|
||||
inp2.removeAttribute('readonly');
|
||||
}
|
||||
});
|
||||
|
||||
var inp4 = $('#activityDefNames').get(0);
|
||||
var inp5 = $('#activityDefIds').get(0);
|
||||
var inp6 = $('input:radio[name="noticeType"]:checked').val();
|
||||
if (inp6 == '2') {
|
||||
inp4.setAttribute('readonly', 'true');
|
||||
inp4.removeAttribute('disabled')
|
||||
inp5.setAttribute('readonly', 'true');
|
||||
inp5.removeAttribute('disabled')
|
||||
} else {
|
||||
inp4.setAttribute('disabled', 'disabled');
|
||||
inp4.removeAttribute('readonly');
|
||||
inp5.setAttribute('disabled', 'disabled');
|
||||
inp5.removeAttribute('readonly');
|
||||
}
|
||||
$(':radio').on('click', function() {
|
||||
var inp4 = $('#activityDefNames').get(0);
|
||||
var inp5 = $('#activityDefIds').get(0);
|
||||
var inp6 = $('input:radio[name="noticeType"]:checked').val();
|
||||
if (inp6 == '2') {
|
||||
inp4.setAttribute('readonly', 'true');
|
||||
inp4.removeAttribute('disabled')
|
||||
inp5.setAttribute('readonly', 'true');
|
||||
inp5.removeAttribute('disabled')
|
||||
} else {
|
||||
inp4.setAttribute('disabled', 'disabled');
|
||||
inp4.removeAttribute('readonly');
|
||||
inp5.setAttribute('disabled', 'disabled');
|
||||
inp5.removeAttribute('readonly');
|
||||
}
|
||||
});
|
||||
|
||||
$("#submitButton").click(function() {
|
||||
var noticeDrafters = $('#noticeScopes1').attr('checked');
|
||||
var noticeOperator = $('#noticeScopes2').attr('checked');
|
||||
var noticeUser = $('#noticeScopes3').attr('checked');
|
||||
if (!noticeDrafters && !noticeOperator && !noticeUser) {
|
||||
alert("提醒用户必选一个");
|
||||
return false;
|
||||
}
|
||||
if (noticeUser) {
|
||||
var appManagerIds = $("#appManagerIds").val();
|
||||
if (appManagerIds == null || appManagerIds == '') {
|
||||
alert("指定用户不能为空");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
var noticeType = $('input:radio[name="noticeType"]:checked').val();
|
||||
if (noticeType == null) {
|
||||
alert("提醒规则必选一个");
|
||||
return false;
|
||||
}
|
||||
if (noticeType == '2') {
|
||||
var activityDefIds = $('#activityDefIds').val();
|
||||
if (activityDefIds == null || activityDefIds == '') {
|
||||
alert("指定环节不能为空");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
var noticeContent = $.trim($('#noticeContent').val());
|
||||
if (noticeContent == null || noticeContent == '') {
|
||||
alert("提醒内容不能为空");
|
||||
$('#noticeContent').focus();
|
||||
return false;
|
||||
}
|
||||
setMask("main-container");
|
||||
//用jquery中的ajax方法,向服务器提交请求
|
||||
jQuery.ajax({
|
||||
type : "POST",
|
||||
url : "${ctx}/noticeRemindConfig/update.do",
|
||||
data : $('#myform').serialize(),
|
||||
success : function(resp) {
|
||||
alert(resp);
|
||||
$('#main-container').unmask();
|
||||
if (resp == '操作成功') {
|
||||
window.location.reload();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
//清空
|
||||
$("#refreshButton").click(function() {
|
||||
var procDefId = $("#procDefId").val();
|
||||
var noticeType = '${noticeRemindConfig.noticeType}';
|
||||
if(noticeType == null || noticeType == ''){
|
||||
refreshData();
|
||||
return false;
|
||||
}
|
||||
setMask("main-container");
|
||||
//用jquery中的ajax方法,向服务器提交请求
|
||||
jQuery.ajax({
|
||||
type : "POST",
|
||||
url : "${ctx}/noticeRemindConfig/delete.do",
|
||||
data : {
|
||||
procDefId : procDefId
|
||||
},
|
||||
success : function(resp) {
|
||||
alert(resp);
|
||||
$('#main-container').unmask();
|
||||
window.location.reload();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
function createActUser(values, names) {
|
||||
$("#appManagerIds").val(values.replace(/USER#/g, ""));
|
||||
$("#appManagerNames").val(names);
|
||||
}
|
||||
|
||||
function createActConfig(values, names) {
|
||||
$("#activityDefIds").val(values);
|
||||
$("#activityDefNames").val(names);
|
||||
}
|
||||
|
||||
function refreshData(){
|
||||
$("#appManagerNames").val("");
|
||||
$("#appManagerIds").val("");
|
||||
$("#activityDefNames").val("");
|
||||
$("#activityDefIds").val("");
|
||||
$("#noticeContent").val("");
|
||||
$('input:checkbox[name=noticeScopes]').attr('checked', false);
|
||||
$('input:radio[name=noticeType]').attr('checked',false);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body style="font-size: 13px; font-family: 'Open Sans';">
|
||||
|
||||
<form action="${ctx}/noticeRemindConfig/update.do" method="post"
|
||||
id="myform">
|
||||
<div class="main-container" id="main-container">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-body">
|
||||
<input type="hidden" id="oldValue" /> <input type="hidden"
|
||||
id="procDefId" name="procDefId"
|
||||
value="${noticeRemindConfig.procDefId}" style="width: 200px;" />
|
||||
<input type="hidden" id="procDefKey" name="procDefKey"
|
||||
value="${noticeRemindConfig.procDefKey}" style="width: 200px;" />
|
||||
<table class='table table-bordered' border="0" cellspacing="0"
|
||||
cellpadding="0" id="myTable">
|
||||
|
||||
<!-- 存放隐藏域的区域 -->
|
||||
<!-- 存放表单的区域 -->
|
||||
|
||||
<tr>
|
||||
<td>提醒用户:</td>
|
||||
<td colspan="3">
|
||||
<!-- <div class="checkbox"> --> <label> <input
|
||||
class="ace input-lg" type="checkbox" name="noticeScopes"
|
||||
id="noticeScopes1" value="QC" /> <span class="lbl">通知起草人</span>
|
||||
</label> <label> <input class="ace input-lg" type="checkbox"
|
||||
name="noticeScopes" id="noticeScopes2" value="JB" /> <span
|
||||
class="lbl">流程经办人</span>
|
||||
</label> <label> <input class="ace input-lg" type="checkbox"
|
||||
name="noticeScopes" id="noticeScopes3" value="ZD" /> <span
|
||||
class="lbl">指定用户</span>
|
||||
</label> <input style="width: 400px" type="text" name="noticeUserNames"
|
||||
id="appManagerNames"
|
||||
value="${noticeRemindConfig.noticeUserNames }"
|
||||
disabled="disabled"
|
||||
onclick="showDiaLog('${ctx}/pages/user_org_select.jsp?showTreeType=USER&isMultiSelect=true&roleFlag=false&orgId=0', '指定用户', '800px', '500px');" />
|
||||
<input type="hidden" name="noticeUserIds" id="appManagerIds"
|
||||
disabled="disabled" value="${noticeRemindConfig.noticeUserIds }" />
|
||||
<!-- </div> -->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>提醒规则:</td>
|
||||
<td colspan="3">
|
||||
<!-- <div class="radio"> --> <label> <input
|
||||
class="ace input-lg" type="radio" name="noticeType"
|
||||
id="noticeType1" value="1"
|
||||
<c:if test="${noticeRemindConfig.noticeType == '1'}">checked="checked"</c:if> />
|
||||
<span class="lbl">办结提醒</span>
|
||||
</label> <label> <input class="ace input-lg" type="radio"
|
||||
name="noticeType" id="noticeType2" value="2"
|
||||
<c:if test="${noticeRemindConfig.noticeType == '2'}">checked="checked"</c:if> />
|
||||
<span class="lbl">指定环节提醒</span>
|
||||
</label> <input style="width: 400px" type="text" name="activityDefNames"
|
||||
id="activityDefNames"
|
||||
value="${noticeRemindConfig.activityDefNames }"
|
||||
disabled="disabled"
|
||||
onclick="showDiaLog('${ctx}/noticeRemindConfig/selectActInfoConfigs.do?processDefId=${noticeRemindConfig.procDefId}', '选择节点', '800px', '500px');" />
|
||||
<input type="hidden" name="activityDefIds" id="activityDefIds"
|
||||
value="${noticeRemindConfig.activityDefIds}" /> <!-- </div> -->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>提醒内容:</td>
|
||||
<td colspan="3"><span class="float_left"> <textarea
|
||||
preValue="${noticeRemindConfig.noticeContent}"
|
||||
onblur="moveout(this.id);" name="noticeContent"
|
||||
id="noticeContent" style="width: 800px;">${noticeRemindConfig.noticeContent}</textarea>
|
||||
</span></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="col-md-offset-1 col-md-9" style="text-align: center;">
|
||||
<button type="button" class="btn btn-sm btn-primary"
|
||||
id="submitButton" />
|
||||
保存 <i class="ace-icon fa fa-save bigger-110"></i>
|
||||
</button>
|
||||
|
||||
<button type="button" class="btn btn-sm btn-danger"
|
||||
id="refreshButton" />
|
||||
重置 <i class="ace-icon glyphicon glyphicon-refresh"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<jsp:include page="../../../pages/sysGlType/selectTypeTree.jsp"
|
||||
flush="false" />
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,108 @@
|
||||
<%@page import="org.activiti.engine.repository.ProcessDefinition"%>
|
||||
<%@page import="org.activiti.bpmn.model.*"%>
|
||||
<%@page import="com.blueland.bpm.engine.config.model.*"%>
|
||||
<%@page import="com.blueland.bpm.common.page.*"%>
|
||||
<%@page import="com.blueland.bpm.common.util.*"%>
|
||||
<%@page import="java.util.*"%>
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
|
||||
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
|
||||
<%@ include file="/commons/taglibs.jsp"%>
|
||||
<%
|
||||
String path = request.getContextPath();
|
||||
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
|
||||
+ path + "/";
|
||||
%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<%@ include file="/commons/meta.jsp"%>
|
||||
<base href="<%=basePath%>">
|
||||
<title>流程环节列表</title>
|
||||
<link href="${ctx_js_plugins}/simpletable/simpletable.css"
|
||||
type="text/css" rel="stylesheet">
|
||||
<script type="text/javascript"
|
||||
src="${ctx_js_plugins}/simpletable/simpletable.js"></script>
|
||||
<link href="${ctx}/resource/js/plugins/loadmask/jquery.loadmask.css"
|
||||
rel="stylesheet" type="text/css" />
|
||||
<script type='text/javascript'
|
||||
src='${ctx}/resource/js/plugins/loadmask/jquery.loadmask.js'></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$("#submitButton").click(function(){
|
||||
var retValus='';
|
||||
var retNames='';
|
||||
$('input[name="resources"]:checked').each(function(i){
|
||||
if(i>0){
|
||||
retValus += ",";
|
||||
retNames += ",";
|
||||
}
|
||||
var trId = $(this).val();
|
||||
retValus += $(this).val();
|
||||
retNames += $('#'+trId).attr("dataName");
|
||||
});
|
||||
if(retValus == null || retValus == ''){
|
||||
alert("请选择节点");
|
||||
return false;
|
||||
}
|
||||
art.dialog.opener.createActConfig(retValus,retNames);
|
||||
art.dialog.close();
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body id="content">
|
||||
<form id="queryForm" name="queryForm"
|
||||
action="${ctx}/actInfo/setActResource/list.do" method="post"
|
||||
style="display: inline;">
|
||||
<div class="main-container" id="main-container">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-body" style="padding: 3px;">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="table-responsive">
|
||||
<table id="sample-table-1"
|
||||
class="table table-striped table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 25px;"><input type="checkbox"
|
||||
onclick="setAllCheckboxState('resources',this.checked)"></th>
|
||||
<th>节点ID</th>
|
||||
<th>节点名称</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<c:forEach items="${actInfoConfigs}" var="item"
|
||||
varStatus="status">
|
||||
<tr class="${status.count % 2 == 0 ? 'odd' : 'even'}" id="${item.activityDefId}" dataName="${item.activityDefName}">
|
||||
<td><input type="checkbox" name="resources"
|
||||
value="${item.activityDefId}"></td>
|
||||
<td>${item.activityDefId}</td>
|
||||
<td>${item.activityDefName} </td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="col-md-offset-1 col-md-9" style="text-align: center;">
|
||||
<button type="button" class="btn btn-sm btn-primary"
|
||||
id="submitButton" />
|
||||
确定
|
||||
<i class="ace-icon fa fa-save bigger-110"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.table-responsive -->
|
||||
</div>
|
||||
<!-- /span -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
185
ebpm-process-manage/webapp/pages/procDefMgr/procDefTree.jsp
Normal file
185
ebpm-process-manage/webapp/pages/procDefMgr/procDefTree.jsp
Normal file
@@ -0,0 +1,185 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ include file="/commons/taglibs.jsp"%>
|
||||
<%
|
||||
String path = request.getContextPath();
|
||||
String basePath = request.getScheme() + "://"
|
||||
+ request.getServerName() + ":" + request.getServerPort()
|
||||
+ path + "/";
|
||||
%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<hred>
|
||||
<%@ include file="/commons/meta.jsp" %>
|
||||
<link rel="stylesheet" href="${ctx}/resource/js/plugins/zTree/css/demo.css" type="text/css">
|
||||
<link rel="stylesheet" href="${ctx}/resource/js/plugins/zTree/css/zTreeStyle/zTreeStyle.css" type="text/css">
|
||||
<script type="text/javascript" src="${ctx}/resource/js/plugins/zTree/js/jquery.ztree.core-3.4.js"></script>
|
||||
<script type="text/javascript" src="${ctx}/resource/js/plugins/zTree/js/jquery.ztree.excheck-3.4.js"></script>
|
||||
<SCRIPT type="text/javascript">
|
||||
|
||||
var p_inputObj;
|
||||
var p_initParams1="";
|
||||
var p_initParams2="";
|
||||
var p_initParams3="";
|
||||
var p_initParams4=false;
|
||||
function createSetting(){
|
||||
var setting = {
|
||||
view: {
|
||||
dblClickExpand: false,
|
||||
expandSpeed: "slow",
|
||||
selectedMulti: false
|
||||
},
|
||||
data: {
|
||||
simpleData: {
|
||||
enable : true,
|
||||
idKey : "id",
|
||||
pIdKey : "pId" ,
|
||||
DIY:"isAccessTopMenu"
|
||||
}
|
||||
},async: {
|
||||
enable: true,
|
||||
url:"${ctx}/procDefMgr/getProcDefTree.do",
|
||||
autoParam:["id", "name=n","level=lv"],
|
||||
otherParam:{"assignTreeId":p_initParams1,"treeLevel":p_initParams2}
|
||||
},
|
||||
callback: {
|
||||
onDblClick: onDblClick
|
||||
}
|
||||
};
|
||||
return setting;
|
||||
}
|
||||
|
||||
function createSettingCheck(){
|
||||
var setting = {
|
||||
check: {
|
||||
enable: true,
|
||||
chkboxType: {"Y":"", "N":""}
|
||||
},
|
||||
view: {
|
||||
dblClickExpand: false,
|
||||
expandSpeed: "slow"
|
||||
},
|
||||
data: {
|
||||
simpleData: {
|
||||
enable : true,
|
||||
idKey : "id",
|
||||
pIdKey : "pId" ,
|
||||
DIY:"isAccessTopMenu"
|
||||
}
|
||||
},async: {
|
||||
enable: true,
|
||||
url:"${ctx}/procDefMgr/getProcDefTree.do",
|
||||
autoParam:["id", "name=n","level=lv"],
|
||||
otherParam:{"assignTreeId":p_initParams1,"treeLevel":p_initParams2}
|
||||
},
|
||||
callback: {
|
||||
beforeClick: beforeClick,
|
||||
onCheck: onCheck
|
||||
}
|
||||
|
||||
};
|
||||
return setting;
|
||||
}
|
||||
|
||||
function beforeClick(treeId, treeNode) {
|
||||
var zTree = $.fn.zTree.getZTreeObj("p_treeDept");
|
||||
zTree.checkNode(treeNode, !treeNode.checked, null, true);
|
||||
return false;
|
||||
}
|
||||
|
||||
function onCheck(e, treeId, treeNode) {
|
||||
var zTree = $.fn.zTree.getZTreeObj("p_treeDept"),
|
||||
nodes = zTree.getCheckedNodes(true),
|
||||
name = "",
|
||||
id="";
|
||||
|
||||
//nodes.sort(function compare(a,b){return a.id-b.id;});
|
||||
for (var i=0, l=nodes.length; i<l; i++) {
|
||||
if(nodes[i].level<=0||nodes[i].level<=p_initParams3)
|
||||
continue;
|
||||
name += nodes[i].name + ",";
|
||||
id += nodes[i].id + ",";
|
||||
}
|
||||
|
||||
if (id.length > 0 ) id = id.substring(0, id.length-1);
|
||||
if (name.length > 0 ) name = name.substring(0, name.length-1);
|
||||
try{
|
||||
var fun=p_inputObj+"OnDbClick";
|
||||
eval(fun+"('"+name +"','"+id+"')");
|
||||
}catch(e){}
|
||||
}
|
||||
|
||||
|
||||
function onDblClick(e, treeId, treeNode) {
|
||||
var zTree = $.fn.zTree.getZTreeObj("p_treeDept"),
|
||||
nodes = zTree.getSelectedNodes(),
|
||||
name = "",
|
||||
id="";
|
||||
|
||||
//nodes.sort(function compare(a,b){return a.id-b.id;});
|
||||
for (var i=0, l=nodes.length; i<l; i++) {
|
||||
if(nodes[i].level<=0||nodes[i].level<=p_initParams3)
|
||||
return;
|
||||
name += nodes[i].name + ",";
|
||||
id += nodes[i].id + ",";
|
||||
}
|
||||
|
||||
if (id.length > 0 ) id = id.substring(0, id.length-1);
|
||||
if (name.length > 0 ) name = name.substring(0, name.length-1);
|
||||
try{
|
||||
var fun=p_inputObj+"OnDbClick";
|
||||
eval(fun+"('"+name +"','"+id+"')");
|
||||
}catch(e){}
|
||||
hideMenu();
|
||||
}
|
||||
|
||||
function showMenu(inputName,params1,params2,params3) {
|
||||
//alert(params2);
|
||||
p_initParams1=params1;
|
||||
p_initParams2=params2;
|
||||
p_initParams3=params3;
|
||||
$.fn.zTree.init($("#p_treeDept"), createSetting());
|
||||
p_inputObj=inputName;
|
||||
var cityObj = $("#"+inputName);
|
||||
var cityOffset = cityObj.offset();
|
||||
$("#p_menuContent").css({left:cityOffset.left + "px", top:cityOffset.top + cityObj.outerHeight() + "px"}).slideDown("fast");
|
||||
$("body").bind("mousedown", onBodyDown);
|
||||
|
||||
}
|
||||
|
||||
function showMenu1(inputName,params1,params2,params3) {
|
||||
//alert(params2);
|
||||
p_initParams1=params1;
|
||||
p_initParams2=params2;
|
||||
p_initParams3=params3;
|
||||
$.fn.zTree.init($("#p_treeDept"), createSettingCheck());
|
||||
p_inputObj=inputName;
|
||||
var cityObj = $("#"+inputName);
|
||||
var cityOffset = cityObj.offset();
|
||||
$("#p_menuContent").css({left:cityOffset.left + "px", top:cityOffset.top + cityObj.outerHeight() + "px"}).slideDown("fast");
|
||||
$("body").bind("mousedown", onBodyDown);
|
||||
|
||||
}
|
||||
|
||||
function hideMenu() {
|
||||
$("#p_menuContent").fadeOut("fast");
|
||||
$("body").unbind("mousedown", onBodyDown);
|
||||
}
|
||||
function onBodyDown(event) {
|
||||
|
||||
if (!(event.target.id == "p_menuBtn" || event.target.id == "p_menuContent" || $(event.target).parents("#p_menuContent").length>0)) {
|
||||
hideMenu();
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
//
|
||||
});
|
||||
</SCRIPT>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<div id="p_menuContent" class="menuContent" style="z-index:1;display:none; position: absolute;">
|
||||
<ul id="p_treeDept" class="ztree" style="margin-top:0; width:230px;height: auto;max-height: 300px;"></ul>
|
||||
|
||||
</div>
|
||||
</BODY>
|
||||
</HTML>
|
||||
306
ebpm-process-manage/webapp/pages/procDefMgr/procInfo/edit.jsp
Normal file
306
ebpm-process-manage/webapp/pages/procDefMgr/procInfo/edit.jsp
Normal file
@@ -0,0 +1,306 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ include file="/commons/taglibs.jsp"%>
|
||||
<%@page import="com.blueland.bpm.manage.util.*"%>
|
||||
<%
|
||||
String path = request.getContextPath();
|
||||
String basePath = request.getScheme() + "://"
|
||||
+ request.getServerName() + ":" + request.getServerPort()
|
||||
+ path + "/";
|
||||
%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<%@ include file="/commons/meta.jsp"%>
|
||||
<base href="<%=basePath%>">
|
||||
<title>流程基础配置</title>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$("#submitButton").click(function() {
|
||||
//用jquery中的ajax方法,向服务器提交请求
|
||||
jQuery.ajax({
|
||||
type : "POST",
|
||||
url : "${ctx}/processInfo/update.do",
|
||||
data : $('#myform').serialize(),
|
||||
success : function(resp) {
|
||||
$("#isChange",window.parent.document).val("0");//保存完毕后把是否已修改还原成未修改
|
||||
alert(resp);
|
||||
}
|
||||
});
|
||||
});
|
||||
$('#mprotocol').change(function(){
|
||||
var val=$(this).children('option:selected').val();
|
||||
if(val=="http"){
|
||||
$("#otherSysDealStatus option[value='no']").attr("selected", "selected");
|
||||
}else{
|
||||
$("#otherSysDealStatus option[value='yes']").attr("selected", "selected");
|
||||
}
|
||||
});
|
||||
//获取绑定的流程梳理的文件名称
|
||||
if($("#arisCode").val() != null){
|
||||
var url = "<%=MyContants.BPM_FILE_PATH%>"+"/ebpm-bpa-web/flow/getAtt?fileId="+$("#arisCode").val();
|
||||
jQuery.ajax({
|
||||
url : url,
|
||||
type : "GET",
|
||||
success : function(resp) {
|
||||
$("#arisCodeName").val(resp.NAME);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
function processTypeNameOnDbClick(name, value) {
|
||||
//判断流程分类是否修改
|
||||
moveout("processTypeId");
|
||||
|
||||
$("#processTypeName").val(name);
|
||||
$("#processTypeId").val(value);
|
||||
|
||||
}
|
||||
//焦点移出时对比现在的值和原来的值是否一致 如果不一致则修改父页面的是否修改的标记,标记为已修改
|
||||
function moveout(id){
|
||||
//获取父页面是否修改的标记
|
||||
var isChange = $("#isChange",window.parent.document).val();
|
||||
if(isChange==0){//如果父页面标记为未修改 则执行下面的操作
|
||||
var preValue = $("#"+id).attr("preValue");
|
||||
var value = $("#"+id).val();
|
||||
if(preValue != value){
|
||||
//设置标记为已修改
|
||||
$("#isChange",window.parent.document).val("1");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function save(){
|
||||
//用jquery中的ajax方法,向服务器提交请求
|
||||
jQuery.ajax({
|
||||
type : "POST",
|
||||
async : false,
|
||||
url : "${ctx}/processInfo/update.do",
|
||||
data : $('#myform').serialize(),
|
||||
success : function(resp) {
|
||||
//设置标记为已修改
|
||||
$("#isChange",window.parent.document).val("0");//保存完毕后把是否已修改还原成未修改
|
||||
alert(resp);
|
||||
}
|
||||
});
|
||||
}
|
||||
function arisCodeNameOnDbClick(name, value) {
|
||||
|
||||
$("#arisCodeName").val(name);
|
||||
$("#arisCode").val(value);
|
||||
|
||||
}
|
||||
function viewFlowFile(){
|
||||
if($("#arisCode").val() != ""){
|
||||
var url = "<%=MyContants.BPM_FRONT_PATH%>"+"/ebpm-bpa-front/#/detail?fileId="+$("#arisCode").val()+"&type=.bpmn&isMenu=false";
|
||||
showDiaLog(url,'查看流程梳理-业务流程资产','1024px','600px');
|
||||
}else{
|
||||
alert("请选择流程梳理-业务流程")
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body style="font-size: 13px;font-family: 'Open Sans';" class="white-page">
|
||||
|
||||
<form action="${ctx}/processInfo/update.do" method="post"
|
||||
id="myform">
|
||||
<div class="main-container" id="main-container">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-body">
|
||||
<input type="hidden" id="oldValue"/>
|
||||
|
||||
<input type="hidden" id="processDefName" name="processDefName"
|
||||
value="${processInfoConfig.processDefName}" style="width: 200px;" />
|
||||
<input type="hidden" id="processDefId" name="processDefId"
|
||||
value="${processInfoConfig.processDefId}" style="width: 200px;" />
|
||||
<input type="hidden" id="processDefKey" name="processDefKey"
|
||||
value="${processInfoConfig.processDefKey}" style="width: 200px;" />
|
||||
<input type="hidden" id="processMgrState" name="processMgrState"
|
||||
value="${processInfoConfig.processMgrState}" style="width: 200px;" />
|
||||
<input type="hidden" id="processModelSyncState" name="processModelSyncState"
|
||||
value="${processInfoConfig.processModelSyncState}" style="width: 200px;" />
|
||||
<table class='table table-bordered form-table' border="0" cellspacing="0"
|
||||
cellpadding="0" id="myTable">
|
||||
|
||||
<!-- 存放隐藏域的区域 -->
|
||||
<!-- 存放表单的区域 -->
|
||||
|
||||
<tr>
|
||||
<td>流程KEY:</td>
|
||||
<td>${processInfoConfig.processDefKey}</td>
|
||||
<td>流程ID:</td>
|
||||
<td>${processInfoConfig.processDefId}</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td>流程名称:</td>
|
||||
<td>${processInfoConfig.processDefName}</td>
|
||||
<td>流程版本号:</td>
|
||||
<td>${processInfoConfig.processVersion}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>流程类型:</td>
|
||||
<td style="width: 250px;">
|
||||
<input type="text"
|
||||
<c:choose>
|
||||
<c:when test="${not empty processInfoConfig.processTypeName}">
|
||||
value="${processInfoConfig.processTypeName}"
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
value="请选择"
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
name="processTypeName" id="processTypeName" readonly
|
||||
onclick="showMenu('processTypeName','',''); return false;" />
|
||||
<input
|
||||
type="hidden" name="processTypeId" id="processTypeId"
|
||||
value="${processInfoConfig.processTypeId}" />
|
||||
<a class="blue" href="javascript:void(0);">
|
||||
<i class="ace-icon fa fa-search bigger-130"
|
||||
onclick="showMenu('processTypeName','',''); return false;"/>
|
||||
</i></a>
|
||||
</td>
|
||||
<td>流程是否可见:</td>
|
||||
<td>
|
||||
|
||||
<select name="processStartIsshow" id="processStartIsshow"
|
||||
preValue="${processInfoConfig.processStartIsshow}"
|
||||
onchange="moveout(this.id);">
|
||||
<option value="Y" ${processInfoConfig.processStartIsshow=="Y"?"selected":""}>可见</option>
|
||||
<option value="N" ${processInfoConfig.processStartIsshow=="N"?"selected":""}>不可见</option>
|
||||
</select>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>流程排序号:</td>
|
||||
<td><input type="text" name="processStartOrder"
|
||||
preValue="${processInfoConfig.processStartOrder}"
|
||||
onblur="moveout(this.id);"
|
||||
value="${processInfoConfig.processStartOrder}"
|
||||
id="processStartOrder" maxlength="200"
|
||||
class="validate[length[0,1000]]"
|
||||
onkeyup="this.value=this.value.replace(/\D/g,'')"
|
||||
onafterpaste="this.value=this.value.replace(/\D/g,'')"/></td>
|
||||
<td>流程更新时间:</td>
|
||||
<td>${processInfoConfig.lastUpdateTimeString}</td>
|
||||
<!--
|
||||
<td>起草权限:</td>
|
||||
<td><input type="text" name="processStartAuth" value=""
|
||||
id="processStartAuth" class="validate[length[0,500]]" /></td>
|
||||
-->
|
||||
</tr>
|
||||
<c:if test="${customSso != '1'}">
|
||||
<tr>
|
||||
<td rowspan="2" style="width: 200px;">桌面端相关配置:</td>
|
||||
<td style="width: 100px;">环节表单路径</td>
|
||||
<td colspan="3">
|
||||
<input style="width: 600px" type="text" name="processPageUrl" value="${processInfoConfig.processPageUrl}" id="processPageUrl" class="validate[length[0,500]]" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>处理协议</td>
|
||||
<td colspan="3">
|
||||
<select name="cprotocol" id="cprotocol">
|
||||
<option value="hnzy:workitem" ${processInfoConfig.cprotocol=='hnzy:workitem'||processInfoConfig.cprotocol==null?'selected':''}>专用浏览器模式</option>
|
||||
<option value="http" ${processInfoConfig.cprotocol=='http'?'selected':''}>普通浏览器模式</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="3">手机端相关配置:</td>
|
||||
<td>环节表单路径</td>
|
||||
<td colspan="3">
|
||||
<input style="width: 600px" type="text" name="murl" value="${processInfoConfig.murl}" id="murl" class="validate[length[0,500]]" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>处理协议</td>
|
||||
<td colspan="3">
|
||||
<select name="mprotocol" id="mprotocol">
|
||||
<option value="none" ${processInfoConfig.mprotocol=='none'||processInfoConfig.mprotocol==null?'selected':''}>不支持手机处理</option>
|
||||
<option value="http" ${processInfoConfig.mprotocol=='http'?'selected':''}>H5</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>处理状态</td>
|
||||
<td colspan="3">
|
||||
<select name="otherSysDealStatus" id="otherSysDealStatus">
|
||||
<option value="" ${processInfoConfig.mprotocol==null?'selected':''}>请选择</option>
|
||||
<option value="yes" ${processInfoConfig.otherSysDealStatus=='yes'?'selected':''}>仅阅读</option>
|
||||
<option value="no" ${processInfoConfig.otherSysDealStatus=='no'?'selected':''}>可处理</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="15%">流程业务处理类:</td>
|
||||
<td colspan="3"><input style="width: 550px;" type="text"
|
||||
name="processHandlerClassPath"
|
||||
preValue="${processInfoConfig.processHandlerClassPath}"
|
||||
onblur="moveout(this.id);"
|
||||
value="${processInfoConfig.processHandlerClassPath}"
|
||||
id="processHandlerClassPath" maxlength="200"
|
||||
class="validate[length[0,1000]]" /></td>
|
||||
</tr>
|
||||
</c:if>
|
||||
|
||||
<%-- <tr>
|
||||
|
||||
<td width="15%">流程梳理-业务流程:</td>
|
||||
<td colspan="3">
|
||||
<input
|
||||
<c:choose>
|
||||
<c:when test="${not empty processInfoConfig.arisCode}">
|
||||
value=""
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
value="请选择"
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
name="arisCodeName" id="arisCodeName" readonly
|
||||
onclick="showFlowFile('arisCodeName','',''); return false;" />
|
||||
<input
|
||||
type="hidden" name="arisCode" id="arisCode"
|
||||
preValue="${processInfoConfig.arisCode}"
|
||||
value="${processInfoConfig.arisCode}" />
|
||||
<a class="blue" href="javascript:void(0);">
|
||||
<i class="ace-icon fa fa-search bigger-130"
|
||||
onclick="viewFlowFile()"/>
|
||||
</i></a>
|
||||
</td>
|
||||
|
||||
</tr> --%>
|
||||
<!--
|
||||
<tr>
|
||||
<td>更新者:</td>
|
||||
<td></td>
|
||||
<td>更新时间:</td>
|
||||
<td>${processInfoConfig.lastUpdateTimeString}</td>
|
||||
</tr>
|
||||
-->
|
||||
|
||||
<tr>
|
||||
<td>流程备注:</td>
|
||||
<td colspan="3"><span class="float_left"> <textarea
|
||||
preValue="${processInfoConfig.remark}"
|
||||
onblur="moveout(this.id);"
|
||||
name="remark" id="remark" style="width: 550px;">${processInfoConfig.remark}</textarea>
|
||||
</span></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="col-md-offset-1 col-md-9" style="text-align: center;">
|
||||
<button type="button" class="btn btn-sm btn-primary"
|
||||
id="submitButton" />
|
||||
保存
|
||||
<i class="ace-icon fa fa-save bigger-110"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<jsp:include page="../../../pages/sysGlType/selectTypeTree.jsp" flush="false" />
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,155 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ include file="/commons/taglibs.jsp" %>
|
||||
<%@page import="com.blueland.bpm.manage.util.*"%>
|
||||
<%
|
||||
String path = request.getContextPath();
|
||||
String basePath = request.getScheme() + "://"
|
||||
+ request.getServerName() + ":" + request.getServerPort()
|
||||
+ path + "/";
|
||||
%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<script type="text/javascript" src="${ctx_js_plugins}/zTree/js/jquery-1.4.4.min.js"></script>
|
||||
<script type="text/javascript" src="${ctx_js_plugins}/zTree/js/jquery.ztree.core-3.4.js"></script>
|
||||
<script type="text/javascript" src="${ctx_js_plugins}/zTree/js/jquery.ztree.excheck-3.4.js"></script>
|
||||
<link rel="stylesheet" href="${ctx_js_plugins}/zTree/css/demo.css" type="text/css">
|
||||
<link rel="stylesheet" href="${ctx_js_plugins}/zTree/css/zTreeStyle/zTreeStyle.css" type="text/css">
|
||||
<script type="text/javascript">
|
||||
var jQuery_1_4_4= $.noConflict(true);
|
||||
</script>
|
||||
<SCRIPT type="text/javascript">
|
||||
|
||||
var inputObj;
|
||||
var initParams1="";
|
||||
var initParams2="";
|
||||
var initParams3="";
|
||||
var initParams4=false;
|
||||
function createFileSetting(){
|
||||
var setting = {
|
||||
view: {
|
||||
dblClickExpand: false,
|
||||
expandSpeed: "slow",
|
||||
selectedMulti: false
|
||||
},
|
||||
data: {
|
||||
simpleData: {
|
||||
enable : true,
|
||||
idKey : "id",
|
||||
pIdKey : "pId" ,
|
||||
DIY:"isAccessTopMenu"
|
||||
}
|
||||
},async: {
|
||||
enable: true,
|
||||
url:"<%=MyContants.BPM_FILE_PATH%>"+"/ebpm-bpa-web/flow/getTreeProcessFile"
|
||||
},
|
||||
callback: {
|
||||
onClick: onFileClick
|
||||
}
|
||||
};
|
||||
return setting;
|
||||
}
|
||||
function beforeClick(treeId, treeNode) {
|
||||
var zTree = jQuery_1_4_4.fn.zTree.getZTreeObj("treeFile");
|
||||
zTree.checkNode(treeNode, !treeNode.checked, null, true);
|
||||
return false;
|
||||
}
|
||||
|
||||
function onCheck(e, treeId, treeNode) {
|
||||
var zTree = jQuery_1_4_4.fn.zTree.getZTreeObj("treeFile"),
|
||||
nodes = zTree.getCheckedNodes(true),
|
||||
name = "",
|
||||
id="";
|
||||
|
||||
//nodes.sort(function compare(a,b){return a.id-b.id;});
|
||||
for (var i=0, l=nodes.length; i<l; i++) {
|
||||
if(nodes[i].level<=0||nodes[i].level<=initParams3)
|
||||
continue;
|
||||
name += nodes[i].name + ",";
|
||||
id += nodes[i].id + ",";
|
||||
}
|
||||
|
||||
if (id.length > 0 ) id = id.substring(0, id.length-1);
|
||||
if (name.length > 0 ) name = name.substring(0, name.length-1);
|
||||
try{
|
||||
var fun=inputObj+"OnDbClick";
|
||||
eval(fun+"('"+name +"','"+id+"')");
|
||||
}catch(e){}
|
||||
}
|
||||
|
||||
|
||||
function onFileClick(e, treeId, treeNode) {
|
||||
if(treeNode.fileId == null){
|
||||
return;
|
||||
}
|
||||
var zTree = jQuery_1_4_4.fn.zTree.getZTreeObj("treeFile"),
|
||||
nodes = zTree.getSelectedNodes(),
|
||||
name = "",
|
||||
fileId="";
|
||||
if(nodes==""){
|
||||
try{
|
||||
var fun=inputObj+"OnDbClick";
|
||||
eval(fun+"('','')");
|
||||
}catch(e){}
|
||||
hideMenu();
|
||||
return ;
|
||||
}
|
||||
//nodes.sort(function compare(a,b){return a.id-b.id;});
|
||||
for (var i=0, l=nodes.length; i<l; i++) {
|
||||
if(nodes[i].level<=0||nodes[i].level<=initParams3)
|
||||
return;
|
||||
if(nodes[i].pId=="TOP_FLOW_TYPE"){
|
||||
continue;
|
||||
}
|
||||
name += nodes[i].name + ",";
|
||||
fileId += nodes[i].fileId + ",";
|
||||
}
|
||||
|
||||
if (fileId.length > 0 ) {
|
||||
fileId = fileId.substring(0, fileId.length-1);
|
||||
}else{
|
||||
return;
|
||||
}
|
||||
if (name.length > 0 ) name = name.substring(0, name.length-1);
|
||||
try{
|
||||
var fun=inputObj+"OnDbClick";
|
||||
eval(fun+"('"+name +"','"+fileId+"')");
|
||||
}catch(e){}
|
||||
hideMenu();
|
||||
}
|
||||
|
||||
function showFlowFile(inputName,params1,params2,params3) {
|
||||
initParams1=params1;
|
||||
initParams2=params2;
|
||||
initParams3=params3;
|
||||
jQuery_1_4_4.fn.zTree.init(jQuery_1_4_4("#treeFile"), createFileSetting());
|
||||
inputObj=inputName;
|
||||
var cityObj = jQuery_1_4_4("#"+inputName);
|
||||
var cityOffset = cityObj.offset();
|
||||
jQuery_1_4_4("#menuFileContent").css({left:cityOffset.left + "px", top:cityOffset.top + cityObj.outerHeight() + "px"}).slideDown("fast");
|
||||
jQuery_1_4_4("body").bind("mousedown", onBodyDown);
|
||||
|
||||
}
|
||||
|
||||
function hideMenu() {
|
||||
jQuery_1_4_4("#menuFileContent").fadeOut("fast");
|
||||
jQuery_1_4_4("body").unbind("mousedown", onBodyDown);
|
||||
}
|
||||
function onBodyDown(event) {
|
||||
if (!(event.target.id == "menuBtn" || event.target.id == "menuFileContent" || jQuery_1_4_4(event.target).parents("#menuFileContent").length>0)) {
|
||||
hideMenu();
|
||||
}
|
||||
}
|
||||
|
||||
jQuery_1_4_4(document).ready(function(){
|
||||
//
|
||||
});
|
||||
</SCRIPT>
|
||||
</head>
|
||||
<BODY>
|
||||
<div id="menuFileContent" class="menuContent" style="z-index:1;display:none; position: absolute;">
|
||||
<ul id="treeFile" class="ztree" style="margin-top:0; width:270px;height:150px"></ul>
|
||||
|
||||
</div>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,70 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8" %>
|
||||
<%@ include file="/commons/taglibs.jsp" %>
|
||||
<%
|
||||
String path = request.getContextPath();
|
||||
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
|
||||
%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<%@ include file="/commons/meta.jsp"%>
|
||||
<base href="<%=basePath%>">
|
||||
<title>流程定义权限管理</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="scrollContent">
|
||||
<div class="box2" panelTitle="流程定义信息配置表新增" showStatus="false" roller="true">
|
||||
<form action="${ctx}/processInfo/save.do" method="post">
|
||||
<button id="submitButton" name="submitButton" type="submit">
|
||||
<span class="icon_save">保存</span>
|
||||
<i class="ace-icon fa fa-save bigger-110"></i>
|
||||
</button>
|
||||
<table class="tableStyle">
|
||||
<tr>
|
||||
<th>权限分类</th>
|
||||
<!-- 排序时为th增加sortColumn即可,new SimpleTable('sortColumns')会为tableHeader自动增加排序功能; -->
|
||||
<th sortColumn="processDefName" >授权给</th>
|
||||
<th sortColumn="processTypeId" >操作</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>用户授权</td>
|
||||
<td><input type="text" name="userPowers" id="userPowers" value=""/></td>
|
||||
<td>
|
||||
<button id="userPowersSelButton" name="userPowersSelButton" type="button">
|
||||
<span class="icon_save">选择</span>
|
||||
</button>
|
||||
<button id="userPowersClearButton" name="userPowersClearButton" type="button">
|
||||
<span class="icon_save">重置</span>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>角色授权</td>
|
||||
<td><input type="text" name="rolePowers" id="rolePowers" value=""/></td>
|
||||
<td>
|
||||
<button id="rolePowersSelButton" name="rolePowersSelButton" type="button">
|
||||
<span class="icon_save">选择</span>
|
||||
</button>
|
||||
<button id="rolePowersClearButton" name="rolePowersClearButton" type="button">
|
||||
<span class="icon_save">重置</span>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>组织授权(本层级)</td>
|
||||
<td><input type="text" name="orgPowers" id="orgPowers" value=""/></td>
|
||||
<td>
|
||||
<button id="orgPowersSelButton" name="orgPowersSelButton" type="button">
|
||||
<span class="icon_save">选择</span>
|
||||
</button>
|
||||
<button id="orgPowersClearButton" name="orgPowersClearButton" type="button">
|
||||
<span class="icon_save">重置</span>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
55
ebpm-process-manage/webapp/pages/procDefMgr/viewImage.jsp
Normal file
55
ebpm-process-manage/webapp/pages/procDefMgr/viewImage.jsp
Normal file
@@ -0,0 +1,55 @@
|
||||
<%@page
|
||||
import="com.blueland.bpm.engine.core.model.ProcessDefinitionModel"%>
|
||||
<%@page import="com.blueland.bpm.engine.config.model.ProcessInfoConfig"%>
|
||||
<%@page import="com.blueland.bpm.common.page.*"%>
|
||||
<%@page import="com.blueland.bpm.common.util.*"%>
|
||||
<%@page import="java.util.*"%>
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
|
||||
<%@ taglib tagdir="/WEB-INF/tags/simpletable" prefix="simpletable"%>
|
||||
<%@ include file="/commons/taglibs.jsp"%>
|
||||
<%
|
||||
String path = request.getContextPath();
|
||||
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
|
||||
%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>查看流程图</title>
|
||||
<%@ include file="/commons/meta.jsp"%>
|
||||
<link rel="stylesheet" href="${ctx}/resource/js/plugins/bpmn/css/diagram-js.css" />
|
||||
</head>
|
||||
<body class="white-page">
|
||||
<div class="main-container" id="main-container">
|
||||
<textarea name="bpmXml" rows="5" cols="20" style="display:none" id="bpmXml">
|
||||
${bpmXml}
|
||||
</textarea>
|
||||
<div class="canvas">
|
||||
<div id="js-canvas"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- viewer -->
|
||||
<script type='text/javascript'src="${ctx}/resource/js/plugins/bpmn/bpmn-viewer.development.js"></script>
|
||||
<script type="text/javascript">
|
||||
var height1 = window.parent.document.documentElement.clientHeight;
|
||||
var windowHeight = (parseInt(height1)-250)
|
||||
var viewer = new BpmnJS({
|
||||
container: document.querySelector('#js-canvas'),
|
||||
height: windowHeight
|
||||
});
|
||||
$(function(){
|
||||
createNewDiagram();
|
||||
})
|
||||
function createNewDiagram () {
|
||||
viewer.importXML($("#bpmXml").val(), function (err) {
|
||||
if (err) {
|
||||
console.error(err)
|
||||
}else{
|
||||
var canvas = viewer.get('canvas');
|
||||
canvas.zoom('fit-viewport');
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user