From eb0b661cb59ce88085e5f2a17d5ce42ac8739a0f Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期一, 29 九月 2025 10:01:30 +0800 Subject: [PATCH] feat: 日志 --- src/views/TraceIdLogManage/components/ExceptionLogsView.vue | 76 +++++++++++++++++++++----------------- 1 files changed, 42 insertions(+), 34 deletions(-) diff --git a/src/views/TraceIdLogManage/components/ExceptionLogsView.vue b/src/views/TraceIdLogManage/components/ExceptionLogsView.vue index fe1d91d..6625456 100644 --- a/src/views/TraceIdLogManage/components/ExceptionLogsView.vue +++ b/src/views/TraceIdLogManage/components/ExceptionLogsView.vue @@ -1,38 +1,33 @@ <template> - <el-collapse v-model="activeName" accordion> - <el-collapse-item - v-for="item in exceptionLogs" - :key="item.createdTime" - name="1" - style="overflow: auto; max-height: 600px" + <AppContainer> + <ProTableV2 + :columns="columns" + :show-pagination="false" + :table-data="exceptionLogs" + :column-render-map="columnsRenderProps" > - <ProForm :model="item" is-read> - <ProFormItemV2 label="type:"> - {{ item.type }} - </ProFormItemV2> - <ProFormItemV2 label="code:">{{ item.code }} </ProFormItemV2> - <ProFormItemV2 label="message:"> {{ item.message }}</ProFormItemV2> - <ProFormItemV2 label="stackTrace:"> {{ item.stackTrace }}</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 + <template #createdUser="{ row }"> + <el-button + type="primary" + link + @click="handleAdd({ json: JSON.parse(JSON.stringify(row.createdUser)) })" + >鏌ョ湅</el-button > - </ProForm> - </el-collapse-item> - </el-collapse> + </template> + </ProTableV2> + <JsonViewerDialog v-bind="dialogProps" /> + </AppContainer> </template> <script setup lang="ts"> -import { ProForm, ProFormItemV2 } from '@bole-core/components'; -import JsonViewer from 'vue-json-viewer'; - -import { format } from '@/utils'; +import { + AppContainer, + ProTableV2, + defineColumns, + ProTableV2Props, + useFormDialog, +} from '@bole-core/components'; +import JsonViewerDialog from './JsonViewerDialog.vue'; defineOptions({ name: 'ExceptionLogsView', @@ -41,12 +36,25 @@ type Props = { exceptionLogs: API.GetExceptionLogsQueryResultItem[]; }; -const activeName = ref('1'); const props = withDefaults(defineProps<Props>(), { exceptionLogs: () => [] as API.GetExceptionLogsQueryResultItem[], }); -</script> -<style lang="scss" scoped> -@use '@/style/common.scss' as *; -</style> +const columns = defineColumns( + ['type', 'code', 'message', 'stackTrace', 'createdUser', 'createdTime'].map((x, index) => ({ + id: index + '', + enCode: x, + name: x, + })) +); + +const columnsRenderProps: ProTableV2Props['columnRenderMap'] = { + createdTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, +}; + +const { dialogProps, handleAdd } = useFormDialog({ + defaultFormParams: { + json: null, + }, +}); +</script> -- Gitblit v1.9.1