Compare commits

...

1 Commits

Author SHA1 Message Date
24d28d0aaa fix(order): 优化收货地址及收货人信息处理逻辑
- 切换开发环境,方便本地调试
- 在订单模型中新增收货人姓名和手机号码字段
- 订单列表中优先显示收货人信息,fallback为客户昵称和电话
- 订单编辑与新建时优化收货地址选择逻辑
- 编辑模式优先使用默认地址,新建模式使用订单关联地址
- 异步获取地址失败时添加错误日志方便排查
2026-05-06 17:46:30 +08:00
4 changed files with 27 additions and 14 deletions

View File

@@ -2,7 +2,7 @@
// ============ 环境切换开关(修改这里即可切换环境)============ // ============ 环境切换开关(修改这里即可切换环境)============
// 可选值: 'development' | 'test' | 'production' // 可选值: 'development' | 'test' | 'production'
const CURRENT_ENV = 'production' const CURRENT_ENV = 'development'
// =========================================================== // ===========================================================
export const ENV_CONFIG = { export const ENV_CONFIG = {

View File

@@ -62,6 +62,10 @@ export interface GltTicketOrder {
avatar?: string; avatar?: string;
// 手机号码 // 手机号码
phone?: string; phone?: string;
// 收货人姓名
receiverName?: string;
// 收货人手机号码
receiverPhone?: string;
// 排序(数字越小越靠前) // 排序(数字越小越靠前)
sortNumber?: number; sortNumber?: number;
// 备注 // 备注

View File

@@ -410,7 +410,7 @@ export default function RiderOrders() {
<View className="mt-3 bg-white rounded-lg"> <View className="mt-3 bg-white rounded-lg">
<View className="text-sm text-gray-700"> <View className="text-sm text-gray-700">
<Text className="text-gray-500"></Text> <Text className="text-gray-500"></Text>
<Text>{o.nickname || '-'} {o.phone ? `(${o.phone})` : ''}</Text> <Text>{o.receiverName || o.nickname} {o.receiverPhone ? `(${o.receiverPhone})` : o.phone}</Text>
</View> </View>
<View className="text-sm text-gray-700 mt-1"> <View className="text-sm text-gray-700 mt-1">
<Text className="text-gray-500"></Text> <Text className="text-gray-500"></Text>

View File

@@ -834,21 +834,30 @@ const OrderConfirm = () => {
} }
} }
const addrId = Number(editingOrderRes.addressId) // 编辑模式下优先使用默认地址(用户刚从地址列表选择的)
const addrIdSafe = Number.isFinite(addrId) && addrId > 0 ? addrId : undefined // 新下单模式使用订单关联的地址
if (addrIdSafe) { let targetAddr: ShopUserAddress | undefined = undefined
const hit = addressRes?.find(a => Number(a?.id) === addrIdSafe) if (isEditMode) {
if (hit?.id) { // 编辑模式:优先使用默认地址
setAddress(hit) targetAddr = addressRes?.find(a => a.isDefault) || addressRes?.[0]
} else { } else {
try { // 新下单模式:使用订单关联的地址
const addr = await getShopUserAddress(addrIdSafe) const addrId = Number(editingOrderRes?.addressId)
if (addr?.id) setAddress(addr) const addrIdSafe = Number.isFinite(addrId) && addrId > 0 ? addrId : undefined
} catch (e) { if (addrIdSafe) {
console.error('加载订单收货地址失败:', e) targetAddr = addressRes?.find(a => Number(a?.id) === addrIdSafe)
if (!targetAddr?.id) {
try {
targetAddr = await getShopUserAddress(addrIdSafe)
} catch (e) {
console.error('加载订单收货地址失败:', e)
}
} }
} }
} }
if (targetAddr?.id) {
setAddress(targetAddr)
}
} }
// Tickets are non-blocking for first paint; load in background. // Tickets are non-blocking for first paint; load in background.
loadUserTickets() loadUserTickets()