From 6c80e36508b84f9e412b363565ceee24c58bd088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=A2=E8=B6=8A?= <552369664@qq.com> Date: Thu, 7 Nov 2024 17:00:56 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=8A=9F=E8=83=BD=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E3=80=91=E4=BF=AE=E5=A4=8D=E5=88=86=E4=BD=A3=E5=95=86=E5=93=81?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E9=A2=84=E8=AE=A1=E4=BD=A3=E9=87=91=E4=B8=80?= =?UTF-8?q?=E7=9B=B4=E6=98=BE=E7=A4=BA=E2=80=9C=E8=AE=A1=E7=AE=97=E4=B8=AD?= =?UTF-8?q?=E2=80=9D=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/commission/goods.vue | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/pages/commission/goods.vue b/pages/commission/goods.vue index 7435e402..76ecc0fa 100644 --- a/pages/commission/goods.vue +++ b/pages/commission/goods.vue @@ -63,7 +63,7 @@ import { showShareModal } from '@/sheep/hooks/useModal'; import SpuApi from '@/sheep/api/product/spu'; import BrokerageApi from '@/sheep/api/trade/brokerage'; - import { fen2yuan } from '../../sheep/hooks/useGoods'; + import { fen2yuan } from '@/sheep/hooks/useGoods'; const state = reactive({ pagination: { @@ -105,19 +105,29 @@ pageSize: state.pagination.pageSize, pageNo: state.pagination.pageNo, }); + if (code !== 0) { + state.loadStatus = 'error'; // 处理错误状态 return; } + + // 使用 Promise.all 来等待所有佣金请求完成 + await Promise.all( + data.list.map(async (item) => { + try { + const res = await BrokerageApi.getProductBrokeragePrice(item.id); + item.brokerageMinPrice = res.data.brokerageMinPrice; + item.brokerageMaxPrice = res.data.brokerageMaxPrice; + } catch (error) { + console.error(`获取商品【${item.name}】的佣金时出错:`, error); + } + }), + ); + + // 在所有请求完成后合并列表和更新状态 state.pagination.list = _.concat(state.pagination.list, data.list); state.pagination.total = data.total; state.loadStatus = state.pagination.list.length < state.pagination.total ? 'more' : 'noMore'; - // 补充分佣金额 - data.list.forEach((item) => { - BrokerageApi.getProductBrokeragePrice(item.id).then((res) => { - item.brokerageMinPrice = res.data.brokerageMinPrice; - item.brokerageMaxPrice = res.data.brokerageMaxPrice; - }); - }); } onLoad(() => {