viewProcessInstanceHistory.jsp 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@include file="/context/mytags.jsp"%>
  3. <%-- <t:base type="jquery,easyui,tools"></t:base> --%>
  4. <style type="text/css">
  5. .tooltips {
  6. display: none;
  7. font-size: 12px;
  8. border: 1px solid #8BAABF;
  9. background: #FBFCFC;
  10. padding: 5px;
  11. max-width: 400px;
  12. min-width: 180px;
  13. color: #000;
  14. background-image: url($_basePath/bpm/main/images/page_16.png);
  15. background-repeat: no-repeat;
  16. background-position: top right;
  17. background-origin: content-box
  18. }
  19. </style>
  20. <div class="easyui-layout" fit="true">
  21. <script>
  22. $("span[spans='spans']").each(function() {
  23. $(this).hide();
  24. });
  25. </script>
  26. <div region="center" style="padding: 1px;">
  27. <script type="text/javascript">
  28. var xvalue = 0;
  29. var yvalue = 0;
  30. var getCoordInDocumentExample = function() {
  31. var coords = document.getElementById("coords");
  32. coords.onmousemove = function(e) {
  33. var pointer = getCoordInDocument(e);
  34. xvalue = pointer.x + 20;
  35. yvalue = pointer.y + 40;
  36. changeValues();
  37. };
  38. };
  39. var getCoordInDocument = function(e) {
  40. e = e || window.event;
  41. var x = e.pageX || (e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft));
  42. var y = e.pageY || (e.clientY + (document.documentElement.scrollTop || document.body.scrollTop));
  43. return {
  44. 'x' : x,
  45. 'y' : y
  46. };
  47. };
  48. getCoordInDocumentExample();
  49. function changeValues() {
  50. $("input[selprexi='imageSpanHidden']").each(function(i) {
  51. var startwidth = parseInt($(this).attr("leftPrefix"));
  52. var endwidth = parseInt($(this).attr("leftprefix"));
  53. var topWidthPrefix = parseInt($(this).attr("topWidthPrefix"));
  54. var topPrefix = parseInt($(this).attr("topPrefix"));
  55. if ((endwidth - 30) <= parseInt(xvalue) && (parseInt(xvalue)) <= (endwidth + 50)) {
  56. if ($($(this).val()) != null) {
  57. if (((topPrefix) <= yvalue) && (yvalue <= (topWidthPrefix + topPrefix))) {
  58. $($(this).val()).css("left", xvalue + "px");
  59. $($(this).val()).css("top", yvalue + "px");
  60. $($(this).val()).show();
  61. } else {
  62. $($(this).val()).hide();
  63. }
  64. } else {
  65. $($(this).val()).hide();
  66. }
  67. }
  68. });
  69. }
  70. </script>
  71. <c:forEach items="${historicTasks}" varStatus="stuts" var="memo">
  72. <span id="imgs${stuts.count+1}" class="tooltips" spans="spans" style="border: 1px solid green; position: absolute; height: 100px;">
  73. <t:mutiLang langKey="process.task"></t:mutiLang>
  74. ${memo.name}
  75. <br />
  76. <t:mutiLang langKey="process.execute"></t:mutiLang>${memo.name}
  77. <br />
  78. <t:mutiLang langKey="common.time"></t:mutiLang>
  79. <fmt:formatDate value="${memo.endTime}" pattern="yyyy-MM-dd hh:mm:ss" />
  80. <br />
  81. <t:mutiLang langKey="common.task.operator"></t:mutiLang>${memo.assignee}
  82. <br />
  83. <t:mutiLang langKey="order.remark"></t:mutiLang>${memo.deleteReason}
  84. </span>
  85. </c:forEach>
  86. <c:forEach items="${listIs }" varStatus="stuts" var="item">
  87. <input type="hidden" name="${item.x }" id="${item.x }" vsle="" selprexi="imageSpanHidden" leftPrefix="${item.x}" leftWidthPrefix="${item.width }" topWidthPrefix="${item.height}" topPrefix="${item.y }" value="#imgs${stuts.count+1}" />
  88. <script type="text/javascript">
  89. $("#imgs${stuts.count+1}").css("left", "${item.x}px").css("top", "${item.y}px");
  90. </script>
  91. </c:forEach>
  92. <div id="coords" style="background: #F2F1D7; border: 0px solid #0066cc;">
  93. <img id="taskProcessId" style="border:2px;cursor:hand;" src="activitiController.do?traceImage&processInstanceId=${processInstanceId}&isIframe">
  94. </div>
  95. <br />
  96. <div id="divLocation"></div>
  97. </div>
  98. <div data-options="region:'south',split:true" style="height: 250px;">
  99. <table id="taskHistoryList">
  100. <thead>
  101. <tr>
  102. <th field="name">
  103. <t:mutiLang langKey="common.name"></t:mutiLang>
  104. </th>
  105. <th field="processInstanceId" width="50">
  106. <t:mutiLang langKey="process.instance.id"></t:mutiLang>
  107. </th>
  108. <th field="startTime" width="50">
  109. <t:mutiLang langKey="common.begintime"></t:mutiLang>
  110. </th>
  111. <th field="endTime" width="50">
  112. <t:mutiLang langKey="common.endtime"></t:mutiLang>
  113. </th>
  114. <th field="assignee" width="25">
  115. <t:mutiLang langKey="person.in.charge"></t:mutiLang>
  116. </th>
  117. <th field="deleteReason" width="150">
  118. <t:mutiLang langKey="process.handle.result"></t:mutiLang>
  119. </th>
  120. </tr>
  121. </thead>
  122. </table>
  123. <script type="text/javascript">
  124. // 编辑初始化数据
  125. function getData(data) {
  126. var rows = [];
  127. var total = data.total;
  128. for (var i = 0; i < data.rows.length; i++) {
  129. rows.push({
  130. name : data.rows[i].name,
  131. processInstanceId : data.rows[i].processInstanceId,
  132. startTime : data.rows[i].startTime,
  133. endTime : data.rows[i].endTime,
  134. assignee : data.rows[i].assignee,
  135. deleteReason : data.rows[i].deleteReason
  136. });
  137. }
  138. var newData = {
  139. "total" : total,
  140. "rows" : rows
  141. };
  142. return newData;
  143. }
  144. // 设置datagrid属性
  145. $('#taskHistoryList').datagrid({
  146. title : '<t:mutiLang langKey='track.process.history'></t:mutiLang>',
  147. idField : 'id',
  148. fit : true,
  149. loadMsg : '<t:mutiLang langKey='common.data.loading'></t:mutiLang>',
  150. pageSize : 10,
  151. pagination : true,
  152. sortOrder : 'asc',
  153. rownumbers : true,
  154. singleSelect : true,
  155. fitColumns : true,
  156. showFooter : true,
  157. url : 'activitiController.do?taskHistoryList&processInstanceId=${processInstanceId}',
  158. loadFilter : function(data) {
  159. return getData(data);
  160. }
  161. });
  162. //设置分页控件
  163. $('#taskHistoryList').datagrid('getPager').pagination({
  164. pageSize : 10,
  165. pageList : [ 10, 20, 30 ],
  166. beforePageText : '',
  167. afterPageText : '/{pages}',
  168. displayMsg : '{from}-{to}<t:mutiLang langKey='common.total'></t:mutiLang>{total}<t:mutiLang langKey='common.item'></t:mutiLang>',
  169. showPageList : true,
  170. showRefresh : true,
  171. onBeforeRefresh : function(pageNumber, pageSize) {
  172. $(this).pagination('loading');
  173. $(this).pagination('loaded');
  174. }
  175. });
  176. </script>
  177. </div>
  178. </div>