requestLogs.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryForm" inline size="small">
  4. <el-form-item label="AppKey">
  5. <el-input v-model="queryForm.appKey" placeholder="AppKey"/>
  6. </el-form-item>
  7. <el-form-item label="方法名">
  8. <el-input v-model="queryForm.method" placeholder="方法名"/>
  9. </el-form-item>
  10. <el-form-item label="版本号">
  11. <el-input v-model="queryForm.version" placeholder="版本号"/>
  12. </el-form-item>
  13. <el-form-item label="客户端IP">
  14. <el-input v-model="queryForm.clientIp" placeholder="客户端IP"/>
  15. </el-form-item>
  16. <el-form-item label="请求时间">
  17. <el-date-picker
  18. v-model="queryForm.serviceBeginTime"
  19. type="daterange"
  20. range-separator="至"
  21. start-placeholder="开始日期"
  22. end-placeholder="结束日期"
  23. value-format="yyyy-MM-dd"
  24. />
  25. </el-form-item>
  26. </el-form>
  27. <el-row class="action-bar-container" type="flex" justify="end">
  28. <el-button type="primary" size="small" @click.native="fetchData">查询</el-button>
  29. </el-row>
  30. <el-table
  31. v-loading="isLoading"
  32. :data="pageData.records"
  33. border
  34. fit
  35. highlight-current-row
  36. >
  37. <el-table-column label="AppKey" prop="appKey"/>
  38. <el-table-column label="方法名" prop="method"/>
  39. <el-table-column label="版本号" prop="version"/>
  40. <el-table-column label="客户端IP" prop="clientIp"/>
  41. <el-table-column label="请求时间" prop="serviceBeginTime" :formatter="dateTimeFormatter"/>
  42. <el-table-column label="响应时间" prop="serviceEndTime" :formatter="dateTimeFormatter"/>
  43. <!-- <el-table-column label="请求参数" prop="requestBody" min-width="300" />-->
  44. <!-- <el-table-column label="返回结果" prop="responseData" min-width="300" />-->
  45. <el-table-column label="操作" width="70" fixed="right">
  46. <template slot-scope="scope">
  47. <el-button type="text" @click.native="showDetail(scope.row)">详情</el-button>
  48. </template>
  49. </el-table-column>
  50. </el-table>
  51. <el-pagination
  52. class="pagination-container"
  53. background
  54. layout="prev, pager, next"
  55. :total="pageData.total"
  56. :page-size="pageData.pageSize"
  57. @current-change="paginationChange"
  58. />
  59. <el-dialog
  60. v-if="detailVisible"
  61. width="900px"
  62. :visible.sync="detailVisible"
  63. >
  64. <el-descriptions title="详情">
  65. <el-descriptions-item label="AppKey">{{ detailData.appKey }}</el-descriptions-item>
  66. <el-descriptions-item label="方法名">{{ detailData.method }}</el-descriptions-item>
  67. <el-descriptions-item label="版本号">{{ detailData.version }}</el-descriptions-item>
  68. <el-descriptions-item label="客户端IP">{{ detailData.clientIp }}</el-descriptions-item>
  69. <el-descriptions-item label="请求时间">{{ formatDate(new Date(detailData.serviceBeginTime), 'yyyy-MM-dd hh:mm:ss') }}</el-descriptions-item>
  70. <el-descriptions-item label="响应时间">{{ formatDate(new Date(detailData.serviceEndTime), 'yyyy-MM-dd hh:mm:ss') }}</el-descriptions-item>
  71. <el-descriptions-item label="请求参数" :span="3">
  72. {{ detailData.requestBody }}
  73. </el-descriptions-item>
  74. <el-descriptions-item label="返回结果" :span="3">
  75. {{ detailData.responseData }}
  76. </el-descriptions-item>
  77. </el-descriptions>
  78. </el-dialog>
  79. </div>
  80. </template>
  81. <script>
  82. import { findRequestLogsPage } from '@/api/appKey'
  83. import { dateTimeFormatter, formatDate } from '@/utils/formater'
  84. export default {
  85. data() {
  86. return {
  87. detailVisible: false,
  88. detailData: {},
  89. queryForm: {},
  90. isLoading: true,
  91. pageData: {},
  92. currentPage: 1,
  93. multipleSelection: []
  94. }
  95. },
  96. created() {
  97. this.fetchData()
  98. },
  99. methods: {
  100. formatDate,
  101. dateTimeFormatter,
  102. showDetail(data) {
  103. this.detailVisible = true
  104. this.detailData = data
  105. },
  106. paginationChange(val) {
  107. this.currentPage = val
  108. this.fetchData()
  109. },
  110. fetchData() {
  111. this.isLoading = true
  112. findRequestLogsPage({ ...this.queryForm, current: this.currentPage })
  113. .then((response) => {
  114. this.pageData = response
  115. })
  116. .finally(() => (this.isLoading = false))
  117. }
  118. }
  119. }
  120. </script>