This commit is contained in:
2025-04-02 10:35:17 +08:00
commit 89db955ec1
701 changed files with 91082 additions and 0 deletions

View File

@@ -0,0 +1,175 @@
import {
$productCategory,
$layoutpage
} from '@/http/yskApi/pad.js'
//根据布局返回商品列表
export function returnSelCategotyGoods(arr, size) {
// 检查size是否为正整数
if (size <= 0) {
throw new Error('Size must be a positive integer.');
}
// 计算数组的长度并确保size不会超过数组长度
const length = arr.length;
size = Math.min(size, length);
// 创建一个新数组来存储结果
const groups = [];
// 循环遍历原始数组每size个元素分为一组
for (let i = 0; i < length; i += size) {
groups.push(arr.slice(i, i + size)); // 使用slice方法获取子数组
}
return groups; // 返回新的数组
}
//根据店铺信息返回是否是后付款
export function $trturnPayAfter(shop) {
//munchies 先付 restaurant 后付
const payAfter = shop.registerType == "munchies" ? 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(goods, isStock) {
return goods.isGrounding && goods.isPauseSale == 0 && (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 = [];
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(); // 回溯,移除当前元素以便尝试其他组合
}
}
}
helper(0, []); // 从索引0开始初始空数组作为起点
return result;
}
export 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 function returnPrveId(par) {
const obj = {
prveData: [],
nowData: [],
nextData: [],
page: 0
}
Object.assign(obj, par)
if (par.page == 0 || par.nowData.length <= 1) {
const prveIndex = obj.prveData.length - 1 <= 0 ? 0 : obj.prveData.length - 1
return obj.prveData[prveIndex] ? obj.prveData[prveIndex].id : undefined
}
return obj.nowData[par.page - 1] ? obj.nowData[par.page - 1].id : undefined
}
export function returnNowId(par) {
const obj = {
prveData: [],
nowData: [],
nextData: [],
page: 0
}
Object.assign(obj, par)
if (!par.nowData[par.page]) {
return undefined
}
return obj.nowData[par.page] ? obj.nowData[par.page].id : undefined
}
export function returnNextId(par) {
const obj = {
prveData: [],
nowData: [],
nextData: [],
page: 0
}
Object.assign(obj, par)
if (par.page >= par.nowData.length - 1 || par.nowData.length <= 1) {
const nextIndex = obj.nextData.length - 1 <= 0 ? 0 : obj.nextData.length - 1
return obj.nextData[nextIndex] ? obj.nextData[nextIndex].id : undefined
}
return obj.nextData[par.page + 1] ? obj.nextData[par.page + 1].id : undefined
}
export async function returnLayoutPage(id) {
if (!id) {
return {
content: [],
totalElements: 0
}
}
return $layoutpage({
page: 1,
size: 999,
productCategoryId: id,
padLayoutId: ''
})
}
export async function returnCategoryLayoutGoods(id,category) {
if (!id) {
return {
productList: [],
padLayoutCode: "single",
productCategoryId:category?category.id:''
}
}
return $productCategory(id)
}
export default {
isCanBuy,
returnNowId,
returnCategoryLayoutGoods,
returnLayoutPage,
returnPrveId,
returnNextId,
arrayContainsAll,
generateCombinations,
returnReverseVal,
$returnUseType
}