Selaa lähdekoodia

购买输入框输入错误验证

hangb 8 vuotta sitten
vanhempi
commit
3f6a696da0

+ 204 - 194
src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_cart_ctrl.js

@@ -43,47 +43,47 @@ define(["app/app", 'jquery-summernote'], function(app) {
 		$scope.isChooseAll = false;
 		$scope.isChooseAll = false;
 
 
 		$scope.loadData = function (){
 		$scope.loadData = function (){
-			Cart.getPageInfo($scope.pageInfo, function(data) {
-				$scope.isDataLoading = false;
-				$scope.total = data.totalElements;
-				$scope.pageNum = data.totalPages;
+				Cart.getPageInfo($scope.pageInfo, function(data) {
+					$scope.isDataLoading = false;
+					$scope.total = data.totalElements;
+					$scope.pageNum = data.totalPages;
 
 
-				angular.forEach(data.content, function (cart) {
-					cart.buyCurrency = cart.currencyName.indexOf("RMB") > -1 ? "RMB" : "USD";
-					cart.isSelect = false;
-					//计算分段和统计一下价格
-					$scope.getPrice(cart);
-
-					//便于后期循环
-					$scope.carts.push(cart);
-					$scope.disabledAddAndSub(cart);
-					$scope.countByPage += 1;
-					var isContain = false;
-					for (var i = 0; i < $scope.cartMap.length; i++) {
-						if(angular.equals($scope.cartMap[i].name, cart.storeName)) {
-							$scope.cartMap[i].arr.push(cart);
-							isContain = true;
+					angular.forEach(data.content, function (cart) {
+						cart.buyCurrency = cart.currencyName.indexOf("RMB") > -1 ? "RMB" : "USD";
+						cart.isSelect = false;
+						//计算分段和统计一下价格
+						$scope.getPrice(cart);
+
+						//便于后期循环
+						$scope.carts.push(cart);
+						$scope.disabledAddAndSub(cart);
+						$scope.countByPage += 1;
+						var isContain = false;
+						for (var i = 0; i < $scope.cartMap.length; i++) {
+							if(angular.equals($scope.cartMap[i].name, cart.storeName)) {
+								$scope.cartMap[i].arr.push(cart);
+								isContain = true;
+							}
 						}
 						}
-					}
-					if(!isContain) {
-						var obj = {};
-						obj.name = cart.storeName;
-						obj.arr = [];
-						obj.arr.push(cart);
-						$scope.cartMap.push(obj);
-					}
-				});
-				$scope.cartIsEmpty = !$scope.carts.length ? true : false;
-				//设置全选的复选框
-				$scope.isChooseAll = $scope.isAllSelect($scope.carts);
+						if(!isContain) {
+							var obj = {};
+							obj.name = cart.storeName;
+							obj.arr = [];
+							obj.arr.push(cart);
+							$scope.cartMap.push(obj);
+						}
+					});
+					$scope.cartIsEmpty = !$scope.carts.length ? true : false;
+					//设置全选的复选框
+					$scope.isChooseAll = $scope.isAllSelect($scope.carts);
 
 
-				//设置店铺复选框的状态
-				angular.forEach($scope.cartMap, function (store) {
-					$scope.selectedStore[store.name] = $scope.isAllSelect(store.arr);
+					//设置店铺复选框的状态
+					angular.forEach($scope.cartMap, function (store) {
+						$scope.selectedStore[store.name] = $scope.isAllSelect(store.arr);
+					});
+				},function() {
+					toaster.pop('error', "提示", "获取购物车信息失败,请刷新页面");
 				});
 				});
-			},function() {
-				toaster.pop('error', "提示", "获取购物车信息失败,请刷新页面");
-			});
 		};
 		};
 
 
 		$scope.loadData();
 		$scope.loadData();
@@ -120,7 +120,7 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			//计算总价格
 			//计算总价格
 			$scope.calculateAmount($scope.selectedStoreCarts);
 			$scope.calculateAmount($scope.selectedStoreCarts);
 		};
 		};
-
+		
 		// 减少按钮,每次减minPackQty
 		// 减少按钮,每次减minPackQty
 		$scope.reduce = function(cart){
 		$scope.reduce = function(cart){
 			if(cart.status == 1) {
 			if(cart.status == 1) {
@@ -139,7 +139,7 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			//计算总价格
 			//计算总价格
 			$scope.calculateAmount($scope.selectedStoreCarts);
 			$scope.calculateAmount($scope.selectedStoreCarts);
 		};
 		};
-
+				
 		//根据搜索词过滤购物车信息,对类目、品牌、器件筛选
 		//根据搜索词过滤购物车信息,对类目、品牌、器件筛选
 		$scope.cartFilterCurrency = function(cartGroup) {
 		$scope.cartFilterCurrency = function(cartGroup) {
 			var result = false;
 			var result = false;
@@ -167,8 +167,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 
 
 		$scope.closeTable = function() {
 		$scope.closeTable = function() {
 			console.log('0kds');
 			console.log('0kds');
-		};
-		// //监听点击的位置,隐藏价格梯度的信息
+        };
+        // //监听点击的位置,隐藏价格梯度的信息
 		// document.onclick = function(event) {
 		// document.onclick = function(event) {
 		// 	$scope.$apply(function () {
 		// 	$scope.$apply(function () {
 		// 		angular.forEach($scope.carts, function (cart) {
 		// 		angular.forEach($scope.carts, function (cart) {
@@ -181,9 +181,9 @@ define(["app/app", 'jquery-summernote'], function(app) {
 
 
 		//查看价格分段。
 		//查看价格分段。
 		$scope.togglePrice = function (cart) {
 		$scope.togglePrice = function (cart) {
-			cart.display = cart.display == 'block' ? 'none' : 'block';
-		};
-		// 统计已勾选批次
+            cart.display = cart.display == 'block' ? 'none' : 'block';
+        };
+        // 统计已勾选批次
 		var creatSelectArr = function(){
 		var creatSelectArr = function(){
 			var arr = [];
 			var arr = [];
 			angular.forEach($scope.carts, function(cart) {
 			angular.forEach($scope.carts, function(cart) {
@@ -220,19 +220,28 @@ define(["app/app", 'jquery-summernote'], function(app) {
 
 
 		// 输入购买量限制
 		// 输入购买量限制
 		$scope.blurNum = function (c) {
 		$scope.blurNum = function (c) {
+			$scope.reserveError = false;
+			$scope.minBuyQtyError = false;
+			$scope.minPackQtyError = false;
 			if(isNaN(c.number)) {
 			if(isNaN(c.number)) {
 				toaster.pop('info','提示','请输入数字');
 				toaster.pop('info','提示','请输入数字');
 				c.number = c.goods.minBuyQty;
 				c.number = c.goods.minBuyQty;
 			}
 			}
 			c.number = Number(c.number);
 			c.number = Number(c.number);
 			if (c.number < c.goods.minBuyQty || !c.number) {
 			if (c.number < c.goods.minBuyQty || !c.number) {
-				toaster.pop("info", "提示", "该商品最少购买" + c.goods.minBuyQty + "件");
-				c.number = c.goods.minBuyQty;
+				// toaster.pop("info", "提示", "该商品最少购买" + c.goods.minBuyQty + "件");
+				if (c.goods.breakUp) {
+					c.number = c.goods.minBuyQty;
+				} else {
+					$scope.minBuyQtyError = true;
+					c.number = Number(NumberService.sub(c.goods.minBuyQty, c.goods.minBuyQty % c.goods.minPackQty));
+				}
 			}else if(c.number > c.goods.reserve){
 			}else if(c.number > c.goods.reserve){
-				toaster.pop("info", "提示", "库存不足");
+				// toaster.pop("info", "提示", "库存不足");
 				if(c.goods.breakUp) {
 				if(c.goods.breakUp) {
 					c.number = c.goods.reserve;
 					c.number = c.goods.reserve;
 				}else {
 				}else {
+					$scope.reserveError = true;
 					c.number = Number(NumberService.sub(c.goods.reserve, c.goods.reserve % c.goods.minPackQty));
 					c.number = Number(NumberService.sub(c.goods.reserve, c.goods.reserve % c.goods.minPackQty));
 				}
 				}
 				if(Number(c.number) < Number(c.goods.minBuyQty)) {
 				if(Number(c.number) < Number(c.goods.minBuyQty)) {
@@ -242,6 +251,7 @@ define(["app/app", 'jquery-summernote'], function(app) {
 				if(!c.goods.breakUp) {
 				if(!c.goods.breakUp) {
 					var remander = c.number % c.goods.minPackQty;
 					var remander = c.number % c.goods.minPackQty;
 					if(remander != 0) {
 					if(remander != 0) {
+						$scope.minPackQtyError = true;
 						c.number = NumberService.sub(c.number, c.number % c.goods.minPackQty);
 						c.number = NumberService.sub(c.number, c.number % c.goods.minPackQty);
 						c.number = NumberService.add(c.number, c.goods.minPackQty);
 						c.number = NumberService.add(c.number, c.goods.minPackQty);
 					}
 					}
@@ -328,8 +338,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 						return ;
 						return ;
 					}
 					}
 				}
 				}
-				$scope.totalMoneyInfo.countBT++;
-				$scope.selectedStoreCarts.push(cart);
+                $scope.totalMoneyInfo.countBT++;
+                $scope.selectedStoreCarts.push(cart);
 			}else {//取消勾选
 			}else {//取消勾选
 				$scope.totalMoneyInfo.countBT--;
 				$scope.totalMoneyInfo.countBT--;
 				$scope.selectedStoreCarts = $scope.selectedStoreCarts.filter(function(item) {
 				$scope.selectedStoreCarts = $scope.selectedStoreCarts.filter(function(item) {
@@ -373,36 +383,36 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			}
 			}
 		};
 		};
 
 
-		// 清空失效产品
-		$scope.deleteInvalid = function(){
+        // 清空失效产品
+        $scope.deleteInvalid = function(){
 			var arr = [];
 			var arr = [];
-			angular.forEach($scope.carts, function(cart){
-				if(cart.status == 1){
-					arr.push(cart.id);
-				}
-			});
-			if(arr.length <= 0) {
-				toaster.pop('warning', '提示', '购物车内目前没有失效的产品');
-				return ;
-			}
-			var ids = angular.toJson(arr);
-			$modal.open({
-				templateUrl : 'static/view/common/modal/invalid_delete_modal.html',
-				controller : 'cartDeleteCtrl',
-				size : 'md',
-				resolve : {
-					description : function () {
-						return '是否删除购物车内的无效商品';
-					},
-					ids : function () {
-						return ids;
-					}
-				}
-			}).result.then(function () {
+            angular.forEach($scope.carts, function(cart){
+                if(cart.status == 1){
+                    arr.push(cart.id);
+                }
+            });
+            if(arr.length <= 0) {
+                toaster.pop('warning', '提示', '购物车内目前没有失效的产品');
+                return ;
+            }
+            var ids = angular.toJson(arr);
+            $modal.open({
+                templateUrl : 'static/view/common/modal/invalid_delete_modal.html',
+                controller : 'cartDeleteCtrl',
+                size : 'md',
+                resolve : {
+                    description : function () {
+                        return '是否删除购物车内的无效商品';
+                    },
+                    ids : function () {
+                        return ids;
+                    }
+                }
+            }).result.then(function () {
 				afterDeleteRefreshInfo(arr);
 				afterDeleteRefreshInfo(arr);
 			}, function () {
 			}, function () {
-			});
-		};
+            });
+        };
 
 
 		var afterDeleteRefreshInfo = function (arr) {
 		var afterDeleteRefreshInfo = function (arr) {
 			if(arr.length < 1) {
 			if(arr.length < 1) {
@@ -446,22 +456,22 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			$scope.calculateAmount($scope.selectedStoreCarts);
 			$scope.calculateAmount($scope.selectedStoreCarts);
 		}
 		}
 
 
-		$scope.deleteById = function(id){
-			var arr = [];
-			if(id != null){
-				arr.push(id);
-			}else {
-				angular.forEach($scope.carts, function(cart){
-					if(cart.isSelect){
-						arr.push(cart.id);
-					}
-				});
-			}
-			if(arr.length <= 0) {
+        $scope.deleteById = function(id){
+            var arr = [];
+            if(id != null){
+                arr.push(id);
+            }else {
+                angular.forEach($scope.carts, function(cart){
+                    if(cart.isSelect){
+                        arr.push(cart.id);
+                    }
+                });
+            }
+            if(arr.length <= 0) {
 				toaster.pop('warning', '提示', '请选择需要删除的商品');
 				toaster.pop('warning', '提示', '请选择需要删除的商品');
 				return ;
 				return ;
 			}
 			}
-			var ids = angular.toJson(arr);
+            var ids = angular.toJson(arr);
 			$modal.open({
 			$modal.open({
 				templateUrl : 'static/view/common/modal/delete_modal.html',
 				templateUrl : 'static/view/common/modal/delete_modal.html',
 				controller : 'cartDeleteCtrl',
 				controller : 'cartDeleteCtrl',
@@ -470,9 +480,9 @@ define(["app/app", 'jquery-summernote'], function(app) {
 					description : function () {
 					description : function () {
 						return '是否删除此商品';
 						return '是否删除此商品';
 					},
 					},
-					ids : function () {
-						return ids;
-					}
+                    ids : function () {
+                        return ids;
+                    }
 				}
 				}
 			}).result.then(function () {
 			}).result.then(function () {
 				afterDeleteRefreshInfo(arr);
 				afterDeleteRefreshInfo(arr);
@@ -499,8 +509,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 				});
 				});
 				return !contain;
 				return !contain;
 			});
 			});
-		};
-		//判断是空对象
+        };
+        //判断是空对象
 		$scope.isNullObject = function(obj) {
 		$scope.isNullObject = function(obj) {
 			var isObject = true;
 			var isObject = true;
 			for(var k in obj) {
 			for(var k in obj) {
@@ -538,8 +548,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 					cart.contactSeller = false;
 					cart.contactSeller = false;
 				};
 				};
 			});
 			});
-		};
-		/**
+        };
+        /**
 		 * 监听点击的位置,隐藏相应的状态框
 		 * 监听点击的位置,隐藏相应的状态框
 		 * @param event
 		 * @param event
 		 */
 		 */
@@ -576,8 +586,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 					if(!isThisTag) {
 					if(!isThisTag) {
 						$scope.carts[i].contactSeller = false;
 						$scope.carts[i].contactSeller = false;
 					}
 					}
-				}
-			});
+                }
+            });
 		};
 		};
 
 
 
 
@@ -599,23 +609,23 @@ define(["app/app", 'jquery-summernote'], function(app) {
 		$scope.setAllCartCheck = function(checked) {
 		$scope.setAllCartCheck = function(checked) {
 			$scope.selectedStoreCarts = [];
 			$scope.selectedStoreCarts = [];
 			angular.forEach($scope.cartMap, function(store) {
 			angular.forEach($scope.cartMap, function(store) {
-				if(store.arr && store.arr.length > 0) {
-					var storeChecked = false;
-					angular.forEach(store.arr, function (cart) {
-						if(cart.status != 1 && checked) {//购物车的信息是否有效【是否下架】
-							cart.isSelect = checked;
-							storeChecked = true;
-							$scope.selectedStoreCarts.push(cart);
+					if(store.arr && store.arr.length > 0) {
+						var storeChecked = false;
+						angular.forEach(store.arr, function (cart) {
+							if(cart.status != 1 && checked) {//购物车的信息是否有效【是否下架】
+								cart.isSelect = checked;
+								storeChecked = true;
+								$scope.selectedStoreCarts.push(cart);
+							}else {
+								cart.isSelect = false;
+							}
+						});
+						if(storeChecked) {
+							$scope.selectedStore[store.name] = checked;//店铺的复选框也需要同步
 						}else {
 						}else {
-							cart.isSelect = false;
+							$scope.selectedStore[store.name] = false;//如果没有执行过storeChecked = true,则该店铺代表所有的都没有勾选
 						}
 						}
-					});
-					if(storeChecked) {
-						$scope.selectedStore[store.name] = checked;//店铺的复选框也需要同步
-					}else {
-						$scope.selectedStore[store.name] = false;//如果没有执行过storeChecked = true,则该店铺代表所有的都没有勾选
 					}
 					}
-				}
 
 
 			});
 			});
 		};
 		};
@@ -634,8 +644,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 				}
 				}
 			}
 			}
 			return !isAlldisabled&&isAllChecked;
 			return !isAlldisabled&&isAllChecked;
-		};
-		/**
+        };
+        /**
 		 * 店铺选中状态信息
 		 * 店铺选中状态信息
 		 */
 		 */
 		$scope.selectedStore = {};
 		$scope.selectedStore = {};
@@ -780,17 +790,17 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			SessionService.set("buyNow",false);
 			SessionService.set("buyNow",false);
 			var jsonOrderDetails = angular.toJson(result);
 			var jsonOrderDetails = angular.toJson(result);
 			Order.saveByGroup({}, jsonOrderDetails, function(result){
 			Order.saveByGroup({}, jsonOrderDetails, function(result){
-				if(result.code == 1) {
+                if(result.code == 1) {
 					if(result.message) {
 					if(result.message) {
 						toaster.pop('info', result.message);
 						toaster.pop('info', result.message);
 					}
 					}
-					$state.go('order_pay', {orderid :  enIdFilter(result.data.orderid)});
-				}else if(result.code == 7){
-					toaster.pop('info', '提示', "选中的购物车信息已经失效,将为您刷新界面之后重新操作");
+                    $state.go('order_pay', {orderid :  enIdFilter(result.data.orderid)});
+                }else if(result.code == 7){
+                    toaster.pop('info', '提示', "选中的购物车信息已经失效,将为您刷新界面之后重新操作");
 					$timeout(function () {
 					$timeout(function () {
 						window.location.reload();
 						window.location.reload();
 					}, 1500);
 					}, 1500);
-				}else {
+                }else {
 					toaster.pop('info', '提示', result.message);
 					toaster.pop('info', '提示', result.message);
 				}
 				}
 			}, function(res){
 			}, function(res){
@@ -838,41 +848,41 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			}
 			}
 
 
 		};
 		};
-		// 移入收藏后删除购物车操作
+        // 移入收藏后删除购物车操作
 		$scope.collectDelete = function(id){
 		$scope.collectDelete = function(id){
-			var arr = [];
-			if(id != null){
-				arr.push(id);
-			}else {
-				angular.forEach($scope.carts, function(cart){
-					if(cart.isSelect){
-						arr.push(cart.id);
-					}
-				});
-			}
-			var ids = angular.toJson(arr);
-			Cart.deleteById({ids : ids}, function(data){
-				$rootScope.countCart = $rootScope.countCart - arr.length;
-
-				//更新选中的购物车信息
-				$scope.selectedStoreCarts = $scope.arrayFilterId($scope.selectedStoreCarts, arr);
-				//更新购物车信息
-				$scope.carts = $scope.arrayFilterId($scope.carts, arr);
-				//判断是否全部删除,如果全部删除,就将全选置为取消状态。
-				if($scope.carts.length == 0) {
-					$scope.isChooseAll = false;
+            var arr = [];
+            if(id != null){
+                arr.push(id);
+            }else {
+                angular.forEach($scope.carts, function(cart){
+                    if(cart.isSelect){
+                        arr.push(cart.id);
+                    }
+                });
+            }
+            var ids = angular.toJson(arr);
+            Cart.deleteById({ids : ids}, function(data){
+                $rootScope.countCart = $rootScope.countCart - arr.length;
+
+                //更新选中的购物车信息
+                $scope.selectedStoreCarts = $scope.arrayFilterId($scope.selectedStoreCarts, arr);
+                //更新购物车信息
+                $scope.carts = $scope.arrayFilterId($scope.carts, arr);
+                //判断是否全部删除,如果全部删除,就将全选置为取消状态。
+                if($scope.carts.length == 0) {
+                    $scope.isChooseAll = false;
 					$scope.cartIsEmpty = true;
 					$scope.cartIsEmpty = true;
-				}
+                }
 
 
-				//更新map中购物车信息
-				var deleteStoreName = [];
+                //更新map中购物车信息
+                var deleteStoreName = [];
 				angular.forEach($scope.cartMap, function(store) {
 				angular.forEach($scope.cartMap, function(store) {
-					if(store.arr && store.arr.length > 0) {
-						store.arr = $scope.arrayFilterId(store.arr, arr)
-						if(!store.arr || !store.arr.length || store.arr.length == 0) {
-							deleteStoreName.push(store.name);
+						if(store.arr && store.arr.length > 0) {
+							store.arr = $scope.arrayFilterId(store.arr, arr)
+							if(!store.arr || !store.arr.length || store.arr.length == 0) {
+								deleteStoreName.push(store.name);
+							}
 						}
 						}
-					}
 				});
 				});
 				//删除$scope.cartMap多余的部分。
 				//删除$scope.cartMap多余的部分。
 				angular.forEach(deleteStoreName, function(storeName) {
 				angular.forEach(deleteStoreName, function(storeName) {
@@ -881,27 +891,27 @@ define(["app/app", 'jquery-summernote'], function(app) {
 					});
 					});
 				});
 				});
 
 
-				//计算总金额
-				$scope.calculateAmount($scope.selectedStoreCarts);
+                //计算总金额
+                $scope.calculateAmount($scope.selectedStoreCarts);
 
 
-			}, function (res) {
-				toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
-			});
+            }, function (res) {
+                toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
+            });
 
 
 
 
 		};
 		};
-		// 移入收藏
-		$scope.collect = function(uuid, id) {
+        // 移入收藏
+        $scope.collect = function(uuid, id) {
 			if(uuid){
 			if(uuid){
-				ComponentActive.getSimpleInfoByUuid({uuid: uuid}, { }, function(data){
-					var obj = {'componentid': data.id, 'kind': 2};
-					collectionService.saveEntity({ }, obj, function(data) {
-						$scope.collectDelete(id);
-						toaster.pop('success', '收藏成功');
-					}, function(response) {
-						toaster.pop('error', '收藏失败');
-					})
-				});
+                ComponentActive.getSimpleInfoByUuid({uuid: uuid}, { }, function(data){
+                    var obj = {'componentid': data.id, 'kind': 2};
+                    collectionService.saveEntity({ }, obj, function(data) {
+                        $scope.collectDelete(id);
+                        toaster.pop('success', '收藏成功');
+                    }, function(response) {
+                        toaster.pop('error', '收藏失败');
+                    })
+                });
 			}else{
 			}else{
 				var uuids = [];
 				var uuids = [];
 				angular.forEach($scope.cartMap, function(store){
 				angular.forEach($scope.cartMap, function(store){
@@ -915,14 +925,14 @@ define(["app/app", 'jquery-summernote'], function(app) {
 					toaster.pop('info', '你还未选择任何产品');
 					toaster.pop('info', '你还未选择任何产品');
 					return;
 					return;
 				}
 				}
-				collectionService.saveStores({ }, uuids, function(response){
+                collectionService.saveStores({ }, uuids, function(response){
 					if(response.data == "success"){
 					if(response.data == "success"){
-						$scope.collectDelete();
-						toaster.pop('success', '收藏成功');
+                        $scope.collectDelete();
+                        toaster.pop('success', '收藏成功');
 					}
 					}
 				},function () {
 				},function () {
-					toaster.pop('error', '收藏失败');
-				})
+                    toaster.pop('error', '收藏失败');
+                })
 			}
 			}
 		}
 		}
 
 
@@ -968,32 +978,32 @@ define(["app/app", 'jquery-summernote'], function(app) {
 		}
 		}
 	}]);
 	}]);
 
 
-	/**
-	 * 删除的逻辑
-	 */
+    /**
+     * 删除的逻辑
+     */
 	app.register.controller('cartDeleteCtrl', ['$scope', 'description', 'Cart', '$modalInstance', 'toaster', 'ids', function ($scope, description, Cart, $modalInstance, toaster,ids) {
 	app.register.controller('cartDeleteCtrl', ['$scope', 'description', 'Cart', '$modalInstance', 'toaster', 'ids', function ($scope, description, Cart, $modalInstance, toaster,ids) {
 
 
-		$scope.confirmDelete = function () {
-			Cart.deleteById({ids : ids}, function(data){
-				toaster.pop('success', '成功删除');
-				$modalInstance.close()
-			}, function (res) {
-				toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
-			});
-		};
-
-		$scope.confirmDeleteInvalid = function () {
-			Cart.deleteById({ids : ids}, function(data){
-				toaster.pop('success', '成功清除购物车内的无效产品');
-				$modalInstance.close()
-			}, function (res) {
-				toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
-			});
-		};
-
-		$scope.cancleDelete = function () {
-			$modalInstance.dismiss();
-		}
+        $scope.confirmDelete = function () {
+            Cart.deleteById({ids : ids}, function(data){
+                toaster.pop('success', '成功删除');
+                $modalInstance.close()
+            }, function (res) {
+                toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
+            });
+        };
+
+        $scope.confirmDeleteInvalid = function () {
+            Cart.deleteById({ids : ids}, function(data){
+                toaster.pop('success', '成功清除购物车内的无效产品');
+                $modalInstance.close()
+            }, function (res) {
+                toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
+            });
+        };
+
+        $scope.cancleDelete = function () {
+            $modalInstance.dismiss();
+        }
 
 
 	}]);
 	}]);
 
 

+ 12 - 2
src/main/webapp/resources/js/usercenter/controllers/forstore/order_pay_ctrl.js

@@ -415,14 +415,23 @@ define(['app/app'], function(app) {
 
 
 		// 输入购买量限制
 		// 输入购买量限制
 		$scope.blurNum = function (detail) {
 		$scope.blurNum = function (detail) {
+			$scope.minBuyQtyError = false;
+			$scope.reserveError = false;
+			$scope.minPackQtyError = false;
 			detail.number = Number(detail.number);
 			detail.number = Number(detail.number);
 			if (detail.number < detail.goodsHistory.minBuyQty || !detail.number) {
 			if (detail.number < detail.goodsHistory.minBuyQty || !detail.number) {
-				toaster.pop("info", "提示", "该商品最少购买" + detail.goodsHistory.minBuyQty + "件");
-				detail.number = detail.goodsHistory.minBuyQty;
+				// toaster.pop("info", "提示", "该商品最少购买" + detail.goodsHistory.minBuyQty + "件");
+				if(detail.goodsHistory.breakUp) {
+					detail.number = detail.goodsHistory.minBuyQty;
+				}else{
+					$scope.minBuyQtyError = true;
+					detail.number = Number(NumberService.sub(detail.goodsHistory.minBuyQty, detail.goodsHistory.minBuyQty %detail.goodsHistory.minPackQty));
+				}
 			}else if(detail.number > detail.goodsHistory.reserve){
 			}else if(detail.number > detail.goodsHistory.reserve){
 				if(detail.goodsHistory.breakUp) {
 				if(detail.goodsHistory.breakUp) {
 					detail.number = detail.goodsHistory.reserve;
 					detail.number = detail.goodsHistory.reserve;
 				}else{
 				}else{
+					$scope.reserveError = true;
 					detail.number = Number(NumberService.sub(detail.goodsHistory.reserve, detail.goodsHistory.reserve %detail.goodsHistory.minPackQty));
 					detail.number = Number(NumberService.sub(detail.goodsHistory.reserve, detail.goodsHistory.reserve %detail.goodsHistory.minPackQty));
 				}
 				}
 				toaster.pop('info', '提示','库存不足');
 				toaster.pop('info', '提示','库存不足');
@@ -430,6 +439,7 @@ define(['app/app'], function(app) {
 				if(!detail.goodsHistory.breakUp) {
 				if(!detail.goodsHistory.breakUp) {
 					var remandar = detail.number % detail.goodsHistory.minPackQty;
 					var remandar = detail.number % detail.goodsHistory.minPackQty;
 					if(remandar != 0) {
 					if(remandar != 0) {
+						$scope.minPackQtyError = true;
 						detail.number = Number(NumberService.add(NumberService.sub(detail.number, detail.number % detail.goodsHistory.minPackQty), detail.goodsHistory.minPackQty));
 						detail.number = Number(NumberService.add(NumberService.sub(detail.number, detail.number % detail.goodsHistory.minPackQty), detail.goodsHistory.minPackQty));
 						if(detail.number > detail.goodsHistory.reserve) {
 						if(detail.number > detail.goodsHistory.reserve) {
 							detail.number = NumberService.sub(detail.goodsHistory.reserve, detail.goodsHistory.reserve % detail.goodsHistory.minPackQty);
 							detail.number = NumberService.sub(detail.goodsHistory.reserve, detail.goodsHistory.reserve % detail.goodsHistory.minPackQty);

+ 39 - 15
src/main/webapp/resources/view/usercenter/forstore/buyer_cart.html

@@ -323,6 +323,7 @@
 		width: 70px;
 		width: 70px;
 		height: 29px;
 		height: 29px;
 		line-height: 29px;
 		line-height: 29px;
+		border: 1px solid #ccc;
 	}
 	}
 	.shopCar .btn-wrap .number{
 	.shopCar .btn-wrap .number{
 		width: 124px;
 		width: 124px;
@@ -498,6 +499,26 @@
 	.sure_oder select:disabled.select:hover{
 	.sure_oder select:disabled.select:hover{
 		cursor: not-allowed;
 		cursor: not-allowed;
 	}
 	}
+	/*添加是否可拆买、库存不足等提示*/
+	.shopCar .oder_list dl .line02 em.tip{
+		display: inline-block;
+		margin-top: 6px;
+		width: 165px;
+		text-align: left;
+		font-size: 12px;
+		font-weight: normal ;
+		line-height: 18px;
+		color: #e64040;
+	}
+	.shopCar .oder_list dl .line02 em.tip i{
+		font-size: 12px;
+		font-style: normal ;
+		color: #e64040;
+	}
+	.shopCar .oder_list dl .line02 em.tips{
+		width: 124px;
+		text-align: center;
+	}
 </style>
 </style>
 <div class="user_right fr" id="buyer_cart">
 <div class="user_right fr" id="buyer_cart">
 	<!--订单中心-->
 	<!--订单中心-->
@@ -511,11 +532,11 @@
 		</div>
 		</div>
 		<div class="oder_list" style="margin-top: 0; background: #f5f5f5;">
 		<div class="oder_list" style="margin-top: 0; background: #f5f5f5;">
 			<!--<div class="page">-->
 			<!--<div class="page">-->
-			<!--<ul>-->
-			<!--<li><a ng-click="jumpToPage(pageInfo.page - 1)">上一页</a> </li>-->
-			<!--<li>第<input ng-model="toPage" ng-search="jumpToPage(toPage)">页</li>-->
-			<!--<li><a ng-click="jumpToPage(pageInfo.page + 1)">下一页</a> </li>-->
-			<!--</ul>-->
+				<!--<ul>-->
+					<!--<li><a ng-click="jumpToPage(pageInfo.page - 1)">上一页</a> </li>-->
+					<!--<li>第<input ng-model="toPage" ng-search="jumpToPage(toPage)">页</li>-->
+					<!--<li><a ng-click="jumpToPage(pageInfo.page + 1)">下一页</a> </li>-->
+				<!--</ul>-->
 			<!--</div>-->
 			<!--</div>-->
 			<!--购物车清单-->
 			<!--购物车清单-->
 			<dl style="display: inline-block;" when-scrolled="scrollLoadData()">
 			<dl style="display: inline-block;" when-scrolled="scrollLoadData()">
@@ -610,6 +631,9 @@
 										<a class="add" ng-disabled="cart.addDisabled || cart.status == 1" ng-click="add(cart)">+</a>
 										<a class="add" ng-disabled="cart.addDisabled || cart.status == 1" ng-click="add(cart)">+</a>
 									</span>
 									</span>
 									<i ng-if="cart.status == 2" style="color: #f00; margin-left: 32px;">库存紧张</i>
 									<i ng-if="cart.status == 2" style="color: #f00; margin-left: 32px;">库存紧张</i>
+									<em class="tip" ng-if="!cart.goods.breakUp && minPackQtyError">不支持拆包且最小包装数量为<i ng-bind="cart.minPackQty"></i></em>
+									<em class="tip tips" ng-if="!cart.goods.breakUp && reserveError">库存不足</em>
+									<em class="tip tips" ng-if="!cart.goods.breakUp && minBuyQtyError">最小起订量为<i ng-bind="cart.goods.minBuyQty"></i></em>
 								</div>
 								</div>
 							</span>
 							</span>
 							<span class="wd02" style="position: relative">
 							<span class="wd02" style="position: relative">
@@ -749,14 +773,14 @@
 	</div>-->
 	</div>-->
 </div>
 </div>
 <script>
 <script>
-	$(function(){
-		$(window).bind("scroll",function() {
-			// 判断窗口的滚动条是否接近页面底部,这里的20可以自定义
-			if ($(document).scrollTop() + $(window).height() > $(document).height() - 330) {
-				$('.shopCar .oder_list dl .all_price.fixed-bottom').slideUp()
-			}else {
-				$('.shopCar .oder_list dl .all_price.fixed-bottom').slideDown()
-			}
-		})
-	})
+    $(function(){
+        $(window).bind("scroll",function() {
+            // 判断窗口的滚动条是否接近页面底部,这里的20可以自定义
+            if ($(document).scrollTop() + $(window).height() > $(document).height() - 330) {
+                $('.shopCar .oder_list dl .all_price.fixed-bottom').slideUp()
+            }else {
+                $('.shopCar .oder_list dl .all_price.fixed-bottom').slideDown()
+            }
+        })
+    })
 </script>
 </script>

+ 54 - 31
src/main/webapp/resources/view/usercenter/forstore/order_pay.html

@@ -581,6 +581,26 @@
 		font-size: 14px;
 		font-size: 14px;
 		color: #fff;
 		color: #fff;
 	}
 	}
+	/*添加是否可拆买、库存不足等提示*/
+	.sure_oder .btn-wrap .tip{
+		display: inline-block;
+		margin-top: 4px;
+		width: 150px;
+		text-align: left;
+		font-size: 12px;
+		font-weight: normal ;
+		line-height: 18px;
+		color: #e64040;
+	}
+	.sure_oder .btn-wrap .tip i{
+		font-size: 12px;
+		font-style: normal ;
+		color: #e64040;
+	}
+	.sure_oder .btn-wrap em.tips{
+		width: 124px;
+		text-align: center;
+	}
 </style>
 </style>
 <!--右侧主体部分-->
 <!--右侧主体部分-->
 <div class="user_right fr" id="pay-cart">
 <div class="user_right fr" id="pay-cart">
@@ -698,34 +718,37 @@
 								<p><a href="product/brand/{{detail.branduuid}}/" target="_blank" style="color: #323232">品牌:<b ng-bind="detail.brName" style="color: #323232" title="{{detail.brName}}"></b></a></p>
 								<p><a href="product/brand/{{detail.branduuid}}/" target="_blank" style="color: #323232">品牌:<b ng-bind="detail.brName" style="color: #323232" title="{{detail.brName}}"></b></a></p>
 							</div>
 							</div>
                         </span>
                         </span>
-							<span class="wd01" ng-if="order.status == 501">
+						<span class="wd01" ng-if="order.status == 501">
 							交期 :
 							交期 :
 							<i ng-if="detail.goodsHistory.b2cMinDelivery == detail.goodsHistory.b2cMaxDelivery" ng-bind="detail.goodsHistory.b2cMinDelivery"></i>
 							<i ng-if="detail.goodsHistory.b2cMinDelivery == detail.goodsHistory.b2cMaxDelivery" ng-bind="detail.goodsHistory.b2cMinDelivery"></i>
 							<i ng-if="detail.goodsHistory.b2cMinDelivery != detail.goodsHistory.b2cMaxDelivery" ng-bind="detail.goodsHistory.b2cMinDelivery + '-' + detail.goodsHistory.b2cMaxDelivery"></i>
 							<i ng-if="detail.goodsHistory.b2cMinDelivery != detail.goodsHistory.b2cMaxDelivery" ng-bind="detail.goodsHistory.b2cMinDelivery + '-' + detail.goodsHistory.b2cMaxDelivery"></i>
-								<!--{{detail.goodsHistory.b2cMinDelivery}}-{{detail.goodsHistory.b2cMaxDelivery}}-->
+							<!--{{detail.goodsHistory.b2cMinDelivery}}-{{detail.goodsHistory.b2cMaxDelivery}}-->
 						</span>
 						</span>
-							<span class="wd01" ng-if="order.status != 501">
+						<span class="wd01" ng-if="order.status != 501">
 							交期 :
 							交期 :
 						<i ng-if="detail.b2cMinDelivery == detail.b2cMaxDelivery" ng-bind="detail.b2cMinDelivery"></i>
 						<i ng-if="detail.b2cMinDelivery == detail.b2cMaxDelivery" ng-bind="detail.b2cMinDelivery"></i>
 						<i ng-if="detail.b2cMinDelivery != detail.b2cMaxDelivery" ng-bind="detail.b2cMinDelivery + '-' + detail.b2cMaxDelivery"></i>
 						<i ng-if="detail.b2cMinDelivery != detail.b2cMaxDelivery" ng-bind="detail.b2cMinDelivery + '-' + detail.b2cMaxDelivery"></i>
 						</span>
 						</span>
-							<span>
+						<span>
 							<select class="select" ng-model="detail.currencyName" ng-if="order.buyNow&&(order.status == 501)&&(detail.goodsHistory.currencyName=='RMB-USD')" ng-change="changeCurrency(detail)">
 							<select class="select" ng-model="detail.currencyName" ng-if="order.buyNow&&(order.status == 501)&&(detail.goodsHistory.currencyName=='RMB-USD')" ng-change="changeCurrency(detail)">
 								<option value="RMB" selected="selected" ng-bind="detail.rmbUnitPrice | formateNumber : 6 | currencySysmbol : 'RMB'"></option>
 								<option value="RMB" selected="selected" ng-bind="detail.rmbUnitPrice | formateNumber : 6 | currencySysmbol : 'RMB'"></option>
 								<option value="USD" ng-bind="detail.usdUnitPrice | formateNumber : 6 | currencySysmbol : 'USD'"></option>
 								<option value="USD" ng-bind="detail.usdUnitPrice | formateNumber : 6 | currencySysmbol : 'USD'"></option>
 							</select>
 							</select>
 						</span>
 						</span>
-							<span class="wd01" ng-if="(order.status == 501)&&(detail.goodsHistory.currencyName == 'RMB')" ng-bind="detail.rmbUnitPrice | formateNumber : 6 | currencySysmbol : 'RMB'"></span>
-							<span class="wd01" ng-if="(order.status == 501)&&(detail.goodsHistory.currencyName == 'USD')" ng-bind="detail.usdUnitPrice | formateNumber : 6 | currencySysmbol : 'USD'"></span>
-							<span class="wd01" ng-bind="detail.taxUnitprice | formateNumber : 6 | currencySysmbol : 'RMB'" ng-if="detail.currencyName.indexOf('RMB') > -1 && order.status != 501"></span>
-							<span class="wd01" ng-bind="detail.taxUnitprice | formateNumber : 6 | currencySysmbol : 'USD'" ng-if="detail.currencyName.indexOf('USD') > -1 && order.status != 501"></span>
-							<span class="wd01">
+						<span class="wd01" ng-if="(order.status == 501)&&(detail.goodsHistory.currencyName == 'RMB')" ng-bind="detail.rmbUnitPrice | formateNumber : 6 | currencySysmbol : 'RMB'"></span>
+						<span class="wd01" ng-if="(order.status == 501)&&(detail.goodsHistory.currencyName == 'USD')" ng-bind="detail.usdUnitPrice | formateNumber : 6 | currencySysmbol : 'USD'"></span>
+						<span class="wd01" ng-bind="detail.taxUnitprice | formateNumber : 6 | currencySysmbol : 'RMB'" ng-if="detail.currencyName.indexOf('RMB') > -1 && order.status != 501"></span>
+						<span class="wd01" ng-bind="detail.taxUnitprice | formateNumber : 6 | currencySysmbol : 'USD'" ng-if="detail.currencyName.indexOf('USD') > -1 && order.status != 501"></span>
+						<span class="wd01">
                             <div class="btn-wrap">
                             <div class="btn-wrap">
                             <span class="number add-minus" ng-if="order.status == 501">
                             <span class="number add-minus" ng-if="order.status == 501">
                                 <a href="javascript:void(0)" class="reduce" ng-click="reduce(detail)" ng-disabled="detail.minusDisabled">-</a>
                                 <a href="javascript:void(0)" class="reduce" ng-click="reduce(detail)" ng-disabled="detail.minusDisabled">-</a>
                                 <input type="text" ng-model="detail.number" ng-readonly="order.status != 501" ng-blur="blurNum(detail)">
                                 <input type="text" ng-model="detail.number" ng-readonly="order.status != 501" ng-blur="blurNum(detail)">
                                 <a href="javascript:void(0)" class="add" ng-click="add(detail)" ng-disabled="detail.addDisabled">+</a>
                                 <a href="javascript:void(0)" class="add" ng-click="add(detail)" ng-disabled="detail.addDisabled">+</a>
                             </span>
                             </span>
+							<em class="tip" ng-if="!detail.goodsHistory.breakUp && minPackQtyError">不支持拆包且最小包装数量为<i ng-bind="detail.goodsHistory.minPackQty"></i></em>
+							<em class="tip tips" ng-if="!detail.goodsHistory.breakUp && reserveError">库存不足</em>
+							<em class="tip tips" ng-if="!detail.goodsHistory.breakUp && minBuyQtyError">最小起订量为<i ng-bind="detail.goodsHistory.minBuyQty"></i></em>
 							<span ng-if="order.status != 501" ng-bind="detail.number" class="number" style="border: none;"></span>
 							<span ng-if="order.status != 501" ng-bind="detail.number" class="number" style="border: none;"></span>
                             </div>
                             </div>
                         </span>
                         </span>
@@ -761,7 +784,7 @@
 									<i ng-bind="detail.remark">金石为开取数据五块钱叫稍微亲上加亲</i>
 									<i ng-bind="detail.remark">金石为开取数据五块钱叫稍微亲上加亲</i>
 								</div>
 								</div>
 								<em ng-if="order.status!=501 && !detail.remark">&nbsp;</em>
 								<em ng-if="order.status!=501 && !detail.remark">&nbsp;</em>
-								<!--<em ng-if="order.status!=501" ng-bind="detail.remark" style="color: #333; line-height: 20px; display: inline-block; padding-top: 10px;"></em>-->
+                        		<!--<em ng-if="order.status!=501" ng-bind="detail.remark" style="color: #333; line-height: 20px; display: inline-block; padding-top: 10px;"></em>-->
 							</span>
 							</span>
 						</dd>
 						</dd>
 						<dd class="oder-remark">
 						<dd class="oder-remark">
@@ -816,17 +839,17 @@
 						</dd>
 						</dd>
 						<div class="self-list" ng-if="order.status==501 && deliveryList[details[0].storeid].method == 1303">
 						<div class="self-list" ng-if="order.status==501 && deliveryList[details[0].storeid].method == 1303">
 							<!--自提点列表-->
 							<!--自提点列表-->
-							<ul class="self-advice" ng-if="order.status == 501">
-								<li ng-repeat="item in takeSelfMap[details[0].storeid]">
-									<label class="check-act">
-										<input type="radio" id="{{item.id}}" name="1" ng-click="updateTakeSelf(details[0].storeid, item)"/>
-										<label for="{{item.id}}"></label>
-									</label>
-									<strong style="margin-left: 0" ng-bind="item.takename"></strong>
-									<strong>地址:<i ng-bind="item.area"></i>&nbsp;&nbsp;<i ng-bind="item.detailAddress"></i></strong>
-									<strong>营业时间:<i ng-bind="item.businesstime">周一至周五 8:30-18:00</i></strong>
-								</li>
-							</ul>
+								<ul class="self-advice" ng-if="order.status == 501">
+									<li ng-repeat="item in takeSelfMap[details[0].storeid]">
+										<label class="check-act">
+											<input type="radio" id="{{item.id}}" name="1" ng-click="updateTakeSelf(details[0].storeid, item)"/>
+											<label for="{{item.id}}"></label>
+										</label>
+										<strong style="margin-left: 0" ng-bind="item.takename"></strong>
+										<strong>地址:<i ng-bind="item.area"></i>&nbsp;&nbsp;<i ng-bind="item.detailAddress"></i></strong>
+										<strong>营业时间:<i ng-bind="item.businesstime">周一至周五 8:30-18:00</i></strong>
+									</li>
+								</ul>
 						</div>
 						</div>
 						<dd class="line60" ng-if="order.status!=501 && (takeList ? takeList[details[0].storeid] : takeSelf)">
 						<dd class="line60" ng-if="order.status!=501 && (takeList ? takeList[details[0].storeid] : takeSelf)">
 							<span class="user-address" style="padding-left: 40px;" ng-if="takeList && takeList[details[0].storeid]">
 							<span class="user-address" style="padding-left: 40px;" ng-if="takeList && takeList[details[0].storeid]">
@@ -841,16 +864,16 @@
 							</span>
 							</span>
 						</dd>
 						</dd>
 						<!--<div class="self-list" ng-if="order.status!=501">-->
 						<!--<div class="self-list" ng-if="order.status!=501">-->
-						<!--<span ng-if="takeList">-->
-						<!--<strong style="margin-left: 0" ng-bind="takeList[details[0].storeid].takename"></strong>-->
-						<!--<strong>地址:<i ng-bind="takeList[details[0].storeid].area"></i>&nbsp;&nbsp;<i ng-bind="takeList[details[0].storeid].detailAddress"></i></strong>-->
-						<!--<strong>营业时间:<i ng-bind="takeList[details[0].storeid].businesstime">周一至周五 8:30-18:00</i></strong>-->
-						<!--</span>-->
-						<!--<span ng-if="!takeList && takeSelf">-->
-						<!--<strong style="margin-left: 0" ng-bind="takeSelf.takename"></strong>-->
-						<!--<strong>地址:<i ng-bind="takeSelf.area"></i>&nbsp;&nbsp;<i ng-bind="takeSelf.detailAddress"></i></strong>-->
-						<!--<strong>营业时间:<i ng-bind="takeSelf.businesstime">周一至周五 8:30-18:00</i></strong>-->
-						<!--</span>-->
+							<!--<span ng-if="takeList">-->
+								<!--<strong style="margin-left: 0" ng-bind="takeList[details[0].storeid].takename"></strong>-->
+								<!--<strong>地址:<i ng-bind="takeList[details[0].storeid].area"></i>&nbsp;&nbsp;<i ng-bind="takeList[details[0].storeid].detailAddress"></i></strong>-->
+								<!--<strong>营业时间:<i ng-bind="takeList[details[0].storeid].businesstime">周一至周五 8:30-18:00</i></strong>-->
+							<!--</span>-->
+							<!--<span ng-if="!takeList && takeSelf">-->
+								<!--<strong style="margin-left: 0" ng-bind="takeSelf.takename"></strong>-->
+								<!--<strong>地址:<i ng-bind="takeSelf.area"></i>&nbsp;&nbsp;<i ng-bind="takeSelf.detailAddress"></i></strong>-->
+								<!--<strong>营业时间:<i ng-bind="takeSelf.businesstime">周一至周五 8:30-18:00</i></strong>-->
+							<!--</span>-->
 						<!--</div>-->
 						<!--</div>-->
 					</div>
 					</div>
 					<dd class="pay_price">
 					<dd class="pay_price">