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 @@ - +