This commit is contained in:
2025-12-18 11:49:29 +08:00
2 changed files with 57 additions and 36 deletions

View File

@@ -153,14 +153,16 @@
<view class="Controls" v-else> <view class="Controls" v-else>
<view class="btn" v-if="item.cartNumber != '0'"> <view class="btn" v-if="item.cartNumber != '0'">
<up-icon name="minus-circle-fill" color="#E9AB7A" size="25"></up-icon> <up-icon name="minus-circle-fill" color="#E9AB7A" size="25"></up-icon>
<view class="btnClick" <view class="btnClick" @tap.stop="singleclick(item, '-')"></view>
@tap.stop="$u.throttle(() => singleclick(item, '-'), 500)"></view> <!-- <view class="btnClick"
@tap.stop="$u.throttle(() => singleclick(item, '-'), 500)"></view> -->
</view> </view>
<text class="num">{{ ifcartNumber(item) }}</text> <text class="num">{{ ifcartNumber(item) }}</text>
<view class="btn"> <view class="btn">
<up-icon name="plus-circle-fill" color="#E9AB7A" size="25"></up-icon> <up-icon name="plus-circle-fill" color="#E9AB7A" size="25"></up-icon>
<view class="btnClick" <!-- <view class="btnClick"
@tap.stop="$u.throttle(() => singleclick(item, '+'), 500)"></view> @tap.stop="$u.throttle(() => singleclick(item, '+'), 500)"></view> -->
<view class="btnClick" @tap.stop="singleclick(item, '+')"></view>
</view> </view>
</view> </view>
</view> </view>
@@ -288,15 +290,17 @@
<view class="Controls" v-else> <view class="Controls" v-else>
<view class="btn" v-if="item1.cartNumber * 1 != '0'"> <view class="btn" v-if="item1.cartNumber * 1 != '0'">
<up-icon name="minus-circle-fill" color="#E9AB7A" size="25"></up-icon> <up-icon name="minus-circle-fill" color="#E9AB7A" size="25"></up-icon>
<view class="btnClick" <!-- <view class="btnClick"
@tap.stop="$u.throttle(() => singleclick(item1, '-'), 500)"></view> @tap.stop="$u.throttle(() => singleclick(item1, '-'), 500)"></view> -->
<view class="btnClick" @tap.stop="singleclick(item1, '-')"></view>
</view> </view>
<text class="num">{{ ifcartNumber(item1) }}</text> <text class="num">{{ ifcartNumber(item1) }}</text>
<view class="btn"> <view class="btn">
<up-icon name="plus-circle-fill" color="#E9AB7A" size="25"></up-icon> <up-icon name="plus-circle-fill" color="#E9AB7A" size="25"></up-icon>
<view class="btnClick" <!-- <view class="btnClick"
@tap.stop="$u.throttle(() => singleclick(item1, '+'), 500)"></view> @tap.stop="$u.throttle(() => singleclick(item1, '+'), 500)"></view> -->
<view class="btnClick" @tap.stop="singleclick(item1, '+')"></view>
</view> </view>
</view> </view>
</view> </view>
@@ -470,7 +474,7 @@
v-if="specifications.item.suitNum > 1">「{{ specifications.item.suitNum }}{{ specifications.item.unitName }}起点」</text> v-if="specifications.item.suitNum > 1">「{{ specifications.item.suitNum }}{{ specifications.item.unitName }}起点」</text>
</view> </view>
<view class="operation-wrap" v-if="specifications.item.type != 'package'"> <view class="operation-wrap" v-if="specifications.item.type != 'package'&&stockNumberIsFull(specifications.item)">
<view class="btn"> <view class="btn">
<up-icon name="minus-circle-fill" color="#E9AB7A" size="25" <up-icon name="minus-circle-fill" color="#E9AB7A" size="25"
v-if="shopCartNumber > 0"></up-icon> v-if="shopCartNumber > 0"></up-icon>
@@ -486,6 +490,12 @@
<view class="shop_skuselect flex-start" v-if="selectedSpecsStr"> <view class="shop_skuselect flex-start" v-if="selectedSpecsStr">
<view class="shop_skuselectname">{{ selectedSpecsStr }}</view> <view class="shop_skuselectname">{{ selectedSpecsStr }}</view>
</view> </view>
<template v-if="!stockNumberIsFull(specifications.item)">
<view class="addShopping">
库存不足
</view>
</template>
<template v-else>
<template v-if="isSkuGoods"> <template v-if="isSkuGoods">
<view v-if="specifications.item.type == 'package'" class="addShopping" <view v-if="specifications.item.type == 'package'" class="addShopping"
:class="shopCartNumber > 0 && allConditionsSatisfied ? 'active' : ''" :class="shopCartNumber > 0 && allConditionsSatisfied ? 'active' : ''"
@@ -503,6 +513,9 @@
{{ skuBtnText }} {{ skuBtnText }}
</view> </view>
</template> </template>
</template>
</view> </view>
</view> </view>
</up-popup> </up-popup>
@@ -1337,18 +1350,26 @@
return isInRange; return isInRange;
}; };
function stockNumberIsFull(item){
if(item.isStock && item.stockNumber < item.suitNum){
return false
}
return true
}
/** /**
* 判断商品是否可售 * 判断商品是否可售
* @param {Object} item * @param {Object} item
*/ */
function juageProductAvailable(item) { function juageProductAvailable(item, i) {
if (!isProductAvailable(item.days, item.startTime, item.endTime)) { if (!isProductAvailable(item.days, item.startTime, item.endTime)) {
uni.showToast({ uni.showToast({
title: '不在可售时间内' title: '不在可售时间内'
}); });
return false; return false;
} }
if (item.isStock && item.stockNumber < item.suitNum) { if ( item.isStock && item.stockNumber < item.suitNum && i == '+') {
uni.showToast({ uni.showToast({
title: '库存不足', title: '库存不足',
icon: 'none' icon: 'none'
@@ -1361,7 +1382,7 @@
// 单规格 // 单规格
const singleclick = async (item, i) => { const singleclick = async (item, i) => {
console.log('单规格商品点击事件:', item, i); console.log('单规格商品点击事件:', item, i);
if (!juageProductAvailable(item)) { if (!juageProductAvailable(item, i)) {
return false; return false;
} }
// 判断购物车是否有该选中商品 // 判断购物车是否有该选中商品
@@ -1477,9 +1498,9 @@
const websocketsendMessage = (data) => { const websocketsendMessage = (data) => {
console.log('websocketsendMessage', data); console.log('websocketsendMessage', data);
delete data.memberPrice; delete data.memberPrice;
uni.$u.debounce(() => {
useSocket.sendMessage(data); useSocket.sendMessage(data);
}, 500); // uni.$u.debounce(() => {
// }, 500);
}; };
// 用于记录已经处理过的消息的 msg_id // 用于记录已经处理过的消息的 msg_id
@@ -1688,7 +1709,8 @@
} }
// 提示 // 提示
if (Message.status == 0 && Message.type != 'no_suit_num' && Message.type != 'time_discount'&&Message.operate_type != 'rottable_error') { if (Message.status == 0 && Message.type != 'no_suit_num' && Message.type != 'time_discount' && Message
.operate_type != 'rottable_error') {
uni.showToast({ uni.showToast({
title: Message.msg, title: Message.msg,
icon: 'none' icon: 'none'
@@ -2210,7 +2232,7 @@
await userStore.actionsproductqueryShop(newTableCode); await userStore.actionsproductqueryShop(newTableCode);
await userStore.actionsproductqueryProduct(); await userStore.actionsproductqueryProduct();
const res = await APIhistoryOrder({ const res = await APIhistoryOrder({
tableCode:newTableCode tableCode: newTableCode
}); });
if (res && res.id) { if (res && res.id) {
@@ -2265,7 +2287,7 @@
if (e.one_more_order && e.order_id) { if (e.one_more_order && e.order_id) {
extraInitPar.one_more_order = 1 extraInitPar.one_more_order = 1
extraInitPar.order_id = e.order_id extraInitPar.order_id = e.order_id
extraInitPar.user_id = uni.cache.get('userInfo').id||'' extraInitPar.user_id = uni.cache.get('userInfo').id || ''
} }
useSocket.connect({ useSocket.connect({

View File

@@ -387,7 +387,6 @@ export const useCartsStore = defineStore("cart", () => {
limitTimeDiscount.value = Message.time_dis_info; limitTimeDiscount.value = Message.time_dis_info;
} }
cartsGoodsInfoInit(msgData); cartsGoodsInfoInit(msgData);
uni.hideLoading();
isLoading.value = false; isLoading.value = false;
} }