log.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <template>
  2. <cl-crud ref="crud" @load="onLoad">
  3. <el-row type="flex">
  4. <cl-refresh-btn></cl-refresh-btn>
  5. <el-button
  6. v-permission="$service.system.log.permission.clear"
  7. size="mini"
  8. type="danger"
  9. @click="clear"
  10. >
  11. 清空
  12. </el-button>
  13. <cl-filter label="日志保存天数">
  14. <el-input-number
  15. controls-position="right"
  16. size="mini"
  17. :max="10000"
  18. :min="1"
  19. v-model="day"
  20. @blur="saveDay"
  21. ></el-input-number>
  22. </cl-filter>
  23. <cl-flex1 />
  24. <cl-search-key placeholder="请输入请求地址, 参数,ip地址"></cl-search-key>
  25. </el-row>
  26. <el-row>
  27. <cl-table v-bind="table"></cl-table>
  28. </el-row>
  29. <el-row type="flex">
  30. <cl-pagination></cl-pagination>
  31. </el-row>
  32. </cl-crud>
  33. </template>
  34. <script>
  35. import { mapGetters } from "vuex";
  36. export default {
  37. data() {
  38. return {
  39. day: 1,
  40. table: {
  41. props: {
  42. "default-sort": {
  43. prop: "createTime",
  44. order: "descending"
  45. }
  46. },
  47. columns: [
  48. {
  49. type: "index",
  50. label: "#",
  51. align: "center",
  52. width: 60
  53. },
  54. {
  55. prop: "userId",
  56. label: "用户ID",
  57. align: "center"
  58. },
  59. {
  60. prop: "name",
  61. label: "昵称",
  62. align: "center",
  63. minWidth: "150"
  64. },
  65. {
  66. prop: "action",
  67. label: "请求地址",
  68. align: "center",
  69. minWidth: "200",
  70. "show-overflow-tooltip": true
  71. },
  72. {
  73. prop: "params",
  74. label: "参数",
  75. align: "center",
  76. minWidth: "200",
  77. "show-overflow-tooltip": true
  78. },
  79. {
  80. prop: "ip",
  81. label: "ip",
  82. minWidth: "180",
  83. align: "center"
  84. },
  85. {
  86. prop: "ipAddr",
  87. label: "ip地址",
  88. minWidth: "150",
  89. align: "center"
  90. },
  91. {
  92. prop: "createTime",
  93. label: "创建时间",
  94. minWidth: "150",
  95. align: "center",
  96. sortable: true
  97. }
  98. ]
  99. }
  100. };
  101. },
  102. computed: {
  103. ...mapGetters(["permission"])
  104. },
  105. created() {
  106. this.$service.system.log.getKeep().then((res) => {
  107. this.day = res;
  108. });
  109. },
  110. methods: {
  111. onLoad({ ctx, app }) {
  112. ctx.service(this.$service.system.log).done();
  113. app.refresh();
  114. },
  115. saveDay() {
  116. this.$service.system.log.setKeep(this.day).then(() => {
  117. this.$message.success("保存成功");
  118. });
  119. },
  120. clear() {
  121. this.$confirm("是否要清空日志", "提示", {
  122. type: "warning"
  123. })
  124. .then(() => {
  125. this.$service.system.log
  126. .clear()
  127. .then(() => {
  128. this.$message.success("清空成功");
  129. this.$refs["crud"].refresh();
  130. })
  131. .catch((err) => {
  132. this.$message.error(err);
  133. });
  134. })
  135. .catch(() => {});
  136. }
  137. }
  138. };
  139. </script>