<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" trimDirectiveWhitespaces="true" %>
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
|
<%
|
String path = request.getContextPath();
|
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
|
+ path + "/";
|
%>
|
|
<!DOCTYPE HTML>
|
<html>
|
<head>
|
<base href="<%=basePath%>">
|
<meta charset="UTF-8">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
<title>${form.formName}</title>
|
<!--[if !IE]><!-->
|
<link href="static/plugins/font-awesome/css/font-awesome.css" rel="stylesheet" type="text/css">
|
<!--<![endif]-->
|
<!--[if gte IE 8]>
|
<link href="static/plugins/font-awesome/css/font-awesome.css" rel="stylesheet" type="text/css">
|
<![endif]-->
|
<link href="static/plugins/jquery-easyui/themes/material-teal/easyui.css" rel="stylesheet" type="text/css">
|
<link href="static/plugins/jquery-easyui/themes/bootstrap/easyui.css" rel="stylesheet" type="text/css">
|
<link rel="stylesheet" href="static/styles/material-teal.css" type="text/css">
|
<link rel="stylesheet" href="static/styles/initialize.css" type="text/css">
|
<link rel="stylesheet" href="static/styles/common.css" type="text/css">
|
<link rel="stylesheet" href="static/plugins/layer/skin/default/layer.css" type="text/css">
|
<link rel="stylesheet" href="static/plugins/webuploader/webuploader.css" type="text/css">
|
|
<script type="text/javascript" src="static/plugins/jquery/jquery.min.js"></script>
|
<script type="text/javascript" src="static/plugins/jquery-easyui/jquery.easyui.min.js"></script>
|
<script type="text/javascript" src="static/plugins/jquery-easyui/locale/easyui-lang-zh_CN.js"></script>
|
<script type="text/javascript" src="static/scripts/easyuiExtend.js"></script>
|
<script type="text/javascript" src="static/scripts/jquery-extend.js"></script>
|
|
<script type="text/javascript" src="static/plugins/layer/layer.js"></script>
|
<script type="text/javascript" src="static/plugins/slimScroll/jquery.slimscroll.min.js"></script>
|
<script type="text/javascript" src="static/plugins/spinjs/spin.js"></script>
|
<script type="text/javascript" src="static/plugins/spinjs/jquery.spin.js"></script>
|
<script type="text/javascript" src="static/plugins/jquery.blockUI.js"></script>
|
<script type="text/javascript" src="static/plugins/webuploader/webuploader.js"></script>
|
<script src="static/plugins/webuploader/webuploader.min.js"></script>
|
<script src="static/plugins/ptfileupload/pt.fileupload.js"></script>
|
|
<script type="text/javascript" src="static/wcp/scripts/wcp.js"></script>
|
<script type="text/javascript" src="static/wcp/scripts/libs/wcp.layer.js"></script>
|
<script type="text/javascript" src="static/wcp/scripts/libs/wcp.blockUI.js"></script>
|
<script type="text/javascript" src="static/wcp/scripts/libs/wcp.spin.js"></script>
|
<script type="text/javascript" src="static/wcp/scripts/libs/wcp.jquery.js"></script>
|
<script type="text/javascript" src="static/wcp/scripts/libs/wcp.infoPicker.js"></script>
|
|
<script type="text/javascript" src="static/scripts/form.js"></script>
|
|
<!--[if lt IE 9]>
|
<script type="text/javascript" src="static/plugins/json2.js"></script>
|
<![endif]-->
|
|
<script type="text/javascript" charset="utf-8" src="static/plugins/ueditor/ueditor.config.js"></script>
|
<script type="text/javascript" charset="utf-8" src="static/plugins/ueditor/ueditor.all.js"></script>
|
|
<script type="text/javascript" src="static/plugins/crypto-js/core.js"></script>
|
<script type="text/javascript" src="static/plugins/crypto-js/enc-base64.js"></script>
|
|
<c:if test="${form.importFileUrl!=null}">
|
${form.importFileUrl}
|
</c:if>
|
|
<style>
|
html, body {
|
height: 100%;
|
}
|
|
body {
|
overflow: hidden;
|
}
|
|
.sourceBody {
|
border-top: 1px solid #eee;
|
}
|
|
.viewBody {
|
padding: 5px;
|
}
|
|
.pt-form td.tbtitle {
|
width: 200px;
|
}
|
|
.pt-form-btn .pt-btn {
|
margin-right: 0px;
|
}
|
|
.uploadBtn div {
|
width: 94px !important;
|
height: 41px !important;
|
}
|
|
.webuploader-pick {
|
border: none !important;
|
}
|
</style>
|
|
<style>
|
.form-unit h5 {
|
float: left;
|
}
|
|
.form-unit .btns {
|
float: right;
|
}
|
|
.form-unit .btns li {
|
float: left;
|
text-indent: 0em;
|
font-size: 14px;
|
line-height: 20px;
|
padding-left: 1em;
|
}
|
|
.webuploader-pick {
|
background-color: #fff;
|
border: 1px solid #bbb;
|
border-radius: 4px;
|
color: #444;
|
padding: 3px 6px;
|
}
|
|
.webuploader-pick i.fa-upload {
|
padding-right: 0.3em;
|
color: #666;
|
}
|
|
.pt-process-bar {
|
height: 20px;
|
}
|
|
.pt-process-bar .bar {
|
position: relative;
|
height: 10px;
|
width: 60%;
|
background: #ddd;
|
float: left;
|
border-radius: 5px;
|
top: 3px;
|
}
|
|
.pt-process-bar .subbar {
|
position: absolute;
|
width: 100%;
|
height: 8px;
|
background: #3c8dbc;
|
margin-top: 1px;
|
border-radius: 4px;
|
}
|
|
.pt-process-bar .state {
|
font-size: 14px;
|
height: 16px;
|
line-height: 16px;
|
float: left;
|
text-indent: 1em;
|
}
|
|
.pt-process-bar i {
|
float: right;
|
}
|
|
.inputbox {
|
margin-left: 3px;
|
}
|
|
.pt-process-formats-border {
|
background: #f1f1f1;
|
border-bottom: 1px solid #ddd;
|
margin-top: -10px;
|
margin-bottom: 5px
|
}
|
</style>
|
</head>
|
|
<body>
|
<div id="div_subtabs" class="easyui-tabs" style="width:100%;"
|
data-options="tabPosition:'left', headerWidth:110">
|
<div title="流程表单" data-options="iconCls:'fa fa-wpforms'" class="pt-form viewBody">
|
<div class="pt-main3 clear">
|
<div class="pt-main3-left" style="width:100%;">
|
<div class="pt-main3-con pt-custom-form">
|
${editFormDataHtml}
|
</div>
|
</div>
|
</div>
|
</div>
|
<c:if test="${module.enableAttachBody}">
|
<div title="正文" id="subtab_mainbody"
|
data-options="iconCls:'fa fa-file-word-o',closeType:'hidden'">
|
<div class="easyui-layout" data-options="border:false" style="width:100%;height:100%;">
|
<div data-options="region:'center'" style="overflow: hidden;">
|
<iframe id='iframe_mainbody' width='100%' height='100%' frameborder='no' border='0'
|
marginwidth='0' marginheight='0'></iframe>
|
</div>
|
<div data-options="region:'east'" style="width:350px;overflow: hidden;">
|
<iframe id='iframe_comment' width='100%' height='100%' frameborder='no' border='0'
|
marginwidth='0' marginheight='0'></iframe>
|
</div>
|
</div>
|
</div>
|
</c:if>
|
<div title="附件管理" id="subtab_attachmanage" data-options="iconCls:'fa fa-file-text-o'">
|
<iframe id='iframe_attachmanage' width='100%' height='100%' frameborder='no' border='0'
|
marginwidth='0' marginheight='0'
|
src="general/attachManage?moduleId=${module.moduleId}&tableId=${form.mainTableId}&isSave=${isSavePower}&keyId=${keyId}"></iframe>
|
</div>
|
<div title="流程历史" id="subtab_flowhistory" data-options="iconCls:'fa fa-share-alt'">
|
<iframe id='iframe_flowhistory' width='100%' height='100%' frameborder='no' border='0'
|
marginwidth='0' marginheight='0'></iframe>
|
</div>
|
<div title="流程跟踪" id="subtab_flowdiagram" data-options="iconCls:'fa fa-rotate-right'">
|
<iframe id='iframe_flowdiagram' width='100%' height='100%' frameborder='no' border='0'
|
marginwidth='0' marginheight='0'></iframe>
|
</div>
|
<c:forEach items="${subtabList}" var="subtab">
|
<c:if test="${keyId>0 || (subtab.showInCreate!=null && subtab.showInCreate)}">
|
<div id="subtab_${subtab.subtabId}" title="${subtab.subtabName}" data-options="iconCls:'fa fa-file-o'">
|
<iframe id='iframe_${subtab.subtabId}' width='100%' height='100%' frameborder='no' border='0'
|
marginwidth='0' marginheight='0' src=''></iframe>
|
</div>
|
</c:if>
|
</c:forEach>
|
</div>
|
<div class="pt-form-btn online-form-btn" style="bottom:0px;">
|
<div class="form-group">
|
<c:if test="${!isEnd }">
|
<c:if test="${task!=null }">
|
<span>当前处理环节:</span>
|
<span class="pt-color-success" style="font-weight: bold;">${task.taskName}</span>
|
<span>下一步处理环节:</span>
|
<select id="sel_NextTasks" class="easyui-combobox" style="width:150px;">
|
</select>
|
<i id="i_NextDealUser">
|
<span id="span_NextDealUser">下一步处理人:</span>
|
<select id="sel_NextDealUser" class="easyui-combobox"
|
style="width:150px;">
|
</select>
|
</i>
|
</c:if>
|
<c:if test="${taskList!=null }">
|
<span>当前处理环节:</span>
|
<c:forEach items="${taskList }" var="task">
|
<span class="pt-color-success" style="font-weight: bold;">${task.taskName}:<c:if
|
test="${task.assigneeUserId!=null }">${task.assigneeUserName}</c:if>
|
<c:if test="${task.getIdentityLinks()!=null && task.getIdentityLinks().size()>0}">
|
<c:forEach items="${task.getIdentityLinks() }"
|
varStatus="status" var="identityLink">
|
${identityLink.identityName }<c:if test="${!status.last}">,</c:if>
|
</c:forEach>
|
</c:if>
|
</span>
|
</c:forEach>
|
</c:if>
|
</c:if>
|
<c:if test="${isEnd }">
|
<span class="pt-color-success">当前流程已办结!</span>
|
</c:if>
|
<c:if test="${task!=null }">
|
<c:if test="${btnOperationRights.indexOf('btnSetFlowCustom,')>-1}">
|
<button class="pt-btn pt-btn-primary" id="btnSetFlowCustom">
|
${otherNameMaps.get("btnSetFlowCustom").toString()}
|
</button>
|
</c:if>
|
<c:if test="${btnOperationRights.indexOf('btnComplate,')>-1}">
|
<button class="pt-btn pt-btn-info" id="btnComplate">
|
${otherNameMaps.get("btnComplate").toString()}
|
</button>
|
</c:if>
|
<c:if test="${btnOperationRights.indexOf('btnAddDealUser,')>-1}">
|
<button class="pt-btn pt-btn-primary" id="btnAddDealUser">
|
${otherNameMaps.get("btnAddDealUser").toString()}
|
</button>
|
</c:if>
|
<c:if test="${btnOperationRights.indexOf('btnRollBackFirstStep,')>-1}">
|
<button class="pt-btn pt-btn-warning" id="btnRollBackFirstStep">
|
${otherNameMaps.get("btnRollBackFirstStep").toString()}
|
</button>
|
</c:if>
|
<c:if test="${btnOperationRights.indexOf('btnRollBack,')>-1}">
|
<button class="pt-btn pt-btn-warning" id="btnRollBack">
|
${otherNameMaps.get("btnRollBack").toString()}
|
</button>
|
</c:if>
|
<c:if test="${btnOperationRights.indexOf('btnEndProcess,')>-1}">
|
<button class="pt-btn pt-btn-danger" id="btnEndProcess">
|
${otherNameMaps.get("btnEndProcess").toString()}
|
</button>
|
</c:if>
|
</c:if>
|
<c:if test="${task==null }">
|
<!--最近的办理步骤人员是当前登录人,才能收回-->
|
<c:if test="${btnOperationRights.indexOf('btnRollRegain,')>-1}">
|
<button class="pt-btn pt-btn pt-btn-success" id="btnRollRegain">
|
收回
|
</button>
|
</c:if>
|
<!--当前登录人是第一发起人,才能收回-->
|
<c:if test="${btnOperationRights.indexOf('btnRollRegainFirstStep,')>-1}">
|
<button class="pt-btn pt-btn pt-btn-success"
|
id="btnRollRegainFirstStep">
|
收回到发起人
|
</button>
|
</c:if>
|
</c:if>
|
<c:forEach items="${operations}" var="operation">
|
<c:if test="${operation.enableSystemOperation && (keyId>0 || (operation.operationName!='SysLastData' && operation.operationName!='SysNextData') && operation.operationName!='SysCopyAndAdd') && (operation.operationName!='SysSave' || isSavePower)}">
|
<button id="${operation.operationName}" opid="${operation.operationId}"
|
class="pt-btn ${operation.operationCss}">
|
${operation.displayName}
|
</button>
|
</c:if>
|
<c:if test="${operation.enableSystemOperation==false}">
|
<button id="btn${operation.operationId}"
|
class='pt-btn ${operation.operationCss==""?"pt-btn-primary":operation.operationCss}'
|
onclick="btnClickEvent${operation.operationId}()">
|
${operation.displayName}
|
</button>
|
</c:if>
|
</c:forEach>
|
<c:if test="${task!=null }">
|
<span>常用意见:</span>
|
<select id="sel_CommonOpinions" class="easyui-combobox" style="width:250px;">
|
</select>
|
<button class="pt-btn pt-btn-success" id="btnUseSelectOpinion">
|
使用
|
</button>
|
</c:if>
|
</div>
|
</div>
|
<script type="text/javascript" src="static/scripts/ResizeScroll.js"></script>
|
|
<script>
|
//窗口参数,用于弹窗传递
|
var params = {
|
parent: null,
|
callBack: null,
|
callBackParams: null
|
};
|
|
var formId = '${form.formId}';
|
var keyId = "${keyId}";
|
var tableName = "${module.mainTableName}";
|
var tableKeyName = "${module.mainTableKeyName}";
|
var taskId = "${task.taskId}";
|
var taskName = '${task.taskName}';
|
var flowDefinitionId = "${flowDefinitionId}";
|
var processInstanceId = "${processInstanceId}";
|
var relationKeyId = "${relationKeyId}";
|
var relationTableId = "${relationTableId}";
|
var openUrlType = "${openUrlType}";
|
var attachListStyle = "${form.attachListStyle}";
|
|
//流程处理人依赖输入元素的ID
|
var nextTask = null;
|
var flowDealUserDependElementIds = "";
|
var nextStepDependIdFromField = "${nextStepDependIdFromField}";
|
|
//意见操作的相关函数
|
var opinionFieldId = "${opinionFieldId}";
|
var getCommentFun;
|
var setCommentFun;
|
|
//附件操作的相对对象或者函数,用于跨页操作
|
var mainBodyObj;
|
var addAttachFun;
|
var getMainBodyFun;
|
var getAttachListFun;
|
var getModifyAttachListFun;
|
var refreshAttachListFun;
|
|
$(function () {
|
initBtnEvent();
|
initSubTabs();
|
|
//重新渲染一下表单
|
$.parser.parse("#formData");
|
|
new ResizeScroll({
|
"id": ".pt-main3",
|
"fun": function () {
|
var wh = $(window).height();
|
$('#div_subtabs').tabs('resize', {
|
height: wh - 50
|
});
|
|
$("iframe").not("[id^=layui-layer]").height(wh - 54);
|
|
return (wh - 62);
|
}
|
});
|
});
|
|
function initSubTabs() {
|
var wh = $(window).height();
|
|
$('#div_subtabs').tabs({
|
height: wh - 50,
|
<c:if test="${module.enableAttachBody && keyId>0 && form.attachListStyle != 2}">
|
selected: 1,
|
</c:if>
|
onSelect: function (title, index) {
|
if (index > 0) {
|
try {
|
setSubTabUrl(index);
|
} catch (e) {
|
|
}
|
}
|
}
|
});
|
|
if (attachListStyle == 2) {
|
$('#div_subtabs').tabs('getTab', 1).panel('options').tab.hide();
|
$('#div_subtabs').tabs('getTab', 2).panel('options').tab.hide();
|
}
|
|
setTimeout(function () {
|
$("iframe").not("[id^=layui-layer]").height(wh - 55);
|
}, 100);
|
}
|
|
function initBtnEvent() {
|
<c:if test="${isSavePower}">
|
//保存按钮事件
|
$("#SysSave").click(function () {
|
saveData();
|
});
|
|
//保存并新增按钮事件
|
// $("#SysSaveAndAdd").click(function () {
|
// saveData(1);
|
// });
|
|
//复制并新增按钮事件
|
$("#SysCopyAndAdd").click(function () {
|
copyAndAdd();
|
});
|
</c:if>
|
|
<c:if test="${module.enableFlow }">
|
<c:if test="${task!=null }">
|
//获取下一步处理任务
|
setTimeout(function () {
|
getNextTasks();
|
}, 100);
|
</c:if>
|
$("#btnSetFlowCustom").click(function () {
|
setFlowCustom();
|
});
|
$("#btnComplate").click(function () {
|
complateTask();
|
});
|
$("#btnAddDealUser").click(function () {
|
showAddDealUser();
|
});
|
|
$("#btnRollBack").click(function () {
|
showRollBack();
|
});
|
$("#btnRollBackFirstStep").click(function () {
|
showRollBack("first");
|
});
|
|
$("#btnRollRegain").click(function () {
|
taskRollRegain();
|
});
|
$("#btnRollRegainFirstStep").click(function () {
|
taskRollRegain("first");
|
});
|
|
$("#btnEndProcess").click(function () {
|
endProcess();
|
});
|
|
$("#btnUseSelectOpinion").click(function () {
|
useSelectOpinion();
|
});
|
|
$("#sel_CommonOpinions").combobox({
|
url: 'management/flowCommonOpinion/getList?showDefault=1',
|
valueField: 'opinion',
|
textField: 'opinion',
|
panelHeight: 'auto',
|
editable: false,
|
onChange: function (newV, oldV) {
|
if (newV == '更多 >>') {
|
top.layer.open({
|
title: '常用意见',
|
type: 2,
|
area: ["500px", "550px"],
|
fixed: false,
|
content: "management/flowCommonOpinion",
|
success: function (layero, index) {
|
var body = window.top.layer.getChildFrame('body', index);
|
var iframeWin = window.top[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象
|
|
//将回调函数传给子页面
|
iframeWin.params.callBack = sel_CommonOpinions_callback;
|
}
|
});
|
|
$("#sel_CommonOpinions").combobox("setValue", "");
|
|
}
|
|
},
|
});
|
|
//表单元素内容变化事件监听,用于流程步骤处理人需要根据表单元素值获取的处理
|
$("#formData").form({
|
onChange: function (target) {
|
var id = $(target).attr("id");
|
if (id != "") {
|
//如果后续步骤依赖字段输入,则重新获取下一步步骤
|
if (nextStepDependIdFromField != null
|
&& nextStepDependIdFromField != ""
|
&& (nextStepDependIdFromField + ",").indexOf(id + ",") > -1) {
|
getNextTasks();
|
} else {
|
//如果下一步处理人依赖字段输入,则重新获取处理人
|
if (flowDealUserDependElementIds != null
|
&& flowDealUserDependElementIds != ""
|
&& (flowDealUserDependElementIds + ",").indexOf(id + ",") > -1) {
|
getTaskAssignee(nextTask);
|
}
|
|
//如果意见依赖用户输入,则将字段内容填写到意见
|
if (opinionFieldId != "" && opinionFieldId == id && setCommentFun) {
|
var val = $(target).textbox("getValue");
|
setCommentFun(val);
|
}
|
}
|
}
|
}
|
});
|
</c:if>
|
}
|
|
<c:if test="${! empty form.customJs}">
|
//添加表单自定义JS脚本
|
${form.customJs}
|
</c:if>
|
|
function setSubTabUrl(index) {
|
var url = "";
|
var oldUrl = "";
|
var urlArray = new Array();
|
urlArray["mainbody"] = "general/editMainBody?moduleId=${module.moduleId}&tableId=${form.mainTableId}&flowDefinitionId=${flowDefinitionId}&isSave=${isSavePower}&keyId=" + keyId;
|
urlArray["attachmanage"] = "general/attachManage?moduleId=${module.moduleId}&tableId=${form.mainTableId}&isSave=${isSavePower}&keyId=" + keyId;
|
urlArray["flowhistory"] = "flow/showHistoryTwo?moduleId=${module.moduleId}&tableId=${form.mainTableId}&keyId=" + keyId;
|
urlArray["flowdiagram"] = "flow/showFlowDiagram?flowDefinitionId=${flowDefinitionId}&moduleId=${module.moduleId}&tableId=${form.mainTableId}&keyId=" + keyId;
|
var commentUrl = "flow/showComment?moduleId=${module.moduleId}&tableId=${form.mainTableId}&keyId=" + keyId;
|
|
<c:forEach items="${subtabList}" var="subtab">
|
<c:choose>
|
<c:when test="${subtab.subtabType==0}">
|
<c:if test="${subtab.viewId>0}">
|
url = 'general/list?viewId=${subtab.viewId}&subtabId=${subtab.subtabId}&relationModuleId=${form.moduleId}&relationTableId=${view!=null?view.mainTableId:form.mainTableId}&relationKeyId=' + keyId + '&fromPageType=iframe';
|
</c:if>
|
<c:if test="${subtab.viewId==-1}">
|
url = 'general/list?moduleId=${subtab.targetModuleId}&viewIdentify=${view.viewIdentify}&subtabId=${subtab.subtabId}&relationModuleId=${form.moduleId}&relationTableId=${view!=null?view.mainTableId:form.mainTableId}&relationKeyId=' + keyId + '&fromPageType=iframe';
|
</c:if>
|
</c:when>
|
<c:when test="${subtab.subtabType==1}">
|
url = 'general/editFormData?viewId=${view.viewId}&formId=${subtab.formId}&subtabId=${subtab.subtabId}&relationModuleId=${form.moduleId}&relationTableId=${view!=null?view.mainTableId:form.mainTableId}&relationKeyId=' + keyId + '&fromPageType=iframe&openUrlType=1';
|
</c:when>
|
<c:when test="${subtab.subtabType==2}">
|
</c:when>
|
<c:when test="${subtab.subtabType==3}">
|
url = '${subtab.url}';
|
if (url.endsWith('#')) {
|
url = url.substr(0, url.length - 1);
|
} else {
|
if (url.indexOf("?") < 0) {
|
url += "?";
|
} else {
|
url += "&";
|
}
|
url += 'moduleId=${subtab.targetModuleId}&viewIdentify=${view.viewIdentify}&subtabId=${subtab.subtabId}&relationModuleId=${form.moduleId}&relationTableId=${view!=null?view.mainTableId:form.mainTableId}&relationKeyId=' + keyId + '&fromPageType=iframe';
|
}
|
</c:when>
|
</c:choose>
|
urlArray["${subtab.subtabId}"] = url;
|
</c:forEach>
|
|
var tab = $('#div_subtabs').tabs('getTab', index);
|
var id = $(tab).panel("options").id;
|
if (id != null) {
|
//判断是否为系统list页面,如果是则调用 一下list的刷新方法
|
var iframeId = id.replace("subtab_", "");
|
|
url = urlArray[iframeId];
|
|
oldUrl = $(document).find('#iframe_' + iframeId).attr('src');
|
if (url != oldUrl) {
|
$(document).find('#iframe_' + iframeId).attr('src', url);
|
|
if (iframeId == "mainbody") {
|
$(document).find('#iframe_comment').attr('src', commentUrl);
|
}
|
} else {
|
if (iframeId == "mainbody") {
|
if (typeof getMainBodyFun === "function") {
|
var attach = getMainBodyFun();
|
if (document.getElementById('iframe_mainbody').contentWindow.changeFile) {
|
document.getElementById('iframe_mainbody').contentWindow.changeFile(attach);
|
}
|
}
|
}
|
}
|
|
setTimeout(function () {
|
if (document.getElementById('iframe_' + iframeId).contentWindow.resizeDataGrid) {
|
document.getElementById('iframe_' + iframeId).contentWindow.resizeDataGrid();
|
}
|
if (document.getElementById('iframe_' + iframeId).contentWindow.computeBtns) {
|
document.getElementById('iframe_' + iframeId).contentWindow.computeBtns();
|
}
|
}, 100);
|
}
|
}
|
|
//验证数据
|
function checkData() {
|
var tab = $('#div_subtabs').tabs('getSelected');
|
var index = $('#div_subtabs').tabs('getTabIndex', tab);
|
|
//判断是否有正文保存
|
if (mainBodyObj && mainBodyObj.activeDocument && !mainBodyObj.activeDocument.saved) {
|
mainBodyObj.showTipMessage("提示", "请先点击正文中的保存按钮进行附件保存!");
|
|
if (index != 1) {
|
$('#div_subtabs').tabs('select', 1);
|
}
|
|
return false;
|
}
|
|
//先切换回第一个Tab页
|
var tab = $('#div_subtabs').tabs('getSelected');
|
var index = $('#div_subtabs').tabs('getTabIndex', tab);
|
if (index != 0) {
|
$('#div_subtabs').tabs('select', 0);
|
}
|
|
var formId = '${form.formId}';
|
var isValid = $('#formData').form('validate');
|
if (!isValid) {
|
top.wcp.notify.error('表单验证有误,请检查表单输入项!');
|
return false;
|
}
|
|
return true;
|
}
|
|
<c:if test="${isSavePower}">
|
|
function saveData(submitFlowFun) {
|
var opid = $("#SysSave").attr("opid");
|
|
//如果不需要提交流程,则校验数据,如果要提交流程,则在流程中先校验
|
if (!submitFlowFun && !checkData()) {
|
return false;
|
}
|
|
//判断是否存在保存前函数,若存在则执行
|
try {
|
if (typeof beforeSaveData === "function") {
|
var result = eval("beforeSaveData()");
|
if (result == false) {
|
return result;
|
}
|
}
|
} catch (e) {
|
}
|
|
var formData = getFormData();
|
|
var obj = {
|
formData: formData,
|
addAttachList: [],
|
deleteAttachList: []
|
};
|
|
//查看是否有跨页附件列表
|
if (getModifyAttachListFun) {
|
var attachList = getModifyAttachListFun();
|
obj.addAttachList = attachList.addAttachList;
|
obj.deleteAttachList = attachList.deleteAttachList;
|
}
|
|
wcp.ajax({
|
url: "general/saveFormData?operationId=" + opid + "&viewId=${view.viewId}&formId=" + formId + "&keyId=" + keyId + "&flowDefinitionId=${flowDefinitionId}",
|
data: JSON.stringify(obj),
|
beforeSend: function (XMLHttpRequest) {
|
top.wcp.ui.setBusy();
|
}
|
}).done(function (result) {
|
if (result != null && keyId == 0) {
|
keyId = result.keyId;
|
|
if (result.taskId != null) {
|
taskId = result.taskId;
|
processInstanceId = result.processInstanceId;
|
//getNextTasks();
|
}
|
|
//设置页签的keyId
|
if (window.frames.length > 0) {
|
for (var i = 0; i < window.frames.length; i++) {
|
if (window.frames[i].setKeyId) {
|
window.frames[i].setKeyId(keyId);
|
}
|
}
|
}
|
}
|
|
//保存其他内容
|
var ajaxs = [];
|
//遍历所有Iframe,查找每个iFrame中是否有保存的请求方法
|
if (window.frames.length > 0) {
|
for (var i = 0; i < window.frames.length; i++) {
|
if (window.frames[i].getSaveDataAjax) {
|
ajaxs.push(window.frames[i].getSaveDataAjax());
|
}
|
}
|
}
|
|
if (ajaxs.length > 0) {
|
$.when.apply(this, ajaxs)
|
.done(function (ret) {
|
//如果需要提交流程
|
if (submitFlowFun) {
|
submitFlowFun(result.formData);
|
} else {
|
dealEnd();
|
}
|
})
|
.fail(function () {
|
wcp.ui.clearBusy();
|
});
|
} else {
|
//如果需要提交流程
|
if (submitFlowFun) {
|
submitFlowFun(result.formData);
|
} else {
|
dealEnd();
|
}
|
}
|
|
function dealEnd() {
|
top.wcp.ui.clearBusy();
|
|
//刷新跨页面的附件列表
|
if (refreshAttachListFun) {
|
refreshAttachListFun();
|
}
|
|
//判断是否需要执行回调函数
|
if (params.callBack) {
|
if (params.callBackParams) {
|
params.callBack(params.callBackParams);
|
} else {
|
params.callBack();
|
}
|
}
|
|
top.wcp.notify.success('保存成功!');
|
<c:if test="${form.enableAutoClose==true}">
|
closeWindow();
|
</c:if>
|
<c:if test="${form.enableAutoClose!=true}">
|
if (result.formData) {
|
$('#formData').form('load', result.formData);
|
}
|
</c:if>
|
}
|
}).fail(function (msg) {
|
console.log("error:" + msg);
|
top.wcp.ui.clearBusy();
|
});
|
}
|
|
//复制并新增
|
function copyAndAdd() {
|
if (params.parent) {
|
params.parent.rowClickEvent(null, null, 0, flowDefinitionId, keyId);
|
} else {
|
var url = window.location.href.replace(/\&keyId=\d+/, "&keyId=0").replace(/\?keyId=\d+/, "?keyId=0");
|
url += "©KeyId=" + keyId;
|
if (flowDefinitionId != null) {
|
url += "&flowDefinitionId=" + flowDefinitionId;
|
}
|
|
var myWindow = window.open(url);
|
|
//将回调函数传给子页面
|
$(myWindow).load(function () {
|
if (myWindow.params) {
|
myWindow.params.parent = params.parent;
|
myWindow.params.callBack = params.callBack;
|
}
|
});
|
}
|
}
|
|
</c:if>
|
|
//将意见填充到表单字段
|
function setOpinionToField(opinion) {
|
if (opinionFieldId != "") {
|
try {
|
$("#" + opinionFieldId).textbox("setValue", opinion);
|
} catch (e) {
|
}
|
}
|
}
|
|
//获取表单数据
|
function getFormData(notDealSubTabData) {
|
var formData = $('#formData').serializeObject2();
|
|
//处理表单中的子表数据
|
if (!notDealSubTabData) {
|
dealSubTabData(formData);
|
}
|
|
return formData;
|
}
|
|
//加载表单数据
|
function setFormData(data) {
|
$('#formData').form('load', data);
|
}
|
|
<c:if test="${module.enableFlow }">
|
|
/**
|
* 获取步骤的处理人
|
* @param node
|
* @param skipRemote
|
*/
|
function getTaskAssignee(node, skipRemote) {
|
skipRemote = skipRemote || false;
|
|
if (node.nodeType == -1) {
|
$("#i_NextDealUser").hide();
|
return;
|
} else {
|
$("#i_NextDealUser").show();
|
}
|
|
var icons = [];
|
if (node.dealUserFromOutSelect == 1) {
|
icons.push({
|
iconCls: 'icon-select',
|
handler: function (e) {
|
selectUser(node);
|
}
|
});
|
}
|
|
this.flowDealUserDependElementIds = node.dealUserDependElementIds;
|
|
//如果有依赖用户输入的元素ID,则需要重新获取下一步处理人员
|
if (node.dealUserDependElementIds != null && node.dealUserDependElementIds != "" && !skipRemote) {
|
var formData = getFormData();
|
|
//先销毁一下控件,不然上一次选择的人会填充到本次数据中
|
$("#sel_NextDealUser").combobox("destroy");
|
$("#i_NextDealUser").append("<input id='sel_NextDealUser' style='width:150px;'>");
|
$("#sel_NextDealUser").combobox({
|
url: 'flow/getDealUserList?taskId=' + taskId + "&flowNodeId=" + node.id,
|
valueField: 'idAndType',
|
textField: 'name',
|
panelHeight: 'auto',
|
multiple: node.nodeType != 0,
|
editable: false,
|
hasDownArrow: true,
|
mode: "remote",
|
icons: icons,
|
queryParams: formData,
|
onBeforeLoad: function (param) {
|
wcp.ui.setBusy(".form-group");
|
},
|
onLoadSuccess: function () {
|
wcp.ui.clearBusy(".form-group");
|
},
|
onLoadError: function (args) {
|
wcp.ui.clearBusy(".form-group");
|
}
|
});
|
} else {
|
//先销毁一下控件,不然上一次选择的人会填充到本次数据中
|
$("#sel_NextDealUser").combobox("destroy");
|
$("#i_NextDealUser").append("<input id='sel_NextDealUser' style='width:150px;'>");
|
$("#sel_NextDealUser").combobox({
|
valueField: 'idAndType',
|
textField: 'name',
|
panelHeight: 'auto',
|
multiple: node.nodeType != 0,
|
editable: false,
|
hasDownArrow: true,
|
mode: "local",
|
data: node.candidateList,
|
icons: icons
|
});
|
}
|
}
|
|
function selectUser(node) {
|
wcp.picker.selectUser({
|
title: "选择用户",
|
multiSelect: node.nodeType != 0
|
}, function (users) {
|
if (users != null) {
|
var data = new Array();
|
for (var i = 0; i < users.length; i++) {
|
data.push({
|
idAndType: users[i].id,
|
name: users[i].name,
|
selected: true
|
});
|
}
|
|
$("#sel_NextDealUser").combobox("clear");
|
$("#sel_NextDealUser").combobox("loadData", data);
|
}
|
});
|
}
|
|
function getNextTasks() {
|
var formData = getFormData();
|
|
$("#sel_NextTasks").combobox({
|
url: 'flow/getNextTaskList?taskId=' + taskId,
|
valueField: 'id',
|
textField: 'name',
|
panelHeight: 'auto',
|
editable: false,
|
queryParams: formData,
|
onBeforeLoad: function (param) {
|
wcp.ui.setBusy(".form-group");
|
},
|
onLoadSuccess: function () {
|
wcp.ui.clearBusy(".form-group");
|
|
var data = $("#sel_NextTasks").combobox("getData");
|
if (data != null && data.length > 0) {
|
nextTask = null;
|
//选中第1个
|
$("#sel_NextTasks").combobox("setValue", data[0].id);
|
}
|
},
|
onLoadError: function (args) {
|
wcp.ui.clearBusy(".form-group");
|
},
|
onSelect: function (node) {
|
var skipRemote = nextTask == null;
|
nextTask = node;
|
getTaskAssignee(node, skipRemote);
|
}
|
});
|
}
|
|
function complateTask(addDealUsers) {
|
var comment = "";
|
var nextTaskId = "";
|
var nextTaskUserIds = [];
|
var nextTaskUserNames = "";
|
var nextTasks = new Object();
|
|
if (!checkData()) {
|
return false;
|
}
|
|
//获取历史意见
|
if (getCommentFun) {
|
comment = getCommentFun();
|
}
|
|
//判断是否存在提交前函数,若存在则执行,返回空不阻止,返回错误信息则阻止流程继续
|
try {
|
if (typeof beforeComplateTask === "function") {
|
var result = eval("beforeComplateTask()");
|
if (result == false) {
|
return result;
|
}
|
}
|
} catch (e) {
|
}
|
|
//读取下一步骤,如果是添加本步骤办理人员,则不需要验证下一步骤信息
|
if (addDealUsers == null) {
|
if (nextTask != null) {
|
nextTaskId = nextTask.id;
|
|
if (nextTask.nodeType != -1) {
|
nextTaskUserIds = $("#sel_NextDealUser").combobox("getValues");
|
nextTaskUserNames = $("#sel_NextDealUser").combobox("getText");
|
if (nextTaskUserIds == null || nextTaskUserIds.length == 0 || nextTaskUserNames == "") {
|
top.wcp.message.error("请选择下一处理人!");
|
return;
|
}
|
}
|
} else {
|
top.wcp.message.error("请选择下一处理步骤!");
|
return;
|
}
|
|
nextTasks[nextTaskId] = {
|
userIds: nextTaskUserIds.join(","),
|
userNames: nextTaskUserNames
|
};
|
}
|
|
saveData(function (formData) {
|
wcp.ajax({
|
url: "flow/complateTask?taskId=" + taskId,
|
data: JSON.stringify({
|
comment: comment,
|
keyId: keyId,
|
transientVariables: formData,
|
nextTasks: nextTasks,
|
addDealUsers: addDealUsers
|
})
|
}).done(function (result) {
|
top.wcp.ui.clearBusy();
|
|
top.wcp.notify.success("办理成功!");
|
|
//判断是否需要执行回调函数
|
if (params.callBack) {
|
if (params.callBackParams) {
|
params.callBack(params.callBackParams);
|
} else {
|
params.callBack();
|
}
|
}
|
|
//关闭窗口
|
closeWindow();
|
}).always(function () {
|
top.wcp.ui.clearBusy();
|
});
|
});
|
}
|
|
function showAddDealUser() {
|
wcp.picker.selectUser({
|
title: "选择用户"
|
}, function (users) {
|
if (users != null) {
|
var data = new Object();
|
for (var i = 0; i < users.length; i++) {
|
data[users[i].id] = users[i].name;
|
}
|
|
complateTask(data);
|
}
|
});
|
|
}
|
|
function showRollBack(type) {
|
top.layer.open({
|
title: "流程退回",
|
type: 2,
|
area: ['500px', '450px'],
|
shadeClose: true, //点击遮罩关闭
|
content: 'flow/showRollBack?taskId=${task.taskId}&type=' + type,
|
success: function (layero, index) {
|
var body = window.top.layer.getChildFrame('body', index);
|
var iframeWin = window.top[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象
|
|
//将回调函数传给子页面
|
iframeWin.params.callBack = taskRollBack;
|
}
|
});
|
}
|
|
//自定义流程
|
function setFlowCustom() {
|
if (keyId == null || keyId == 0) {
|
top.wcp.message.error("请先保存表单!");
|
return;
|
}
|
|
var formData = getFormData();
|
|
top.layer.open({
|
title: "自定义流程",
|
type: 2,
|
area: ['800px', '550px'],
|
shadeClose: true, //点击遮罩关闭
|
queryParams: formData,
|
content: 'flowCustom/index?flowDefinitionId=${flowDefinitionId}&taskId=${task.taskId}&keyId=' + keyId,
|
success: function (layero, index) {
|
var body = window.top.layer.getChildFrame('body', index);
|
var iframeWin = window.top[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象
|
//将回调函数传给子页面
|
iframeWin.params.callBack = getNextTasks;
|
iframeWin.params.variables = formData;
|
//若当前模块数据涉密控制
|
<c:if test="${module.enableDataSecret}">
|
//密级要求设置为下拉选择
|
var securityCode = $("#security_code").val();
|
if (securityCode != "") {
|
iframeWin.params.securityCode = securityCode;
|
}
|
</c:if>
|
|
}
|
});
|
}
|
|
//收回、收回到发起人
|
function taskRollRegain(type) {
|
var comment = $("#txt_Comment_Regain").val();
|
wcp.ui.setBusy("body", wcp.ajax({
|
url: "flow/taskRollRegain?taskId=${rollRegainTaskId}&type=" + type,
|
data: JSON.stringify({
|
comment: comment
|
})
|
}).done(function (result) {
|
//判断是否需要执行回调函数
|
if (params.callBack) {
|
if (params.callBackParams) {
|
params.callBack(params.callBackParams);
|
} else {
|
params.callBack();
|
}
|
}
|
//关闭窗口
|
closeWindow();
|
top.wcp.notify.success("收回成功!");
|
}));
|
}
|
|
function taskRollBack(comment, rollBackTask, noticeDealUser) {
|
var taskId = "${task.taskId}";
|
|
var nextTasks = new Object();
|
nextTasks[rollBackTask.id] = {
|
userIds: rollBackTask.userIds,
|
userNames: rollBackTask.userNames
|
};
|
|
wcp.ui.setBusy("body", wcp.ajax({
|
url: "flow/taskRollBack?taskId=" + taskId,
|
data: JSON.stringify({
|
comment: comment,
|
nextTasks: nextTasks,
|
noticeDealUser: noticeDealUser
|
})
|
}).done(function (result) {
|
//判断是否需要执行回调函数
|
if (params.callBack) {
|
if (params.callBackParams) {
|
params.callBack(params.callBackParams);
|
} else {
|
params.callBack();
|
}
|
}
|
|
//关闭窗口
|
closeWindow();
|
|
top.wcp.notify.success("退回成功!");
|
}));
|
}
|
|
function endProcess() {
|
var comment = $("#txt_Comment").val();
|
|
if (comment == "") {
|
top.wcp.message.warn("请在办理意见框中填写流程结束原因!");
|
return;
|
}
|
|
layer.confirm('您确定要结束该流程吗?', function (index) {
|
wcp.ui.setBusy("body", wcp.ajax({
|
url: "flow/endProcess?processInstanceId=" + processInstanceId + "&taskId=" + taskId,
|
data: JSON.stringify({
|
comment: comment
|
})
|
}).done(function (result) {
|
//判断是否需要执行回调函数
|
if (params.callBack) {
|
if (params.callBackParams) {
|
params.callBack(params.callBackParams);
|
} else {
|
params.callBack();
|
}
|
}
|
|
//关闭窗口
|
closeWindow();
|
|
top.wcp.notify.success("流程结束成功!");
|
}));
|
});
|
}
|
|
function useSelectOpinion() {
|
if (setCommentFun) {
|
var opinion = $("#sel_CommonOpinions").combobox("getValue");
|
if (opinion != "") {
|
setCommentFun(opinion);
|
}
|
}
|
}
|
|
</c:if>
|
|
//关闭窗口事件
|
function closeWindow() {
|
switch ("${openUrlType}") {
|
case "0"://tab打开
|
if (top.closeNowPanel) {
|
top.closeNowPanel();
|
}
|
break;
|
case "1"://弹出层打开
|
if (top.layer) {
|
var index = top.layer.getFrameIndex(window.name); //获取窗口索引
|
top.layer.close(index);
|
}
|
break;
|
case "2"://window打开
|
window.close();
|
break;
|
default:
|
if (top.closeNowPanel) {
|
top.closeNowPanel();
|
} else {
|
window.close();
|
}
|
break;
|
}
|
}
|
|
//生成操作触发事件,方法名由btnClickEvent+operationId组成
|
<c:forEach items="${operations}" var="operation">
|
<c:if test="${operation.enableSystemOperation==false}">
|
|
function btnClickEvent${operation.operationId}() {
|
${operation.jsExpression}
|
|
var title = "打开数据";
|
switch (${operation.operationType}) {
|
case 0://打开页面
|
var pageUrl = '${operation.pageUrl}';
|
|
if ("${operation.pageOpenMode}" == "0")//tab页面
|
{
|
if (top.addPanel) {
|
top.addPanel(pageUrl, title);
|
var curTabWin = null;
|
var curTab = top.$('#tt').tabs('getSelected');
|
if (curTab && curTab.find('iframe').length > 0) {
|
curTabWin = curTab.find('iframe')[0].contentWindow;
|
//将回调函数传给子页面
|
$(curTabWin).load(function () {
|
if (curTabWin.params) {
|
//将回调函数传给子页面
|
//curTabWin.params.callBack = refreshData;
|
}
|
});
|
}
|
|
} else {
|
var myWindow = window.open(pageUrl);
|
//将回调函数传给子页面
|
$(myWindow).load(function () {
|
if (myWindow.params) {
|
//myWindow.params.callBack = refreshData;
|
}
|
});
|
}
|
|
} else if ("${operation.pageOpenMode}" == "1")//弹出层
|
{
|
var pageWidth = 0;
|
var pageHeight = 0;
|
try {
|
pageWidth = parseInt('${operation.pageWidth}');
|
pageHeight = parseInt('${operation.pageHeight}');
|
} catch (e) {
|
}
|
top.layer.open({
|
title: title,
|
type: 2,
|
area: [pageWidth + "px", pageHeight + "px"],
|
fixed: false,
|
content: pageUrl,
|
success: function (layero, index) {
|
var body = window.top.layer.getChildFrame('body', index);
|
var iframeWin = window.top[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象
|
//将回调函数传给子页面
|
iframeWin.params.callBack = refreshData;
|
}
|
});
|
|
} else//window打开
|
{
|
var myWindow = window.open(pageUrl);
|
//将回调函数传给子页面
|
$(myWindow).load(function () {
|
if (myWindow.params) {
|
//myWindow.params.callBack = refreshData;
|
}
|
});
|
}
|
break;
|
case 1://执行事务
|
var obj = getFormData();
|
|
wcp.ui.setBusy("body", wcp.ajax({
|
url: "general/doFormFunction?formId=${form.formId}&operationId=${operation.operationId}&keyId=" + keyId,
|
data: JSON.stringify(obj),
|
}).done(function (result) {
|
top.wcp.notify.success('执行成功!');
|
|
//如果有数据返回,则刷新表单
|
if (result) {
|
$('#formData').form('load', result);
|
|
//判断是否需要执行回调函数
|
if (params.callBack) {
|
if (params.callBackParams) {
|
params.callBack(params.callBackParams);
|
} else {
|
params.callBack();
|
}
|
}
|
}
|
}));
|
break;
|
}
|
}
|
|
</c:if>
|
</c:forEach>
|
|
//选择用户、部门、群组
|
function selectTargetObject(controlNames, controlIds, isMulti, isReturnIdType, type, pickRangeType, pickRangeId, pickRangeColumn) {
|
switch (type) {
|
case 1:
|
case 5:
|
case 6:
|
case 7:
|
case 8:
|
case 9:
|
case 10:
|
case 11:
|
case 12:
|
case 13:
|
case 14:
|
var selectDept = false;
|
var selectGroup = false;
|
var selectRole = false;
|
var selectFrame = "0";
|
if (type == 5) {
|
selectFrame = "0,1";
|
} else if (type == 6) {
|
selectFrame = "0,2";
|
} else if (type == 7) {
|
selectFrame = "0,3";
|
} else if (type == 8) {
|
selectFrame = "1,2";
|
} else if (type == 9) {
|
selectFrame = "1,3";
|
} else if (type == 10) {
|
selectFrame = "2,3";
|
} else if (type == 11) {
|
selectFrame = "0,1,2";
|
} else if (type == 12) {
|
selectFrame = "0,1,3";
|
} else if (type == 13) {
|
selectFrame = "1,2,3";
|
} else if (type == 14) {
|
selectFrame = "0,1,2,3";
|
}
|
//如果Frame 有多个,ReturnIdType 强制为true
|
if (type > 1) {
|
isReturnIdType = true;
|
}
|
pickRangeType = pickRangeType == null ? 1 : pickRangeType;
|
if (pickRangeType == 0) {
|
selectDept = true;
|
selectGroup = true;
|
selectRole = true;
|
} else if (pickRangeType == 1) {
|
selectDept = true;
|
} else if (pickRangeType == 2) {
|
selectGroup = true;
|
} else if (pickRangeType == 3) {
|
selectRole = true;
|
}
|
var hasSelectNames = $("#" + controlNames).textbox('getValue');
|
var hasSelectIds = "";
|
if (controlIds != "") {
|
hasSelectIds = $("#" + controlIds).val();
|
}
|
//选择范围ID拼接表单字段值
|
var pickRangeIdTemp = "";
|
if (pickRangeColumn != null && pickRangeColumn != "") {
|
var pickRangeColumnArray = pickRangeColumn.split(",");
|
for (var i = 0; i < pickRangeColumnArray.length; i++) {
|
pickRangeIdTemp += document.getElementById(pickRangeColumnArray[i]).value + ",";
|
}
|
if (pickRangeIdTemp != "") {
|
pickRangeIdTemp = pickRangeIdTemp.substring(0, pickRangeIdTemp.length - 1);
|
}
|
}
|
if (pickRangeId != null && pickRangeId != "" && pickRangeIdTemp != "") {
|
pickRangeId += "," + pickRangeIdTemp;
|
}
|
if ((pickRangeId == null || pickRangeId == "") && pickRangeIdTemp != "") {
|
pickRangeId = pickRangeIdTemp;
|
}
|
//alert(pickRangeId);
|
wcp.picker.selectUser({
|
title: "请选择用户",
|
multiSelect: isMulti,
|
returnIdType: isReturnIdType,
|
idElement: controlIds,
|
nameElement: controlNames,
|
selectDept: selectDept,
|
selectGroup: selectGroup,
|
selectRole: selectRole,
|
pickRangeType: pickRangeType,
|
pickRangeId: pickRangeId,
|
hasSelectIds: hasSelectIds,
|
hasSelectNames: hasSelectNames,
|
separator: ',',
|
selectFrame: selectFrame,
|
layerOpener: window
|
});
|
break;
|
case 2:
|
wcp.picker.selectDept({
|
title: "请选择部门",
|
multiSelect: isMulti,
|
returnIdType: isReturnIdType,
|
idElement: controlIds,
|
nameElement: controlNames,
|
separator: ',',
|
layerOpener: window
|
});
|
break;
|
case 3:
|
wcp.picker.selectGroup({
|
title: "请选择群组",
|
multiSelect: isMulti,
|
returnIdType: isReturnIdType,
|
idElement: controlIds,
|
nameElement: controlNames,
|
separator: ',',
|
layerOpener: window
|
});
|
break;
|
case 4:
|
wcp.picker.selectRole({
|
title: "请选择角色",
|
multiSelect: isMulti,
|
returnIdType: isReturnIdType,
|
idElement: controlIds,
|
nameElement: controlNames,
|
separator: ',',
|
layerOpener: window
|
});
|
break;
|
}
|
}
|
|
//选择多级关键字
|
function selectMultiKeyWords(controlId, keywordId, multiSelect, saveSelectNameField) {
|
wcp.picker.selectParam({
|
title: "选择关键字",
|
keywordId: keywordId,
|
multiSelect: multiSelect,
|
separator: ";",
|
nameElement: controlId,
|
valueElement: saveSelectNameField,
|
layerOpener: window
|
});
|
|
}
|
|
//生成编码
|
function getCode(controlNames, codingId, callBack) {
|
var obj = getFormData();
|
$.ajax({
|
type: 'POST',
|
contentType: "application/json; charset=utf-8",
|
url: "config/coding/getCodingSn?codingId=" + codingId,
|
dataType: 'json',
|
data: JSON.stringify(obj),
|
success: function (data) {
|
$('#' + controlNames).textbox('setValue', data);
|
|
if (callBack) {
|
callBack(data);
|
}
|
}
|
});
|
|
}
|
|
|
//生成编码(弹窗取号)
|
function getCodePopup(controlNames, codingId) {
|
var obj = getFormData();
|
top.layer.open({
|
title: "取号",
|
type: 2,
|
area: ['600px', '230px'],
|
shadeClose: true,
|
content: 'config/coding/getCodingSnPopup?codingId=' + codingId,
|
success: function (layero, index) {
|
var body = window.top.layer.getChildFrame('body', index);
|
var iframeWin = window.top[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象
|
//将回调函数传给子页面
|
iframeWin.params.callBack = getCodePopupBack;
|
iframeWin.params.controlNames = controlNames;
|
iframeWin.params.formData = obj;
|
}
|
|
});
|
}
|
|
function getCodePopupBack(_controlNames, _codeData, _selectData) {
|
$('#' + _controlNames).textbox('setValue', _codeData);
|
}
|
|
var filterSql = "";
|
|
//选择资源
|
function selectResource(columnName, returnFunctionName, filterSql, openWidth, openHeight) {
|
var columnNameArray = filterSql.match(/\{.*?\}/g);
|
if (columnNameArray != null) {
|
// for (var name of columnNameArray) {
|
// var nameTemp = name.replace("{", "").replace("}", "");
|
// var obj = $('#formData').serializeObject();
|
// var valueTemp = obj[nameTemp];
|
// var replaceStr = "$" + name;
|
// while (filterSql.indexOf(replaceStr) > -1) {
|
// filterSql = filterSql.replace(replaceStr, valueTemp);
|
// }
|
// }
|
//兼容ie8
|
for (var i = 0; i < columnNameArray.length; i++) {
|
var name = columnNameArray[i];
|
var nameTemp = name.replace("{", "").replace("}", "");
|
var obj = getFormData();
|
var valueTemp = obj[nameTemp];
|
var replaceStr = "$" + name;
|
while (filterSql.indexOf(replaceStr) > -1) {
|
filterSql = filterSql.replace(replaceStr, valueTemp);
|
}
|
}
|
}
|
|
var customSql = wcp.utils.encodeBase64UrlParam(filterSql);
|
var url = "general/selectResource?formId=${form.formId}&columnName=" + columnName + "&viewIdentify=${view.viewIdentify}&customSql=" + customSql;
|
wcp.picker.selectResource({
|
title: "请选择资源",
|
url: url,
|
openWidth: openWidth,
|
openHeight: openHeight,
|
layerOpener: window
|
}, function (rows) {
|
//执行回调函数
|
if (returnFunctionName != "") {
|
eval(returnFunctionName + "()");
|
}
|
});
|
}
|
|
//加载表单里的附件上传控件
|
$(function () {
|
<c:forEach items="${uploadFormColumnList}" var="uploadFormColumn">
|
var imgFileExtensions${uploadFormColumn.columnName} = 'gif,jpg,jpeg,bmp,png';
|
<c:if test="${uploadFormColumn.uploadType==0}">
|
imgFileExtensions${uploadFormColumn.columnName} = '*';
|
</c:if>
|
var uploader${uploadFormColumn.columnName} = WebUploader.create({
|
swf: 'static/plugins/webuploader/Uploader.swf',
|
server: 'general/uploadFormDataFile',
|
pick: {
|
id: "#${uploadFormColumn.columnName}picker",
|
multiple: false
|
},
|
<c:if test="${uploadFormColumn.uploadType==1}">
|
accept: {
|
title: 'Images',
|
extensions: imgFileExtensions${uploadFormColumn.columnName},
|
mimeTypes: 'image/*'
|
},
|
thumb: {
|
width: 100,
|
height: 100,
|
crop: true
|
},
|
</c:if>
|
auto: true
|
});
|
uploader${uploadFormColumn.columnName}.on("uploadSuccess", function (file, response) { //上传成功事件
|
var resultHtml = "";
|
<c:if test="${uploadFormColumn.uploadType==1}">
|
var thumbnailWidth = 100, thumbnailHeight = 100;
|
var path = $("#${uploadFormColumn.columnName}").val();
|
$("#${uploadFormColumn.columnName}").val(path + "|" + response.result.fileName);
|
uploader${uploadFormColumn.columnName}.makeThumb(file, function (error, src) {
|
if (error) {
|
top.wcp.message.error("转换缩略图失败,请重新选择!", "错误");
|
return;
|
}
|
resultHtml = "<span><img src='" + src + "' title='" + file.name + "' /><a class='pt-color-primary' id='" + response.result.fileName + "' onclick='deleteData(\"${uploadFormColumn.columnName}\",this)'>删除</a> </span>";
|
$("#divUploadResult${uploadFormColumn.columnName}").append(resultHtml);
|
var count = $("#count${uploadFormColumn.columnName}").val();
|
$("#count${uploadFormColumn.columnName}").val(parseInt(count) + 1);
|
}, thumbnailWidth, thumbnailHeight);
|
|
</c:if>
|
<c:if test="${uploadFormColumn.uploadType==0}">
|
var path = $("#${uploadFormColumn.columnName}").val();
|
$("#${uploadFormColumn.columnName}").val(path + "|" + response.result.fileName + "?" + file.name);
|
resultHtml = "<i>" + file.name + " <a href='" + response.result.fileName + "' class='pt-color-primary' download='" + file.name + "'>下载</a> <a id='" + response.result.fileName + "?" + file.name + "' class='pt-color-primary' onclick='deleteData(\"${uploadFormColumn.columnName}\",this)'>删除</a><br/></i>";
|
$("#ul${uploadFormColumn.columnName}").append(resultHtml);
|
var count = $("#count${uploadFormColumn.columnName}").val();
|
$("#count${uploadFormColumn.columnName}").val(parseInt(count) + 1);
|
</c:if>
|
|
});
|
uploader${uploadFormColumn.columnName}.on("uploadError", function (file, reason) { //上传失败
|
top.wcp.message.error("上传失败:" + reason, "错误");
|
});
|
uploader${uploadFormColumn.columnName}.on("beforeFileQueued", function (file) {
|
<c:if test="${uploadFormColumn.allowUploadCount!=0}">
|
var allowUploadCount = parseInt('${uploadFormColumn.allowUploadCount}');
|
var existCount = $("#count${uploadFormColumn.columnName}").val();
|
if (allowUploadCount == existCount) {
|
top.wcp.message.error("超出允许上传数量!", "错误");
|
return false;
|
}
|
</c:if>
|
var ext = file.ext;
|
<c:if test="${uploadFormColumn.uploadType==1}">
|
if (imgFileExtensions${uploadFormColumn.columnName}.indexOf(ext.toLowerCase()) == -1) {
|
top.wcp.message.error("请选择图片文件!", "错误");
|
return false;
|
}
|
</c:if>
|
});
|
</c:forEach>
|
})
|
|
//删除数据
|
function deleteData(columnName, obj) {
|
var path = $("#" + columnName).val();
|
$("#" + columnName).val(path.replace('|' + obj.id, ''));
|
var count = $("#count" + columnName).val();
|
$("#count" + columnName).val(count - 1);
|
obj.parentNode.remove();
|
}
|
|
//表单控件赋值方法(下拉选择、radiobutton控件存选项名称赋值,)-问题:同名同姓情况如何处理,待讨论
|
function formColumnControlAddValue(controlId, controlValue, eableMulti) {
|
if (controlValue === undefined) {
|
return;
|
}
|
var newValue = "";
|
var controlValueTemp = controlValue.toString();
|
var oldValue = $('#' + controlId).val();
|
if (("," + oldValue + ",").indexOf("," + controlValueTemp + ",") == -1) {
|
if (eableMulti) {
|
if (oldValue != "") {
|
newValue = oldValue + "," + controlValueTemp;
|
} else {
|
newValue = controlValueTemp;
|
}
|
} else {
|
newValue = controlValueTemp;
|
}
|
} else {
|
newValue = oldValue;
|
}
|
|
try {
|
$('#' + controlId).textbox('setValue', newValue);
|
} catch (e) {
|
$('#' + controlId).val(newValue);
|
}
|
}
|
|
//表单控件赋值方法(CheckBox控件存选项名称赋值)
|
function formColumnControlAddValueForCheckBox(columnName, controlId) {
|
var text = '';
|
$('input[name=' + columnName + ']').each(function () {
|
if (this.checked) {
|
text += $(this).parent().prev().attr('text') + ',';
|
}
|
});
|
text = text.substr(0, text.length - 1);
|
try {
|
$('#' + controlId).textbox('setValue', text);
|
} catch (e) {
|
$('#' + controlId).val(text);
|
}
|
}
|
|
//表单控件赋值方法(下拉选择控件存选项名称赋值,)-问题:同名同姓情况如何处理,待讨论
|
function formColumnControlDeleteValue(controlId, controlValue, eableMulti) {
|
if (controlValue === undefined) {
|
return;
|
}
|
var newValue = "";
|
var controlValueTemp = controlValue.toString();
|
if (eableMulti) {
|
var oldValue = $('#' + controlId).val();
|
if (oldValue.indexOf(",") > -1) {
|
if (oldValue.indexOf("," + controlValueTemp) > -1) {
|
newValue = oldValue.replace("," + controlValueTemp, '');
|
} else if (oldValue.indexOf(controlValueTemp + ",") > -1) {
|
newValue = oldValue.replace(controlValueTemp + ",", '');
|
}
|
} else {
|
newValue = oldValue.replace(controlValueTemp, '');
|
}
|
} else {
|
newValue = oldValue.replace(controlValueTemp, '');
|
}
|
try {
|
$('#' + controlId).textbox('setValue', newValue);
|
} catch (e) {
|
$('#' + controlId).val(newValue);
|
}
|
}
|
|
function reloadPage() {
|
window.location = window.location;
|
}
|
|
function sel_CommonOpinions_callback(opinions) {
|
$("#sel_CommonOpinions").combobox("setValue", opinions);
|
}
|
</script>
|
</body>
|
</html>
|