forked from gxwebsoft/mp-10550
fix(order): 优化收货地址及收货人信息处理逻辑
- 切换开发环境,方便本地调试 - 在订单模型中新增收货人姓名和手机号码字段 - 订单列表中优先显示收货人信息,fallback为客户昵称和电话 - 订单编辑与新建时优化收货地址选择逻辑 - 编辑模式优先使用默认地址,新建模式使用订单关联地址 - 异步获取地址失败时添加错误日志方便排查
This commit is contained in:
@@ -834,21 +834,30 @@ const OrderConfirm = () => {
|
||||
}
|
||||
}
|
||||
|
||||
const addrId = Number(editingOrderRes.addressId)
|
||||
const addrIdSafe = Number.isFinite(addrId) && addrId > 0 ? addrId : undefined
|
||||
if (addrIdSafe) {
|
||||
const hit = addressRes?.find(a => Number(a?.id) === addrIdSafe)
|
||||
if (hit?.id) {
|
||||
setAddress(hit)
|
||||
} else {
|
||||
try {
|
||||
const addr = await getShopUserAddress(addrIdSafe)
|
||||
if (addr?.id) setAddress(addr)
|
||||
} catch (e) {
|
||||
console.error('加载订单收货地址失败:', e)
|
||||
// 编辑模式下优先使用默认地址(用户刚从地址列表选择的)
|
||||
// 新下单模式使用订单关联的地址
|
||||
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
|
||||
if (addrIdSafe) {
|
||||
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.
|
||||
loadUserTickets()
|
||||
|
||||
Reference in New Issue
Block a user