feat(shop): 新增线下付款支持及优化Dashboard数据统计
- 新增线下付款(payType=9)支付方式,支持订单中标识和确认收款操作 - 实现商家确认线下付款后订单进入待发货状态功能 - 更新支付方式组件和订单列表及详情页的支付状态显示 - 优化shop/dashboard快捷操作按钮为商城常用功能,修正快速入口路由路径 - 修复Dashboard待发货订单数统计时未过滤商城订单导致数据不准的问题 - 修复Dashboard运行天数为0的异常,将租户信息请求独立处理,避免某些请求失败影响 - 修复statisticsStore中couponUsedCount与getter同名冲突,改名为safeCouponUsedCount并同步更新引用
This commit is contained in:
@@ -93,10 +93,15 @@
|
||||
v-if="record.payType === 8"
|
||||
color="blue"
|
||||
>货到付款</a-tag>
|
||||
<!-- 线下付款标识 -->
|
||||
<a-tag
|
||||
v-if="record.payType === 9"
|
||||
color="orange"
|
||||
>线下付款</a-tag>
|
||||
|
||||
<!-- 支付状态 -->
|
||||
<a-tag
|
||||
v-if="record.payStatus == 1 && record.payType !== 8"
|
||||
v-if="record.payStatus == 1 && record.payType !== 8 && record.payType !== 9"
|
||||
color="green"
|
||||
@click.stop="updatePayStatus(record)"
|
||||
class="cursor-pointer"
|
||||
@@ -109,6 +114,20 @@
|
||||
class="cursor-pointer"
|
||||
>待收货付款</a-tag
|
||||
>
|
||||
<a-tag
|
||||
v-else-if="record.payStatus == 1 && record.payType === 9"
|
||||
color="green"
|
||||
@click.stop="updatePayStatus(record)"
|
||||
class="cursor-pointer"
|
||||
>已确认收款</a-tag
|
||||
>
|
||||
<a-tag
|
||||
v-else-if="record.payStatus == 0 && record.payType === 9"
|
||||
color="orange"
|
||||
@click.stop="updatePayStatus(record)"
|
||||
class="cursor-pointer"
|
||||
>待确认收款</a-tag
|
||||
>
|
||||
<a-tag
|
||||
v-else-if="record.payStatus == 0 || record.payStatus == null"
|
||||
@click.stop="updatePayStatus(record)"
|
||||
@@ -185,6 +204,10 @@
|
||||
<template v-if="record.payType === 8">
|
||||
<a-tag color="blue">货到付款</a-tag>
|
||||
</template>
|
||||
<!-- 线下付款特殊标识 -->
|
||||
<template v-else-if="record.payType === 9">
|
||||
<a-tag color="orange">线下付款</a-tag>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-for="item in getPayType()">
|
||||
<template v-if="record.payStatus == 1">
|
||||
@@ -230,8 +253,8 @@
|
||||
<!-- 查看详情 - 所有状态都可以查看 -->
|
||||
<a @click.stop="openEdit(record)"> <EyeOutlined /> 详情 </a>
|
||||
|
||||
<!-- 未付款状态的操作 -->
|
||||
<template v-if="!record.payStatus && record.orderStatus === 0">
|
||||
<!-- 未付款状态的操作(排除线下付款) -->
|
||||
<template v-if="!record.payStatus && record.orderStatus === 0 && record.payType !== 9">
|
||||
<a @click.stop="handleEditOrder(record)">
|
||||
<EditOutlined /> 修改
|
||||
</a>
|
||||
@@ -240,6 +263,16 @@
|
||||
</a>
|
||||
</template>
|
||||
|
||||
<!-- 线下付款·待确认收款状态的操作 -->
|
||||
<template v-if="!record.payStatus && record.orderStatus === 0 && record.payType === 9">
|
||||
<a @click.stop="handleConfirmOfflinePayment(record)" class="ele-text-success">
|
||||
<CheckCircleOutlined /> 确认收款
|
||||
</a>
|
||||
<a @click.stop="handleCancelOrder(record)">
|
||||
<span class="ele-text-warning"> <CloseOutlined /> 关闭 </span>
|
||||
</a>
|
||||
</template>
|
||||
|
||||
<!-- 已付款未发货状态的操作 -->
|
||||
<template
|
||||
v-if="
|
||||
@@ -371,7 +404,8 @@
|
||||
repairOrder,
|
||||
removeShopOrder,
|
||||
removeBatchShopOrder,
|
||||
updateShopOrder, refundShopOrder
|
||||
updateShopOrder, refundShopOrder,
|
||||
confirmOfflinePayment
|
||||
} from '@/api/shop/shopOrder';
|
||||
import { updateUser } from '@/api/system/user';
|
||||
import { getPayType } from '@/utils/shop';
|
||||
@@ -627,6 +661,35 @@
|
||||
});
|
||||
};
|
||||
|
||||
// 确认线下付款收款
|
||||
const handleConfirmOfflinePayment = (record: ShopOrder) => {
|
||||
let remarksValue = '';
|
||||
Modal.confirm({
|
||||
title: '确认线下收款',
|
||||
content: createVNode('div', null, [
|
||||
createVNode('p', { style: 'margin-bottom: 8px' }, '确认已收到该订单的线下付款(微信转账/银行汇款等)?'),
|
||||
createVNode('p', { style: 'margin-bottom: 8px; color: #999; font-size: 12px' }, `订单号:${record.orderNo}`),
|
||||
createVNode('input', {
|
||||
id: 'offline-remarks-input',
|
||||
placeholder: '可填写备注(如:微信转账已收到)',
|
||||
style: 'width: 100%; padding: 4px 8px; border: 1px solid #d9d9d9; border-radius: 4px;',
|
||||
onInput: (e: any) => { remarksValue = e.target.value; }
|
||||
})
|
||||
]),
|
||||
okText: '确认收款',
|
||||
okType: 'success',
|
||||
onOk: async () => {
|
||||
try {
|
||||
await confirmOfflinePayment(record.orderId!, remarksValue || undefined);
|
||||
message.success('确认收款成功,订单已进入待发货状态');
|
||||
reload();
|
||||
} catch (error: any) {
|
||||
message.error(error.message || '确认收款失败');
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// 发货处理
|
||||
const handleDelivery = (record: ShopOrder) => {
|
||||
current.value = record;
|
||||
|
||||
Reference in New Issue
Block a user