rutask_handle.jsp 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  4. <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
  5. <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
  6. <%
  7. String path = request.getContextPath();
  8. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  9. %>
  10. <!DOCTYPE html>
  11. <html lang="en">
  12. <head>
  13. <base href="<%=basePath%>">
  14. <!-- jsp文件头和头部 -->
  15. <%@ include file="../../system/index/top.jsp"%>
  16. <!-- 日期框 (带小时分钟)-->
  17. <link rel="stylesheet" href="static/ace/css/bootstrap-datetimepicker.css" />
  18. </head>
  19. <body class="no-skin">
  20. <!-- /section:basics/navbar.layout -->
  21. <div class="main-container" id="main-container">
  22. <!-- /section:basics/sidebar -->
  23. <div class="main-content">
  24. <div class="main-content-inner">
  25. <div class="page-content">
  26. <div class="row">
  27. <div class="col-xs-12">
  28. <div class="span6">
  29. <div class="tabbable">
  30. <ul class="nav nav-tabs" id="myTab" style="margin-top: 10px;">
  31. <li class="active"><a data-toggle="tab" href="#home"><i class="green icon-home bigger-110"></i>申请事项</a></li>
  32. <li><a data-toggle="tab" href="#profile"><i class="green icon-cog bigger-110"></i>审批过程</a></li>
  33. <li><a data-toggle="tab" href="#png"><i class="green icon-cog bigger-110"></i>流程图</a></li>
  34. </ul>
  35. <div class="tab-content">
  36. <div id="home" class="tab-pane in active">
  37. <table id="table_report" class="table table-striped table-bordered table-hover" style="margin-top: 10px;">
  38. <th class="center" colspan="10">申请事项</th>
  39. <c:forEach items="${varList}" var="var" varStatus="vs">
  40. <tr>
  41. <c:if test="${var.NAME_ != 'RESULT'}">
  42. <td style="width:75px;text-align: right;padding-top: 10px;">${var.NAME_ == 'USERNAME'?'登录用户':var.NAME_}</td>
  43. <td style="padding-top: 10px;">${var.TEXT_}</td>
  44. </c:if>
  45. </tr>
  46. </c:forEach>
  47. </table>
  48. <c:if test="${null == pd.msg or pd.msg != 'admin' }">
  49. <form action="rutask/handle.do" name="Form" id="Form" method="post">
  50. <input type="hidden" name="ID_" id="ID_" value="${pd.ID_}"/>
  51. <input type="hidden" name="ASSIGNEE_" id="ASSIGNEE_" value=""/>
  52. <input type="hidden" name="PROC_INST_ID_" id="PROC_INST_ID_" value="${pd.PROC_INST_ID_}"/>
  53. <input type="hidden" name="msg" id="msg" value="yes"/>
  54. <div id="zhongxin" style="padding-top: 0px;">
  55. <table id="table_report" class="table table-striped table-bordered table-hover">
  56. <tr>
  57. <td style="width:75px;text-align: right;padding-top: 13px;">审批意见:</td>
  58. <td colspan="10" id="omsg">
  59. <textarea name="OPINION" id="OPINION" maxlength="4000" style="display:none" ></textarea>
  60. <script id="editor" type="text/plain" style="width:100%;height:130px;">${pd.DESCRIPTION}</script>
  61. </td>
  62. </tr>
  63. </table>
  64. <table id="table_report" class="table table-striped table-bordered table-hover">
  65. <tr>
  66. <td style="text-align: center;" colspan="10">
  67. <a class="btn btn-mini btn-success" onclick="handle('yes');"><i class="ace-icon glyphicon glyphicon-ok"></i>批准</a>
  68. <c:if test="${QX.Reject == 1 }">
  69. <a class="btn btn-mini btn-primary" onclick="handle('no');"><i class="ace-icon glyphicon glyphicon-remove"></i>驳回</a>
  70. </c:if>
  71. <c:if test="${QX.Abolish == 1 }">
  72. <a class="btn btn-mini btn-xs btn-danger" onclick="del('${pd.PROC_INST_ID_}');">
  73. <i class="ace-icon fa fa-trash-o bigger-130" title="作废" style="float: left;"></i>作废
  74. </a>
  75. </c:if>
  76. <a class="btn btn-mini btn-danger" onclick="top.Dialog.close();">取消</a>
  77. </td>
  78. <c:if test="${QX.NextASSIGNEE_ == 1 }">
  79. <td width="320">
  80. 指定下一办理对象:
  81. <input type="text" name="ASSIGNEE_2" id="ASSIGNEE_2" placeholder="不指定则默认对象" value="" title="指定下一办理对象" style="width:150px;" readonly="readonly"/>
  82. <a class="btn btn-light btn-xs" onclick="clean();" title="清空" style="margin-top: -3px;">清</a>
  83. </td>
  84. <td width="90">
  85. <a class="btn btn-xs btn-info" title="指定下一办理人(单人)" onclick="getUser();">
  86. <i class="ace-icon glyphicon glyphicon-user"></i>
  87. </a>
  88. <a class="btn btn-xs btn-info" title="指定下一办理角色(此角色下所有人都可以办理)" onclick="getRole();">
  89. <i class="ace-icon fa fa-users"></i>
  90. </a>
  91. </td>
  92. </c:if>
  93. </tr>
  94. </table>
  95. </div>
  96. <div id="zhongxin2" class="center" style="display:none"><br/><br/><br/><br/><br/><img src="static/images/jiazai.gif" /><br/><h4 class="lighter block green">提交中...</h4></div>
  97. </form>
  98. </c:if>
  99. </div>
  100. <div id="profile" class="tab-pane">
  101. <table id="table_report" class="table table-striped table-bordered table-hover" style="margin-top: 10px;">
  102. <th colspan="10" class='center'>审批过程</th>
  103. <tr>
  104. <th class="center" style="width:50px;">步骤</th>
  105. <th class="center" style="width:150px;">任务节点</th>
  106. <th class="center" style="width:150px;">办理人</th>
  107. <th class="center" style="width:150px;"><i class="ace-icon fa fa-clock-o bigger-110 hidden-480"></i>审批开始时间</th>
  108. <th class="center" style="width:150px;"><i class="ace-icon fa fa-clock-o bigger-110 hidden-480"></i>审批结束时间</th>
  109. <th class="center" style="width:120px;">用时</th>
  110. <th class="center">审批意见</th>
  111. </tr>
  112. <c:forEach items="${hitaskList}" var="var" varStatus="vs">
  113. <tr>
  114. <td class='center' style="width: 30px;">${vs.index+1}</td>
  115. <td class='center' style="padding-top: 10px;">${var.ACT_NAME_}</td>
  116. <td class='center' style="padding-top: 10px;">
  117. <c:if test="${var.ASSIGNEE_ != NULL}"><a onclick="viewUser('${var.ASSIGNEE_}')" style="cursor:pointer;"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i>${var.ASSIGNEE_}</a></c:if>
  118. </td>
  119. <td class='center' style="padding-top: 10px;">${fn:substring(var.START_TIME_ ,0,19)}</td>
  120. <td class='center' style="padding-top: 10px;">
  121. <c:if test="${var.END_TIME_ == NULL}">正在审批……</c:if>
  122. <c:if test="${var.END_TIME_ != NULL}">${fn:substring(var.END_TIME_ ,0,19)}</c:if>
  123. </td>
  124. <td class='center'>${var.ZTIME}</td>
  125. <td style="padding-top: 10px;" class="center">
  126. <c:forEach items="${fn:split(var.TEXT_,',fh,')}" var="val" varStatus="dvs" >
  127. <c:if test="${dvs.index == 0 }">${val}</c:if>
  128. <c:if test="${dvs.index == 1 }">
  129. <a onclick="details('d${vs.index+1}')" style="cursor:pointer;" title="详情"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i>
  130. </c:if>
  131. </c:forEach>
  132. <textarea id="d${vs.index+1}" style="display: none;">${var.TEXT_}</textarea>
  133. </td>
  134. </tr>
  135. </c:forEach>
  136. </table>
  137. </div>
  138. <div id="png" class="tab-pane">
  139. <table id="table_report" class="table table-striped table-bordered table-hover" style="margin-top: 10px;">
  140. <th colspan="10" class='center'>流程图</th>
  141. <tr>
  142. <td class='center'><img alt="${pd.FILENAME }" src="${pd.imgSrc }"></td>
  143. </tr>
  144. <tr>
  145. <td class='center'><p class="text-warning bigger-110 orange" style="padding-top: 5px;">如果图片显示不全,点击最大化按钮</p></td>
  146. </tr>
  147. </table>
  148. </div>
  149. </div>
  150. </div>
  151. </div>
  152. </div>
  153. <!-- /.col -->
  154. </div>
  155. <!-- /.row -->
  156. </div>
  157. <!-- /.page-content -->
  158. </div>
  159. </div>
  160. <!-- /.main-content -->
  161. </div>
  162. <!-- /.main-container -->
  163. <!-- 页面底部js¨ -->
  164. <%@ include file="../../system/index/foot.jsp"%>
  165. <!-- 百度富文本编辑框-->
  166. <script type="text/javascript" charset="utf-8">window.UEDITOR_HOME_URL = "<%=path%>/plugins/ueditor_full/";</script>
  167. <script type="text/javascript" charset="utf-8" src="plugins/ueditor_full/ueditor.config.js"></script>
  168. <script type="text/javascript" charset="utf-8" src="plugins/ueditor_full/ueditor.all.min.js"> </script>
  169. <script type="text/javascript" charset="utf-8" src="plugins/ueditor_full/lang/zh-cn/zh-cn.js"></script>
  170. <!-- 百度富文本编辑框-->
  171. <!-- 确认窗口 -->
  172. <script src="static/ace/js/bootbox.js"></script>
  173. <!-- 日期框(带小时分钟) -->
  174. <script src="static/ace/js/date-time/moment.js"></script>
  175. <script src="static/ace/js/date-time/locales.js"></script>
  176. <script src="static/ace/js/date-time/bootstrap-datetimepicker.js"></script>
  177. <!--提示框-->
  178. <script type="text/javascript" src="static/js/jquery.tips.js"></script>
  179. <script type="text/javascript">
  180. $(top.hangge());
  181. //办理任务
  182. function handle(msg){
  183. $("#msg").val(msg);
  184. $("#OPINION").val(getContent());
  185. if($("#OPINION").val()==""){
  186. $("#omsg").tips({
  187. side:3,
  188. msg:'请输入审批意见',
  189. bg:'#AE81FF',
  190. time:2
  191. });
  192. $("#OPINION").focus();
  193. return false;
  194. }
  195. $("#Form").submit();
  196. $("#zhongxin").hide();
  197. $("#zhongxin2").show();
  198. }
  199. //作废
  200. function del(Id){
  201. bootbox.prompt("请输入作废缘由?", function(result) {
  202. if(result != null){
  203. if('' == result)result = "未写作废缘由";
  204. top.jzts();
  205. var url = "<%=basePath%>ruprocdef/delete.do?PROC_INST_ID_="+Id+"&reason="+encodeURI(encodeURI(result))+"&tm="+new Date().getTime();
  206. $.get(url,function(data){
  207. $("#zhongxin").hide();
  208. $("#zhongxin2").show();
  209. top.Dialog.close();
  210. });
  211. }
  212. });
  213. }
  214. //查看用户
  215. function viewUser(USERNAME){
  216. if('admin' == USERNAME){
  217. bootbox.dialog({
  218. message: "<span class='bigger-110'>不能查看admin用户!</span>",
  219. buttons:
  220. { "button":{ "label":"确定", "className":"btn-sm btn-success"}}
  221. });
  222. return;
  223. }
  224. top.jzts();
  225. var diag = new top.Dialog();
  226. diag.Modal = false; //有无遮罩窗口
  227. diag.Drag=true;
  228. diag.Title ="资料";
  229. diag.URL = '<%=basePath%>user/view.do?USERNAME='+USERNAME;
  230. diag.Width = 469;
  231. diag.Height = 380;
  232. diag.CancelEvent = function(){ //关闭事件
  233. diag.close();
  234. };
  235. diag.show();
  236. }
  237. //审批意见详情页
  238. function details(htmlId){
  239. var content = $("#"+htmlId).val().split(',fh,');
  240. top.handleDetails(content[1]);
  241. top.jzts();
  242. var diag = new top.Dialog();
  243. diag.Modal = false; //有无遮罩窗口
  244. diag.Drag=true;
  245. diag.Title ="审批意见";
  246. diag. ShowMaxButton = true; //最大化按钮
  247. diag.ShowMinButton = true; //最小化按钮
  248. diag.URL = '<%=basePath%>rutask/details.do';
  249. diag.Width = 760;
  250. diag.Height = 500;
  251. diag.CancelEvent = function(){ //关闭事件
  252. diag.close();
  253. };
  254. diag.show();
  255. }
  256. //选择办理人
  257. function getUser(){
  258. top.jzts();
  259. var diag = new top.Dialog();
  260. diag.Drag=true;
  261. diag.Title ="选择办理人";
  262. diag.URL = '<%=basePath%>user/listUsersForWindow.do';
  263. diag.Width = 700;
  264. diag.Height = 545;
  265. diag.Modal = true; //有无遮罩窗口
  266. diag. ShowMaxButton = true; //最大化按钮
  267. diag.ShowMinButton = true; //最小化按钮
  268. diag.CancelEvent = function(){ //关闭事件
  269. var USERNAME = diag.innerFrame.contentWindow.document.getElementById('USERNAME').value;
  270. if("" != USERNAME){
  271. $("#ASSIGNEE_").val(USERNAME);
  272. $("#ASSIGNEE_2").val(USERNAME);
  273. }
  274. diag.close();
  275. };
  276. diag.show();
  277. }
  278. //选择角色
  279. function getRole(){
  280. top.jzts();
  281. var diag = new top.Dialog();
  282. diag.Drag=true;
  283. diag.Title ="选择角色";
  284. diag.URL = '<%=basePath%>role/roleListWindow.do?ROLE_ID=1';
  285. diag.Width = 700;
  286. diag.Height = 545;
  287. diag.Modal = true; //有无遮罩窗口
  288. diag. ShowMaxButton = true; //最大化按钮
  289. diag.ShowMinButton = true; //最小化按钮
  290. diag.CancelEvent = function(){ //关闭事件
  291. var RNUMBER = diag.innerFrame.contentWindow.document.getElementById('RNUMBER').value;
  292. if("" != RNUMBER){
  293. $("#ASSIGNEE_").val(RNUMBER);
  294. $("#ASSIGNEE_2").val(RNUMBER);
  295. }
  296. diag.close();
  297. };
  298. diag.show();
  299. }
  300. //清空下一任务对象
  301. function clean(){
  302. $("#ASSIGNEE_").val("");
  303. $("#ASSIGNEE_2").val("");
  304. }
  305. </script>
  306. <c:if test="${null == pd.msg or pd.msg != 'admin' }">
  307. <script type="text/javascript">
  308. //百度富文本
  309. setTimeout("ueditor()",500);
  310. function ueditor(){
  311. UE.getEditor('editor');
  312. }
  313. //ueditor有标签文本
  314. function getContent() {
  315. var arr = [];
  316. arr.push(UE.getEditor('editor').getContent());
  317. return arr.join("");
  318. }
  319. </script>
  320. </c:if>
  321. </body>
  322. </html>