index.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
  4. <el-form-item label="操作时间">
  5. <el-date-picker
  6. v-model="dateRange"
  7. style="width: 240px"
  8. value-format="yyyy-MM-dd"
  9. type="daterange"
  10. range-separator="-"
  11. start-placeholder="开始日期"
  12. end-placeholder="结束日期"
  13. ></el-date-picker>
  14. </el-form-item>
  15. <el-form-item>
  16. <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  17. </el-form-item>
  18. </el-form>
  19. <div style="padding-top: 10px">
  20. <vxe-table
  21. ref="tables"
  22. :loading="loading"
  23. align="center"
  24. class="mytable-style"
  25. auto-resize
  26. border
  27. resizable
  28. export-config
  29. highlight-current-row
  30. show-overflow
  31. max-height="700"
  32. :data="list"
  33. >
  34. <vxe-table-column field="day" title="日期"/>
  35. <vxe-table-column field="syscount" title="系统类型次数"/>
  36. <vxe-table-column field="bizcount" title="业务类型次数"/>
  37. <vxe-table-column field="success" title="成功次数"/>
  38. <vxe-table-column field="fail" title="失败次数"/>
  39. <vxe-table-column field="ips" title="ip个数"/>
  40. </vxe-table>
  41. </div>
  42. </div>
  43. </template>
  44. <script>
  45. import {debounce} from "lodash";
  46. export default {
  47. name: "Logininfor",
  48. data() {
  49. return {
  50. showTable: true,
  51. // 遮罩层
  52. loading: false,
  53. // 选中数组
  54. ids: [],
  55. // 非单个禁用
  56. single: true,
  57. // 非多个禁用
  58. multiple: true,
  59. // 选择用户名
  60. selectName: "",
  61. // 显示搜索条件
  62. showSearch: true,
  63. // 表格数据
  64. list: [],
  65. // 日期范围
  66. dateRange: [],
  67. // 默认排序
  68. defaultSort: {prop: 'loginTime', order: 'descending'},
  69. // 查询参数
  70. queryParams: {},
  71. sortOrder: 'loginTime&asc',
  72. };
  73. },
  74. created() {
  75. },
  76. methods: {
  77. /** 查询登录日志列表 */
  78. getList: debounce(async function () {
  79. if (this.dateRange == null || this.dateRange.length == 0) {
  80. this.$message({
  81. type: 'warning',
  82. message: '请选择统计时间范围!'
  83. });
  84. return
  85. }
  86. let dateDiff = new Date(this.dateRange[1]).getTime() - new Date(this.dateRange[0]).getTime()
  87. let dayDiff = Math.ceil(dateDiff / (24 * 3600 * 1000))
  88. if (dayDiff > 31) {
  89. this.$message.warning("最多只能统计31天的数据哦!")
  90. return
  91. }
  92. let sysTime
  93. let lk
  94. await this.$axios.get('/sysPolicyController/getLicenseKey').then((res) => {
  95. sysTime = res.data.sysTime
  96. lk = res.data.lk
  97. }).catch((error) => {
  98. })
  99. this.loading = true;
  100. var searchParams = {
  101. startLoginTime: this.dateRange[0],
  102. endLoginTime: this.dateRange[1],
  103. sysTime: sysTime,
  104. lk: lk
  105. }
  106. await this.$axios.get('/sysOperlogController/sysOperlogTotal',
  107. {params: searchParams}).then((res) => {
  108. if (res.code == 0) {
  109. this.list = res.data
  110. if (res.data == '') {
  111. this.showTable = false
  112. } else {
  113. this.showTable = true
  114. }
  115. } else if (res.code == 1) {
  116. this.$message.error(res.data)
  117. }
  118. this.loading = false
  119. }).catch((error) => {
  120. this.loading = false;
  121. })
  122. }, 1000),
  123. /** 搜索按钮操作 */
  124. handleQuery() {
  125. this.getList();
  126. }
  127. }
  128. };
  129. </script>