diff --git a/packages/shop/index/index.vue b/packages/shop/index/index.vue index 59be660b..c1d2d3ee 100644 --- a/packages/shop/index/index.vue +++ b/packages/shop/index/index.vue @@ -418,8 +418,30 @@ export default { user_id: uni.getStorageSync("userId"), id: this.secondId, }).then((res) => { - // 深拷贝接口数据,避免引用问题 - const commodityList = JSON.parse(JSON.stringify(res.commodity_list)); + // 过滤掉commodity_goods_info_list为空的数据,并为每个infoItem设置isShow属性 + const filteredList = res.commodity_list.filter(item => { + // 确保item有commodity_info_list属性 + if (item.commodity_info_list && Array.isArray(item.commodity_info_list)) { + // 过滤掉commodity_goods_info_list为空的infoItem + item.commodity_info_list = item.commodity_info_list.filter(infoItem => + infoItem.commodity_goods_info_list && + Array.isArray(infoItem.commodity_goods_info_list) && + infoItem.commodity_goods_info_list.length > 0 + ); + // 只有当过滤后的infoItem列表不为空时,才保留该item + return item.commodity_info_list.length > 0; + } + return false; + }); + + // 为过滤后的数据中的每个infoItem设置isShow属性 + filteredList.forEach((item) => { + item.commodity_info_list.forEach((infoItem) => { + infoItem.isShow = false; + }); + }); + // 深拷贝过滤后的数据,避免引用问题 + const commodityList = JSON.parse(JSON.stringify(filteredList)); commodityList.forEach((tagItem) => { // 重命名外层变量,避免嵌套冲突 tagItem.commodity_info_list.forEach((infoItem) => { // 内层变量重命名 // 初始化isShow为响应式属性