fix(order): 优化收货地址及收货人信息处理逻辑

- 切换开发环境,方便本地调试
- 在订单模型中新增收货人姓名和手机号码字段
- 订单列表中优先显示收货人信息,fallback为客户昵称和电话
- 订单编辑与新建时优化收货地址选择逻辑
- 编辑模式优先使用默认地址,新建模式使用订单关联地址
- 异步获取地址失败时添加错误日志方便排查
This commit is contained in:
2026-05-06 17:46:30 +08:00
parent 94e1e05fdf
commit 24d28d0aaa
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,22 +834,31 @@ const OrderConfirm = () => {
} }
} }
const addrId = Number(editingOrderRes.addressId) // 编辑模式下优先使用默认地址(用户刚从地址列表选择的)
// 新下单模式使用订单关联的地址
let targetAddr: ShopUserAddress | undefined = undefined
if (isEditMode) {
// 编辑模式:优先使用默认地址
targetAddr = addressRes?.find(a => a.isDefault) || addressRes?.[0]
} else {
// 新下单模式:使用订单关联的地址
const addrId = Number(editingOrderRes?.addressId)
const addrIdSafe = Number.isFinite(addrId) && addrId > 0 ? addrId : undefined const addrIdSafe = Number.isFinite(addrId) && addrId > 0 ? addrId : undefined
if (addrIdSafe) { if (addrIdSafe) {
const hit = addressRes?.find(a => Number(a?.id) === addrIdSafe) targetAddr = addressRes?.find(a => Number(a?.id) === addrIdSafe)
if (hit?.id) { if (!targetAddr?.id) {
setAddress(hit)
} else {
try { try {
const addr = await getShopUserAddress(addrIdSafe) targetAddr = await getShopUserAddress(addrIdSafe)
if (addr?.id) setAddress(addr)
} catch (e) { } catch (e) {
console.error('加载订单收货地址失败:', 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()
} catch (err) { } catch (err) {