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/pay/transfer/TransferDetail.vue |   80 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 80 insertions(+), 0 deletions(-)

diff --git a/src/views/pay/transfer/TransferDetail.vue b/src/views/pay/transfer/TransferDetail.vue
new file mode 100644
index 0000000..3fe0620
--- /dev/null
+++ b/src/views/pay/transfer/TransferDetail.vue
@@ -0,0 +1,80 @@
+<template>
+  <Dialog v-model="dialogVisible" title="杞处鍗曡鎯�" width="700px">
+    <el-descriptions :column="2" label-class-name="desc-label">
+      <el-descriptions-item label="鍟嗘埛鍗曞彿">
+        <el-tag size="small">{{ detailData.merchantTransferId }}</el-tag>
+      </el-descriptions-item>
+      <el-descriptions-item label="杞处鍗曞彿">
+        <el-tag type="warning" size="small" v-if="detailData.no">{{ detailData.no }}</el-tag>
+      </el-descriptions-item>
+      <el-descriptions-item label="搴旂敤缂栧彿">{{ detailData.appId }}</el-descriptions-item>
+      <el-descriptions-item label="杞处鐘舵��">
+        <dict-tag :type="DICT_TYPE.PAY_TRANSFER_STATUS" :value="detailData.status" size="small" />
+      </el-descriptions-item>
+      <el-descriptions-item label="杞处閲戦">
+        <el-tag type="success" size="small">锟{ (detailData.price / 100.0).toFixed(2) }}</el-tag>
+      </el-descriptions-item>
+      <el-descriptions-item label="杞处鏃堕棿">
+        {{ formatDate(detailData.successTime) }}
+      </el-descriptions-item>
+      <el-descriptions-item label="鍒涘缓鏃堕棿">
+        {{ formatDate(detailData.createTime) }}
+      </el-descriptions-item>
+    </el-descriptions>
+    <!-- 鍒嗗壊绾� -->
+    <el-divider />
+    <el-descriptions :column="2" label-class-name="desc-label">
+      <el-descriptions-item label="鏀舵浜哄鍚�">{{ detailData.userName }}</el-descriptions-item>
+      <el-descriptions-item label="鏀舵浜鸿处鍙�">{{ detailData.userAccount }}</el-descriptions-item>
+      <el-descriptions-item label="鏀粯娓犻亾">
+        <dict-tag :type="DICT_TYPE.PAY_CHANNEL_CODE" :value="detailData.channelCode" />
+      </el-descriptions-item>
+      <el-descriptions-item label="鏀粯 IP">{{ detailData.userIp }}</el-descriptions-item>
+      <el-descriptions-item label="娓犻亾鍗曞彿">
+        <el-tag size="mini" type="success" v-if="detailData.channelTransferNo">
+          {{ detailData.channelTransferNo }}
+        </el-tag>
+      </el-descriptions-item>
+      <el-descriptions-item label="閫氱煡 URL">{{ detailData.notifyUrl }}</el-descriptions-item>
+    </el-descriptions>
+    <el-divider />
+    <el-descriptions :column="1" label-class-name="desc-label" direction="vertical" border>
+      <el-descriptions-item label="杞处娓犻亾閫氱煡鍐呭">
+        <el-text style="white-space: pre-wrap; word-break: break-word">
+          {{ detailData.channelNotifyData }}
+        </el-text>
+      </el-descriptions-item>
+    </el-descriptions>
+    <el-divider />
+    <div style="text-align: right">
+      <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+    </div>
+  </Dialog>
+</template>
+
+<script lang="ts" setup>
+import { DICT_TYPE } from '@/utils/dict'
+import * as TransferApi from '@/api/pay/transfer'
+import { formatDate } from '@/utils/formatTime'
+
+defineOptions({ name: 'PayTransferDetail' })
+
+const dialogVisible = ref(false) // 寮圭獥鐨勬槸鍚﹀睍绀�
+const detailLoading = ref(false) // 琛ㄥ崟鐨勫姞杞戒腑
+const detailData = ref({})
+
+/** 鎵撳紑寮圭獥 */
+const open = async (id: number) => {
+  dialogVisible.value = true
+  // 璁剧疆鏁版嵁
+  detailLoading.value = true
+  try {
+    detailData.value = await TransferApi.getTransfer(id)
+  } finally {
+    detailLoading.value = false
+  }
+}
+defineExpose({ open }) // 鎻愪緵 open 鏂规硶锛岀敤浜庢墦寮�寮圭獥
+</script>
+
+<style scoped></style>

--
Gitblit v1.8.0