diff --git a/src/dealer/index.tsx b/src/dealer/index.tsx index 2c9d6a0..bdf8b3e 100644 --- a/src/dealer/index.tsx +++ b/src/dealer/index.tsx @@ -108,7 +108,7 @@ const DealerIndex: React.FC = () => { - ID: {dealerUser.userId} | 推荐人: {dealerUser.refereeId || '无'} + ID: {dealerUser.userId} diff --git a/src/store/index.tsx b/src/store/index.tsx index 8852533..37ef85a 100644 --- a/src/store/index.tsx +++ b/src/store/index.tsx @@ -181,7 +181,7 @@ const StoreIndex: React.FC = () => { {/* 门店信息 */} - 当前门店 + 当前门店 Taro.switchTab({url: '/pages/index/index'})} diff --git a/src/store/orders/index.tsx b/src/store/orders/index.tsx index 2127715..bcd5e8f 100644 --- a/src/store/orders/index.tsx +++ b/src/store/orders/index.tsx @@ -51,7 +51,7 @@ export default function StoreOrders() { - 当前门店: + 当前门店: {boundStoreId ? (selectedStore?.id === boundStoreId ? (selectedStore?.name || `门店ID: ${boundStoreId}`) : `门店ID: ${boundStoreId}`) diff --git a/src/user/order/components/OrderList.tsx b/src/user/order/components/OrderList.tsx index 8e87747..7aff881 100644 --- a/src/user/order/components/OrderList.tsx +++ b/src/user/order/components/OrderList.tsx @@ -84,6 +84,30 @@ interface OrderWithGoods extends ShopOrder { orderGoodsList?: ShopOrderGoods[]; } +// 后端订单分页接口通常已返回 orderGoods(订单商品明细)。 +// 这里把各种可能的字段名做一次归一化,避免再为每个订单额外请求一次“订单商品”接口。 +const normalizeOrderGoodsList = (order: any): ShopOrderGoods[] => { + const raw = + order?.orderGoods || + order?.orderGoodsList || + order?.goodsList || + order?.goods || + []; + if (!Array.isArray(raw)) return []; + + return raw.map((g: any) => ({ + ...g, + goodsId: g?.goodsId ?? g?.itemId ?? g?.goods_id, + skuId: g?.skuId ?? g?.sku_id, + // 当接口只返回了最小字段时,用订单标题兜底,避免列表出现空白商品名 + goodsName: g?.goodsName ?? g?.goodsTitle ?? g?.title ?? g?.name ?? order?.title ?? '商品', + image: g?.image ?? g?.goodsImage ?? g?.cover ?? g?.pic, + spec: g?.spec ?? g?.specInfo ?? g?.spec_name, + totalNum: g?.totalNum ?? g?.quantity ?? g?.num ?? g?.count, + price: g?.price ?? g?.payPrice ?? g?.goodsPrice ?? g?.unitPrice + })); +}; + interface OrderListProps { onReload?: () => void; searchParams?: ShopOrderParam; @@ -230,31 +254,11 @@ function OrderList(props: OrderListProps) { const res = await pageShopOrder(searchConditions); if (res?.list && res?.list.length > 0) { - // 批量获取订单商品信息,限制并发数量 - const batchSize = 3; // 限制并发数量为3 - const ordersWithGoods: OrderWithGoods[] = []; - - for (let i = 0; i < res.list.length; i += batchSize) { - const batch = res.list.slice(i, i + batchSize); - const batchResults = await Promise.all( - batch.map(async (order) => { - try { - const orderGoods = await listShopOrderGoods({orderId: order.orderId}); - return { - ...order, - orderGoodsList: orderGoods || [] - }; - } catch (error) { - console.error('获取订单商品失败:', error); - return { - ...order, - orderGoodsList: [] - }; - } - }) - ); - ordersWithGoods.push(...batchResults); - } + // 订单分页接口已返回 orderGoods:直接读取并归一化,避免 N+1 请求导致列表加载慢 + const ordersWithGoods: OrderWithGoods[] = res.list.map((order: any) => ({ + ...order, + orderGoodsList: normalizeOrderGoodsList(order) + })); // 使用函数式更新避免依赖 list setList(prevList => { diff --git a/src/utils/payment.ts b/src/utils/payment.ts index 6ea1a41..de0e5d1 100644 --- a/src/utils/payment.ts +++ b/src/utils/payment.ts @@ -191,9 +191,8 @@ export class PaymentHandler { // 后端字段可能叫 dealerId 或 storeId,这里都带上,服务端忽略未知字段即可。 // 这里做一次路径兼容(camel vs kebab),避免接口路径不一致导致整单失败。 const list = await this.listByCompatEndpoint( - ['/shop/shop-store-rider', '/shop/shop-store-rider'], + ['/shop/shop-store-rider'], { - dealerId: storeId, storeId: storeId, status: 1 } @@ -224,7 +223,7 @@ export class PaymentHandler { private static async getWarehouses(): Promise { if (this.warehousesCache) return this.warehousesCache; const list = await this.listByCompatEndpoint( - ['/shop/shop-warehouse', '/shop/shop-warehouse'], + ['/shop/shop-warehouse'], {} ); const usable = (list || []).filter(w => w?.isDelete !== 1 && (w.status === undefined || w.status === 1));