Skip to content

Commit 1ab7ea0

Browse files
committed
code review:优化支付通知的实现
1 parent 26cf4ca commit 1ab7ea0

File tree

4 files changed

+157
-198
lines changed

4 files changed

+157
-198
lines changed

src/api/pay/merchant/index.ts

Lines changed: 0 additions & 78 deletions
This file was deleted.

src/views/pay/notify/NotifyDetail.vue

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
<template>
2+
<Dialog v-model="dialogVisible" title="通知详情" width="50%">
3+
<el-descriptions :column="2">
4+
<el-descriptions-item label="商户订单编号">
5+
<el-tag>{{ detailData.merchantOrderId }}</el-tag>
6+
</el-descriptions-item>
7+
<el-descriptions-item label="通知状态">
8+
<dict-tag :type="DICT_TYPE.PAY_NOTIFY_STATUS" :value="detailData.status" />
9+
</el-descriptions-item>
10+
</el-descriptions>
11+
<el-descriptions :column="2">
12+
<el-descriptions-item label="应用编号">{{ detailData.appId }}</el-descriptions-item>
13+
<el-descriptions-item label="应用名称">{{ detailData.appName }}</el-descriptions-item>
14+
</el-descriptions>
15+
<el-descriptions :column="2">
16+
<el-descriptions-item label="关联编号">{{ detailData.dataId }}</el-descriptions-item>
17+
<el-descriptions-item label="通知类型">
18+
<dict-tag :type="DICT_TYPE.PAY_NOTIFY_TYPE" :value="detailData.type" />
19+
</el-descriptions-item>
20+
</el-descriptions>
21+
<el-descriptions :column="2">
22+
<el-descriptions-item label="通知次数">{{ detailData.notifyTimes }}</el-descriptions-item>
23+
<el-descriptions-item label="最大通知次数">
24+
{{ detailData.maxNotifyTimes }}
25+
</el-descriptions-item>
26+
</el-descriptions>
27+
<el-descriptions :column="2">
28+
<el-descriptions-item label="最后通知时间">
29+
{{ formatDate(detailData.lastExecuteTime) }}
30+
</el-descriptions-item>
31+
<el-descriptions-item label="下次通知时间">
32+
{{ formatDate(detailData.nextNotifyTime) }}
33+
</el-descriptions-item>
34+
</el-descriptions>
35+
<el-descriptions :column="2">
36+
<el-descriptions-item label="创建时间">
37+
{{ formatDate(detailData.createTime) }}
38+
</el-descriptions-item>
39+
<el-descriptions-item label="更新时间">
40+
{{ formatDate(detailData.updateTime) }}
41+
</el-descriptions-item>
42+
</el-descriptions>
43+
<!-- 分割线 -->
44+
<el-divider />
45+
<el-descriptions :column="1" direction="vertical" border>
46+
<el-descriptions-item label="回调日志">
47+
<el-table :data="detailData.logs">
48+
<el-table-column label="日志编号" align="center" prop="id" />
49+
<el-table-column label="通知状态" align="center" prop="status">
50+
<template #default="scope">
51+
<dict-tag :type="DICT_TYPE.PAY_NOTIFY_STATUS" :value="scope.row.status" />
52+
</template>
53+
</el-table-column>
54+
<el-table-column label="通知次数" align="center" prop="notifyTimes" />
55+
<el-table-column label="通知时间" align="center" prop="lastExecuteTime" width="180">
56+
<template #default="scope">
57+
<span>{{ formatDate(scope.row.createTime) }}</span>
58+
</template>
59+
</el-table-column>
60+
<el-table-column label="响应结果" align="center" prop="response" />
61+
</el-table>
62+
</el-descriptions-item>
63+
</el-descriptions>
64+
</Dialog>
65+
</template>
66+
<script lang="ts" setup>
67+
import { DICT_TYPE } from '@/utils/dict'
68+
import * as PayNotifyApi from '@/api/pay/notify'
69+
import { formatDate } from '@/utils/formatTime'
70+
71+
defineOptions({ name: 'PayNotifyDetail' })
72+
73+
const dialogVisible = ref(false) // 弹窗的是否展示
74+
const detailLoading = ref(false) // 表单的加载中
75+
const detailData = ref({})
76+
77+
/** 打开弹窗 */
78+
const open = async (id: number) => {
79+
dialogVisible.value = true
80+
// 设置数据
81+
detailLoading.value = true
82+
try {
83+
detailData.value = await PayNotifyApi.getNotifyTaskDetail(id)
84+
} finally {
85+
detailLoading.value = false
86+
}
87+
}
88+
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
89+
</script>

0 commit comments

Comments
 (0)