Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Unverified
Commit
3f90ca3a
authored
Aug 13, 2023
by
芋道源码
Committed by
Gitee
Aug 13, 2023
Browse files
Options
Browse Files
Download
Plain Diff
!196 fix: 支付管理/退款订单 对标 vue2
Merge pull request !196 from dhb52/master
parents
2ec50bab
10c121d6
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
149 additions
and
212 deletions
+149
-212
src/utils/dict.ts
+1
-5
src/views/pay/app/index.vue
+0
-1
src/views/pay/order/OrderDetail.vue
+12
-16
src/views/pay/refund/RefundDetail.vue
+62
-68
src/views/pay/refund/index.vue
+74
-122
No files found.
src/utils/dict.ts
View file @
3f90ca3a
...
@@ -131,12 +131,8 @@ export enum DICT_TYPE {
...
@@ -131,12 +131,8 @@ export enum DICT_TYPE {
// ========== PAY 模块 ==========
// ========== PAY 模块 ==========
PAY_CHANNEL_CODE
=
'pay_channel_code'
,
// 支付渠道编码类型
PAY_CHANNEL_CODE
=
'pay_channel_code'
,
// 支付渠道编码类型
PAY_CHANNEL_CODE_TYPE
=
'pay_channel_code_type'
,
// 支付渠道编码类型
PAY_ORDER_STATUS
=
'pay_order_status'
,
// 商户支付订单状态
PAY_ORDER_STATUS
=
'pay_order_status'
,
// 商户支付订单状态
PAY_ORDER_REFUND_STATUS
=
'pay_order_refund_status'
,
// 商户支付订单退款状态
PAY_REFUND_STATUS
=
'pay_refund_status'
,
// 退款订单状态
PAY_REFUND_ORDER_STATUS
=
'pay_refund_order_status'
,
// 退款订单状态
PAY_REFUND_ORDER_TYPE
=
'pay_refund_order_type'
,
// 退款订单类别
PAY_NOTIFY_STATUS
=
'pay_notify_status'
,
// 商户支付回调状态
PAY_NOTIFY_STATUS
=
'pay_notify_status'
,
// 商户支付回调状态
PAY_NOTIFY_TYPE
=
'pay_notify_type'
,
// 商户支付回调状态
PAY_NOTIFY_TYPE
=
'pay_notify_type'
,
// 商户支付回调状态
...
...
src/views/pay/app/index.vue
View file @
3f90ca3a
...
@@ -326,7 +326,6 @@ const queryParams = reactive({
...
@@ -326,7 +326,6 @@ const queryParams = reactive({
createTime
:
[]
createTime
:
[]
})
})
const
queryFormRef
=
ref
()
// 搜索的表单
const
queryFormRef
=
ref
()
// 搜索的表单
const
exportLoading
=
ref
(
false
)
// 导出的加载中
/** 查询列表 */
/** 查询列表 */
const
getList
=
async
()
=>
{
const
getList
=
async
()
=>
{
...
...
src/views/pay/order/OrderDetail.vue
View file @
3f90ca3a
...
@@ -7,20 +7,17 @@
...
@@ -7,20 +7,17 @@
<el-descriptions-item
label=
"支付单号"
>
<el-descriptions-item
label=
"支付单号"
>
<el-tag
type=
"warning"
size=
"small"
v-if=
"detailData.no"
>
{{
detailData
.
no
}}
</el-tag>
<el-tag
type=
"warning"
size=
"small"
v-if=
"detailData.no"
>
{{
detailData
.
no
}}
</el-tag>
</el-descriptions-item>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"2"
label-class-name=
"desc-label"
>
<el-descriptions-item
label=
"应用编号"
>
{{
detailData
.
appId
}}
</el-descriptions-item>
<el-descriptions-item
label=
"应用编号"
>
{{
detailData
.
appId
}}
</el-descriptions-item>
<el-descriptions-item
label=
"应用名称"
>
{{
detailData
.
appName
}}
</el-descriptions-item>
<el-descriptions-item
label=
"应用名称"
>
{{
detailData
.
appName
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"2"
label-class-name=
"desc-label"
>
<el-descriptions-item
label=
"支付状态"
>
<el-descriptions-item
label=
"支付状态"
>
<dict-tag
:type=
"DICT_TYPE.PAY_ORDER_STATUS"
:value=
"detailData.status"
size=
"small"
/>
<dict-tag
:type=
"DICT_TYPE.PAY_ORDER_STATUS"
:value=
"detailData.status"
size=
"small"
/>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"支付金额"
>
<el-descriptions-item
label=
"支付金额"
>
<el-tag
type=
"success"
size=
"small"
>
¥
{{
(
detailData
.
price
/
100.0
).
toFixed
(
2
)
}}
</el-tag>
<el-tag
type=
"success"
size=
"small"
>
¥
{{
(
detailData
.
price
/
100.0
).
toFixed
(
2
)
}}
</el-tag>
</el-descriptions-item>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"2"
label-class-name=
"desc-label"
>
<el-descriptions-item
label=
"手续费"
>
<el-descriptions-item
label=
"手续费"
>
<el-tag
type=
"warning"
size=
"small"
>
<el-tag
type=
"warning"
size=
"small"
>
¥
{{
(
detailData
.
channelFeePrice
/
100.0
).
toFixed
(
2
)
}}
¥
{{
(
detailData
.
channelFeePrice
/
100.0
).
toFixed
(
2
)
}}
...
@@ -29,16 +26,14 @@
...
@@ -29,16 +26,14 @@
<el-descriptions-item
label=
"手续费比例"
>
<el-descriptions-item
label=
"手续费比例"
>
{{
(
detailData
.
channelFeeRate
/
100.0
).
toFixed
(
2
)
}}
%
{{
(
detailData
.
channelFeeRate
/
100.0
).
toFixed
(
2
)
}}
%
</el-descriptions-item>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"2"
label-class-name=
"desc-label"
>
<el-descriptions-item
label=
"支付时间"
>
<el-descriptions-item
label=
"支付时间"
>
{{
formatDate
(
detailData
.
successTime
)
}}
{{
formatDate
(
detailData
.
successTime
)
}}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"失效时间"
>
<el-descriptions-item
label=
"失效时间"
>
{{
formatDate
(
detailData
.
expireTime
)
}}
{{
formatDate
(
detailData
.
expireTime
)
}}
</el-descriptions-item>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"2"
label-class-name=
"desc-label"
>
<el-descriptions-item
label=
"创建时间"
>
<el-descriptions-item
label=
"创建时间"
>
{{
formatDate
(
detailData
.
createTime
)
}}
{{
formatDate
(
detailData
.
createTime
)
}}
</el-descriptions-item>
</el-descriptions-item>
...
@@ -46,27 +41,26 @@
...
@@ -46,27 +41,26 @@
{{
formatDate
(
detailData
.
updateTime
)
}}
{{
formatDate
(
detailData
.
updateTime
)
}}
</el-descriptions-item>
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
<!-- 分割线 -->
<!-- 分割线 -->
<el-divider
/>
<el-divider
/>
<el-descriptions
:column=
"2"
label-class-name=
"desc-label"
>
<el-descriptions
:column=
"2"
label-class-name=
"desc-label"
>
<el-descriptions-item
label=
"商品标题"
>
{{
detailData
.
subject
}}
</el-descriptions-item>
<el-descriptions-item
label=
"商品标题"
>
{{
detailData
.
subject
}}
</el-descriptions-item>
<el-descriptions-item
label=
"商品描述"
>
{{
detailData
.
body
}}
</el-descriptions-item>
<el-descriptions-item
label=
"商品描述"
>
{{
detailData
.
body
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"2"
label-class-name=
"desc-label"
>
<el-descriptions-item
label=
"支付渠道"
>
<el-descriptions-item
label=
"支付渠道"
>
<dict-tag
:type=
"DICT_TYPE.PAY_CHANNEL_CODE"
:value=
"detailData.channelCode"
/>
<dict-tag
:type=
"DICT_TYPE.PAY_CHANNEL_CODE"
:value=
"detailData.channelCode"
/>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"支付 IP"
>
{{
detailData
.
userIp
}}
</el-descriptions-item>
<el-descriptions-item
label=
"支付 IP"
>
{{
detailData
.
userIp
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"2"
label-class-name=
"desc-label"
>
<el-descriptions-item
label=
"渠道单号"
>
<el-descriptions-item
label=
"渠道单号"
>
<el-tag
size=
"mini"
type=
"success"
v-if=
"detailData.channelOrderNo"
>
<el-tag
size=
"mini"
type=
"success"
v-if=
"detailData.channelOrderNo"
>
{{
detailData
.
channelOrderNo
}}
{{
detailData
.
channelOrderNo
}}
</el-tag>
</el-tag>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"渠道用户"
>
{{
detailData
.
channelUserId
}}
</el-descriptions-item>
<el-descriptions-item
label=
"渠道用户"
>
{{
detailData
.
channelUserId
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"2"
label-class-name=
"desc-label"
>
<el-descriptions-item
label=
"退款金额"
>
<el-descriptions-item
label=
"退款金额"
>
<el-tag
size=
"mini"
type=
"danger"
>
<el-tag
size=
"mini"
type=
"danger"
>
¥
{{
(
detailData
.
refundPrice
/
100.0
).
toFixed
(
2
)
}}
¥
{{
(
detailData
.
refundPrice
/
100.0
).
toFixed
(
2
)
}}
...
@@ -74,8 +68,10 @@
...
@@ -74,8 +68,10 @@
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"通知 URL"
>
{{
detailData
.
notifyUrl
}}
</el-descriptions-item>
<el-descriptions-item
label=
"通知 URL"
>
{{
detailData
.
notifyUrl
}}
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
<!-- 分割线 -->
<!-- 分割线 -->
<el-divider
/>
<el-divider
/>
<el-descriptions
:column=
"1"
label-class-name=
"desc-label"
direction=
"vertical"
border
>
<el-descriptions
:column=
"1"
label-class-name=
"desc-label"
direction=
"vertical"
border
>
<el-descriptions-item
label=
"支付通道异步回调内容"
>
<el-descriptions-item
label=
"支付通道异步回调内容"
>
{{
detailData
.
extension
.
channelNotifyData
}}
{{
detailData
.
extension
.
channelNotifyData
}}
...
...
src/views/pay/refund/RefundDetail.vue
View file @
3f90ca3a
<
template
>
<
template
>
<Dialog
v-model=
"dialogVisible"
title=
"详情"
width=
"50%"
>
<Dialog
v-model=
"dialogVisible"
title=
"详情"
width=
"700px"
>
<el-descriptions
:column=
"2"
>
<el-descriptions
:column=
"2"
label-class-name=
"desc-label"
>
<el-descriptions-item
label=
"商户名称"
>
{{
detailData
.
merchantName
}}
</el-descriptions-item>
<el-descriptions-item
label=
"应用名称"
>
{{
detailData
.
appName
}}
</el-descriptions-item>
<el-descriptions-item
label=
"商品名称"
>
{{
detailData
.
subject
}}
</el-descriptions-item>
</el-descriptions>
<el-divider
/>
<el-descriptions
:column=
"2"
>
<el-descriptions-item
label=
"商户退款单号"
>
<el-descriptions-item
label=
"商户退款单号"
>
<el-tag
>
{{
detailData
.
merchantRefundNo
}}
</el-tag>
<el-tag
size=
"small"
>
{{
refundDetail
.
merchantRefundId
}}
</el-tag>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"商户订单号"
>
<el-descriptions-item
label=
"渠道退款单号"
>
{{
detailData
.
merchantOrderId
}}
<el-tag
type=
"success"
size=
"small"
v-if=
"refundDetail.channelRefundNo"
>
{{
refundDetail
.
channelRefundNo
}}
</el-tag>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"交易订单号"
>
{{
detailData
.
tradeNo
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions-item
label=
"商户支付单号"
>
<el-divider
/>
<el-tag
size=
"small"
>
{{
refundDetail
.
merchantOrderId
}}
</el-tag>
<el-descriptions
:column=
"2"
>
</el-descriptions-item>
<el-descriptions-item
label=
"渠道支付单号"
>
<el-tag
type=
"success"
size=
"small"
>
{{
refundDetail
.
channelOrderNo
}}
</el-tag>
</el-descriptions-item>
<el-descriptions-item
label=
"应用编号"
>
{{
refundDetail
.
appId
}}
</el-descriptions-item>
<el-descriptions-item
label=
"应用名称"
>
{{
refundDetail
.
appName
}}
</el-descriptions-item>
<el-descriptions-item
label=
"支付金额"
>
<el-descriptions-item
label=
"支付金额"
>
<el-tag
type=
"success"
>
¥
{{
parseFloat
(
detailData
.
payAmount
/
100
,
2
).
toFixed
(
2
)
}}
</el-tag>
<el-tag
type=
"success"
size=
"small"
>
¥
{{
(
refundDetail
.
payPrice
/
100.0
).
toFixed
(
2
)
}}
</el-tag
>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"退款金额"
>
<el-descriptions-item
label=
"退款金额"
>
<el-tag
class=
"tag-purple"
>
<el-tag
size=
"mini"
type=
"danger"
¥
{{
parseFloat
(
detailData
.
refundAmount
/
100
).
toFixed
(
2
)
}}
>
¥
{{
(
refundDetail
.
refundPrice
/
100.0
).
toFixed
(
2
)
}}
</el-tag
</el-tag>
>
</el-descriptions-item>
<el-descriptions-item
label=
"退款类型"
>
<dict-tag
:type=
"DICT_TYPE.PAY_REFUND_ORDER_TYPE"
:value=
"detailData.type"
/>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"退款状态"
>
<el-descriptions-item
label=
"退款状态"
>
<dict-tag
:type=
"DICT_TYPE.PAY_REFUND_ORDER_STATUS"
:value=
"detailData.status"
/>
<dict-tag
:type=
"DICT_TYPE.PAY_REFUND_STATUS"
:value=
"refundDetail.status"
/>
</el-descriptions-item>
<el-descriptions-item
label=
"创建时间"
>
{{
formatDate
(
detailData
.
createTime
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"退款成功时间"
>
{{
formatDate
(
detailData
.
successTime
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"退款失效时间"
>
{{
formatDate
(
detailData
.
expireTime
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"更新时间"
>
{{
formatDate
(
detailData
.
updateTime
)
}}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"退款时间"
>
{{
formatDate
(
refundDetail
.
successTime
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"创建时间"
>
{{
formatDate
(
refundDetail
.
createTime
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"更新时间"
>
{{
formatDate
(
refundDetail
.
updateTime
)
}}
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
<!-- 分割线 -->
<el-divider
/>
<el-divider
/>
<el-descriptions
:column=
"2"
>
<el-descriptions-item
label=
"支付渠道"
>
<el-descriptions
:column=
"2"
label-class-name=
"desc-label"
>
{{
detailData
.
channelCodeName
}}
<el-descriptions-item
label=
"退款渠道"
>
</el-descriptions-item>
<dict-tag
:type=
"DICT_TYPE.PAY_CHANNEL_CODE"
:value=
"refundDetail.channelCode"
/>
<el-descriptions-item
label=
"支付 IP"
>
{{
detailData
.
userIp
}}
</el-descriptions-item>
<el-descriptions-item
label=
"回调地址"
>
{{
detailData
.
notifyUrl
}}
</el-descriptions-item>
<el-descriptions-item
label=
"回调状态"
>
<dict-tag
:type=
"DICT_TYPE.PAY_ORDER_NOTIFY_STATUS"
:value=
"detailData.notifyStatus"
/>
</el-descriptions-item>
<el-descriptions-item
label=
"回调时间"
>
{{
formatDate
(
detailData
.
notifyTime
)
}}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"退款原因"
>
{{
refundDetail
.
reason
}}
</el-descriptions-item>
<el-descriptions-item
label=
"退款 IP"
>
{{
refundDetail
.
userIp
}}
</el-descriptions-item>
<el-descriptions-item
label=
"通知 URL"
>
{{
refundDetail
.
notifyUrl
}}
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
<!-- 分割线 -->
<el-divider
/>
<el-divider
/>
<el-descriptions
:column=
"2"
>
<el-descriptions-item
label=
"渠道订单号"
>
<el-descriptions
:column=
"2"
label-class-name=
"desc-label"
>
{{
detailData
.
channelOrderNo
}}
<el-descriptions-item
label=
"渠道错误码"
>
{{
</el-descriptions-item>
refundDetail
.
channelErrorCode
<el-descriptions-item
label=
"渠道退款单号"
>
}}
</el-descriptions-item>
{{
detailData
.
channelRefundNo
}}
<el-descriptions-item
label=
"渠道错误码描述"
>
{{
</el-descriptions-item>
refundDetail
.
channelErrorMsg
<el-descriptions-item
label=
"渠道错误码"
>
}}
</el-descriptions-item>
{{
detailData
.
channelErrorCode
}}
</el-descriptions-item>
<el-descriptions-item
label=
"渠道错误码描述"
>
{{
detailData
.
channelErrorMsg
}}
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
<br
/>
<el-descriptions
:column=
"1"
border
direction=
"vertical"
>
<el-descriptions
:column=
"1"
label-class-name=
"desc-label"
direction=
"vertical"
border
>
<el-descriptions-item
label=
"
渠道额外参数
"
>
<el-descriptions-item
label=
"
支付通道异步回调内容
"
>
{{
detailData
.
channelExtras
}}
{{
refundDetail
.
channelNotifyData
}}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"退款原因"
>
{{
detailData
.
reason
}}
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
</Dialog>
</Dialog>
</
template
>
</
template
>
...
@@ -93,7 +87,7 @@ defineOptions({ name: 'PayRefundDetail' })
...
@@ -93,7 +87,7 @@ defineOptions({ name: 'PayRefundDetail' })
const
dialogVisible
=
ref
(
false
)
// 弹窗的是否展示
const
dialogVisible
=
ref
(
false
)
// 弹窗的是否展示
const
detailLoading
=
ref
(
false
)
// 表单的加载中
const
detailLoading
=
ref
(
false
)
// 表单的加载中
const
detailData
=
ref
({})
const
refundDetail
=
ref
({})
/** 打开弹窗 */
/** 打开弹窗 */
const
open
=
async
(
id
:
number
)
=>
{
const
open
=
async
(
id
:
number
)
=>
{
...
@@ -101,7 +95,7 @@ const open = async (id: number) => {
...
@@ -101,7 +95,7 @@ const open = async (id: number) => {
// 设置数据
// 设置数据
detailLoading
.
value
=
true
detailLoading
.
value
=
true
try
{
try
{
detailData
.
value
=
await
RefundApi
.
getRefund
(
id
)
refundDetail
.
value
=
await
RefundApi
.
getRefund
(
id
)
}
finally
{
}
finally
{
detailLoading
.
value
=
false
detailLoading
.
value
=
false
}
}
...
...
src/views/pay/refund/index.vue
View file @
3f90ca3a
...
@@ -10,21 +10,6 @@
...
@@ -10,21 +10,6 @@
:inline=
"true"
:inline=
"true"
label-width=
"120px"
label-width=
"120px"
>
>
<el-form-item
label=
"所属商户"
prop=
"merchantId"
>
<el-select
v-model=
"queryParams.merchantId"
clearable
placeholder=
"请选择所属商户"
class=
"!w-240px"
>
<el-option
v-for=
"item in merchantList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"应用编号"
prop=
"appId"
>
<el-form-item
label=
"应用编号"
prop=
"appId"
>
<el-select
<el-select
v-model=
"queryParams.appId"
v-model=
"queryParams.appId"
...
@@ -35,69 +20,66 @@
...
@@ -35,69 +20,66 @@
<el-option
v-for=
"item in appList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
<el-option
v-for=
"item in appList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"
渠道编码
"
prop=
"channelCode"
>
<el-form-item
label=
"
退款渠道
"
prop=
"channelCode"
>
<el-select
<el-select
v-model=
"queryParams.channelCode"
v-model=
"queryParams.channelCode"
placeholder=
"请
输入渠道编码
"
placeholder=
"请
选择退款渠道
"
clearable
clearable
class=
"!w-240px"
class=
"!w-240px"
>
>
<el-option
<el-option
v-for=
"dict in getStrDictOptions(DICT_TYPE.PAY_CHANNEL_CODE
_TYPE
)"
v-for=
"dict in getStrDictOptions(DICT_TYPE.PAY_CHANNEL_CODE)"
:key=
"dict.value"
:key=
"dict.value"
:label=
"dict.label"
:label=
"dict.label"
:value=
"dict.value"
:value=
"dict.value"
/>
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"
退款类型"
prop=
"type
"
>
<el-form-item
label=
"
商户支付单号"
prop=
"merchantOrderId
"
>
<el-
selec
t
<el-
inpu
t
v-model=
"queryParams.
type
"
v-model=
"queryParams.
merchantOrderId
"
placeholder=
"请
选择退款类型
"
placeholder=
"请
输入商户支付单号
"
clearable
clearable
@
keyup
.
enter=
"handleQuery"
class=
"!w-240px"
class=
"!w-240px"
>
<el-option
v-for=
"dict in getIntDictOptions(DICT_TYPE.PAY_REFUND_ORDER_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
/>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"商户退款
订单号"
prop=
"merchantRefundNo
"
>
<el-form-item
label=
"商户退款
单号"
prop=
"merchantRefundId
"
>
<el-input
<el-input
v-model=
"queryParams.merchantRefund
No
"
v-model=
"queryParams.merchantRefund
Id
"
placeholder=
"请输入商户退款
订
单号"
placeholder=
"请输入商户退款单号"
clearable
clearable
@
keyup
.
enter=
"handleQuery"
@
keyup
.
enter=
"handleQuery"
class=
"!w-240px"
class=
"!w-240px"
/>
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"
退款状态"
prop=
"status
"
>
<el-form-item
label=
"
渠道支付单号"
prop=
"channelOrderNo
"
>
<el-
selec
t
<el-
inpu
t
v-model=
"queryParams.
status
"
v-model=
"queryParams.
channelOrderNo
"
placeholder=
"请
选择退款状态
"
placeholder=
"请
输入渠道支付单号
"
clearable
clearable
@
keyup
.
enter=
"handleQuery"
class=
"!w-240px"
class=
"!w-240px"
>
<el-option
v-for=
"dict in getIntDictOptions(DICT_TYPE.PAY_REFUND_ORDER_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
/>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"退款回调状态"
prop=
"notifyStatus"
>
<el-form-item
label=
"渠道退款单号"
prop=
"channelRefundNo"
>
<el-input
v-model=
"queryParams.channelRefundNo"
placeholder=
"请输入渠道退款单号"
clearable
@
keyup
.
enter=
"handleQuery"
class=
"!w-240px"
/>
</el-form-item>
<el-form-item
label=
"退款状态"
prop=
"status"
>
<el-select
<el-select
v-model=
"queryParams.
notifyS
tatus"
v-model=
"queryParams.
s
tatus"
placeholder=
"请选择
通知商户退款结果的回调
状态"
placeholder=
"请选择
退款
状态"
clearable
clearable
class=
"!w-240px"
class=
"!w-240px"
>
>
<el-option
<el-option
v-for=
"dict in getIntDictOptions(DICT_TYPE.PAY_
ORDER_NOTIFY
_STATUS)"
v-for=
"dict in getIntDictOptions(DICT_TYPE.PAY_
REFUND
_STATUS)"
:key=
"dict.value"
:key=
"dict.value"
:label=
"dict.label"
:label=
"dict.label"
:value=
"dict.value"
:value=
"dict.value"
...
@@ -116,8 +98,8 @@
...
@@ -116,8 +98,8 @@
/>
/>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button
@
click=
"handleQuery"
>
<Icon
icon=
"ep:search"
class=
"mr-5px"
/>
搜索
</el-button>
<el-button
@
click=
"handleQuery"
>
<Icon
icon=
"ep:search"
class=
"mr-5px"
/>
搜索
</el-button>
<el-button
@
click=
"resetQuery"
>
<Icon
icon=
"ep:refresh"
class=
"mr-5px"
/>
重置
</el-button>
<el-button
@
click=
"resetQuery"
>
<Icon
icon=
"ep:refresh"
class=
"mr-5px"
/>
重置
</el-button>
<el-button
<el-button
type=
"success"
type=
"success"
plain
plain
...
@@ -134,81 +116,68 @@
...
@@ -134,81 +116,68 @@
<ContentWrap>
<ContentWrap>
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"编号"
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"编号"
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"商户名称"
align=
"center"
prop=
"merchantName"
width=
"120"
/>
<el-table-column
<el-table-column
label=
"应用名称"
align=
"center"
prop=
"appName"
width=
"120"
/>
label=
"创建时间"
<el-table-column
label=
"渠道名称"
align=
"center"
prop=
"channelCodeName"
width=
"120"
/>
align=
"center"
<el-table-column
label=
"交易订单号"
align=
"center"
prop=
"tradeNo"
width=
"140"
/>
prop=
"createTime"
<el-table-column
label=
"商户订单编号"
align=
"center"
prop=
"merchantOrderId"
width=
"140"
/>
width=
"180"
<el-table-column
label=
"商户订单号"
align=
"left"
width=
"230"
>
:formatter=
"dateFormatter"
/>
<el-table-column
label=
"支付金额"
align=
"center"
prop=
"payPrice"
width=
"100"
>
<template
#
default=
"scope"
>
¥
{{
parseFloat
(
scope
.
row
.
payPrice
/
100
).
toFixed
(
2
)
}}
</
template
>
</el-table-column>
<el-table-column
label=
"退款金额"
align=
"center"
prop=
"refundPrice"
width=
"100"
>
<
template
#
default=
"scope"
>
¥
{{
parseFloat
(
scope
.
row
.
refundPrice
/
100
).
toFixed
(
2
)
}}
</
template
>
</el-table-column>
<el-table-column
label=
"退款订单号"
align=
"left"
width=
"300"
>
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<p
class=
"order-font"
>
<p
class=
"order-font"
>
<el-tag>
退款
</el-tag>
<el-tag
size=
"small"
>
商户
</el-tag>
{{
scope
.
row
.
merchantRefundId
}}
{{
scope
.
row
.
merchantRefundNo
}}
</p>
</p>
<p
class=
"order-font"
>
<p
class=
"order-font"
>
<el-tag
type=
"success"
>
交易
</el-tag>
<el-tag
size=
"small"
type=
"warning"
>
退款
</el-tag>
{{
scope
.
row
.
no
}}
{{
scope
.
row
.
merchantOrderId
}}
</p>
<p
class=
"order-font"
v-if=
"scope.row.channelRefundNo"
>
<el-tag
size=
"small"
type=
"success"
>
渠道
</el-tag>
{{
scope
.
row
.
channelRefundNo
}}
</p>
</p>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"支付订单号"
align=
"
center"
prop=
"merchantRefundNo"
width=
"25
0"
>
<el-table-column
label=
"支付订单号"
align=
"
left"
width=
"30
0"
>
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<p
class=
"order-font"
>
<p
class=
"order-font"
>
<el-tag>
交易
</el-tag>
<el-tag
size=
"small"
>
商户
</el-tag>
{{
scope
.
row
.
merchantOrderId
}}
{{
scope
.
row
.
tradeNo
}}
</p>
</p>
<p
class=
"order-font"
>
<p
class=
"order-font"
>
<el-tag
type=
"warning"
>
渠道
</el-tag>
<el-tag
size=
"small"
type=
"success"
>
渠道
</el-tag>
{{
scope
.
row
.
channelOrderNo
}}
{{
scope
.
row
.
channelOrderNo
}}
</p>
</p>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"支付金额(元)"
align=
"center"
prop=
"payAmount"
width=
"100"
>
<
template
#
default=
"scope"
>
¥
{{
parseFloat
(
scope
.
row
.
payAmount
/
100
).
toFixed
(
2
)
}}
</
template
>
</el-table-column>
<el-table-column
label=
"退款金额(元)"
align=
"center"
prop=
"refundAmount"
width=
"100"
>
<
template
#
default=
"scope"
>
¥
{{
parseFloat
(
scope
.
row
.
refundAmount
/
100
).
toFixed
(
2
)
}}
</
template
>
</el-table-column>
<el-table-column
label=
"退款类型"
align=
"center"
prop=
"type"
width=
"80"
>
<
template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.PAY_REFUND_ORDER_TYPE"
:value=
"scope.row.type"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"退款状态"
align=
"center"
prop=
"status"
>
<el-table-column
label=
"退款状态"
align=
"center"
prop=
"status"
>
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.PAY_REFUND_
ORDER_
STATUS"
:value=
"scope.row.status"
/>
<dict-tag
:type=
"DICT_TYPE.PAY_REFUND_STATUS"
:value=
"scope.row.status"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"
回调状态"
align=
"center"
prop=
"notifyStatus
"
>
<el-table-column
label=
"
退款渠道"
align=
"center"
width=
"140
"
>
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.PAY_
ORDER_NOTIFY_STATUS"
:value=
"scope.row.notifyStatus
"
/>
<dict-tag
:type=
"DICT_TYPE.PAY_
CHANNEL_CODE"
:value=
"scope.row.channelCode
"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"退款原因"
label=
"成功时间"
align=
"center"
prop=
"reason"
width=
"140"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
:formatter=
"dateFormatter"
/>
<el-table-column
label=
"退款成功时间"
align=
"center"
align=
"center"
prop=
"successTime"
prop=
"successTime"
width=
"180"
width=
"180"
:formatter=
"dateFormatter"
:formatter=
"dateFormatter"
/>
/>
<el-table-column
label=
"支付应用"
align=
"center"
prop=
"successTime"
width=
"100"
>
<
template
#
default=
"scope"
>
<span>
{{
scope
.
row
.
appName
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
fixed=
"right"
>
<el-table-column
label=
"操作"
align=
"center"
fixed=
"right"
>
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<el-button
<el-button
...
@@ -237,8 +206,8 @@
...
@@ -237,8 +206,8 @@
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
DICT_TYPE
,
getIntDictOptions
,
getStrDictOptions
}
from
'@/utils/dict'
import
{
DICT_TYPE
,
getIntDictOptions
,
getStrDictOptions
}
from
'@/utils/dict'
import
{
dateFormatter
}
from
'@/utils/formatTime'
import
{
dateFormatter
}
from
'@/utils/formatTime'
// import * as MerchantApi from '@/api/pay/merchant'
import
*
as
RefundApi
from
'@/api/pay/refund'
import
*
as
RefundApi
from
'@/api/pay/refund'
import
*
as
AppApi
from
'@/api/pay/app'
import
RefundDetail
from
'./RefundDetail.vue'
import
RefundDetail
from
'./RefundDetail.vue'
import
download
from
'@/utils/download'
import
download
from
'@/utils/download'
...
@@ -254,34 +223,20 @@ const queryParams = reactive({
...
@@ -254,34 +223,20 @@ const queryParams = reactive({
pageSize
:
10
,
pageSize
:
10
,
merchantId
:
undefined
,
merchantId
:
undefined
,
appId
:
undefined
,
appId
:
undefined
,
channelId
:
undefined
,
channelCode
:
undefined
,
channelCode
:
undefined
,
orderId
:
undefined
,
tradeNo
:
undefined
,
merchantOrderId
:
undefined
,
merchantOrderId
:
undefined
,
merchantRefundNo
:
undefined
,
merchantRefundId
:
undefined
,
notifyUrl
:
undefined
,
notifyStatus
:
undefined
,
status
:
undefined
,
status
:
undefined
,
type
:
undefined
,
payPrice
:
undefined
,
payAmount
:
undefined
,
refundPrice
:
undefined
,
refundAmount
:
undefined
,
reason
:
undefined
,
userIp
:
undefined
,
channelOrderNo
:
undefined
,
channelOrderNo
:
undefined
,
channelRefundNo
:
undefined
,
channelRefundNo
:
undefined
,
channelErrorCode
:
undefined
,
createTime
:
[],
channelErrorMsg
:
undefined
,
successTime
:
[]
channelExtras
:
undefined
,
expireTime
:
[],
successTime
:
[],
notifyTime
:
[],
createTime
:
[]
})
})
const
queryFormRef
=
ref
()
// 搜索的表单
const
queryFormRef
=
ref
()
// 搜索的表单
const
exportLoading
=
ref
(
false
)
// 导出等待
const
exportLoading
=
ref
(
false
)
// 导出等待
const
appList
=
ref
([])
// 支付应用列表集合
const
appList
=
ref
([])
// 支付应用列表集合
const
merchantList
=
ref
([])
// 商户列表
/** 搜索按钮操作 */
/** 搜索按钮操作 */
const
handleQuery
=
()
=>
{
const
handleQuery
=
()
=>
{
...
@@ -303,7 +258,7 @@ const getList = async () => {
...
@@ -303,7 +258,7 @@ const getList = async () => {
/** 重置按钮操作 */
/** 重置按钮操作 */
const
resetQuery
=
()
=>
{
const
resetQuery
=
()
=>
{
queryFormRef
.
value
.
resetFields
()
queryFormRef
.
value
?
.
resetFields
()
handleQuery
()
handleQuery
()
}
}
...
@@ -331,10 +286,7 @@ const openDetail = (id: number) => {
...
@@ -331,10 +286,7 @@ const openDetail = (id: number) => {
/** 初始化 **/
/** 初始化 **/
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
await
getList
()
await
getList
()
// 加载商户列表
appList
.
value
=
await
AppApi
.
getAppList
()
// merchantList.value = await MerchantApi.getMerchantListByName()
// TODO 芋艿:候选少一个查询应用列表的接口
// appList.value = await AppApi.getAppListByMerchantId()
})
})
</
script
>
</
script
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment