购物车-2-更新

117 阅读1分钟

使用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("====================================");
  };