loginRecord.html 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  7. <title>登录日志</title>
  8. <link rel="stylesheet" href="../../assets/libs/layui/css/layui.css"/>
  9. <link rel="stylesheet" href="../../assets/module/admin.css?v=315"/>
  10. <!--[if lt IE 9]>
  11. <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  12. <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  13. <![endif]-->
  14. </head>
  15. <body>
  16. <!-- 页面加载loading -->
  17. <div class="page-loading">
  18. <div class="ball-loader">
  19. <span></span><span></span><span></span><span></span>
  20. </div>
  21. </div>
  22. <!-- 正文开始 -->
  23. <div class="layui-fluid">
  24. <div class="layui-card">
  25. <div class="layui-card-body">
  26. <div class="layui-form toolbar">
  27. <div class="layui-form-item">
  28. <div class="layui-inline">
  29. <label class="layui-form-label w-auto">账号:</label>
  30. <div class="layui-input-inline mr0">
  31. <input name="account" class="layui-input" type="text" placeholder="请输入账号"/>
  32. </div>
  33. </div>
  34. <div class="layui-inline">
  35. <label class="layui-form-label w-auto">日期:</label>
  36. <div class="layui-input-inline mr0">
  37. <input name="dateRange" class="layui-input date-icon" type="text" placeholder="请选择日期范围"
  38. autocomplete="off"/>
  39. </div>
  40. </div>
  41. <div class="layui-inline">
  42. <button class="layui-btn icon-btn" lay-filter="formSubSearchLog" lay-submit>
  43. <i class="layui-icon">&#xe615;</i>搜索
  44. </button>
  45. <button id="btnExpLog" class="layui-btn icon-btn"><i class="layui-icon">&#xe67d;</i>导出</button>
  46. </div>
  47. </div>
  48. </div>
  49. <table class="layui-table" id="tableLog" lay-filter="tableLog"></table>
  50. </div>
  51. </div>
  52. </div>
  53. <!-- js部分 -->
  54. <script type="text/javascript" src="../../assets/libs/layui/layui.js"></script>
  55. <script type="text/javascript" src="../../assets/js/common.js?v=315"></script>
  56. <script>
  57. layui.use(['layer', 'form', 'table', 'util', 'laydate'], function () {
  58. var $ = layui.jquery;
  59. var layer = layui.layer;
  60. var form = layui.form;
  61. var table = layui.table;
  62. var util = layui.util;
  63. var laydate = layui.laydate;
  64. // 渲染表格
  65. var insTb = table.render({
  66. elem: '#tableLog',
  67. url: '../../json/loginRecord.json',
  68. page: true,
  69. cellMinWidth: 100,
  70. title: '登录日志',
  71. cols: [[
  72. {type: 'checkbox'},
  73. {field: 'username', sort: true, title: '账号'},
  74. {field: 'nickName', sort: true, title: '用户名'},
  75. {field: 'ipAddress', sort: true, title: 'IP'},
  76. {field: 'device', sort: true, title: '设备'},
  77. {field: 'osName', sort: true, title: '设备类型'},
  78. {field: 'browserType', sort: true, title: '浏览器'},
  79. {
  80. field: 'createTime', templet: function (d) {
  81. return util.toDateString(d.createTime);
  82. }, title: '登录时间'
  83. }
  84. ]]
  85. });
  86. // 时间范围
  87. laydate.render({
  88. elem: 'input[name="dateRange"]',
  89. type: 'date',
  90. range: true,
  91. trigger: 'click'
  92. });
  93. // 搜索
  94. form.on('submit(formSubSearchLog)', function (data) {
  95. if (data.field.dateRange) {
  96. var searchDate = data.field.dateRange.split(' - ');
  97. data.field.startDate = searchDate[0];
  98. data.field.endDate = searchDate[1];
  99. } else {
  100. data.field.startDate = '';
  101. data.field.endDate = '';
  102. }
  103. data.field.dateRange = undefined;
  104. insTb.reload({where: data.field}, 'data');
  105. });
  106. // 导出excel
  107. $('#btnExpLog').click(function () {
  108. var checkRows = table.checkStatus('tableLog');
  109. if (checkRows.data.length == 0) {
  110. layer.msg('请选择要导出的数据', {icon: 2});
  111. } else {
  112. table.exportFile(insTb.config.id, checkRows.data, 'xls');
  113. }
  114. });
  115. });
  116. </script>
  117. </body>
  118. </html>