67 lines
2.3 KiB
Vue
67 lines
2.3 KiB
Vue
![]() |
<template>
|
||
|
<Dialog
|
||
|
title="API 访问日志详细"
|
||
|
v-model="modelVisible"
|
||
|
:scroll="true"
|
||
|
:max-height="500"
|
||
|
width="800"
|
||
|
>
|
||
|
<el-descriptions border :column="1">
|
||
|
<el-descriptions-item label="日志主键" min-width="120">
|
||
|
{{ detailData.id }}
|
||
|
</el-descriptions-item>
|
||
|
<el-descriptions-item label="链路追踪">
|
||
|
{{ detailData.traceId }}
|
||
|
</el-descriptions-item>
|
||
|
<el-descriptions-item label="应用名">
|
||
|
{{ detailData.applicationName }}
|
||
|
</el-descriptions-item>
|
||
|
<el-descriptions-item label="用户信息">
|
||
|
{{ detailData.userId }} |
|
||
|
<dict-tag :type="DICT_TYPE.USER_TYPE" :value="detailData.userType" />
|
||
|
| {{ detailData.userIp }} | {{ detailData.userAgent }}
|
||
|
</el-descriptions-item>
|
||
|
<el-descriptions-item label="请求信息">
|
||
|
{{ detailData.requestMethod }} | {{ detailData.requestUrl }}
|
||
|
</el-descriptions-item>
|
||
|
<el-descriptions-item label="请求参数">
|
||
|
{{ detailData.requestParams }}
|
||
|
</el-descriptions-item>
|
||
|
<el-descriptions-item label="开始时间">
|
||
|
{{ formatDate(detailData.beginTime, 'YYYY-MM-DD HH:mm:ss') }} ~
|
||
|
{{ formatDate(detailData.endTime, 'YYYY-MM-DD HH:mm:ss') }} | {{ detailData.duration }} ms
|
||
|
</el-descriptions-item>
|
||
|
<el-descriptions-item label="操作结果">
|
||
|
<div v-if="detailData.resultCode === 0">正常</div>
|
||
|
<div v-else-if="detailData.resultCode > 0"
|
||
|
>失败 | {{ detailData.resultCode }} | {{ detailData.resultMsg }}</div
|
||
|
>
|
||
|
</el-descriptions-item>
|
||
|
</el-descriptions>
|
||
|
</Dialog>
|
||
|
</template>
|
||
|
|
||
|
<script setup lang="ts">
|
||
|
import { DICT_TYPE } from '@/utils/dict'
|
||
|
import { formatDate } from '@/utils/formatTime'
|
||
|
import * as ApiAccessLog from '@/api/infra/apiAccessLog'
|
||
|
|
||
|
const modelVisible = ref(false) // 弹窗的是否展示
|
||
|
const detailLoading = ref(false) // 表单地加载中
|
||
|
const detailData = ref() // 详情数据
|
||
|
|
||
|
/** 打开弹窗 */
|
||
|
const openModal = async (data: ApiAccessLog.ApiAccessLogVO) => {
|
||
|
modelVisible.value = true
|
||
|
// 设置数据
|
||
|
detailLoading.value = true
|
||
|
try {
|
||
|
detailData.value = data
|
||
|
} finally {
|
||
|
detailLoading.value = false
|
||
|
}
|
||
|
}
|
||
|
|
||
|
defineExpose({ openModal }) // 提供 openModal 方法,用于打开弹窗
|
||
|
</script>
|