viewProcessInstanceHistory2.jsp 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  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" cssTheme="acele"></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=" 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: 220px;">
  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="startTime" >
  106. <t:mutiLang langKey="common.begintime"></t:mutiLang>
  107. </th>
  108. <th field="endTime" >
  109. <t:mutiLang langKey="common.endtime"></t:mutiLang>
  110. </th>
  111. <th field="assignee" >
  112. <t:mutiLang langKey="person.in.charge"></t:mutiLang>
  113. </th>
  114. <th field="deleteReason">
  115. <t:mutiLang langKey="process.handle.result"></t:mutiLang>
  116. </th>
  117. </tr>
  118. </thead>
  119. </table>
  120. <script type="text/javascript">
  121. // 编辑初始化数据
  122. function getData(data) {
  123. var rows = [];
  124. var total = data.total;
  125. for (var i = 0; i < data.rows.length; i++) {
  126. rows.push({
  127. name : data.rows[i].name,
  128. startTime : data.rows[i].startTime,
  129. endTime : data.rows[i].endTime,
  130. assignee : data.rows[i].assignee,
  131. deleteReason : data.rows[i].deleteReason
  132. });
  133. }
  134. var newData = {
  135. "total" : total,
  136. "rows" : rows
  137. };
  138. return newData;
  139. }
  140. // 设置datagrid属性
  141. $('#taskHistoryList').datagrid({
  142. title : '<t:mutiLang langKey='track.process.history'></t:mutiLang>',
  143. idField : 'id',
  144. fit : true,
  145. loadMsg : '<t:mutiLang langKey='common.data.loading'></t:mutiLang>',
  146. pageSize : 10,
  147. pagination : true,
  148. sortOrder : 'asc',
  149. rownumbers : true,
  150. singleSelect : true,
  151. fitColumns : true,
  152. showFooter : true,
  153. url : 'activitiController.do?taskHistoryList&processInstanceId=${processInstanceId}',
  154. loadFilter : function(data) {
  155. return getData(data);
  156. }
  157. });
  158. //设置分页控件
  159. $('#taskHistoryList').datagrid('getPager').pagination({
  160. pageSize : 10,
  161. pageList : [ 10, 20, 30 ],
  162. beforePageText : '',
  163. afterPageText : '/{pages}',
  164. displayMsg : '{from}-{to}<t:mutiLang langKey='common.total'></t:mutiLang>{total}<t:mutiLang langKey='common.item'></t:mutiLang>',
  165. showPageList : true,
  166. showRefresh : true,
  167. onBeforeRefresh : function(pageNumber, pageSize) {
  168. $(this).pagination('loading');
  169. $(this).pagination('loaded');
  170. }
  171. });
  172. </script>
  173. </div>
  174. </div>