Explorar o código

购物车数量倍数增长加减

zhengjinyi %!s(int64=5) %!d(string=hai) anos
pai
achega
78a32980b2

+ 1 - 2
common/config/caimeiApi.js

@@ -201,8 +201,7 @@ const caimeiApi = {
 			url:url
 		})
 	},
-	isNumber:function(value){
-	//验证是否为数字
+	isNumber:function(value){//验证是否为数字
 	    var patrn = /^(-)?\d+(\.\d+)?$/;
 	    if (patrn.exec(value) == null || value == "") {
 	         return false

+ 3 - 0
components/cm-module/orderDetails/goodsList.vue

@@ -19,6 +19,9 @@
 								<view class="view-num">单价:¥{{pros.price.toFixed(2)}}</view>
 								<view class="view-num">数量(赠品):{{pros.num}}({{pros.presentNum}})</view>
 							</view>
+							<view class="product-view" v-if="pros.returnedNum>0 || pros.actualCancelNum>0">
+								<view class="view-num">已退货/已取消:{{pros.returnedNum}}/{{pros.actualCancelNum}}</view>
+							</view>
 							<view class="product-view">
 								<view class="view-num">税率:{{pros.taxRate}}%</view>
 								<view class="view-num">折扣:{{pros.discount == null ? '0' : pros.discount}}%</view>

+ 0 - 3
components/cm-module/productDetails/supplierDetails.vue

@@ -198,7 +198,6 @@
 			color: $text-color;
 			.tit-l{
 				width: 142rpx;
-				margin-right:20rpx;
 				display: inline-block;
 			}
 		}
@@ -213,7 +212,6 @@
 			color: $text-color;
 			.tit-l{
 				width: 114rpx;
-				margin-right:20rpx;
 				display: inline-block;
 				text-align: right;
 				float: left;
@@ -229,7 +227,6 @@
 			display: flex;
 			.conte-l{
 				width: 142rpx;
-				margin-right:20rpx;
 				.tit-l{
 					text-align: left;
 					display: inline-block;						

+ 19 - 7
pages/goods/cart.vue

@@ -42,7 +42,7 @@
 												<view class="count" v-if="pros.validFlag == '2'"  :class="[isshowDelbtn ? 'none':'show']">
 													<view class="number-box">
 														<view  class="iconfont icon-jianhao" :class="[pros.validFlag == '3'?'disabled':'']" @click="changeCountSub(item,pros)"></view>
-														<input class="btn-input" type="number" maxlength='4' v-model="pros.productCount" @blur="changeNnmber($event,item,pros)">
+														<input class="btn-input" type="number" maxlength='4' v-model="pros.productCount" @blur="changeNnmber($event,item,pros)" @focus="changeInput(pros)">
 														<view  class="iconfont icon-jiahao"  :class="[pros.validFlag == '3'?'disabled':'']" @click="changeCountAdd(item,pros)"></view>
 													</view>
 												</view>
@@ -235,6 +235,7 @@
 								invalidLength = 0;
 							item.productsList.forEach(pros => {
 								pros.shopID = item.shopID;
+								pros.isStep = false
 								if(pros.validFlag == '3' ) {invalidLength++;}
 							})
 							item.isDisabled = invalidLength === productsListLength;
@@ -442,14 +443,14 @@
 			    })
 			},		
 			changeCountAdd(item,pros){//商品数量加加
-				if(pros.productCount>=pros.stock){
-					pros.productCount= pros.stock
-					this.isStock =true
-					return
+				if(pros.step === 2){
+					pros.productCount += pros.minBuyNumber
+					this.processActivityPrice(pros)
+					this.isStock = false
 				}else{
 					pros.productCount++
 					this.processActivityPrice(pros)
-					this.isStock =false
+					this.isStock = false
 				}
 				this.updateShoppogNum(pros)
 				this.totalShopPeice();
@@ -460,12 +461,19 @@
 					this.$util.msg(`该商品最小起订量为${pros.minBuyNumber}`,2000);
 					return
 				}else{
-					pros.productCount--
+					if(pros.step === 2){
+						pros.productCount -= pros.minBuyNumber
+					}else{
+						pros.productCount--
+					}
 					this.processActivityPrice(pros)
 				}
 				this.updateShoppogNum(pros)
 				this.totalShopPeice();
 			},
+			changeInput(pros){//输入商品数量更新
+				pros.isStep = false
+			},
 			changeNnmber(e,item,pros){//输入商品数量更新
 				let _value = e.detail.value;
 				if(!this.$api.isNumber(_value)){
@@ -473,7 +481,11 @@
 				}else if(_value < pros.minBuyNumber){	
 					this.$util.msg(`该商品最小起订量为${pros.minBuyNumber}`,2000);
 					pros.productCount = pros.minBuyNumber
+				}else if(_value % pros.minBuyNumber != 0){
+					pros.isStep = true
+					pros.productCount = pros.minBuyNumber
 				}else{
+					pros.isStep = false
 					pros.productCount = e.detail.value
 					this.processActivityPrice(pros)
 				}

+ 16 - 3
pages/goods/product.vue

@@ -245,6 +245,7 @@
 				productImage:[],
 				retailPrice:0,
 				buyRetailPrice:0,
+				buyRetailPriceStep:1,
 				stock:0,
 				number:0,
 				minBuyNumber:0,
@@ -293,6 +294,7 @@
 					this.ladderPriceFlag = this.product.ladderPriceFlag;
 					this.html = this.product.productDetail == null ? this.html : this.$api.adaptRichTextImg(this.product.productDetail.detailInfo)
 					this.stock = this.product.stock
+					this.buyRetailPriceStep = this.product.step
 					this.number = this.product.minBuyNumber
 					this.minBuyNumber = this.product.minBuyNumber
 					//处理商品图片列表
@@ -404,7 +406,11 @@
 				})
 			},	
 			changeCountAdd(){//popup弹窗数量增加按钮
-				this.number++
+				if(this.buyRetailPriceStep == 2){
+					this.number+=this.minBuyNumber
+				}else{
+					this.number++
+				}
 				this.processActivityPrice()
 			},
 			changeCountSub(){//popup弹窗数量减按钮
@@ -414,7 +420,11 @@
 					this.$util.msg(`该商品最小起订量为${this.minBuyNumber}`,2000);
 					return
 				}else{
-					this.number--
+					if(this.buyRetailPriceStep == 2){
+						this.number-=this.minBuyNumber
+					}else{
+						this.number--
+					}
 					this.processActivityPrice()
 					this.isQuantity =false
 				}
@@ -426,10 +436,13 @@
 				}else if(_value < this.minBuyNumber){	
 					this.$util.msg(`该商品最小起订量为${this.minBuyNumber}`,2000);
 					this.number = this.minBuyNumber
+				}else if( _value % this.minBuyNumber !=0 ){
+					this.$util.msg(`购买量必须为起订量的整数倍`,2000);
+					this.number = this.minBuyNumber
 				}else{
 					this.number = e.detail.value
-					this.processActivityPrice()
 				}
+				this.processActivityPrice()
 			},
 			processActivityPrice(){//单独处理活动价格和阶梯价格
 				if(this.ladderPriceFlag == '0' && this.product.actStatus == 0){

+ 25 - 8
pages/tabBar/cart/cart.vue

@@ -40,9 +40,10 @@
 												</view>
 												<view class="count" v-if="pros.validFlag == '2'"  :class="[isshowDelbtn ? 'none':'show']">
 													<text class="count-tips" v-if="pros.productCount<pros.minBuyNumber">起订量:{{pros.minBuyNumber}}</text>
+													<text class="count-tips step" v-if="pros.isStep">购买量必须为起订量的整数倍</text>
 													<view class="number-box">
 														<view  class="iconfont icon-jianhao" :class="[pros.validFlag == '3'?'disabled':'']" @click="changeCountSub(item,pros)"></view>
-														<input class="btn-input" type="number" maxlength='4' v-model="pros.productCount" @blur="changeNnmber($event,item,pros)">
+														<input class="btn-input" type="number" maxlength='4' v-model="pros.productCount" @blur="changeNnmber($event,item,pros)" @focus="changeInput(pros)">
 														<view  class="iconfont icon-jiahao"  :class="[pros.validFlag == '3'?'disabled':'']" @click="changeCountAdd(item,pros)"></view>
 													</view>
 												</view>
@@ -227,6 +228,7 @@
 								invalidLength = 0;
 							item.productsList.forEach(pros => {
 								pros.shopID = item.shopID;
+								pros.isStep = false
 								if(pros.validFlag == '3' ) {invalidLength++;}
 							})
 							item.isDisabled = invalidLength === productsListLength;
@@ -434,14 +436,14 @@
 			    })
 			},		
 			changeCountAdd(item,pros){//商品数量加加
-				if(pros.productCount>=pros.stock){
-					pros.productCount= pros.stock
-					this.isStock =true
-					return
+				if(pros.step === 2){
+					pros.productCount += pros.minBuyNumber
+					this.processActivityPrice(pros)
+					this.isStock = false
 				}else{
 					pros.productCount++
 					this.processActivityPrice(pros)
-					this.isStock =false
+					this.isStock = false
 				}
 				this.updateShoppogNum(pros)
 				this.totalShopPeice();
@@ -452,20 +454,32 @@
 					this.$util.msg(`该商品最小起订量为${pros.minBuyNumber}`,2000);
 					return
 				}else{
-					pros.productCount--
+					if(pros.step === 2){
+						pros.productCount -= pros.minBuyNumber
+					}else{
+						pros.productCount--
+					}
 					this.processActivityPrice(pros)
 				}
 				this.updateShoppogNum(pros)
 				this.totalShopPeice();
 			},
+			changeInput(pros){//输入商品数量更新
+				pros.isStep = false
+			},
 			changeNnmber(e,item,pros){//输入商品数量更新
-				let _value = e.detail.value;
+				
+				let _value = Number(e.detail.value);
 				if(!this.$api.isNumber(_value)){
 					pros.productCount = pros.minBuyNumber
 				}else if(_value < pros.minBuyNumber){	
 					this.$util.msg(`该商品最小起订量为${pros.minBuyNumber}`,2000);
 					pros.productCount = pros.minBuyNumber
+				}else if(_value % pros.minBuyNumber != 0){
+					pros.isStep = true
+					pros.productCount = pros.minBuyNumber
 				}else{
+					pros.isStep = false
 					pros.productCount = e.detail.value
 					this.processActivityPrice(pros)
 				}
@@ -940,6 +954,9 @@
 						top:-60rpx;
 						left: -5rpx; 
 						z-index: 5;
+						&.step{
+							left:-217rpx
+						}
 						&::before{
 							content: "";
 							position: absolute;

+ 0 - 1
pages/tabBar/user/user.vue

@@ -408,7 +408,6 @@
 					margin-top: 17rpx;
 				}
 				.u-h1{
-					width: 400rpx;
 					float: left;
 					font-size: $font-size-34;
 					color: #FFFFFF;

+ 0 - 1
pages/user/order/create-order.vue

@@ -294,7 +294,6 @@
 						orderInvoice:this.invoiceData
 					}
 					// console.log(param)
-					debugger
 				this.modalLayer = true;	
 				createOrderSubmit({'params':JSON.stringify(param)}).then(response =>{
 					if(response.code === 1){

+ 28 - 17
pages/user/regularPurchase/regularPurchase.vue

@@ -57,7 +57,8 @@
 				isStock:false,
 				minBuyNumber:0,
 				number:0,
-				buyRetailPrice:0
+				buyRetailPrice:0,
+				buyRetailPriceStep:1,
 			}
 		},
 		onLoad() {
@@ -65,10 +66,11 @@
 		},
 		methods:{
 			hanldOperationConfim(data){//显示选择数量确认弹窗
-				this.specClass = 'show';
+				this.specClass = 'show'
 				this.handleData = data
 				this.minBuyNumber = data.minBuyNumber
-				this.buyRetailPrice = data.retailPrice;
+				this.buyRetailPrice = data.retailPrice
+				this.buyRetailPriceStep = data.step
 				if(this.handleData.ladderPriceFlag == '1'){
 					this.number = data.maxBuyNumber
 				}else{
@@ -82,14 +84,12 @@
 				}, 200);
 			},
 			changeCountAdd(){//popup弹窗数量增加按钮
-				this.number++
-				if(this.handleData.ladderPriceFlag == '1'){
-					this.handleData.ladderPriceList.forEach((item,index)=>{
-						if(this.number>=item.buyNum){
-							this.buyRetailPrice = item.buyPrice
-						}
-					})
+				if(this.buyRetailPriceStep == 2){
+					this.number += this.minBuyNumber
+				}else{
+					this.number++
 				}
+				this.calculatPerice()
 			},
 			changeCountSub(){//popup弹窗数量减按钮
 				if(this.number<=this.minBuyNumber){
@@ -98,14 +98,12 @@
 					this.$util.msg(`该商品最小起订量为${this.minBuyNumber}`,2000);
 					return
 				}else{
-					this.number--
-					if(this.handleData.ladderPriceFlag == '1'){
-						this.handleData.ladderPriceList.forEach((item,index)=>{
-							if(this.number>=item.buyNum){
-								this.buyRetailPrice = item.buyPrice
-							}
-						})
+					if(this.buyRetailPriceStep == 2){
+						this.number-=this.minBuyNumber
+					}else{
+						this.number--
 					}
+					this.calculatPerice()
 					this.isQuantity =false
 				}
 			 },
@@ -116,8 +114,21 @@
 				}else if(_value < this.minBuyNumber){	
 					this.$util.msg(`该商品最小起订量为${this.minBuyNumber}`,2000);
 					this.number = this.minBuyNumber
+				}else if( _value % this.minBuyNumber !=0 ){
+					this.$util.msg(`购买量必须为起订量的整数倍`,2000);
+					this.number = this.minBuyNumber
 				}else{
 					this.number = e.detail.value
+					this.calculatPerice()
+				}
+			},
+			calculatPerice(){//判断是否为阶梯价然后做计算价格处理
+				if(this.handleData.ladderPriceFlag == '1'){
+					this.handleData.ladderPriceList.forEach((item,index)=>{
+						if(this.number>=item.buyNum){
+							this.buyRetailPrice = item.buyPrice
+						}
+					})
 				}
 			},
 			toConfirmation(){//跳转确认订单页面

+ 17 - 3
seller/pages/cart/buyagain.vue

@@ -61,7 +61,8 @@
 				isStock:false,
 				minBuyNumber:0,
 				number:0,
-				buyRetailPrice:0
+				buyRetailPrice:0,
+				buyRetailPriceStep:1,
 			}
 		},
 		onLoad() {
@@ -74,10 +75,12 @@
 				})
 			},
 			hanldOperationConfim(data){//显示选择数量确认弹窗
+				console.log(data)
 				this.specClass = 'show';
 				this.handleData = data
 				this.minBuyNumber = data.minBuyNumber
 				this.buyRetailPrice = data.retailPrice;
+				this.buyRetailPriceStep = data.step
 				if(this.handleData.ladderPriceFlag == '1'){
 					this.number = data.maxBuyNumber
 				}else{
@@ -91,7 +94,11 @@
 				}, 200);
 			},
 			changeCountAdd(){//popup弹窗数量增加按钮
-				this.number++
+				if(this.buyRetailPriceStep == 2){
+					this.number += this.minBuyNumber
+				}else{
+					this.number++
+				}
 				this.calculatPerice()
 			},
 			changeCountSub(){//popup弹窗数量减按钮
@@ -101,7 +108,11 @@
 					this.$util.msg(`该商品最小起订量为${this.minBuyNumber}`,2000);
 					return
 				}else{
-					this.number--
+					if(this.buyRetailPriceStep == 2){
+						this.number-=this.minBuyNumber
+					}else{
+						this.number--
+					}
 					this.calculatPerice()
 					this.isQuantity =false
 				}
@@ -113,6 +124,9 @@
 				}else if(_value < this.minBuyNumber){	
 					this.$util.msg(`该商品最小起订量为${this.minBuyNumber}`,2000);
 					this.number = this.minBuyNumber
+				}else if( _value % this.minBuyNumber !=0 ){
+					this.$util.msg(`购买量必须为起订量的整数倍`,2000);
+					this.number = this.minBuyNumber
 				}else{
 					this.number = e.detail.value
 					this.calculatPerice()

+ 1 - 1
seller/pages/cart/cart.vue

@@ -876,7 +876,7 @@
 		}
 		.footer-del{
 			width: 400rpx;
-			height: 100%;
+			height: 110rpx;
 			position: absolute;
 			padding-left: 200rpx;
 			background: #FFFFFF;