问题修复
This commit is contained in:
@@ -161,6 +161,7 @@
|
||||
@tapweigh="tapweigh($event, goodsIndex)"
|
||||
:data="goodsItem"
|
||||
:limitTimeDiscount="data.limitTimeDiscount"
|
||||
:carsProductIdNumberMap="carsProductIdNumberMap"
|
||||
></cart-goods-item>
|
||||
</view>
|
||||
</view>
|
||||
@@ -208,6 +209,7 @@
|
||||
@reduce="goodsUpdate($event, goodsIndex, false)"
|
||||
:index="index"
|
||||
@tapweigh="tapweigh($event, goodsIndex)"
|
||||
:carsProductIdNumberMap="carsProductIdNumberMap"
|
||||
:data="goodsItem"
|
||||
></cart-goods-item>
|
||||
</view>
|
||||
@@ -249,7 +251,7 @@
|
||||
:orderInfo="data.orderInfo"
|
||||
:historyOrder="data.historyOrder"
|
||||
:tableCode="data.table.tableCode"
|
||||
@clear="cleaCart"
|
||||
@clear="clearCart"
|
||||
></my-car>
|
||||
</view>
|
||||
</template>
|
||||
@@ -361,7 +363,9 @@ import yskUtils from "@/lib/index";
|
||||
provide("yskUtils", yskUtils);
|
||||
|
||||
import { useAccountStore } from "@/stores/account";
|
||||
import { useCartStore } from "@/stores/cart";
|
||||
const accountStore = useAccountStore();
|
||||
const cartStore = useCartStore();
|
||||
|
||||
provide("accountStore", accountStore);
|
||||
|
||||
@@ -406,7 +410,15 @@ const tapweigh = (foodsindex, index) => {
|
||||
};
|
||||
|
||||
// wx拿到的数据
|
||||
const cars = reactive([]);
|
||||
const cars = ref([]);
|
||||
//购物中车的商品对应的数量
|
||||
const carsProductIdNumberMap = computed(() => {
|
||||
return cars.value.reduce((prev, cur) => {
|
||||
const productId = cur.product_id;
|
||||
prev[productId] = (prev[productId] || 0) + cur.number * 1;
|
||||
return prev;
|
||||
}, {});
|
||||
});
|
||||
const layout = reactive({
|
||||
listMap: {
|
||||
default: {
|
||||
@@ -496,7 +508,10 @@ function showDetail(goods) {
|
||||
function onMessage() {
|
||||
websocketUtil.offMessage();
|
||||
websocketUtil.onMessage(async (res) => {
|
||||
cartStore.onMessage(res);
|
||||
let msg = JSON.parse(res);
|
||||
|
||||
console.log("indexonMessage===", msg);
|
||||
let cartItem;
|
||||
let cartArr = [];
|
||||
if (msg.msg_id) {
|
||||
@@ -523,9 +538,12 @@ function onMessage() {
|
||||
return prve;
|
||||
}, []);
|
||||
}
|
||||
if (msg.type == "bc") {
|
||||
initCart();
|
||||
}
|
||||
switch (msg.operate_type) {
|
||||
case "pad_init":
|
||||
cars.length = 0;
|
||||
cars.value = [];
|
||||
if (!data.table.tableCode) {
|
||||
data.table.tableCode = msg.table_code;
|
||||
uni.setStorageSync("msg_id", msg.msg_id);
|
||||
@@ -560,6 +578,11 @@ function onMessage() {
|
||||
// infoBox.showToast('操作成功')
|
||||
break;
|
||||
case "pad_edit":
|
||||
cartItem = getNowCart(msg.data, cartArr);
|
||||
console.log(cartItem);
|
||||
|
||||
cartControls(cartItem, "edit");
|
||||
break;
|
||||
case "edit":
|
||||
cartItem = getNowCart(msg.data, cartArr);
|
||||
cartControls(cartItem, "edit");
|
||||
@@ -571,13 +594,9 @@ function onMessage() {
|
||||
cartControls(cartItem, "del");
|
||||
break;
|
||||
case "pad_cleanup":
|
||||
cars.value = [];
|
||||
case "cleanup":
|
||||
cars.length = 0;
|
||||
for (let i in data.tabbar) {
|
||||
for (let k in data.tabbar[i].foods) {
|
||||
data.tabbar[i].foods[k].chooseNumber = 0;
|
||||
}
|
||||
}
|
||||
cars.value = [];
|
||||
getHistoryOrderDetail();
|
||||
break;
|
||||
case "init":
|
||||
@@ -627,7 +646,8 @@ async function getHistoryOrderDetail() {
|
||||
let res = await getHistoryOrder({
|
||||
tableCode: data.table.tableCode,
|
||||
});
|
||||
if (!res.id) {
|
||||
if (!res.id || (res && res.status != "unpaid")) {
|
||||
data.orderInfo = {};
|
||||
return;
|
||||
}
|
||||
data.orderInfo = res;
|
||||
@@ -686,7 +706,7 @@ function cartControls(cartItem, type) {
|
||||
let cartIndex = 0;
|
||||
let product_id = cartItem.product_id;
|
||||
// console.log(cars, 'cars值,看id是否与cartItem匹配')
|
||||
cars.map((item, index) => {
|
||||
cars.value.map((item, index) => {
|
||||
if (item.id == cartItem.id) {
|
||||
cartIndex = index;
|
||||
product_id = item.product_id;
|
||||
@@ -694,10 +714,6 @@ function cartControls(cartItem, type) {
|
||||
}
|
||||
});
|
||||
let $goods;
|
||||
console.log("layoutData.list", layoutData.list);
|
||||
console.log("type", type);
|
||||
console.log(cartItem, "cartItemid");
|
||||
console.log(product_id, "product_id");
|
||||
layoutData.list.forEach((ele) => {
|
||||
ele.productList.forEach((res) => {
|
||||
if (res.id == product_id) {
|
||||
@@ -708,23 +724,18 @@ function cartControls(cartItem, type) {
|
||||
|
||||
if (type == "del") {
|
||||
console.log("del", $goods);
|
||||
cars.splice(cartIndex, 1);
|
||||
if ($goods) $goods.chooseNumber = 0;
|
||||
cars.value.splice(cartIndex, 1);
|
||||
return;
|
||||
}
|
||||
if (type == "add") {
|
||||
cars.push(cartItem);
|
||||
cars.value.push(cartItem);
|
||||
if ($goods) {
|
||||
$goods.chooseNumber = cartItem.number;
|
||||
console.log("$goods", $goods);
|
||||
console.log("cartItem", cartItem);
|
||||
}
|
||||
}
|
||||
if (type == "edit") {
|
||||
editItem.value = $goods;
|
||||
cars[cartIndex].number = cartItem.number;
|
||||
cars.value[cartIndex].number = cartItem.number;
|
||||
if ($goods) {
|
||||
$goods.chooseNumber = cartItem.number;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -814,13 +825,6 @@ function setTabBar(category, goods, carsC) {
|
||||
prve[cur.categoryId].push(cur);
|
||||
return prve;
|
||||
}, {});
|
||||
const chooseGoodsNumberMap = carsC.reduce((prve, cur) => {
|
||||
if (!prve.hasOwnProperty(cur.productId)) {
|
||||
prve[cur.productId] = 0;
|
||||
}
|
||||
prve[cur.productId] += cur.number;
|
||||
return prve;
|
||||
}, {});
|
||||
let tabbar = category.map((v) => {
|
||||
const foods = goodsCategoryMap[v.id] || [];
|
||||
return {
|
||||
@@ -828,24 +832,12 @@ function setTabBar(category, goods, carsC) {
|
||||
foods: foods.map((fgoods, index) => {
|
||||
return {
|
||||
...fgoods,
|
||||
chooseNumber: chooseGoodsNumberMap[fgoods.id],
|
||||
price: fgoods.lowPrice,
|
||||
isDan: fgoods.typeEnum !== "sku",
|
||||
};
|
||||
}),
|
||||
};
|
||||
});
|
||||
// tabbar.push({
|
||||
// name: '附加费',
|
||||
// foods: [{
|
||||
// name: "餐位费",
|
||||
// price:$shop.value.tableFee,
|
||||
// chooseNumber: 0,
|
||||
// isSeatFee:true,
|
||||
// isDan: true
|
||||
// }
|
||||
// ]
|
||||
// })
|
||||
tabbar = tabbar.filter((v) => {
|
||||
return v.foods.length;
|
||||
});
|
||||
@@ -948,16 +940,27 @@ function setUser(par) {
|
||||
/**
|
||||
* 清除购物车
|
||||
*/
|
||||
async function cleaCart(e) {
|
||||
async function clearCart(e) {
|
||||
console.log("clearCart===", e);
|
||||
|
||||
if (e == "cart") {
|
||||
let params = {
|
||||
...data.socketData,
|
||||
operate_type: "cleanup",
|
||||
table_code: data.table.tableCode,
|
||||
};
|
||||
console.log("购物车清空菜品参数===", params);
|
||||
websocketUtil.send(JSON.stringify(params));
|
||||
// websocketUtil.send(
|
||||
// JSON.stringify({
|
||||
// ...data.socketData,
|
||||
// operate_type: "init",
|
||||
// table_code: data.table.tableCode,
|
||||
// })
|
||||
// );
|
||||
} else if (e == "allHistoryOrder") {
|
||||
if (!data.orderInfo.id) {
|
||||
return;
|
||||
}
|
||||
await cancelOrder({
|
||||
orderId: data.orderInfo.id,
|
||||
shopId: uni.getStorageSync("shopId"),
|
||||
@@ -987,12 +990,7 @@ async function cleaCart(e) {
|
||||
}
|
||||
//点击清空购物车
|
||||
async function onClearCart() {
|
||||
cars.length = 0;
|
||||
for (let i in layoutData.list) {
|
||||
for (let k in layoutData.list[i].productList) {
|
||||
layoutData.list[i].productList[k].chooseNumber = 0;
|
||||
}
|
||||
}
|
||||
cars.value = [];
|
||||
}
|
||||
|
||||
let $originGoods = [];
|
||||
@@ -1074,17 +1072,7 @@ async function getGoodsData(max = 6, isGetPrve = false) {
|
||||
: "6-grid",
|
||||
productList: res2.productList.map((v) => {
|
||||
v.salePrice = v.lowPrice;
|
||||
const findGoodsInCar = cars.find((cars) => {
|
||||
return cars.productId == v.id;
|
||||
});
|
||||
if (findGoodsInCar) {
|
||||
return {
|
||||
...v,
|
||||
chooseNumber: findGoodsInCar.number,
|
||||
};
|
||||
} else {
|
||||
return v;
|
||||
}
|
||||
return v;
|
||||
}),
|
||||
hasAjax: true,
|
||||
};
|
||||
@@ -1164,10 +1152,7 @@ async function init() {
|
||||
if (option.type == "add") {
|
||||
setTabBar($category, $originGoods, []);
|
||||
}
|
||||
let shopInfo = await getShopInfo({
|
||||
id: uni.getStorageSync("shopInfo").id,
|
||||
});
|
||||
uni.setStorageSync("shopInfo", shopInfo);
|
||||
let shopInfo = accountStore.shopInfo;
|
||||
// 获取布局
|
||||
// const getLayoutData = await getLayout({})
|
||||
// 获取分类数据-获取商品分类
|
||||
@@ -1227,12 +1212,12 @@ async function init() {
|
||||
});
|
||||
$originGoods = goods;
|
||||
if (option.type == "add") {
|
||||
cars.length = 0;
|
||||
cars.value = [];
|
||||
initCart();
|
||||
setTabBar($category, goods, []);
|
||||
return;
|
||||
}
|
||||
setTabBar($category, goods, cars);
|
||||
setTabBar($category, goods, cars.value);
|
||||
initCart();
|
||||
}
|
||||
|
||||
@@ -1247,7 +1232,6 @@ function categoryEleInit() {
|
||||
getElRect("u-tab-item" + i, instance.value, {
|
||||
rect: true,
|
||||
}).then((res) => {
|
||||
console.log(res);
|
||||
tabsEle.tabsItems[i] = {
|
||||
width: res.width,
|
||||
left: res.left,
|
||||
@@ -1259,10 +1243,7 @@ function categoryEleInit() {
|
||||
const surcharge = ref(null);
|
||||
|
||||
function surchargeConfirm(e) {
|
||||
data.tabbar[data.tabbar.length - 1].foods.unshift({
|
||||
...e,
|
||||
chooseNumber: 0,
|
||||
});
|
||||
data.tabbar[data.tabbar.length - 1].foods.unshift(e);
|
||||
}
|
||||
|
||||
function surchargeShow() {
|
||||
@@ -1653,7 +1634,7 @@ async function guigeConfirm(sku, number, is_time_discount) {
|
||||
if (res) {
|
||||
//更新
|
||||
let { index } = res;
|
||||
let carGoods = cars[index];
|
||||
let carGoods = cars.value[index];
|
||||
let cartId = carGoods.id;
|
||||
let newNumber = carGoods.number * 1 + suitNum;
|
||||
let suitNum = goods.skuList[0].suitNum || 1;
|
||||
@@ -1712,7 +1693,7 @@ const $cacheGoods = {};
|
||||
//修改购物车商品备注
|
||||
function updateCartRemark(e) {
|
||||
let { remark, index, goods } = e;
|
||||
cars[index].note = remark;
|
||||
cars.value[index].note = remark;
|
||||
let params = {
|
||||
number: e.num,
|
||||
id: e.goods.id,
|
||||
@@ -1784,10 +1765,10 @@ async function carsNumberChange(e) {
|
||||
// 找到该规格商品在购物车中是否存在并返回index值以及对应的数据
|
||||
function findGoodsInCar($goods, skuId) {
|
||||
const productId = $goods.id;
|
||||
const goodsInCarIndex = cars.findIndex((carsGoods) => {
|
||||
const goodsInCarIndex = cars.value.findIndex((carsGoods) => {
|
||||
return carsGoods.skuId == skuId && carsGoods.productId == productId;
|
||||
});
|
||||
const carGoods = cars[goodsInCarIndex];
|
||||
const carGoods = cars.value[goodsInCarIndex];
|
||||
return carGoods
|
||||
? {
|
||||
index: goodsInCarIndex,
|
||||
@@ -1796,16 +1777,6 @@ function findGoodsInCar($goods, skuId) {
|
||||
: false;
|
||||
}
|
||||
|
||||
function searchGoodsUpdate(goodsItem, goodsIndex, isAdd) {
|
||||
goodsUpdate(goodsItem.goodsIndex, goodsItem.index, isAdd, goodsIndex);
|
||||
}
|
||||
|
||||
function setSearchGoods(index, chooseNumber) {
|
||||
if (index !== undefined) {
|
||||
console.log(searchResult.value[index]);
|
||||
searchResult.value[index].chooseNumber = chooseNumber;
|
||||
}
|
||||
}
|
||||
async function goodsUpdate(
|
||||
foodsindex,
|
||||
index,
|
||||
@@ -1835,7 +1806,7 @@ async function goodsUpdate(
|
||||
if ($goods.type != "sku") {
|
||||
const step = isAdd ? 1 : -1;
|
||||
//增加
|
||||
let isShop = cars.find((ele) => ele.product_id == $goods.id);
|
||||
let isShop = cars.value.find((ele) => ele.product_id == $goods.id);
|
||||
if (isShop) {
|
||||
let { sku_id, product_id, id, number, discount_sale_amount } = isShop;
|
||||
// 数量加减
|
||||
@@ -1848,15 +1819,14 @@ async function goodsUpdate(
|
||||
operate_type: "del",
|
||||
};
|
||||
websocketUtil.send(JSON.stringify(params));
|
||||
$goods.chooseNumber = num;
|
||||
} else {
|
||||
let suitNum = $goods.skuList[0].suitNum || 1;
|
||||
if (showCurrentInput) {
|
||||
//单规格
|
||||
let goodsInCarIndex = cars.findIndex((carsGoods) => {
|
||||
let goodsInCarIndex = cars.value.findIndex((carsGoods) => {
|
||||
return carsGoods.product_id == $goods.skuList[0].productId;
|
||||
});
|
||||
let cartItem = cars[goodsInCarIndex];
|
||||
let cartItem = cars.value[goodsInCarIndex];
|
||||
num = cartItem.number * 1 + Number(showCurrentInput);
|
||||
}
|
||||
|
||||
@@ -1875,11 +1845,11 @@ async function goodsUpdate(
|
||||
pack_number: 0, //数量
|
||||
is_temporary: 0, //是否是临时菜
|
||||
is_time_discount,
|
||||
is_print: 1,
|
||||
})
|
||||
);
|
||||
|
||||
// $goods.chooseNumber = 1
|
||||
$goods.chooseNumber = num;
|
||||
}
|
||||
} else {
|
||||
// 起售数量
|
||||
@@ -1904,6 +1874,7 @@ async function goodsUpdate(
|
||||
pack_number: 0, //数量
|
||||
is_temporary: 0, //是否是临时菜
|
||||
is_time_discount,
|
||||
is_print: 1,
|
||||
};
|
||||
console.log(params, "发送消息");
|
||||
websocketUtil.send(JSON.stringify(params));
|
||||
@@ -1950,12 +1921,12 @@ async function onSelTable() {
|
||||
const { masterId } = await getMasterId();
|
||||
data.masterId = masterId;
|
||||
const cartRes = await getCart();
|
||||
cars.length = 0;
|
||||
cars.value = [];
|
||||
const cartArr = getNowCart(cartRes);
|
||||
for (let i in cartArr) {
|
||||
cars.push(cartArr[i]);
|
||||
cars.value.push(cartArr[i]);
|
||||
}
|
||||
setTabBar($category, $originGoods, cars);
|
||||
setTabBar($category, $originGoods, cars.value);
|
||||
}
|
||||
onBeforeUnmount(() => {});
|
||||
|
||||
@@ -1966,7 +1937,7 @@ function watchUpdate() {
|
||||
// data.table = {
|
||||
// tableId: ""
|
||||
// }
|
||||
cars.length = 0;
|
||||
cars.value = [];
|
||||
init();
|
||||
});
|
||||
// 添加临时菜到购物车
|
||||
@@ -1988,6 +1959,8 @@ onShow(() => {
|
||||
if (!data.userInfo.shopName) {
|
||||
loginShowOut();
|
||||
}
|
||||
|
||||
getHistoryOrderDetail();
|
||||
nextTick(() => {
|
||||
uni.showLoading({
|
||||
title: "购物车加载中",
|
||||
@@ -2014,22 +1987,26 @@ let sysInfo = ref({
|
||||
});
|
||||
const limitTimeDiscountRes = ref(null);
|
||||
async function getLimit() {
|
||||
const res = await limitTimeDiscountApi.limitTimeDiscount();
|
||||
limitTimeDiscountRes.value = res;
|
||||
if (data.table.tableCode) {
|
||||
data.limitTimeDiscount = limitTimeDiscountRes.value;
|
||||
const res = await limitTimeDiscountApi.limitTimeDiscount({
|
||||
shopId: accountStore.shopId,
|
||||
});
|
||||
if (res && res.id) {
|
||||
limitTimeDiscountRes.value = res;
|
||||
if (data.table.tableCode) {
|
||||
data.limitTimeDiscount = limitTimeDiscountRes.value;
|
||||
|
||||
websocketUtil.send(
|
||||
JSON.stringify({
|
||||
type: "shopping",
|
||||
operate_type: "time_discount_save",
|
||||
table_code: data.table.tableCode,
|
||||
shop_id: uni.getStorageSync("shopInfo").id,
|
||||
operate_type: "time_discount_save",
|
||||
data: limitTimeDiscountRes.value,
|
||||
})
|
||||
);
|
||||
console.log("limitTimeDiscount", data.limitTimeDiscount);
|
||||
websocketUtil.send(
|
||||
JSON.stringify({
|
||||
type: "shopping",
|
||||
operate_type: "time_discount_save",
|
||||
table_code: data.table.tableCode,
|
||||
shop_id: uni.getStorageSync("shopInfo").id,
|
||||
operate_type: "time_discount_save",
|
||||
data: limitTimeDiscountRes.value,
|
||||
})
|
||||
);
|
||||
console.log("limitTimeDiscount", data.limitTimeDiscount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2037,7 +2014,6 @@ async function getTableDetail() {
|
||||
let res = await $returnTableDetail({
|
||||
tableCode: data.table.tableCode,
|
||||
});
|
||||
console.log(res, "getTableDetail");
|
||||
if (res && res.tableCode) {
|
||||
data.table = res;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user