<template>
|
<!-- <el-collapse v-model="activeName" accordion>
|
<el-collapse-item
|
v-for="item in threeResourceLogs"
|
:key="item.id"
|
name="1"
|
style="overflow: auto; max-height: 600px"
|
>
|
<ProForm :model="item" is-read>
|
<ProFormItemV2 label="method:">
|
{{ EnumResourceMethodText[item.method] }}
|
</ProFormItemV2>
|
<ProFormItemV2 label="domain:">{{ item.domain }} </ProFormItemV2>
|
<ProFormItemV2 label="path:"> {{ item.path }}</ProFormItemV2>
|
<ProFormItemV2 label="requestHeaders:" label-position="top">
|
<json-viewer
|
:copyable="true"
|
:boxed="true"
|
:value="JSON.parse(item.requestHeaders)"
|
></json-viewer>
|
</ProFormItemV2>
|
<ProFormItemV2 label="request:" label-position="top">
|
<json-viewer
|
:copyable="true"
|
:boxed="true"
|
:value="JSON.parse(item.request)"
|
></json-viewer>
|
</ProFormItemV2>
|
<ProFormItemV2 label="responseHeaders:" label-position="top">
|
<json-viewer
|
:copyable="true"
|
:boxed="true"
|
:value="JSON.parse(item.responseHeaders)"
|
></json-viewer>
|
</ProFormItemV2>
|
<ProFormItemV2 label="response:" label-position="top">
|
<json-viewer
|
:copyable="true"
|
:boxed="true"
|
:value="JSON.parse(item.response)"
|
></json-viewer>
|
</ProFormItemV2>
|
<ProFormItemV2 label="isSuccess:"> {{ item.isSuccess ? '是' : '否' }}</ProFormItemV2>
|
<ProFormItemV2 label="elapsedMilliseconds:"> {{ item.elapsedMilliseconds }}</ProFormItemV2>
|
<ProFormItemV2 label="createdUser:">
|
<json-viewer
|
:copyable="true"
|
:boxed="true"
|
:value="JSON.parse(JSON.stringify(item.createdUser))"
|
></json-viewer>
|
</ProFormItemV2>
|
<ProFormItemV2 label="createdTime:">
|
{{ format(item.createdTime, 'YYYY-MM-DD HH:mm:ss') }}</ProFormItemV2
|
>
|
</ProForm>
|
</el-collapse-item>
|
</el-collapse> -->
|
<AppContainer>
|
<ProTableV2
|
:columns="columns"
|
:show-pagination="false"
|
:table-data="threeResourceLogs"
|
:column-render-map="columnsRenderProps"
|
>
|
<template #requestHeaders="{ row }">
|
<el-button type="primary" link @click="handleAdd({ json: JSON.parse(row.requestHeaders) })"
|
>查看</el-button
|
>
|
</template>
|
<template #request="{ row }">
|
<el-button type="primary" link @click="handleAdd({ json: JSON.parse(row.request) })"
|
>查看</el-button
|
>
|
</template>
|
<template #responseHeaders="{ row }">
|
<el-button type="primary" link @click="handleAdd({ json: JSON.parse(row.responseHeaders) })"
|
>查看</el-button
|
>
|
</template>
|
<template #response="{ row }">
|
<el-button type="primary" link @click="handleAdd({ json: JSON.parse(row.response) })"
|
>查看</el-button
|
>
|
</template>
|
<template #createdUser="{ row }">
|
<el-button
|
type="primary"
|
link
|
@click="handleAdd({ json: JSON.parse(JSON.stringify(row.createdUser)) })"
|
>查看</el-button
|
>
|
</template>
|
</ProTableV2>
|
<JsonViewerDialog v-bind="dialogProps" />
|
</AppContainer>
|
</template>
|
|
<script setup lang="ts">
|
import {
|
AppContainer,
|
ProTableV2,
|
defineColumns,
|
ProTableV2Props,
|
useFormDialog,
|
} from '@bole-core/components';
|
import { EnumResourceMethodText } from '@/constants';
|
import JsonViewerDialog from './JsonViewerDialog.vue';
|
|
defineOptions({
|
name: 'ThreeResourceLogsView',
|
});
|
|
type Props = {
|
threeResourceLogs: API.GetThreeResourceLogsQueryResultItem[];
|
};
|
const props = withDefaults(defineProps<Props>(), {
|
threeResourceLogs: () => [] as API.GetThreeResourceLogsQueryResultItem[],
|
});
|
|
const columns = defineColumns(
|
[
|
'method',
|
'domain',
|
'path',
|
'requestHeaders',
|
'request',
|
'responseHeaders',
|
'response',
|
'isSuccess',
|
'elapsedMilliseconds',
|
'createdUser',
|
'createdTime',
|
].map((x, index) => ({
|
id: index + '',
|
enCode: x,
|
name: x,
|
width: 160,
|
}))
|
);
|
|
const columnsRenderProps: ProTableV2Props['columnRenderMap'] = {
|
method: { type: 'enum', valueEnum: EnumResourceMethodText },
|
isSuccess: {
|
formatter: (row: API.GetResourceLogsQueryResultItem) => {
|
return row.isSuccess ? '是' : '否';
|
},
|
},
|
createdTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
|
};
|
|
const { dialogProps, handleAdd } = useFormDialog({
|
defaultFormParams: {
|
json: null,
|
},
|
});
|
</script>
|