7
7
<el-option v-for =" item in appList" :key =" item.id" :label =" item.name" :value =" item.id" />
8
8
</el-select >
9
9
</el-form-item >
10
- <el-form-item label =" 渠道编码" prop =" channelCode" >
11
- <el-select v-model =" queryParams.channelCode" placeholder =" 请输入渠道编码" clearable
12
- @clear =" ()=>{queryParams.channelCode = null}" >
13
- <el-option v-for =" dict in payChannelCodeDictDatum" :key =" dict.value" :label =" dict.label" :value =" dict.value" />
10
+ <el-form-item label =" 退款渠道" prop =" channelCode" >
11
+ <el-select v-model =" queryParams.channelCode" placeholder =" 请选择退款渠道" clearable >
12
+ <el-option v-for =" dict in this.getDictDatas(DICT_TYPE.PAY_CHANNEL_CODE)" :key =" dict.value" :label =" dict.label" :value =" dict.value" />
14
13
</el-select >
15
14
</el-form-item >
16
- <el-form-item label =" 退款类型" prop =" type" >
17
- <el-select v-model =" queryParams.type" placeholder =" 请选择退款类型" clearable >
18
- <el-option v-for =" dict in payRefundOrderTypeDictDatum" :key =" parseInt(dict.value)"
19
- :label =" dict.label" :value =" parseInt(dict.value)" />
20
- </el-select >
15
+ <el-form-item label =" 商户支付单号" prop =" merchantOrderId" >
16
+ <el-input v-model =" queryParams.merchantOrderId" placeholder =" 请输入商户支付单号" clearable
17
+ @keyup.enter.native =" handleQuery" />
18
+ </el-form-item >
19
+ <el-form-item label =" 商户退款单号" prop =" merchantRefundId" >
20
+ <el-input v-model =" queryParams.merchantRefundId" placeholder =" 请输入商户退款单号" clearable
21
+ @keyup.enter.native =" handleQuery" />
22
+ </el-form-item >
23
+ <el-form-item label =" 渠道支付单号" prop =" channelOrderNo" >
24
+ <el-input v-model =" queryParams.channelOrderNo" placeholder =" 请输入渠道支付单号" clearable
25
+ @keyup.enter.native =" handleQuery" />
21
26
</el-form-item >
22
- <el-form-item label =" 商户退款订单号 " prop =" merchantRefundNo " >
23
- <el-input v-model =" queryParams.merchantRefundNo " placeholder =" 请输入商户退款订单号 " clearable
27
+ <el-form-item label =" 渠道退款单号 " prop =" channelRefundNo " >
28
+ <el-input v-model =" queryParams.channelRefundNo " placeholder =" 请输入渠道退款单号 " clearable
24
29
@keyup.enter.native =" handleQuery" />
25
30
</el-form-item >
26
31
<el-form-item label =" 退款状态" prop =" status" >
27
32
<el-select v-model =" queryParams.status" placeholder =" 请选择退款状态" clearable >
28
- <el-option v-for =" dict in payRefundOrderDictDatum " :key =" parseInt(dict.value)"
33
+ <el-option v-for =" dict in this.getDictDatas(DICT_TYPE.PAY_REFUND_STATUS) " :key =" parseInt(dict.value)"
29
34
:label =" dict.label" :value =" parseInt(dict.value)" />
30
35
</el-select >
31
36
</el-form-item >
52
57
<!-- 列表 -->
53
58
<el-table v-loading =" loading" :data =" list" >
54
59
<el-table-column label =" 编号" align =" center" prop =" id" />
55
- <el-table-column label =" 支付渠道" align =" center" width =" 130" >
60
+ <el-table-column label =" 创建时间" align =" center" prop =" createTime" width =" 180" >
61
+ <template v-slot =" scope " >
62
+ <span >{{ parseTime(scope.row.createTime) }}</span >
63
+ </template >
64
+ </el-table-column >
65
+ <el-table-column label =" 支付金额" align =" center" prop =" payPrice" width =" 100" >
66
+ <template v-slot =" scope " class="">
67
+ ¥{{ (scope.row.payPrice / 100.0).toFixed(2) }}
68
+ </template >
69
+ </el-table-column >
70
+ <el-table-column label =" 退款金额" align =" center" prop =" refundPrice" width =" 100" >
56
71
<template v-slot =" scope " >
57
- <el-popover trigger =" hover" placement =" top" >
58
- <p >应用名称: {{ scope.row.appName }}</p >
59
- <p >渠道名称: {{ scope.row.channelCodeName }}</p >
60
- <div slot =" reference" class =" name-wrapper" >
61
- {{ scope.row.channelCodeName }}
62
- </div >
63
- </el-popover >
72
+ ¥{{ (scope.row.refundPrice / 100.0).toFixed(2) }}
64
73
</template >
65
74
</el-table-column >
66
- <!-- <el-table-column label="交易订单号" align="center" prop="tradeNo" width="140"/>-->
67
- <!-- <el-table-column label="商户订单编号" align="center" prop="merchantOrderId" width="140"/>-->
68
- <el-table-column label =" 商户订单号" align =" left" width =" 230" >
75
+ <el-table-column label =" 退款订单号" align =" left" width =" 300" >
69
76
<template v-slot =" scope " >
70
77
<p class =" order-font" >
71
- <el-tag size =" mini" >退款</el-tag >
72
- {{ scope.row.merchantRefundNo }}
78
+ <el-tag size =" mini" >商户</el-tag > {{scope.row.merchantRefundId}}
73
79
</p >
74
80
<p class =" order-font" >
75
- <el-tag type =" success" >交易</el-tag >
76
- {{ scope.row.merchantOrderId }}
81
+ <el-tag size =" mini" type =" warning" >支付</el-tag > {{scope.row.no}}
82
+ </p >
83
+ <p class =" order-font" v-if =" scope.row.channelRefundNo" >
84
+ <el-tag size =" mini" type =" success" >渠道</el-tag > {{scope.row.channelRefundNo}}
77
85
</p >
78
86
</template >
79
87
</el-table-column >
80
- <el-table-column label =" 支付订单号" align =" center " prop = " merchantRefundNo " width =" 250 " >
88
+ <el-table-column label =" 支付订单号" align =" left " width =" 300 " >
81
89
<template v-slot =" scope " >
82
90
<p class =" order-font" >
83
- <el-tag size =" mini" >交易</el-tag >
84
- {{ scope.row.tradeNo }}
91
+ <el-tag size =" mini" >商户</el-tag > {{scope.row.merchantOrderId}}
85
92
</p >
86
93
<p class =" order-font" >
87
- <el-tag size =" mini" type =" warning" >渠道</el-tag >
88
- {{ scope.row.channelOrderNo }}
94
+ <el-tag size =" mini" type =" success" >渠道</el-tag > {{scope.row.channelOrderNo}}
89
95
</p >
90
96
</template >
91
97
</el-table-column >
92
- <el-table-column label =" 支付金额(元)" align =" center" prop =" payPrice" width =" 100" >
93
- <template v-slot =" scope " class="">
94
- ¥{{ parseFloat(scope.row.payPrice / 100).toFixed(2) }}
95
- </template >
96
- </el-table-column >
97
- <el-table-column label =" 退款金额(元)" align =" center" prop =" refundPrice" width =" 100" >
98
- <template v-slot =" scope " >
99
- ¥{{ parseFloat(scope.row.refundPrice / 100).toFixed(2) }}
100
- </template >
101
- </el-table-column >
102
98
<el-table-column label =" 退款状态" align =" center" prop =" status" >
103
99
<template v-slot =" scope " >
104
- <dict-tag :type =" DICT_TYPE.PAY_REFUND_ORDER_STATUS " :value =" scope.row.status" />
100
+ <dict-tag :type =" DICT_TYPE.PAY_REFUND_STATUS " :value =" scope.row.status" />
105
101
</template >
106
102
</el-table-column >
107
- <el-table-column label =" 退款原因" align =" center" prop =" reason" width =" 140" :show-overflow-tooltip =" true" />
108
- <el-table-column label =" 创建时间" align =" center" prop =" createTime" width =" 100" >
103
+ <el-table-column label =" 退款渠道" align =" center" width =" 140" >
109
104
<template v-slot =" scope " >
110
- <span >{{ parseTime( scope.row.createTime) }}</ span >
105
+ <dict-tag :type = " DICT_TYPE.PAY_CHANNEL_CODE " :value = " scope.row.channelCode " / >
111
106
</template >
112
107
</el-table-column >
113
- <el-table-column label =" 退款成功时间 " align =" center" prop =" successTime" width =" 100 " >
108
+ <el-table-column label =" 成功时间 " align =" center" prop =" successTime" width =" 180 " >
114
109
<template v-slot =" scope " >
115
110
<span >{{ parseTime(scope.row.successTime) }}</span >
116
111
</template >
150
145
<el-tag class =" tag-purple" size =" mini" >{{ parseFloat(refundDetail.refundPrice / 100).toFixed(2) }}</el-tag >
151
146
</el-descriptions-item >
152
147
<el-descriptions-item label =" 退款状态" >
153
- <dict-tag :type =" DICT_TYPE.PAY_REFUND_ORDER_STATUS " :value =" refundDetail.status" />
148
+ <dict-tag :type =" DICT_TYPE.PAY_REFUND_STATUS " :value =" refundDetail.status" />
154
149
</el-descriptions-item >
155
150
<el-descriptions-item label =" 创建时间" >{{ parseTime(refundDetail.createTime) }}</el-descriptions-item >
156
151
<el-descriptions-item label =" 退款成功时间" >{{ parseTime(refundDetail.successTime) }}</el-descriptions-item >
185
180
186
181
<script >
187
182
import {getRefundPage , exportRefundExcel , getRefund } from " @/api/pay/refund" ;
188
- import { DICT_TYPE , getDictDatas } from " @/utils/dict" ;
189
- import { getNowDateTime } from " @/utils/ruoyi" ;
190
-
191
- const defaultRefundDetail = {
192
- id: null ,
193
- appId: null ,
194
- appName: ' ' ,
195
- channelCode: ' ' ,
196
- channelCodeName: ' ' ,
197
- channelErrorCode: ' ' ,
198
- channelErrorMsg: ' ' ,
199
- channelExtras: ' ' ,
200
- channelId: null ,
201
- channelOrderNo: ' ' ,
202
- channelRefundNo: ' ' ,
203
- createTime: null ,
204
- expireTime: null ,
205
- merchantOrderId: ' ' ,
206
- merchantRefundNo: ' ' ,
207
- notifyUrl: ' ' ,
208
- orderId: null ,
209
- payPrice: null ,
210
- reason: ' ' ,
211
- refundPrice: null ,
212
- status: null ,
213
- subject: ' ' ,
214
- successTime: null ,
215
- tradeNo: ' ' ,
216
- type: null ,
217
- userIp: ' '
218
- }
183
+ import { getAppList } from " @/api/pay/app" ;
219
184
220
185
export default {
221
186
name: " PayRefund" ,
@@ -239,67 +204,30 @@ export default {
239
204
pageNo: 1 ,
240
205
pageSize: 10 ,
241
206
appId: null ,
242
- channelId: null ,
243
207
channelCode: null ,
244
- orderId: null ,
245
- tradeNo: null ,
246
208
merchantOrderId: null ,
247
- merchantRefundNo: null ,
248
- notifyUrl: null ,
249
- status: null ,
250
- type: null ,
251
- payPrice: null ,
252
- refundPrice: null ,
253
- reason: null ,
254
- userIp: null ,
209
+ merchantRefundId: null ,
255
210
channelOrderNo: null ,
256
211
channelRefundNo: null ,
257
- channelErrorCode: null ,
258
- channelErrorMsg: null ,
259
- channelExtras: null ,
260
- expireTime: [],
261
- successTime: [],
212
+ status: null ,
262
213
createTime: []
263
214
},
264
- // 商户加载遮罩层
265
- merchantLoading: false ,
266
- // 商户列表集合
267
- merchantList: null ,
268
215
// 支付应用列表集合
269
216
appList: null ,
270
- // 支付渠道编码字典数据集合
271
- payChannelCodeDictDatum: getDictDatas (DICT_TYPE .PAY_CHANNEL_CODE ),
272
- // 订单退款状态字典数据集合
273
- payRefundOrderDictDatum: getDictDatas (DICT_TYPE .PAY_REFUND_ORDER_STATUS ),
274
- // 订单回调商户状态字典数据集合
275
- payOrderNotifyDictDatum: getDictDatas (DICT_TYPE .PAY_NOTIFY_STATUS ),
276
217
// 退款订单详情
277
- refundDetail: JSON . parse ( JSON . stringify (defaultRefundDetail)) ,
218
+ refundDetail: {} ,
278
219
};
279
220
},
280
221
created () {
281
- this .initTime ();
282
222
this .getList ();
283
- this .handleGetMerchantListByName (null );
223
+ // 获得筛选项
224
+ getAppList ().then (response => {
225
+ this .appList = response .data ;
226
+ })
284
227
},
285
228
methods: {
286
- initTime (){
287
- this .queryParams .createTime = [getNowDateTime (" 00:00:00" ), getNowDateTime (" 23:59:59" )];
288
- },
289
229
/** 查询列表 */
290
230
getList () {
291
- // 判断选择的日期是否超过了一个月
292
- let oneMonthTime = 31 * 24 * 3600 * 1000 ;
293
- if (this .queryParams .createTime == null ){
294
- this .initTime ();
295
- } else {
296
- let minDateTime = new Date (this .queryParams .createTime [0 ]).getTime ();
297
- let maxDateTime = new Date (this .queryParams .createTime [1 ]).getTime ()
298
- if (maxDateTime - minDateTime > oneMonthTime) {
299
- this .$message .error (' 时间范围最大为 31 天!' );
300
- return false ;
301
- }
302
- }
303
231
this .loading = true ;
304
232
// 执行查询
305
233
getRefundPage (this .queryParams ).then (response => {
@@ -335,26 +263,15 @@ export default {
335
263
this .$download .excel (response, ' 退款订单.xls' );
336
264
}).catch (() => {});
337
265
},
338
- /**
339
- * 根据商户名称模糊匹配商户信息
340
- * @param name 商户名称
341
- */
342
- handleGetMerchantListByName (name ) {
343
- getMerchantListByName (name).then (response => {
344
- this .merchantList = response .data ;
345
- this .merchantLoading = false ;
346
- });
347
- },
348
266
/**
349
267
* 查看订单详情
350
268
*/
351
269
handleQueryDetails (row ) {
352
- this .refundDetail = JSON . parse ( JSON . stringify (defaultRefundDetail)) ;
270
+ this .refundDetail = {} ;
353
271
getRefund (row .id ).then (response => {
354
272
this .refundDetail = response .data ;
355
273
this .open = true ;
356
274
});
357
-
358
275
},
359
276
}
360
277
};
0 commit comments