logList.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. <%@ page contentType="text/html;charset=UTF-8" %>
  2. <script type="text/javascript">
  3. var $table;
  4. $(document).ready(function() {
  5. $table = $('#table').bootstrapTable({
  6. method: 'post',
  7. //类型json
  8. dataType: "json",
  9. contentType: "application/x-www-form-urlencoded",
  10. //是否显示行间隔色
  11. striped: true,
  12. //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
  13. cache: false,
  14. //是否显示分页(*)
  15. pagination: true,
  16. //显示检索按钮
  17. showSearch: true,
  18. //显示刷新按钮
  19. showRefresh: true,
  20. //显示切换手机试图按钮
  21. showToggle: true,
  22. //显示 内容列下拉框
  23. showColumns: true,
  24. //排序方式
  25. sortOrder: "asc",
  26. //初始化加载第一页,默认第一页
  27. //我设置了这一项,但是貌似没起作用,而且我这默认是0,- -
  28. pageNumber:1,
  29. //每页的记录行数(*)
  30. pageSize: 10,
  31. //可供选择的每页的行数(*)
  32. pageList: [10, 25, 50, 100],
  33. //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
  34. url: "${ctx}/sys/log/data",
  35. //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
  36. //queryParamsType:'',
  37. ////查询参数,每次调用是会带上这个参数,可自定义
  38. onShowSearch: function () {
  39. $("#search-collapse").slideToggle();
  40. },
  41. queryParams : function(params) {
  42. var searchParam = $("#searchForm").serializeJSON();
  43. searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
  44. searchParam.pageSize = params.limit === undefined? -1 : params.limit;
  45. searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+ params.order;
  46. return searchParam;
  47. },
  48. //分页方式:client客户端分页,server服务端分页(*)
  49. sidePagination: "server",
  50. contextMenuTrigger:"right",//pc端 按右键弹出菜单
  51. contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
  52. contextMenu: '#context-menu',
  53. onContextMenuItem: function(row, $el){
  54. if($el.data("item") == "delete"){
  55. jp.confirm('确认要删除该日志吗?',function(){
  56. jp.loading();
  57. $.get("${ctx}/sys/log/deleteAll?ids="+row.id, function(data){
  58. if(data.success){
  59. $table.bootstrapTable('refresh');
  60. jp.success(data.msg);
  61. }else{
  62. jp.error(data.msg);
  63. }
  64. jp.close($topIndex);//关闭dialog
  65. })
  66. });
  67. }
  68. },
  69. onClickRow: function(row, $el){
  70. },
  71. columns: [{
  72. checkbox: true
  73. }, {
  74. field: 'title',
  75. title: '操作菜单',
  76. sortable: true
  77. }, {
  78. field: 'createBy.name',
  79. title: '操作用户',
  80. sortable: true,
  81. }, {
  82. field: 'createBy.company.name',
  83. title: '所在公司',
  84. sortable: true
  85. }, {
  86. field: 'createBy.office.name',
  87. title: '所在部门',
  88. sortable: true
  89. }, {
  90. field: 'requestUri',
  91. title: 'URI',
  92. sortable: true
  93. }, {
  94. field: 'method',
  95. title: '提交方式',
  96. sortable: true
  97. }, {
  98. field: 'remoteAddr',
  99. title: '操作者IP',
  100. sortable: true
  101. }, {
  102. field: 'createDate',
  103. title: '操作时间',
  104. sortable: true
  105. }, {
  106. field: 'exception',
  107. title: '异常信息',
  108. sortable: true,
  109. formatter:function(value, row, index){
  110. if(value){
  111. return '<a class="detail-icon" href="javascript:detailException('+index+')">[查看异常]</a><a class="detail-icon" href="javascript:closeDetail('+index+')"></a>';
  112. }else{
  113. return '--';
  114. }
  115. }
  116. }]
  117. });
  118. if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,默认关闭tab
  119. $('#table').bootstrapTable("toggleView");
  120. }
  121. $('#table').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
  122. 'check-all.bs.table uncheck-all.bs.table', function () {
  123. $('#remove').prop('disabled', ! $('#table').bootstrapTable('getSelections').length);
  124. });
  125. $("#search").click("click", function() {// 绑定查询按扭
  126. $('#table').bootstrapTable('refresh');
  127. });
  128. $("#reset").click("click", function() {// 绑定查询按扭
  129. $("#searchForm input").val("");
  130. $("#searchForm select").val("");
  131. $('#table').bootstrapTable('refresh');
  132. });
  133. $('#beginDate').datetimepicker({
  134. format: "YYYY-MM-DD HH:mm:ss"
  135. });
  136. $('#endDate').datetimepicker({
  137. format: "YYYY-MM-DD HH:mm:ss"
  138. });
  139. });
  140. function getIdSelections() {
  141. return $.map($("#table").bootstrapTable('getSelections'), function (row) {
  142. return row.id
  143. });
  144. }
  145. function deleteAll(ids){
  146. if(!ids){
  147. ids = getIdSelections();
  148. }
  149. jp.confirm('确认要删除该日志吗?', function(){
  150. jp.loading();
  151. $.get("${ctx}/sys/log/deleteAll?ids=" + getIdSelections(), function(data){
  152. if(data.success){
  153. jp.success(data.msg);
  154. $table.bootstrapTable('refresh');
  155. }else{
  156. jp.error(data.msg);
  157. }
  158. })
  159. })
  160. }
  161. function empty(){
  162. jp.confirm("确认要清空日志吗?",function(){
  163. jp.loading();
  164. $.get("${ctx}/sys/log/empty", function(data){
  165. if(data.success){
  166. jp.success(data.msg);
  167. $table.bootstrapTable('refresh');
  168. }else{
  169. jp.error(data.msg);
  170. }
  171. })
  172. })
  173. }
  174. function detailException(index) {
  175. $('#table').bootstrapTable('expandRow', index);
  176. }
  177. function closeDetail(index) {
  178. $('#table').bootstrapTable('collapseRow', index);
  179. }
  180. function detailFormatter(index, row) {
  181. return '<font color="red">'+jp.escapeHTML(row.exception)+'</font>';
  182. }
  183. </script>