mirror of
https://gitee.com/bootx/dax-pay-ui.git
synced 2025-09-02 18:36:40 +00:00
feat 各类订单和记录交互调整
This commit is contained in:
@@ -83,10 +83,10 @@ export interface PayOrder extends BaseEntity {
|
||||
title?: string
|
||||
// 是否是异步支付
|
||||
asyncPay?: boolean
|
||||
// 是否是组合支付
|
||||
combinationPay?: boolean
|
||||
// 异步支付通道
|
||||
asyncChannel?: boolean
|
||||
// 是否是组合支付
|
||||
combinationPay?: boolean
|
||||
// 关联网关支付号
|
||||
gatewayOrderNo?: number
|
||||
// 金额
|
||||
|
@@ -11,7 +11,7 @@
|
||||
<a-form ref="formRef" :model="form" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||
<template :key="o.channel" v-for="o in form.refundChannels">
|
||||
<a-form-item :label="dictConvert('PayChannel', o.channel)" name="name">
|
||||
<a-input-number :min="1" :max="o.maxAmount" :precision="0" v-model:value="o.amount" />
|
||||
<a-input-number :min="0" :max="o.maxAmount" :precision="0" v-model:value="o.amount" />
|
||||
</a-form-item>
|
||||
</template>
|
||||
<a-form-item label="原因" name="reason">
|
||||
|
@@ -18,20 +18,19 @@
|
||||
<a-descriptions-item label="本地订单ID">
|
||||
{{ form.paymentId }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="本地退款ID">
|
||||
<a-descriptions-item label="本地退款ID" v-if="form.refundId">
|
||||
{{ form.refundId }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="网关订单号">
|
||||
{{ form.gatewayOrderNo }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="交易类型">
|
||||
<a-tag>{{ dictConvert('PayReconcileTrade', form.repairType) }}</a-tag>
|
||||
<a-tag>{{ dictConvert('PayReconcileTrade', form.type) }}</a-tag>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="创建时间">
|
||||
{{ form.createTime }}
|
||||
</a-descriptions-item>
|
||||
</a-descriptions>
|
||||
|
||||
<template #footer>
|
||||
<a-space>
|
||||
<a-button key="cancel" @click="handleCancel">取消</a-button>
|
||||
|
@@ -11,7 +11,7 @@
|
||||
<vxe-column field="gatewayOrderNo" title="网关订单号" />
|
||||
<vxe-column field="repairType" title="交易类型">
|
||||
<template #default="{ row }">
|
||||
<a-tag>{{ dictConvert('PayReconcileTrade', row.repairType) }}</a-tag>
|
||||
<a-tag>{{ dictConvert('PayReconcileTrade', row.type) }}</a-tag>
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="createTime" title="创建时间" />
|
||||
|
@@ -21,6 +21,9 @@
|
||||
<a-descriptions-item label="退款通道">
|
||||
{{ form.gatewayOrderNo }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="状态">
|
||||
<a-tag>{{ dictConvert('PayRefundStatus', form.status) }}</a-tag>
|
||||
</a-descriptions-item>
|
||||
</a-descriptions>
|
||||
|
||||
<template #footer>
|
||||
|
@@ -10,6 +10,11 @@
|
||||
</vxe-column>
|
||||
<vxe-column field="orderAmount" title="订单金额" />
|
||||
<vxe-column field="amount" title="退款金额" />
|
||||
<vxe-column field="refundStatus" title="状态">
|
||||
<template #default="{ row }">
|
||||
<a-tag>{{ dictConvert('PayRefundStatus', row.status) }}</a-tag>
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="payChannelId" title="通道支付单ID" />
|
||||
<vxe-column fixed="right" width="60" :showOverflow="false" title="操作">
|
||||
<template #default="{ row }">
|
||||
|
@@ -52,6 +52,16 @@ export function refund(params) {
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 退款信息同步
|
||||
*/
|
||||
export function syncById(id) {
|
||||
return defHttp.post<Result<void>>({
|
||||
url: '/order/refund/syncById',
|
||||
params: { id },
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 退款记录
|
||||
*/
|
||||
@@ -64,6 +74,10 @@ export interface RefundOrder extends BaseEntity {
|
||||
refundNo?: string
|
||||
// 网关订单号
|
||||
gatewayOrderNo?: string
|
||||
// 是否是异步支付
|
||||
asyncPay?: boolean
|
||||
// 异步支付通道
|
||||
asyncChannel?: boolean
|
||||
// 标题
|
||||
title?: string
|
||||
// 金额
|
||||
@@ -100,6 +114,8 @@ export interface RefundChannelOrder extends BaseEntity {
|
||||
orderAmount?: number
|
||||
// 退款金额
|
||||
amount?: number
|
||||
// 状态
|
||||
status?: string
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -33,18 +33,27 @@
|
||||
<vxe-column field="title" title="原支付标题" />
|
||||
<vxe-column field="amount" title="退款金额" sortable />
|
||||
<vxe-column field="refundableBalance" title="剩余可退金额" sortable />
|
||||
<vxe-column field="gatewayOrderNo" title="网关订单号" :visible="false" />
|
||||
<vxe-column field="async" title="包含异步通道">
|
||||
<template #default="{ row }">
|
||||
<a-tag color="green">{{ row.asyncPay ? '是' : '否' }}</a-tag>
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="gatewayOrderNo" title="支付网关订单号" :visible="false" />
|
||||
<vxe-column field="refundTime" title="退款时间" sortable />
|
||||
<vxe-column field="refundStatus" title="状态">
|
||||
<template #default="{ row }">
|
||||
<a-tag>{{ dictConvert('PayRefundStatus', row.status) }}</a-tag>
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column fixed="right" width="140" :showOverflow="false" title="操作">
|
||||
<vxe-column field="errorMsg" title="提示信息" />
|
||||
<vxe-column fixed="right" width="180" :showOverflow="false" title="操作">
|
||||
<template #default="{ row }">
|
||||
<a-link @click="show(row)">查看</a-link>
|
||||
<a-divider type="vertical" />
|
||||
<a-link @click="showChannel(row)">通道订单</a-link>
|
||||
<a-divider type="vertical" />
|
||||
<!-- 只有退款中的异步订单才可以同步 -->
|
||||
<a-link :disabled="!row.asyncPay || !row.status === 'progress'" @click="sync(row)">同步</a-link>
|
||||
</template>
|
||||
</vxe-column>
|
||||
</vxe-table>
|
||||
@@ -66,7 +75,7 @@
|
||||
<script lang="ts" setup>
|
||||
import { computed, onMounted } from 'vue'
|
||||
import { $ref } from 'vue/macros'
|
||||
import { page } from './RefundOrder.api'
|
||||
import { page, syncById } from './RefundOrder.api'
|
||||
import useTablePage from '/@/hooks/bootx/useTablePage'
|
||||
import RefundOrderInfo from './RefundOrderInfo.vue'
|
||||
import { VxeTable, VxeTableInstance, VxeToolbarInstance } from 'vxe-table'
|
||||
@@ -142,6 +151,27 @@
|
||||
})
|
||||
return Promise.resolve()
|
||||
}
|
||||
|
||||
/**
|
||||
* 退款信息同步
|
||||
*/
|
||||
function sync(record) {
|
||||
createConfirm({
|
||||
iconType: 'warning',
|
||||
title: '警告',
|
||||
content: '是否同步退款信息',
|
||||
onOk: () => {
|
||||
loading.value = true
|
||||
syncById(record.id).then(({ data }) => {
|
||||
// TODO 后期可以根据返回结果进行相应的处理
|
||||
createMessage.success('同步成功')
|
||||
console.log(data)
|
||||
queryPage()
|
||||
})
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看
|
||||
*/
|
||||
|
@@ -22,14 +22,14 @@
|
||||
<a-descriptions-item label="本地业务号">
|
||||
{{ form.orderNo }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="支付">
|
||||
{{ dictConvert('PayRepairSource', form.repairSource) }}
|
||||
<a-descriptions-item label="修复类型">
|
||||
{{ dictConvert('PayRepairType', form.repairType) }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="修复来源">
|
||||
{{ dictConvert('PayRepairSource', form.repairSource) }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="修复方式">
|
||||
{{ dictConvert('PayRepairType', form.repairWay) }}
|
||||
{{ dictConvert('PayRepairWay', form.repairWay) }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="修复通道">
|
||||
{{ dictConvert('AsyncPayChannel', form.asyncChannel) }}
|
||||
|
@@ -33,9 +33,9 @@
|
||||
<a-tag>{{ dictConvert('PayRepairType', row.repairType) }}</a-tag>
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="repairType" title="修复方式">
|
||||
<vxe-column field="repairWay" title="修复方式">
|
||||
<template #default="{ row }">
|
||||
<a-tag>{{ dictConvert('PayRepairWay', row.repairType) || dictConvert('RefundRepairWay', row.repairType) }}</a-tag>
|
||||
<a-tag>{{ dictConvert('PayRepairWay', row.repairWay) || dictConvert('RefundRepairWay', row.repairWay) }}</a-tag>
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="createTime" title="修复时间" />
|
||||
@@ -172,6 +172,7 @@
|
||||
* 查看订单单信息
|
||||
*/
|
||||
function showOrder(record: PayRepairRecord) {
|
||||
console.log(record)
|
||||
if (record.repairType === 'pay') {
|
||||
payOrderInfo.init(record.orderId)
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user