fix(order): 优化订单状态判断逻辑并修复页面跳转参数
- 修改送水订单跳转链接,添加tab参数支持 - 更新骑手端页面样式,添加业务渐变背景色 - 将骑手端"工资明细"改为"收入明细" - 优化订单配送状态判断逻辑,支持配送未开始的订单修改取消 - 更新订单操作提示文案,从"待配送"改为"配送未开始" - 实现页面tab参数解析,支持通过URL参数指定默认标签页 - 调整按钮文字顺序,将"订单修改/取消"改为"修改订单/取消订单" - 更新服务器API地址配置,切换到新的生产环境域名
This commit is contained in:
@@ -226,8 +226,9 @@ function Home() {
|
|||||||
title: '送水订单',
|
title: '送水订单',
|
||||||
icon: <Agenda size={30} />,
|
icon: <Agenda size={30} />,
|
||||||
onClick: () => {
|
onClick: () => {
|
||||||
if (!ensureLoggedIn('/user/ticket/index')) return
|
const url = '/user/ticket/index?tab=order'
|
||||||
Taro.navigateTo({ url: '/user/ticket/index' })
|
if (!ensureLoggedIn(url)) return
|
||||||
|
Taro.navigateTo({ url })
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -74,7 +74,14 @@ const DealerIndex: React.FC = () => {
|
|||||||
<View>
|
<View>
|
||||||
{/*头部信息*/}
|
{/*头部信息*/}
|
||||||
{dealerUser && (
|
{dealerUser && (
|
||||||
<View className="px-4 py-6 relative overflow-hidden" style={themeStyles.primaryBackground}>
|
<View
|
||||||
|
className="px-4 py-6 relative overflow-hidden"
|
||||||
|
style={{
|
||||||
|
...themeStyles.primaryBackground,
|
||||||
|
background: businessGradients.order.processing,
|
||||||
|
color: '#ffffff'
|
||||||
|
}}
|
||||||
|
>
|
||||||
{/* 装饰性背景元素 - 小程序兼容版本 */}
|
{/* 装饰性背景元素 - 小程序兼容版本 */}
|
||||||
<View className="absolute w-32 h-32 rounded-full" style={{
|
<View className="absolute w-32 h-32 rounded-full" style={{
|
||||||
backgroundColor: 'rgba(255, 255, 255, 0.1)',
|
backgroundColor: 'rgba(255, 255, 255, 0.1)',
|
||||||
@@ -218,7 +225,7 @@ const DealerIndex: React.FC = () => {
|
|||||||
</View>
|
</View>
|
||||||
</Grid.Item>
|
</Grid.Item>
|
||||||
|
|
||||||
<Grid.Item text={'工资明细'} onClick={() => navigateToPage('/rider/withdraw/index')}>
|
<Grid.Item text={'收入明细'} onClick={() => navigateToPage('/rider/withdraw/index')}>
|
||||||
<View className="text-center">
|
<View className="text-center">
|
||||||
<View className="w-12 h-12 bg-green-50 rounded-xl flex items-center justify-center mx-auto mb-2">
|
<View className="w-12 h-12 bg-green-50 rounded-xl flex items-center justify-center mx-auto mb-2">
|
||||||
<Purse color="#10b981" size="20"/>
|
<Purse color="#10b981" size="20"/>
|
||||||
|
|||||||
@@ -261,15 +261,18 @@ const UserTicketList = () => {
|
|||||||
return d.isValid() ? d.format('YYYY年MM月DD日') : v;
|
return d.isValid() ? d.format('YYYY年MM月DD日') : v;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Allow users to modify/cancel before delivery starts (e.g. 待派单 / 待配送).
|
||||||
const isTicketOrderPendingDelivery = (order: GltTicketOrder) => {
|
const isTicketOrderPendingDelivery = (order: GltTicketOrder) => {
|
||||||
if (!order?.id) return false;
|
if (!order?.id) return false;
|
||||||
if (Number(order.status) === 1) return false;
|
if (Number(order.status) === 1) return false;
|
||||||
if (Number((order as any)?.deleted) === 1) return false;
|
if (Number((order as any)?.deleted) === 1) return false;
|
||||||
if (order.receiveConfirmTime || order.sendEndTime || order.sendStartTime) return false;
|
if (order.receiveConfirmTime || order.sendEndTime || order.sendStartTime) return false;
|
||||||
|
|
||||||
const ds = order.deliveryStatus;
|
const ds = Number((order as any)?.deliveryStatus);
|
||||||
if (typeof ds === 'number') return ds === 10;
|
// If backend didn't set deliveryStatus yet, treat it as pending.
|
||||||
return !!order.riderId;
|
if (!Number.isFinite(ds)) return true;
|
||||||
|
// 0/10: before delivery starts
|
||||||
|
return ds === 0 || ds === 10;
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleOrderModify = async (order: GltTicketOrder) => {
|
const handleOrderModify = async (order: GltTicketOrder) => {
|
||||||
@@ -278,7 +281,7 @@ const UserTicketList = () => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!isTicketOrderPendingDelivery(order)) {
|
if (!isTicketOrderPendingDelivery(order)) {
|
||||||
Taro.showToast({ title: '仅“待配送”订单可修改', icon: 'none' });
|
Taro.showToast({ title: '仅配送未开始的订单可修改', icon: 'none' });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Taro.navigateTo({ url: `/user/ticket/use?orderId=${order.id}` });
|
Taro.navigateTo({ url: `/user/ticket/use?orderId=${order.id}` });
|
||||||
@@ -290,7 +293,7 @@ const UserTicketList = () => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!isTicketOrderPendingDelivery(order)) {
|
if (!isTicketOrderPendingDelivery(order)) {
|
||||||
Taro.showToast({ title: '仅“待配送”订单可取消', icon: 'none' });
|
Taro.showToast({ title: '仅配送未开始的订单可取消', icon: 'none' });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -369,12 +372,23 @@ const UserTicketList = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
useDidShow(() => {
|
useDidShow(() => {
|
||||||
if (activeTab === 'ticket') {
|
const tabParam = Taro.getCurrentInstance().router?.params?.tab
|
||||||
reloadTickets(true).then();
|
const nextTab =
|
||||||
} else {
|
tabParam === 'ticket' || tabParam === 'order'
|
||||||
reloadOrders(true).then();
|
? tabParam
|
||||||
|
: undefined
|
||||||
|
|
||||||
|
if (nextTab && nextTab !== activeTab) {
|
||||||
|
setActiveTab(nextTab)
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
const tabToLoad = nextTab || activeTab
|
||||||
|
if (tabToLoad === 'ticket') {
|
||||||
|
reloadTickets(true).then()
|
||||||
|
} else {
|
||||||
|
reloadOrders(true).then()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ConfigProvider>
|
<ConfigProvider>
|
||||||
@@ -564,7 +578,7 @@ const UserTicketList = () => {
|
|||||||
void handleOrderModify(item);
|
void handleOrderModify(item);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
订单修改
|
修改订单
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
size="small"
|
size="small"
|
||||||
@@ -575,7 +589,7 @@ const UserTicketList = () => {
|
|||||||
void handleOrderCancel(item);
|
void handleOrderCancel(item);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
订单取消
|
取消订单
|
||||||
</Button>
|
</Button>
|
||||||
</View>
|
</View>
|
||||||
) : null}
|
) : null}
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ import {User} from "@/api/system/user/model";
|
|||||||
// 模版套餐ID - 请根据实际情况修改
|
// 模版套餐ID - 请根据实际情况修改
|
||||||
export const TEMPLATE_ID = '10584';
|
export const TEMPLATE_ID = '10584';
|
||||||
// 服务接口 - 请根据实际情况修改
|
// 服务接口 - 请根据实际情况修改
|
||||||
export const SERVER_API_URL = 'https://glt-server.websoft.top/api';
|
// export const SERVER_API_URL = 'https://glt-server.websoft.top/api';
|
||||||
|
export const SERVER_API_URL = 'https://server.websoft.top/api';
|
||||||
// export const SERVER_API_URL = 'http://127.0.0.1:8000/api';
|
// export const SERVER_API_URL = 'http://127.0.0.1:8000/api';
|
||||||
/**
|
/**
|
||||||
* 保存用户信息到本地存储
|
* 保存用户信息到本地存储
|
||||||
|
|||||||
Reference in New Issue
Block a user