fix(order): 优化订单状态判断逻辑并修复页面跳转参数

- 修改送水订单跳转链接,添加tab参数支持
- 更新骑手端页面样式,添加业务渐变背景色
- 将骑手端"工资明细"改为"收入明细"
- 优化订单配送状态判断逻辑,支持配送未开始的订单修改取消
- 更新订单操作提示文案,从"待配送"改为"配送未开始"
- 实现页面tab参数解析,支持通过URL参数指定默认标签页
- 调整按钮文字顺序,将"订单修改/取消"改为"修改订单/取消订单"
- 更新服务器API地址配置,切换到新的生产环境域名
This commit is contained in:
2026-03-10 11:22:34 +08:00
parent 49c801c751
commit a6749bcedb
4 changed files with 40 additions and 17 deletions

View File

@@ -261,15 +261,18 @@ const UserTicketList = () => {
return d.isValid() ? d.format('YYYY年MM月DD日') : v;
};
// Allow users to modify/cancel before delivery starts (e.g. 待派单 / 待配送).
const isTicketOrderPendingDelivery = (order: GltTicketOrder) => {
if (!order?.id) return false;
if (Number(order.status) === 1) return false;
if (Number((order as any)?.deleted) === 1) return false;
if (order.receiveConfirmTime || order.sendEndTime || order.sendStartTime) return false;
const ds = order.deliveryStatus;
if (typeof ds === 'number') return ds === 10;
return !!order.riderId;
const ds = Number((order as any)?.deliveryStatus);
// If backend didn't set deliveryStatus yet, treat it as pending.
if (!Number.isFinite(ds)) return true;
// 0/10: before delivery starts
return ds === 0 || ds === 10;
};
const handleOrderModify = async (order: GltTicketOrder) => {
@@ -278,7 +281,7 @@ const UserTicketList = () => {
return;
}
if (!isTicketOrderPendingDelivery(order)) {
Taro.showToast({ title: '仅“待配送”订单可修改', icon: 'none' });
Taro.showToast({ title: '仅配送未开始的订单可修改', icon: 'none' });
return;
}
Taro.navigateTo({ url: `/user/ticket/use?orderId=${order.id}` });
@@ -290,7 +293,7 @@ const UserTicketList = () => {
return;
}
if (!isTicketOrderPendingDelivery(order)) {
Taro.showToast({ title: '仅“待配送”订单可取消', icon: 'none' });
Taro.showToast({ title: '仅配送未开始的订单可取消', icon: 'none' });
return;
}
@@ -369,12 +372,23 @@ const UserTicketList = () => {
}
useDidShow(() => {
if (activeTab === 'ticket') {
reloadTickets(true).then();
} else {
reloadOrders(true).then();
const tabParam = Taro.getCurrentInstance().router?.params?.tab
const nextTab =
tabParam === 'ticket' || tabParam === 'order'
? tabParam
: undefined
if (nextTab && nextTab !== activeTab) {
setActiveTab(nextTab)
}
});
const tabToLoad = nextTab || activeTab
if (tabToLoad === 'ticket') {
reloadTickets(true).then()
} else {
reloadOrders(true).then()
}
})
return (
<ConfigProvider>
@@ -564,7 +578,7 @@ const UserTicketList = () => {
void handleOrderModify(item);
}}
>
</Button>
<Button
size="small"
@@ -575,7 +589,7 @@ const UserTicketList = () => {
void handleOrderCancel(item);
}}
>
</Button>
</View>
) : null}