reactor:【system 系统管理】notifymessage、operatelog、socialuser

This commit is contained in:
YunaiV
2025-09-10 09:53:55 +08:00
parent 6bf1392edf
commit b3a4a91a25
14 changed files with 433 additions and 239 deletions

View File

@@ -1,5 +1,6 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { SystemNotifyMessageApi } from '#/api/system/notify/message';
import type { DescriptionItemSchema } from '#/components/description';
import { h } from 'vue';
@@ -102,30 +103,36 @@ export function useDetailSchema(): DescriptionItemSchema[] {
{
field: 'createTime',
label: '发送时间',
content: (data) => formatDateTime(data?.createTime) as string,
content: (data: SystemNotifyMessageApi.NotifyMessage) => {
return formatDateTime(data?.createTime || '') as string;
},
},
{
field: 'templateType',
label: '消息类型',
content: (data) =>
h(DictTag, {
content: (data: SystemNotifyMessageApi.NotifyMessage) => {
return h(DictTag, {
type: DICT_TYPE.SYSTEM_NOTIFY_TEMPLATE_TYPE,
value: data?.templateType,
}),
});
},
},
{
field: 'readStatus',
label: '是否已读',
content: (data) =>
h(DictTag, {
content: (data: SystemNotifyMessageApi.NotifyMessage) => {
return h(DictTag, {
type: DICT_TYPE.INFRA_BOOLEAN_STRING,
value: data?.readStatus,
}),
});
},
},
{
field: 'readTime',
label: '阅读时间',
content: (data) => formatDateTime(data?.readTime) as string,
content: (data: SystemNotifyMessageApi.NotifyMessage) => {
return formatDateTime(data?.readTime || '') as string;
},
},
{
field: 'templateContent',

View File

@@ -1,13 +1,17 @@
<script lang="ts" setup>
import type { SystemNotifyMessageApi } from '#/api/system/notify/message';
import { ref } from 'vue';
import { useVbenModal } from '@vben/common-ui';
import { useDescription } from '#/components/description';
import { useDetailSchema } from '../data';
const [Description, descApi] = useDescription({
const formData = ref<SystemNotifyMessageApi.NotifyMessage>();
const [Descriptions] = useDescription({
componentProps: {
bordered: true,
column: 1,
@@ -19,6 +23,7 @@ const [Description, descApi] = useDescription({
const [Modal, modalApi] = useVbenModal({
async onOpenChange(isOpen: boolean) {
if (!isOpen) {
formData.value = undefined;
return;
}
// 加载数据
@@ -28,7 +33,7 @@ const [Modal, modalApi] = useVbenModal({
}
modalApi.lock();
try {
descApi.setState({ data });
formData.value = data;
} finally {
modalApi.unlock();
}
@@ -38,11 +43,11 @@ const [Modal, modalApi] = useVbenModal({
<template>
<Modal
title="消息详情"
title="站内信详情"
class="w-1/3"
:show-cancel-button="false"
:show-confirm-button="false"
>
<Description />
<Descriptions :data="formData" />
</Modal>
</template>