fix:商品不存在时,不展示 empty 的情况

pull/147/head
YunaiV 2025-04-29 11:47:50 +08:00
parent 49dbce22d1
commit c7d101cd05
4 changed files with 37 additions and 12 deletions

View File

@ -258,14 +258,25 @@
//
if (!options.id) {
state.goodsInfo = null;
state.skeletonLoading = false;
return;
}
state.grouponId = options.id;
//
const { code, data: activity } = await CombinationApi.getCombinationActivity(state.grouponId);
if (code !== 0) {
state.goodsInfo = null;
state.skeletonLoading = false;
return;
}
state.activity = activity;
//
const { data: spu } = await SpuApi.getSpuDetail(activity.spuId);
if (code !== 0) {
state.goodsInfo = null;
state.skeletonLoading = false;
return;
}
state.goodsId = spu.id;
//

View File

@ -387,19 +387,22 @@
//
if (!options.id) {
state.goodsInfo = null;
state.skeletonLoading = false;
return;
}
state.goodsId = options.id;
// 1.
SpuApi.getSpuDetail(state.goodsId).then((res) => {
//
if (res.code !== 0 || !res.data) {
state.goodsInfo = null;
state.skeletonLoading = false;
return;
}
//
state.skeletonLoading = false;
state.goodsInfo = res.data;
//
getSettlementByIds(state.goodsId);
//
if (isLogin.value) {
FavoriteApi.isFavoriteExists(state.goodsId, 'goods').then((res) => {
@ -421,8 +424,6 @@
}
state.activityList = res.data;
});
//
getSettlementByIds(state.goodsId);
});
</script>

View File

@ -210,18 +210,14 @@
};
});
const getShowPriceText = computed(() => {
let priceText = `${fen2yuan(state.goodsInfo.price)}`;
if (!isEmpty(state.selectedSku)) {
const sku = state.selectedSku;
priceText = `${sku.point}${!sku.pointPrice ? '' : `+¥${fen2yuan(sku.pointPrice)}`}`;
}
return priceText;
});
//
const getActivity = async (id) => {
const { data } = await PointApi.getPointActivity(id);
if (!data) {
state.goodsInfo = null;
state.skeletonLoading = false;
return;
}
activity.value = data;
//
await getSpu(data.spuId);
@ -230,6 +226,11 @@
//
const getSpu = async (id) => {
const { data } = await SpuApi.getSpuDetail(id);
if (!data) {
state.goodsInfo = null;
state.skeletonLoading = false;
return;
}
data.activity_type = PromotionActivityTypeEnum.POINT.type;
state.goodsInfo = data;
state.goodsInfo.stock = Math.min(data.stock, activity.value.stock);
@ -258,6 +259,7 @@
//
if (!options.id) {
state.goodsInfo = null;
state.skeletonLoading = false;
return;
}

View File

@ -226,6 +226,11 @@
//
const getActivity = async (id) => {
const { data } = await SeckillApi.getSeckillActivity(id);
if (!data) {
state.goodsInfo = null;
state.skeletonLoading = false;
return;
}
activity.value = data;
timeStatusEnum.value = getTimeStatusEnum(activity.value.startTime, activity.value.endTime);
state.percent = 100 - (data.stock / data.totalStock) * 100;
@ -236,6 +241,11 @@
//
const getSpu = async (id) => {
const { data } = await SpuApi.getSpuDetail(id);
if (!data) {
state.goodsInfo = null;
state.skeletonLoading = false;
return;
}
data.activity_type = 'seckill';
state.goodsInfo = data;
//
@ -274,6 +284,7 @@
//
if (!options.id) {
state.goodsInfo = null;
state.skeletonLoading = false;
return;
}