index.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <template>
  2. <a-tabs v-modal="searchInfo.logType" @change="tabChange" size="small">
  3. <a-tab-pane tab="登录日志" key="1" />
  4. <a-tab-pane tab="操作日志" key="2" />
  5. <a-tab-pane tab="浏览日志" key="3" />
  6. <a-tab-pane tab="登录统计" key="4" />
  7. </a-tabs>
  8. <BasicTable :key="searchInfo.logType" @register="registerTable" :api="logApi" :searchInfo="searchInfo"
  9. :scroll="{ y: 660, x: true }">
  10. <template #expandedRowRender="{ record }">
  11. <div v-if="searchInfo.logType == 2">
  12. <div style="margin-bottom: 5px">
  13. <a-badge status="success" style="vertical-align: middle" />
  14. <span style="vertical-align: middle">请求方法:{{ record.method }}</span>
  15. </div>
  16. <div>
  17. <a-badge status="processing" style="vertical-align: middle" />
  18. <span style="vertical-align: middle">请求参数:{{ record.requestParam }}</span>
  19. </div>
  20. </div>
  21. </template>
  22. </BasicTable>
  23. </template>
  24. <script lang="ts" name="monitor-log" setup>
  25. import { ref } from 'vue';
  26. import { BasicTable, useTable, TableAction } from '/@/components/Table';
  27. import { getLogList, getUserLoginStats } from './log.api';
  28. import { columns, searchFormSchema, searchFormSchema1, operationLogColumn, browserColumn, loginTjColumn } from './log.data';
  29. import { useListPage } from '/@/hooks/system/useListPage';
  30. const checkedKeys = ref<Array<string | number>>([]);
  31. const logColumns = ref<any>(columns);
  32. const logApi = ref<any>(getLogList)
  33. const logSchemas = ref<any[]>(searchFormSchema)
  34. const paramTime = ref<any[]>(['createTime_begin', 'createTime_end'])
  35. const searchInfo = { logType: '1' };
  36. // 列表页面公共参数、方法
  37. const { prefixCls, tableContext } = useListPage({
  38. designScope: 'user-list',
  39. tableProps: {
  40. title: '',
  41. columns: logColumns,
  42. showActionColumn: false,
  43. rowSelection: {
  44. columnWidth: 20,
  45. },
  46. formConfig: {
  47. schemas: logSchemas as any,
  48. fieldMapToTime: paramTime as any,
  49. },
  50. },
  51. });
  52. const [registerTable, { reload }] = tableContext;
  53. // 日志类型
  54. function tabChange(key) {
  55. searchInfo.logType = key;
  56. //update-begin---author:wangshuai ---date:20220506 for:[VUEN-943]vue3日志管理列表翻译不对------------
  57. switch (key) {
  58. case '1':
  59. logColumns.value = columns;
  60. logSchemas.value = searchFormSchema
  61. paramTime.value = [['fieldTime', ['createTime_begin', 'createTime_end'], 'YYYY-MM-DD']]
  62. logApi.value = getLogList
  63. break;
  64. case '2':
  65. logColumns.value = operationLogColumn;
  66. logSchemas.value = searchFormSchema
  67. paramTime.value = [['fieldTime', ['createTime_begin', 'createTime_end'], 'YYYY-MM-DD']]
  68. logApi.value = getLogList
  69. break;
  70. case '3':
  71. logColumns.value = browserColumn;
  72. logSchemas.value = searchFormSchema
  73. paramTime.value = [['fieldTime', ['createTime_begin', 'createTime_end'], 'YYYY-MM-DD']]
  74. logApi.value = getLogList
  75. break;
  76. case '4':
  77. logColumns.value = loginTjColumn;
  78. logSchemas.value = searchFormSchema1
  79. paramTime.value = [['fieldTime', ['dayStart', 'dayEnd'], 'YYYY-MM-DD']]
  80. logApi.value = getUserLoginStats
  81. break;
  82. }
  83. //update-end---author:wangshuai ---date:20220506 for:[VUEN-943]vue3日志管理列表翻译不对--------------
  84. reload();
  85. }
  86. /**
  87. * 选择事件
  88. */
  89. function onSelectChange(selectedRowKeys: (string | number)[]) {
  90. checkedKeys.value = selectedRowKeys;
  91. }
  92. </script>
  93. <style lang="less" scoped>
  94. ::v-deep .table-form {
  95. padding: 0 !important;
  96. margin: 0 !important;
  97. }
  98. ::v-deep .zxm-table-title {
  99. display: none !important;
  100. }
  101. ::v-deep .zxm-tabs-nav-wrap {
  102. padding: 0px 15px !important;
  103. }
  104. </style>