From b64a0deae5b5d33f9e20671a68936b27f0b9b00b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 21 七月 2026 18:03:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_pro2.0' into dev_pro2.0
---
src/views/im/manager/message/group/modules/detail.vue | 92 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 92 insertions(+), 0 deletions(-)
diff --git a/src/views/im/manager/message/group/modules/detail.vue b/src/views/im/manager/message/group/modules/detail.vue
new file mode 100644
index 0000000..dae8977
--- /dev/null
+++ b/src/views/im/manager/message/group/modules/detail.vue
@@ -0,0 +1,92 @@
+<script lang="ts" setup>
+import type { ImManagerGroupMessageApi } from '#/api/im/manager/message/group';
+
+import { ref } from 'vue';
+
+import { DICT_TYPE } from '#/packages/constants/src';
+
+import { Descriptions, DescriptionsItem, Modal } from 'ant-design-vue';
+
+import { DictTag } from '#/components/dict-tag';
+import {
+ formatDateTimeText,
+ formatGroupLabel,
+ formatJsonText,
+ formatUserLabel,
+} from '#/views/im/manager/utils/format';
+import { MESSAGE_GROUP_READ_ENABLED } from '#/views/im/utils/config';
+import {
+ IM_AT_ALL_NICKNAME,
+ IM_AT_ALL_USER_ID,
+} from '#/views/im/utils/constants';
+
+import { MessageContentPreview } from '../..';
+
+const visible = ref(false);
+const detail = ref<ImManagerGroupMessageApi.GroupMessage>({} as ImManagerGroupMessageApi.GroupMessage);
+
+/** 鎵撳紑璇︽儏 */
+function open(row: ImManagerGroupMessageApi.GroupMessage) {
+ detail.value = row;
+ visible.value = true;
+}
+
+defineExpose({ open });
+</script>
+
+<template>
+ <Modal v-model:open="visible" :footer="null" title="缇よ亰娑堟伅璇︽儏" width="700px">
+ <Descriptions bordered :column="2">
+ <DescriptionsItem label="缂栧彿">{{ detail.id }}</DescriptionsItem>
+ <DescriptionsItem label="瀹㈡埛绔紪鍙�">
+ {{ detail.clientMessageId || '-' }}
+ </DescriptionsItem>
+ <DescriptionsItem label="缇�">
+ {{ formatGroupLabel(detail.groupName, detail.groupId) }}
+ </DescriptionsItem>
+ <DescriptionsItem label="鍙戦�佷汉">
+ {{ formatUserLabel(detail.senderNickname, detail.senderId) }}
+ </DescriptionsItem>
+ <DescriptionsItem label="绫诲瀷">
+ <DictTag :type="DICT_TYPE.IM_CONTENT_TYPE" :value="detail.type" />
+ </DescriptionsItem>
+ <DescriptionsItem label="鐘舵��">
+ <DictTag :type="DICT_TYPE.IM_MESSAGE_STATUS" :value="detail.status" />
+ </DescriptionsItem>
+ <DescriptionsItem v-if="MESSAGE_GROUP_READ_ENABLED" label="鍥炴墽" :span="2">
+ <DictTag
+ :type="DICT_TYPE.IM_MESSAGE_RECEIPT_STATUS"
+ :value="detail.receiptStatus"
+ />
+ </DescriptionsItem>
+ <DescriptionsItem label="@鐢ㄦ埛" :span="2">
+ <template v-if="detail.atUserIds?.length">
+ <span v-for="(userId, index) in detail.atUserIds" :key="userId">
+ <span v-if="Number(index) > 0">銆�</span>
+ <template v-if="userId === IM_AT_ALL_USER_ID">
+ @{{ IM_AT_ALL_NICKNAME }}
+ </template>
+ <template v-else>
+ @{{ detail.atUserNicknames?.[index] || userId }}
+ <span class="text-gray-400">({{ userId }})</span>
+ </template>
+ </span>
+ </template>
+ <span v-else>-</span>
+ </DescriptionsItem>
+ <DescriptionsItem label="鍙戦�佹椂闂�" :span="2">
+ {{ formatDateTimeText(detail.sendTime) }}
+ </DescriptionsItem>
+ <DescriptionsItem label="娑堟伅鍐呭" :span="2">
+ <MessageContentPreview
+ :content="detail.content"
+ :sender-nickname="detail.senderNickname"
+ :type="detail.type"
+ />
+ </DescriptionsItem>
+ <DescriptionsItem label="鍘熷 JSON" :span="2">
+ <pre class="m-0 whitespace-pre-wrap break-all rounded bg-gray-100 p-2 font-mono text-xs">{{ formatJsonText(detail.content) }}</pre>
+ </DescriptionsItem>
+ </Descriptions>
+ </Modal>
+</template>
--
Gitblit v1.9.3