forked from gxwebsoft/mp-10550
fix(order): 优化收货地址及收货人信息处理逻辑
- 切换开发环境,方便本地调试 - 在订单模型中新增收货人姓名和手机号码字段 - 订单列表中优先显示收货人信息,fallback为客户昵称和电话 - 订单编辑与新建时优化收货地址选择逻辑 - 编辑模式优先使用默认地址,新建模式使用订单关联地址 - 异步获取地址失败时添加错误日志方便排查
This commit is contained in:
@@ -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 = {
|
||||||
|
|||||||
@@ -62,6 +62,10 @@ export interface GltTicketOrder {
|
|||||||
avatar?: string;
|
avatar?: string;
|
||||||
// 手机号码
|
// 手机号码
|
||||||
phone?: string;
|
phone?: string;
|
||||||
|
// 收货人姓名
|
||||||
|
receiverName?: string;
|
||||||
|
// 收货人手机号码
|
||||||
|
receiverPhone?: string;
|
||||||
// 排序(数字越小越靠前)
|
// 排序(数字越小越靠前)
|
||||||
sortNumber?: number;
|
sortNumber?: number;
|
||||||
// 备注
|
// 备注
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user