5 changed files with 162 additions and 27 deletions
@ -0,0 +1,98 @@ |
|||||
|
<script setup lang="ts"> |
||||
|
import type { SecurityLogDto } from '../../types/security-logs'; |
||||
|
|
||||
|
import { ref } from 'vue'; |
||||
|
|
||||
|
import { useVbenDrawer } from '@vben/common-ui'; |
||||
|
import { $t } from '@vben/locales'; |
||||
|
|
||||
|
import { formatToDateTime } from '@abp/core'; |
||||
|
import { Descriptions } from 'ant-design-vue'; |
||||
|
|
||||
|
import { getApi } from '../../api/security-logs'; |
||||
|
|
||||
|
defineOptions({ |
||||
|
name: 'SecurityLogDrawer', |
||||
|
}); |
||||
|
|
||||
|
const DescriptionsItem = Descriptions.Item; |
||||
|
|
||||
|
const formModel = ref<SecurityLogDto>({} as SecurityLogDto); |
||||
|
|
||||
|
const [Drawer, drawerApi] = useVbenDrawer({ |
||||
|
class: 'w-auto', |
||||
|
onCancel() { |
||||
|
drawerApi.close(); |
||||
|
}, |
||||
|
onConfirm: async () => {}, |
||||
|
onOpenChange: async (isOpen: boolean) => { |
||||
|
formModel.value = {} as SecurityLogDto; |
||||
|
if (isOpen) { |
||||
|
try { |
||||
|
drawerApi.setState({ loading: true }); |
||||
|
const dto = drawerApi.getData<SecurityLogDto>(); |
||||
|
await onGet(dto.id); |
||||
|
} finally { |
||||
|
drawerApi.setState({ loading: false }); |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
title: $t('AbpAuditLogging.SecurityLog'), |
||||
|
}); |
||||
|
/** 查询审计日志 */ |
||||
|
async function onGet(id: string) { |
||||
|
const dto = await getApi(id); |
||||
|
formModel.value = dto; |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<template> |
||||
|
<Drawer> |
||||
|
<div style="width: 800px"> |
||||
|
<Descriptions :colon="false" :column="2" bordered size="small"> |
||||
|
<DescriptionsItem :label="$t('AbpAuditLogging.ApplicationName')"> |
||||
|
{{ formModel.applicationName }} |
||||
|
</DescriptionsItem> |
||||
|
<DescriptionsItem :label="$t('AbpAuditLogging.CreationTime')"> |
||||
|
{{ formatToDateTime(formModel.creationTime) }} |
||||
|
</DescriptionsItem> |
||||
|
<DescriptionsItem :label="$t('AbpAuditLogging.Identity')"> |
||||
|
{{ formModel.identity }} |
||||
|
</DescriptionsItem> |
||||
|
<DescriptionsItem :label="$t('AbpAuditLogging.TenantName')"> |
||||
|
{{ formModel.tenantName }} |
||||
|
</DescriptionsItem> |
||||
|
<DescriptionsItem :label="$t('AbpAuditLogging.Actions')"> |
||||
|
{{ formModel.action }} |
||||
|
</DescriptionsItem> |
||||
|
<DescriptionsItem :label="$t('AbpAuditLogging.CorrelationId')"> |
||||
|
{{ formModel.correlationId }} |
||||
|
</DescriptionsItem> |
||||
|
<DescriptionsItem :label="$t('AbpAuditLogging.UserId')"> |
||||
|
{{ formModel.userId }} |
||||
|
</DescriptionsItem> |
||||
|
<DescriptionsItem :label="$t('AbpAuditLogging.UserName')"> |
||||
|
{{ formModel.userName }} |
||||
|
</DescriptionsItem> |
||||
|
<DescriptionsItem :label="$t('AbpAuditLogging.ClientId')"> |
||||
|
{{ formModel.clientId }} |
||||
|
</DescriptionsItem> |
||||
|
<DescriptionsItem :label="$t('AbpAuditLogging.ClientIpAddress')"> |
||||
|
{{ formModel.clientIpAddress }} |
||||
|
</DescriptionsItem> |
||||
|
<DescriptionsItem |
||||
|
:label="$t('AbpAuditLogging.BrowserInfo')" |
||||
|
:label-style="{ width: '110px' }" |
||||
|
:span="2" |
||||
|
> |
||||
|
{{ formModel.browserInfo }} |
||||
|
</DescriptionsItem> |
||||
|
<DescriptionsItem :label="$t('AbpAuditLogging.Additional')" :span="2"> |
||||
|
{{ formModel.extraProperties }} |
||||
|
</DescriptionsItem> |
||||
|
</Descriptions> |
||||
|
</div> |
||||
|
</Drawer> |
||||
|
</template> |
||||
|
|
||||
|
<style scoped></style> |
||||
@ -1,7 +0,0 @@ |
|||||
<script setup lang="ts"></script> |
|
||||
|
|
||||
<template> |
|
||||
<div></div> |
|
||||
</template> |
|
||||
|
|
||||
<style scoped></style> |
|
||||
Loading…
Reference in new issue