使用choosedSameDisks方法处理所有的逻辑;
function choosedSameDisks(productDetailObj, moboShoppingList) {
// const { moboShoppingList } = this.state;
//A B C A A -> A : AAA
const chooseTaocanId = productDetailObj.mealItemId;
const chooseMenuId = productDetailObj.menuId;
const chooseItemList = productDetailObj.mealItemList;
const chooseItemGroupIdList = chooseItemList.map((item) => item.groupId);
console.log("moboShoppingList", moboShoppingList);
let isNewTaocan = true;
for (let index = 0; index < moboShoppingList.length; index++) {
const taocan = moboShoppingList[index];
if (taocan.mealItemList == null) {
continue;
}
//先判断套餐
const taocanId = taocan.mealItemId;
const menuId = taocan.menuId;
if (taocanId === chooseTaocanId && menuId === chooseMenuId) {
//单商品
const itemList = taocan.mealItemList;
if (itemList.length === chooseItemList.length) {
for (let index = 0; index < itemList.length; index++) {
const item = itemList[index];
const groupId = item.groupId;
if (!chooseItemGroupIdList.includes(groupId)) {
break;
}
}
itemList.forEach((item) => {
item.count += 1;
});
taocan.count += 1;
isNewTaocan = false;
}
}
}
if (isNewTaocan) {
moboShoppingList.push(productDetailObj);
}
return moboShoppingList;
};
function TestClick (productDetailObj) {
const { moboShoppingList } = this.state;
let newShoppingData = [...moboShoppingList];
const { mealType } = productDetailObj;
// 是否是套餐
const isTaoCan = mealType === 2;
if (isTaoCan) {
// 之前添加过该套餐
newShoppingData = this.choosedSameDisks(productDetailObj,moboShoppingList);
}
console.log("====================================");
console.log("newShoppingData:::", newShoppingData);
console.log("====================================");
};