From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目

---
 src/views/system/mail/log/MailLogDetail.vue |   99 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 99 insertions(+), 0 deletions(-)

diff --git a/src/views/system/mail/log/MailLogDetail.vue b/src/views/system/mail/log/MailLogDetail.vue
new file mode 100644
index 0000000..37d757a
--- /dev/null
+++ b/src/views/system/mail/log/MailLogDetail.vue
@@ -0,0 +1,99 @@
+<template>
+  <Dialog v-model="dialogVisible" :max-height="500" :scroll="true" title="璇︽儏" width="800">
+    <el-descriptions :column="1" border>
+      <el-descriptions-item label="鏃ュ織涓婚敭" min-width="120">
+        {{ detailData.id }}
+      </el-descriptions-item>
+      <el-descriptions-item label="閭璐﹀彿">
+        {{ accountList.find((account) => account.id === detailData.accountId)?.mail }}
+      </el-descriptions-item>
+      <el-descriptions-item label="閭欢妯℃澘">
+        {{ detailData.templateId }} | {{ detailData.templateCode }}
+      </el-descriptions-item>
+      <el-descriptions-item label="妯$増鍙戦�佷汉鍚嶇О">
+        {{ detailData.templateNickname }}
+      </el-descriptions-item>
+      <el-descriptions-item label="鎺ユ敹鐢ㄦ埛">
+        <span v-if="detailData.userType && detailData.userId">
+          <dict-tag :type="DICT_TYPE.USER_TYPE" :value="detailData.userType" />
+          ({{ detailData.userId }})
+        </span>
+        <span v-else>鏃�</span>
+      </el-descriptions-item>
+      <el-descriptions-item label="鎺ユ敹淇℃伅">
+        <div>
+          <div v-if="detailData.toMails && detailData.toMails.length > 0">
+            鏀朵欢锛�
+            <span v-for="(mail, index) in detailData.toMails" :key="mail">
+              {{ mail }}<span v-if="index < detailData.toMails.length - 1">銆�</span>
+            </span>
+          </div>
+          <div v-if="detailData.ccMails && detailData.ccMails.length > 0">
+            鎶勯�侊細
+            <span v-for="(mail, index) in detailData.ccMails" :key="mail">
+              {{ mail }}<span v-if="index < detailData.ccMails.length - 1">銆�</span>
+            </span>
+          </div>
+          <div v-if="detailData.bccMails && detailData.bccMails.length > 0">
+            瀵嗛�侊細
+            <span v-for="(mail, index) in detailData.bccMails" :key="mail">
+              {{ mail }}<span v-if="index < detailData.bccMails.length - 1">銆�</span>
+            </span>
+          </div>
+        </div>
+      </el-descriptions-item>
+      <el-descriptions-item label="閭欢鏍囬">
+        {{ detailData.templateTitle }}
+      </el-descriptions-item>
+      <el-descriptions-item label="閭欢鍐呭">
+        <div v-dompurify-html="detailData.templateContent"></div>
+      </el-descriptions-item>
+      <el-descriptions-item label="閭欢鍙傛暟">
+        {{ detailData.templateParams }}
+      </el-descriptions-item>
+      <el-descriptions-item label="鍒涘缓鏃堕棿">
+        {{ formatDate(detailData.createTime) }}
+      </el-descriptions-item>
+      <el-descriptions-item label="鍙戦�佺姸鎬�">
+        <dict-tag :type="DICT_TYPE.SYSTEM_MAIL_SEND_STATUS" :value="detailData.sendStatus" />
+      </el-descriptions-item>
+      <el-descriptions-item label="鍙戦�佹椂闂�">
+        {{ formatDate(detailData.sendTime) }}
+      </el-descriptions-item>
+      <el-descriptions-item label="鍙戦�佽繑鍥炵殑娑堟伅缂栧彿">
+        {{ detailData.sendMessageId }}
+      </el-descriptions-item>
+      <el-descriptions-item label="鍙戦�佸紓甯�">
+        {{ detailData.sendException }}
+      </el-descriptions-item>
+    </el-descriptions>
+  </Dialog>
+</template>
+<script lang="ts" setup>
+import { DICT_TYPE } from '@/utils/dict'
+import { formatDate } from '@/utils/formatTime'
+import * as MailLogApi from '@/api/system/mail/log'
+import * as MailAccountApi from '@/api/system/mail/account'
+
+defineOptions({ name: 'SystemMailLogDetail' })
+
+const dialogVisible = ref(false) // 寮圭獥鐨勬槸鍚﹀睍绀�
+const detailLoading = ref(false) // 琛ㄥ崟鐨勫姞杞戒腑
+const detailData = ref() // 璇︽儏鏁版嵁
+const accountList = ref<MailAccountApi.MailAccountVO[]>([]) // 閭璐﹀彿鍒楄〃
+
+/** 鎵撳紑寮圭獥 */
+const open = async (data: MailLogApi.MailLogVO) => {
+  dialogVisible.value = true
+  // 璁剧疆鏁版嵁
+  detailLoading.value = true
+  try {
+    detailData.value = data
+  } finally {
+    detailLoading.value = false
+  }
+  // 鍔犺浇閭璐﹀彿鍒楄〃
+  accountList.value = await MailAccountApi.getSimpleMailAccountList()
+}
+defineExpose({ open }) // 鎻愪緵 open 鏂规硶锛岀敤浜庢墦寮�寮圭獥
+</script>

--
Gitblit v1.8.0