usual.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <template>
  2. <basic-container>
  3. <avue-crud :option="option"
  4. :table-loading="loading"
  5. :data="data"
  6. ref="crud"
  7. v-model="form"
  8. :permission="permissionList"
  9. :page.sync="page"
  10. :before-open="beforeOpen"
  11. @search-change="searchChange"
  12. @search-reset="searchReset"
  13. @current-change="currentChange"
  14. @size-change="sizeChange"
  15. @refresh-change="refreshChange"
  16. @on-load="onLoad">
  17. </avue-crud>
  18. </basic-container>
  19. </template>
  20. <script>
  21. import {getUsualList, getUsualLogs} from "@/api/logs";
  22. import {mapGetters} from "vuex";
  23. export default {
  24. data() {
  25. return {
  26. form: {},
  27. selectionList: [],
  28. query: {},
  29. loading: true,
  30. page: {
  31. pageSize: 10,
  32. currentPage: 1,
  33. total: 0
  34. },
  35. option: {
  36. height: 'auto',
  37. calcHeight: 30,
  38. tip: false,
  39. searchShow: true,
  40. searchMenuSpan: 6,
  41. border: true,
  42. index: true,
  43. viewBtn: true,
  44. editBtn: false,
  45. addBtn: false,
  46. delBtn: false,
  47. menuWidth: 120,
  48. dialogType: 'drawer',
  49. column: [
  50. {
  51. label: "服务id",
  52. prop: "serviceId",
  53. search: true
  54. },
  55. {
  56. label: "服务host",
  57. prop: "serverHost",
  58. search: true
  59. },
  60. {
  61. label: "服务ip",
  62. prop: "serverIp"
  63. },
  64. {
  65. label: "软件环境",
  66. prop: "env",
  67. width:'80'
  68. },
  69. {
  70. label: "日志级别",
  71. prop: "logLevel"
  72. },
  73. {
  74. label: "日志id",
  75. prop: "logId",
  76. search: true
  77. },
  78. {
  79. label: "请求接口",
  80. prop: "requestUri",
  81. },
  82. {
  83. label: "日志时间",
  84. prop: "createTime",
  85. width:'180',
  86. },
  87. {
  88. label: "开始时间",
  89. prop: "startTime",
  90. search: true,
  91. type: 'datetime',
  92. width: 120,
  93. format:'yyyy-MM-dd HH:mm:ss',
  94. valueFormat:'yyyy-MM-dd HH:mm:ss',
  95. hide: true,
  96. },
  97. {
  98. label: "结束时间",
  99. prop: "endTime",
  100. search: true,
  101. width: 120,
  102. type: 'datetime',
  103. format:'yyyy-MM-dd HH:mm:ss',
  104. valueFormat:'yyyy-MM-dd HH:mm:ss',
  105. hide: true,
  106. },
  107. {
  108. label: "用户代理",
  109. prop: "userAgent",
  110. span: 24,
  111. hide: true
  112. },
  113. {
  114. label: "日志数据",
  115. prop: "logData",
  116. type: "textarea",
  117. span: 24,
  118. minRows: 2,
  119. hide: true
  120. },
  121. {
  122. label: "请求数据",
  123. prop: "params",
  124. type: "textarea",
  125. span: 24,
  126. minRows: 2,
  127. hide: true
  128. }
  129. ]
  130. },
  131. data: []
  132. };
  133. },
  134. computed: {
  135. ...mapGetters(["permission"]),
  136. permissionList() {
  137. return {
  138. viewBtn: this.vaildData(this.permission.log_usual_view, false)
  139. };
  140. }
  141. },
  142. methods: {
  143. searchReset() {
  144. this.query = {};
  145. this.onLoad(this.page);
  146. },
  147. searchChange(params, done) {
  148. this.query = params;
  149. this.page.currentPage = 1;
  150. this.onLoad(this.page, params);
  151. done();
  152. },
  153. beforeOpen(done, type) {
  154. if (["edit", "view"].includes(type)) {
  155. getUsualLogs(this.form.id).then(res => {
  156. this.form = res.data.data;
  157. });
  158. }
  159. done();
  160. },
  161. currentChange(currentPage){
  162. this.page.currentPage = currentPage;
  163. },
  164. sizeChange(pageSize){
  165. this.page.pageSize = pageSize;
  166. },
  167. refreshChange() {
  168. this.onLoad(this.page, this.query);
  169. },
  170. onLoad(page, params = {}) {
  171. this.loading = true;
  172. getUsualList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
  173. const data = res.data.data;
  174. this.page.total = data.total;
  175. this.data = data.records;
  176. this.loading = false;
  177. });
  178. }
  179. }
  180. };
  181. </script>
  182. <style>
  183. </style>