From 27cd042df9aca0383a49f3514bc21958dd890912 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 29 六月 2026 15:42:23 +0800
Subject: [PATCH] 银川 1.联调产品维护页面 2.添加IM即时通讯模块

---
 src/views/im/manager/message/private/modules/detail.vue |   75 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/src/views/im/manager/message/private/modules/detail.vue b/src/views/im/manager/message/private/modules/detail.vue
new file mode 100644
index 0000000..ec08242
--- /dev/null
+++ b/src/views/im/manager/message/private/modules/detail.vue
@@ -0,0 +1,75 @@
+<script lang="ts" setup>
+import type { ImManagerPrivateMessageApi } from '#/api/im/manager/message/private';
+
+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,
+  formatJsonText,
+  formatUserLabel,
+} from '#/views/im/manager/utils/format';
+import { MESSAGE_PRIVATE_READ_ENABLED } from '#/views/im/utils/config';
+
+import { MessageContentPreview } from '../..';
+
+const visible = ref(false);
+const detail = ref<ImManagerPrivateMessageApi.PrivateMessage>(
+  {} as ImManagerPrivateMessageApi.PrivateMessage,
+);
+
+/** 鎵撳紑璇︽儏 */
+function open(row: ImManagerPrivateMessageApi.PrivateMessage) {
+  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="鍙戦�佷汉">
+        {{ formatUserLabel(detail.senderNickname, detail.senderId) }}
+      </DescriptionsItem>
+      <DescriptionsItem label="鎺ユ敹浜�">
+        {{ formatUserLabel(detail.receiverNickname, detail.receiverId) }}
+      </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_PRIVATE_READ_ENABLED" label="鍥炴墽">
+        <!-- 鍥炴墽鐘舵�侊紙绉佽亰 / 缇よ亰鍏辩敤 im_message_receipt_status锛夛紝涓庢簮绔鑱婅鎯呫�屽洖鎵с�嶅榻� -->
+        <DictTag
+          :type="DICT_TYPE.IM_MESSAGE_RECEIPT_STATUS"
+          :value="detail.receiptStatus"
+        />
+      </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