Skip to content

Commit 30cf800

Browse files
committed
REVIEW 退款订单
1 parent 8863d1d commit 30cf800

File tree

4 files changed

+276
-333
lines changed

4 files changed

+276
-333
lines changed

src/views/pay/order/index.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ import { DICT_TYPE, getIntDictOptions, getStrDictOptions } from '@/utils/dict'
233233
import { dateFormatter } from '@/utils/formatTime'
234234
import * as MerchantApi from '@/api/pay/merchant'
235235
import * as OrderApi from '@/api/pay/order'
236-
import OrderDetail from '@/views/pay/order/OrderDetail.vue'
236+
import OrderDetail from './OrderDetail.vue'
237237
const message = useMessage() // 消息弹窗
238238
import download from '@/utils/download'
239239
@@ -314,7 +314,7 @@ const handleExport = async () => {
314314
315315
/** 预览详情 */
316316
const detailRef = ref()
317-
const openDetail = (id?: number) => {
317+
const openDetail = (id: number) => {
318318
detailRef.value.open(id)
319319
}
320320

src/views/pay/refund/RefundDetail.vue

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
<template>
2+
<Dialog title="详情" v-model="dialogVisible" width="50%">
3+
<el-descriptions :column="2">
4+
<el-descriptions-item label="商户名称">{{ detailData.merchantName }}</el-descriptions-item>
5+
<el-descriptions-item label="应用名称">{{ detailData.appName }}</el-descriptions-item>
6+
<el-descriptions-item label="商品名称">{{ detailData.subject }}</el-descriptions-item>
7+
</el-descriptions>
8+
<el-divider />
9+
<el-descriptions :column="2">
10+
<el-descriptions-item label="商户退款单号">
11+
<el-tag>{{ detailData.merchantRefundNo }}</el-tag>
12+
</el-descriptions-item>
13+
<el-descriptions-item label="商户订单号">
14+
{{ detailData.merchantOrderId }}
15+
</el-descriptions-item>
16+
<el-descriptions-item label="交易订单号">{{ detailData.tradeNo }}</el-descriptions-item>
17+
</el-descriptions>
18+
<el-divider />
19+
<el-descriptions :column="2">
20+
<el-descriptions-item label="支付金额">
21+
<el-tag type="success">¥{{ parseFloat(detailData.payAmount / 100, 2).toFixed(2) }}</el-tag>
22+
</el-descriptions-item>
23+
<el-descriptions-item label="退款金额">
24+
<el-tag class="tag-purple">
25+
¥{{ parseFloat(detailData.refundAmount / 100).toFixed(2) }}
26+
</el-tag>
27+
</el-descriptions-item>
28+
<el-descriptions-item label="退款类型">
29+
<dict-tag :type="DICT_TYPE.PAY_REFUND_ORDER_TYPE" :value="detailData.type" />
30+
</el-descriptions-item>
31+
<el-descriptions-item label="退款状态">
32+
<dict-tag :type="DICT_TYPE.PAY_REFUND_ORDER_STATUS" :value="detailData.status" />
33+
</el-descriptions-item>
34+
<el-descriptions-item label="创建时间">
35+
{{ formatDate(detailData.createTime) }}
36+
</el-descriptions-item>
37+
<el-descriptions-item label="退款成功时间">
38+
{{ formatDate(detailData.successTime) }}
39+
</el-descriptions-item>
40+
<el-descriptions-item label="退款失效时间">
41+
{{ formatDate(detailData.expireTime) }}
42+
</el-descriptions-item>
43+
<el-descriptions-item label="更新时间">
44+
{{ formatDate(detailData.updateTime) }}
45+
</el-descriptions-item>
46+
</el-descriptions>
47+
<el-divider />
48+
<el-descriptions :column="2">
49+
<el-descriptions-item label="支付渠道">
50+
{{ detailData.channelCodeName }}
51+
</el-descriptions-item>
52+
<el-descriptions-item label="支付 IP">
53+
{{ detailData.userIp }}
54+
</el-descriptions-item>
55+
<el-descriptions-item label="回调地址">{{ detailData.notifyUrl }}</el-descriptions-item>
56+
<el-descriptions-item label="回调状态">
57+
<dict-tag :type="DICT_TYPE.PAY_ORDER_NOTIFY_STATUS" :value="detailData.notifyStatus" />
58+
</el-descriptions-item>
59+
<el-descriptions-item label="回调时间">
60+
{{ formatDate(detailData.notifyTime) }}
61+
</el-descriptions-item>
62+
</el-descriptions>
63+
<el-divider />
64+
<el-descriptions :column="2">
65+
<el-descriptions-item label="渠道订单号">
66+
{{ detailData.channelOrderNo }}
67+
</el-descriptions-item>
68+
<el-descriptions-item label="渠道退款单号">
69+
{{ detailData.channelRefundNo }}
70+
</el-descriptions-item>
71+
<el-descriptions-item label="渠道错误码">
72+
{{ detailData.channelErrorCode }}
73+
</el-descriptions-item>
74+
<el-descriptions-item label="渠道错误码描述">
75+
{{ detailData.channelErrorMsg }}
76+
</el-descriptions-item>
77+
</el-descriptions>
78+
<br />
79+
<el-descriptions :column="1" direction="vertical" border>
80+
<el-descriptions-item label="渠道额外参数">
81+
{{ detailData.channelExtras }}
82+
</el-descriptions-item>
83+
<el-descriptions-item label="退款原因">{{ detailData.reason }}</el-descriptions-item>
84+
</el-descriptions>
85+
</Dialog>
86+
</template>
87+
<script setup lang="ts" name="refundForm">
88+
import { DICT_TYPE } from '@/utils/dict'
89+
import { formatDate } from '@/utils/formatTime'
90+
import * as RefundApi from '@/api/pay/refund'
91+
92+
const dialogVisible = ref(false) // 弹窗的是否展示
93+
const detailLoading = ref(false) // 表单的加载中
94+
const detailData = ref({})
95+
96+
/** 打开弹窗 */
97+
const open = async (id: number) => {
98+
dialogVisible.value = true
99+
// 设置数据
100+
detailLoading.value = true
101+
try {
102+
detailData.value = await RefundApi.getRefund(id)
103+
} finally {
104+
detailLoading.value = false
105+
}
106+
}
107+
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
108+
</script>
109+
<style>
110+
.tag-purple {
111+
color: #722ed1;
112+
background: #f9f0ff;
113+
border-color: #d3adf7;
114+
}
115+
</style>

0 commit comments

Comments
 (0)