//根据店铺信息返回是否是后付款 export function $trturnPayAfter(shop) { //before 先付 after 后付 const payAfter = shop.registerType == "before" ? false : true; return payAfter } //根据店铺信息返回就餐类型 export function $returnUseType(shop, useType) { //是否是后付款 const payAfter = $trturnPayAfter(shop) let result = "takeout"; if (useType == "takeout") { result = 'takeout' } else { //堂食 result = `dine-in-${payAfter ? "after" : "before"}`; } return result } //判断商品是否可以下单 export function isCanBuy(skuGoods,goods) { if(goods.type!='sku'){ //单规格 return goods.isSale&&goods.isSoldStock==0&&(goods.isStock?goods.stockNumber>0:true); }else{ //多规格 return goods.isSale&&goods.isSoldStock==0&&skuGoods.isGrounding&&skuGoods.isPauseSale==0&&(goods.isStock?goods.stockNumber>0:true); } } // 一个数组是否包含另外一个数组全部元素 function arrayContainsAll(arr1, arr2) { for (let i = 0; i < arr2.length; i++) { if (!arr1.includes(arr2[i])) { return false; } } return true; } //n项 n-1项组合,生成全部结果 function generateCombinations(arr, k) { let result = []; console.log("current.length === k",arr) function helper(index, current) { if (current.length === k) { result.push(current.slice()); // 使用slice()来避免直接修改原始数组 } else { for (let i = index; i < arr.length; i++) { current.push(arr[i]); // 将当前元素添加到组合中 helper(i + 1, current); // 递归调用,索引增加以避免重复选择相同的元素 current.pop(); // 回溯,移除当前元素以便尝试其他组合 } console.log(current) } } helper(0, []); // 从索引0开始,初始空数组作为起点 return result; } function returnReverseVal(val, isReturnString = true) { const isBol = typeof val === "boolean"; const isString = typeof val === "string"; let reverseNewval = ""; if (isBol) { reverseNewval = !val; } if (isString) { reverseNewval = val === "true" ? "false" : "true"; } return reverseNewval; } export default { isCanBuy, arrayContainsAll, generateCombinations, returnReverseVal,$returnUseType }