index.blade.php 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. @extends('layouts.app')
  2. @section('title')查询-日志@endsection
  3. @section('content')
  4. <span id="nav2">
  5. @component('maintenance.menu')@endcomponent
  6. @component('maintenance.log.menu')@endcomponent
  7. </span>
  8. <div class="container-fluid">
  9. <a class="btn btn-outline-dark" href="{{url('maintenance/syncRedisLogs')}}">同步日志</a>
  10. <div class="card">
  11. <div id="form_div"></div>
  12. <div class="card-body">
  13. {{--TODO 错误信息提示 待抽离成为模板--}}
  14. @foreach (['danger', 'warning', 'success', 'info'] as $msg)
  15. @if(session()->has($msg))
  16. <div class="flash-message">
  17. <p class="alert alert-{{ $msg }}">
  18. {{ session()->get($msg) }}
  19. </p>
  20. </div>
  21. @endif
  22. @endforeach
  23. <table class="table table-striped table-sm" id="list">
  24. <tr>
  25. <th>ID</th>
  26. <th>用户</th>
  27. <th>类名</th>
  28. <th>方法名</th>
  29. <th>ip</th>
  30. <th>时间</th>
  31. </tr>
  32. <tr v-for="(log,i) in logs" class="hover" style="cursor: pointer;" @click="selectTr===i+1?selectTr=0:selectTr=i+1" :class="selectTr===i+1?'focusing' : ''">
  33. <td class="text-muted">@{{log.id}}<span class="badge badge-danger small pull-right mr-3" v-if="log.mark == 'Y'">异常</span></td>
  34. <td><span v-if="log.user">@{{log.user.name}}</span></td>
  35. <td><a :href="'{{url('maintenance/log')}}/'+log.id" target="_blank">@{{log.class}}</a></td>
  36. <td>@{{log.method}}</td>
  37. <td>@{{log.ip}}</td>
  38. <td class="text-muted">@{{log.created_at}}</td>
  39. </tr>
  40. </table>
  41. @if($logs)
  42. <!--带参分页查询-->
  43. {{$logs->withQueryString()->links()}}
  44. @endif
  45. </div>
  46. </div>
  47. </div>
  48. <style>
  49. .hover:hover {
  50. color: #1f6fb2;
  51. }
  52. </style>
  53. @endsection
  54. @section('lastScript')
  55. <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
  56. <script>
  57. new Vue({
  58. el: "#list",
  59. data: {
  60. logs: {!! json_encode($logs->toArray()['data'])??[] !!},
  61. selectTr:0,
  62. },
  63. mounted: function () {
  64. let data = [
  65. [
  66. {name: 'username', type: 'input', tip: '操作者', placeholder: '操作者'},
  67. {name: 'type',
  68. type: 'select_multiple_select',
  69. tip: ['输入关键词快速定位下拉列表,回车确定', '选择要显示的类型'],
  70. placeholder: ['类型', '定位或多选类型'],
  71. data: [{'name': 'log', 'value': 'log'},
  72. {'name': 'warning', 'value': 'warning'},
  73. {'name': 'error', 'value': 'error'},
  74. {'name': 'panic', 'value': 'panic'},
  75. {'name': 'fatal', 'value': 'fatal'}],},
  76. {name: 'description', type: 'input', tip: '详情:可在两侧添加百分号(%)进行模糊搜索', placeholder: '详情'},
  77. {name: 'class', type: 'input', tip: '类名:可在两侧添加百分号(%)进行模糊搜索', placeholder: '类名'},
  78. {name: 'method', type: 'input', tip: '方法名:可在两侧添加百分号(%)进行模糊搜索', placeholder: '方法名'},
  79. {name:'created_at_start',type:'dateTime',tip:'选择显示指定日期的起始时间,只选一个或者不选,则查询当天'},
  80. {name:'created_at_end',type:'dateTime',tip:'选择显示指定日期的截止,只选一个或者不选,则查询当天'},
  81. {name:'is_exception',type:'checkbox',tip:'仅显示异常', data: [{name: 'true', value: '仅显示异常'}]}
  82. ]
  83. ];
  84. this.from = new query({
  85. el: '#form_div',
  86. condition: data,
  87. });
  88. this.from.init();
  89. },
  90. });
  91. </script>
  92. @endsection