优化下单流程

This commit is contained in:
2025-07-30 15:40:51 +08:00
parent b626e615c6
commit 80ca721826
3 changed files with 249 additions and 26 deletions

View File

@@ -36,11 +36,16 @@ const tabs = [
},
{
index: 3,
key: '待收货',
title: '待收货'
},
{
index: 4,
key: '已收货',
title: '已收货'
},
{
index: 4,
index: 5,
key: '已完成',
title: '已完成'
}
@@ -65,34 +70,49 @@ function OrderList(props: OrderListProps) {
// 获取订单状态文本
const getOrderStatusText = (order: ShopOrder) => {
console.log(order,'order')
if (!order.payStatus) return '待付款';
if (order.payStatus && order.deliveryStatus === 10) return '待发货';
if (order.deliveryStatus === 20) return '待收货';
if (order.deliveryStatus === 30) return '已收货';
if (order.orderStatus === 1) return '已完成';
// 优先检查订单状态
if (order.orderStatus === 2) return '已取消';
if (order.orderStatus === 4) return '退款申请中';
if (order.orderStatus === 5) return '退款被拒绝';
if (order.orderStatus === 6) return '退款成功';
if (order.orderStatus === 7) return '客户端申请退款';
// 检查支付状态 (payStatus为boolean类型false/0表示未付款true/1表示已付款)
if (!order.payStatus || order.payStatus === false) return '待付款';
// 已付款后检查发货状态
if (order.deliveryStatus === 10) return '待发货';
if (order.deliveryStatus === 20) return '待收货';
if (order.deliveryStatus === 30) return '已收货';
// 最后检查订单完成状态
if (order.orderStatus === 1) return '已完成';
if (order.orderStatus === 0) return '未使用';
return '未知状态';
};
const getOrderStatusParams = (index: string | number) => {
let params: { payStatus?: number; deliveryStatus?: number; orderStatus?: number; userId?: number } = {};
let params: { payStatus?: boolean | number; deliveryStatus?: number; orderStatus?: number; userId?: number } = {};
// 添加用户ID过滤
params.userId = Taro.getStorageSync('UserId');
switch (index) {
case '1': // 待付款
params.payStatus = 0;
params.payStatus = false; // 或者 0取决于后端接口期望的类型
break;
case '2': // 待发货
params.payStatus = 1;
params.payStatus = true; // 或者 1
params.deliveryStatus = 10;
break;
case '3': // 收货
case '3': // 收货
params.deliveryStatus = 20;
break;
case '4': // 已收货
params.deliveryStatus = 30;
break;
case '4': // 已完成
case '5': // 已完成
params.orderStatus = 1;
break;
case '0': // 全部
@@ -278,18 +298,22 @@ function OrderList(props: OrderListProps) {
{/* 操作按钮 */}
<Space className={'btn flex justify-end'}>
{item.payStatus && (
{/* 待付款状态:显示取消订单和立即支付 */}
{(!item.payStatus || item.payStatus === false) && item.orderStatus !== 2 && (
<Space>
<Button size={'small'} onClick={(e) => {e.stopPropagation(); cancelOrder(item)}}></Button>
<Button size={'small'} type="primary" onClick={(e) => {e.stopPropagation(); console.log('立即支付')}}></Button>
</Space>
)}
{/* 待收货状态:显示确认收货 */}
{item.deliveryStatus === 20 && (
<Button size={'small'} type="primary" onClick={(e) => {e.stopPropagation(); confirmReceive(item)}}></Button>
)}
{/* 已完成状态:显示申请退款 */}
{item.orderStatus === 1 && (
<Button size={'small'} onClick={(e) => {e.stopPropagation(); console.log('申请退款')}}>退</Button>
)}
{/* 退款相关状态的按钮可以在这里添加 */}
</Space>
</Space>
</Cell>

View File

@@ -14,19 +14,28 @@ const OrderDetail = () => {
const router = Taro.getCurrentInstance().router;
const orderId = router?.params?.orderId;
const getOrderStatusText = (orderStatus?: number, payStatus?: number) => {
if (payStatus === 0) return '待付款';
switch (orderStatus) {
case 0: return '未使用';
case 1: return '已完成';
case 2: return '已取消';
case 3: return '取消中';
case 4: return '退款申请中';
case 5: return '退款被拒绝';
case 6: return '退款成功';
case 7: return '客户端申请退款';
default: return '未知状态';
}
const getOrderStatusText = (order: ShopOrder) => {
// 优先检查订单状态
if (order.orderStatus === 2) return '已取消';
if (order.orderStatus === 3) return '取消中';
if (order.orderStatus === 4) return '退款申请中';
if (order.orderStatus === 5) return '退款被拒绝';
if (order.orderStatus === 6) return '退款成功';
if (order.orderStatus === 7) return '客户端申请退款';
// 检查支付状态 (payStatus为boolean类型)
if (!order.payStatus || order.payStatus === false) return '待付款';
// 已付款后检查发货状态
if (order.deliveryStatus === 10) return '待发货';
if (order.deliveryStatus === 20) return '待收货';
if (order.deliveryStatus === 30) return '已收货';
// 最后检查订单完成状态
if (order.orderStatus === 1) return '已完成';
if (order.orderStatus === 0) return '未使用';
return '未知状态';
};
const getPayTypeText = (payType?: number) => {
@@ -68,7 +77,7 @@ const OrderDetail = () => {
<CellGroup title="订单信息">
<Cell title="订单编号" description={order.orderNo} />
<Cell title="下单时间" description={dayjs(order.createTime).format('YYYY-MM-DD HH:mm:ss')} />
<Cell title="订单状态" description={getOrderStatusText(order.orderStatus, order.payStatus)} />
<Cell title="订单状态" description={getOrderStatusText(order)} />
</CellGroup>
<CellGroup title="商品信息">