From 0f15137c7f7b6d516ac46ebb3169584d50867f89 Mon Sep 17 00:00:00 2001 From: YeMingfei666 <1619116647@qq.com> Date: Mon, 27 Apr 2026 17:43:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=9A=E5=91=98=E7=A0=81=E5=8E=BB=E6=8E=89,?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A4=9A=E8=A7=84=E6=A0=BC=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=B6=E5=8F=AF=E6=97=A0=E9=99=90=E5=88=B6?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B2=A1=E6=9C=89=E5=AF=B9=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E5=88=A4=E6=96=AD=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/index/indexs.vue | 2 +- pages/product/components/goods-modal.vue | 58 +++++++++++++++++++++++- pages/product/index.vue | 2 + pages/user/user.vue | 2 +- 4 files changed, 61 insertions(+), 3 deletions(-) diff --git a/pages/index/indexs.vue b/pages/index/indexs.vue index 3219763..da70e3f 100644 --- a/pages/index/indexs.vue +++ b/pages/index/indexs.vue @@ -26,7 +26,7 @@ 积分:{{ allConfig.pointNum }} - + diff --git a/pages/product/components/goods-modal.vue b/pages/product/components/goods-modal.vue index 323f9a1..8435d77 100644 --- a/pages/product/components/goods-modal.vue +++ b/pages/product/components/goods-modal.vue @@ -356,6 +356,17 @@ } }, }, + cartNumber:{ + //当前购物车数量 + type:Number, + default:0 + }, + consStockList:{ + type:Array, + default:()=>{ + return [] + } + }, GoodsIDInCartNumMap: { type: Object, default: () => { @@ -810,13 +821,39 @@ return limitUtils.canUseLimitTimeDiscount(item, cartStore.limitTimeDiscount, shopInfo, shopUserInfo.value, 'id') ? 1 : 0; } - + + function returnStockNumber(item) { + if (!item.isAutoSoldStock) { + return 9999 + } + const consList = item.consList + const matchStockList = props.consStockList.filter(v => { + return consList.find(c => c.consInfoId == v.consId) + }).map(v => { + const cItem = item.consList.find(c => c.consInfoId == v.consId) + const goodsNumber = Math.floor(v.stockNumber / cItem.surplusStock) + return { + ...v, + goodsNumber + } + }).sort((a, b) => { + return a.goodsNumber - b.goodsNumber + }) + + const minConsStockNumber = matchStockList[0] ? matchStockList[0].goodsNumber : 9999 + return minConsStockNumber + } + + // 多规格 套餐 单规格添加数量 const shopCart = async (i) => { if (i == '-' && shopCartNumber.value <= (props.goods.suitNum || 1)) { shopCartNumber.value = 0; return false; } + + const stockNumber=returnStockNumber(props.goods)-(props.cartNumber||0) + console.log('stockNumber',stockNumber); let res = null if (i == '-') { @@ -832,15 +869,34 @@ } else { if (!res && shopCartNumber.value < 1) { + if (props.goods.type == 'sku') { if (!selSku.value) { return } + if(stockNumber=stockNumber){ + return uni.showToast({ + title:'商品库存不足!', + icon:'error' + }) + } shopCartNumber.value++; } } diff --git a/pages/product/index.vue b/pages/product/index.vue index 9dbad6a..b9698f4 100644 --- a/pages/product/index.vue +++ b/pages/product/index.vue @@ -402,6 +402,8 @@ diff --git a/pages/user/user.vue b/pages/user/user.vue index 5619707..936add8 100644 --- a/pages/user/user.vue +++ b/pages/user/user.vue @@ -27,7 +27,7 @@ - +