operateLog.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <template>
  2. <div class="table-default">
  3. <div class="w-full flex justify-end">
  4. <el-radio-group v-model="query.scope" size="small" @change="search">
  5. <el-radio-button label="self">只看自己</el-radio-button>
  6. <el-radio-button label="all">全部</el-radio-button>
  7. </el-radio-group>
  8. </div>
  9. <el-table :data="tableData" class="mt-3" v-loading="loading">
  10. <el-table-column prop="creator" label="创建人" />
  11. <el-table-column prop="module" label="模块" />
  12. <el-table-column prop="action" label="操作" width="150" />
  13. <el-table-column prop="http_method" label="请求方法" width="90" />
  14. <el-table-column prop="http_code" label="请求状态" width="90">
  15. <template #default="scope">
  16. <el-tag type="success" v-if="scope.row.http_code >= 200 && scope.row.http_code < 300"> {{ scope.row.http_code }}</el-tag>
  17. <el-tag type="danger" v-else>{{ scope.row.http_code }}</el-tag>
  18. </template>
  19. </el-table-column>
  20. <el-table-column prop="time_taken" label="耗时" />
  21. <el-table-column prop="params" label="参数">
  22. <template #default="scope">
  23. <el-tooltip class="box-item" effect="dark" :content="scope.row.params" placement="top-start">
  24. <el-button size="small" type="primary">查看</el-button>
  25. </el-tooltip>
  26. </template>
  27. </el-table-column>
  28. </el-table>
  29. <Paginate />
  30. </div>
  31. </template>
  32. <script lang="ts" setup>
  33. import {computed, onMounted} from 'vue'
  34. import {useGetList} from '/admin/composables/curd/useGetList'
  35. const api = 'user/operate/log'
  36. const { data, query, search, reset, loading } = useGetList(api)
  37. query.value.scope = 'self'
  38. onMounted(() => search())
  39. const tableData = computed(() => data.value?.data)
  40. </script>
  41. <style scoped></style>