Prechádzať zdrojové kódy

配送规则分段价格的调整

hulh 8 rokov pred
rodič
commit
2699210019

+ 88 - 77
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_deliveryRule_ctrl.js

@@ -56,16 +56,16 @@ define([ 'app/app' ], function(app) {
                 if ($scope.modifyRule.fareType == 2){
                     $scope.fareArray = angular.fromJson($scope.modifyRule.fares);
                 }
+                $scope.currencySymbol = $scope.modifyRule.currencyName == "RMB" ? "¥" : "$";
                 if (!$scope.fareArray){
                     $scope.fareArray = [];
                     var firstFare = {
-                        start : 0,
+                        start : "0",
                         end : "",
                         fare : ""
                     };
                     var secondFare = {
                         start : "",
-                        end : 100000,
                         fare : ""
                     };
                     $scope.fareArray.push(firstFare);
@@ -107,6 +107,7 @@ define([ 'app/app' ], function(app) {
                 Enterprise.getCurrencyByRegisterAddress({}, {} ,function (data) {
                     if (data){
                         $scope.modifyRule.currencyName = data.data;
+                        $scope.currencySymbol = $scope.modifyRule.currencyName == "RMB" ? "¥" : "$";
                     }
                 }, function (error) {
                     toaster.pop('error', "获取企业币别信息失败");
@@ -123,13 +124,12 @@ define([ 'app/app' ], function(app) {
 
                 $scope.fareArray = [];
                 var firstFare = {
-                    start : 0,
+                    start : "0",
                     end : "",
                     fare : ""
                 };
                 var secondFare = {
                     start : "",
-                    end : 100000,
                     fare : ""
                 };
                 $scope.fareArray.push(firstFare);
@@ -196,11 +196,14 @@ define([ 'app/app' ], function(app) {
          * @param data
          */
         $scope.addQtyFare = function (data) {
+            if (Number(data.start) == 1000000){
+                toaster.pop('warning', '提示', '允许输入的最大金额为'+$scope.currencySymbol+'1,000,000,请修改后再新增');
+                return;
+            }
             var index = $scope.fareArray.length-1;
             $scope.fareArray[index].end = "";
             var fare = {
                 start : data.end,
-                end : 100000,
                 fare : ""
             };
             $scope.fareArray.push(fare);
@@ -223,12 +226,12 @@ define([ 'app/app' ], function(app) {
             if(isNaN(data.fare)){
                 data.fare = "";
                 toaster.pop('warning', '提示', '运费必须是整数');
-                return false;
+                return;
             }
             if(Number(data.fare) < 0 || Number(data.fare) % 1 != 0) {
                 data.fare = "";
                 toaster.pop('warning', '提示', '运费必须是整数');
-                return false;
+                return;
             }
             if(Number(data.fare) > 100000){
                 data.fare = 100000;
@@ -266,43 +269,32 @@ define([ 'app/app' ], function(app) {
         };
 
         $scope.inputQtyFare = function (data, index) {
-            // if(!data.start && !data.end) {
-            //     data.start = 1;
-            //     data.end = 1;
-            //     return false;
-            // }
-            if(isNaN(data.start) || isNaN(data.end)) {
-                data.end = data.start + 1;
-                $scope.fareArray[index+1].start = data.end;
-                toaster.pop('warning', '提示', '金额必须是数字');
-                return false;
-            }
-            // if(Number(data.start) < 0) {
-            //     data.start = "";
-            //     toaster.pop('warning', '提示', '金额必须大于0');
-            //     return false;
-            // }
-            if(Number(data.end) < 0){
-                data.end = data.start + 1;
-                $scope.fareArray[index+1].start = Number(data.end);
-                toaster.pop('warning', '提示', '金额必须大于0');
-                return false;
-            }
-            if(data.end.length != 0 && Number(data.end) <= Number(data.start)){
-                data.end = data.start + 1;
+            if(isNaN(data.end)) {
+                data.end = "";
+                toaster.pop('warning', '提示', '仅可输入数值');
+                return;
             }
-            if(data.end.length != 0 && Number(data.end) >= Number($scope.fareArray[index+1].end)){
-                data.end = data.start + 1;
+            if(Number(data.end) > 1000000){
+                data.end = "";
+                toaster.pop('warning', '提示', '允许输入的最大金额为'+$scope.currencySymbol+'1,000,000');
+                return;
             }
-            if(Number(data.start) > 100000){
-                data.start = 100000;
+            if(Number(data.end) <= Number(data.start)) {
+                data.end = "";
+                toaster.pop('warning', '提示', '所输金额不能比该行初始金额小');
+                return;
             }
-            if(Number(data.end) > 100000){
-                data.end = 100000;
+            if ($scope.fareArray[index+1].end){
+                if($scope.fareArray[index+1].end.length != 0){
+                    if (Number(data.end) >= Number($scope.fareArray[index+1].end)){
+                        data.end = "";
+                        toaster.pop('warning', '提示', '所输金额不能比下一行结束金额大');
+                        return;
+                    }
+                }
             }
             if (data.end.length != 0){
-                data.start = Number(NumberService.toCeil(data.start, 2));
-                data.end = Number(NumberService.toCeil(data.end, 2));
+                data.end = Number(NumberService.toCeil(data.end, 2)) + "";
                 $scope.fareArray[index+1].start = data.end;
             }
         };
@@ -357,6 +349,10 @@ define([ 'app/app' ], function(app) {
             //     toaster.pop('error', "请选择适用类型");
             //     return false;
             // }
+            if (!$scope.mapArray){
+                toaster.pop('error', "您还没有选择任何地区");
+                return false;
+            }
             if ($scope.mapArray.length > 0){
                 $scope.modifyRule.qtyArea = angular.toJson($scope.mapArray);
             }else {
@@ -376,9 +372,13 @@ define([ 'app/app' ], function(app) {
             if ($scope.modifyRule.fareType == 2){
                 var lackData = false;
                 angular.forEach($scope.fareArray, function (item) {
-                    if (typeof(item.fare) == "string" || typeof (item.start)=="string" || typeof (item.end)=="string"){
-                        lackData = true;
-                        return;
+                    if (item.start.length == 0 || item.fare.length == 0){
+                        lackData = true
+                    }
+                    if (item.end){
+                        if (item.end.length == 0){
+                            lackData = true
+                        }
                     }
                 });
                 if (lackData){
@@ -395,44 +395,55 @@ define([ 'app/app' ], function(app) {
          * @param isAdd
          */
         $scope.saveDistributionRule = function (isAdd) {
-            $q.all([checkRepeatName(!isAdd).$promise]).then(function(data) {
-                console.log(data[0]);
-                if (data){
-                    $scope.repeatError = data[0].data;
-                }
-                var valid = checkRuleError();
-                console.log(valid);
-                if (!valid){
-                    return;
-                }
+            if ($scope.modifyRule.ruleName){
+                $q.all([checkRepeatName(!isAdd).$promise]).then(function(data) {
+                    if (data){
+                        $scope.repeatError = data[0].data;
+                    }
+                    var valid = checkRuleError();
+                    console.log(valid);
+                    if (!valid){
+                        return;
+                    }
 
-                //拼接适用类型
-                var typeArray = [];
-                if ($scope.orderType.normal){
-                    typeArray.push(1201);
-                }
-                if ($scope.orderType.preSale){
-                    typeArray.push(1202);
-                }
-                if ($scope.orderType.bill){
-                    typeArray.push(1203);
-                }
-                $scope.modifyRule.orderType = typeArray.join("-");
+                    //拼接适用类型
+                    var typeArray = [];
+                    if ($scope.orderType.normal){
+                        typeArray.push(1201);
+                    }
+                    if ($scope.orderType.preSale){
+                        typeArray.push(1202);
+                    }
+                    if ($scope.orderType.bill){
+                        typeArray.push(1203);
+                    }
+                    $scope.modifyRule.orderType = typeArray.join("-");
 
-                DistributionRule.saveRule({isAdd:isAdd, isActive:$scope.isActive}, $scope.modifyRule , function (data) {
-                    if (data){
-                        $scope.editFrame = false;
-                        $scope.tab = 'deliverRule';
-                        if (isAdd){
-                            toaster.pop('info', "保存成功");
-                        }else{
-                            toaster.pop('info', "新增规则成功");
-                        }
+                    if (!$scope.modifyRule.qtyArea){
+                        toaster.pop('error', "您还没有选择任何地区");
+                        return;
                     }
-                },function (error) {
-                    toaster.pop('error', "保存配送规则失败");
-                })
-            });
+
+                    if (valid){
+                        DistributionRule.saveRule({isAdd:isAdd, isActive:$scope.isActive}, $scope.modifyRule , function (data) {
+                            if (data){
+                                $scope.editFrame = false;
+                                $scope.tab = 'deliverRule';
+                                if (isAdd){
+                                    toaster.pop('info', "保存成功");
+                                }else{
+                                    toaster.pop('info', "新增规则成功");
+                                }
+                            }
+                        },function (error) {
+                            toaster.pop('error', "保存配送规则失败");
+                        })
+                    }
+                });
+            }else {
+                toaster.pop('error', "请填写规则名称");
+                return;
+            }
 
         };
 

+ 20 - 32
src/main/webapp/resources/view/vendor/forstore/vendor_delivery_rule.html

@@ -442,8 +442,7 @@
 					<div class="row dot">
 						<span>统一运费</span>
 						<div class="price-input">
-							<i class="currency" ng-if="modifyRule.currencyName=='RMB'">¥</i>
-							<i class="currency" ng-if="modifyRule.currencyName=='USD'">$</i>
+							<i class="currency" ng-bind="currencySymbol"></i>
 							<input type="text" class="form-control" placeholder="请输入运费" ng-blur="inputUniform()" ng-model="modifyRule.uniformPrice" />
 						</div>
 					</div>
@@ -456,8 +455,7 @@
 						<!--</div>-->
 						<!--不可以编辑的状态-->
 						<div class="no-edit" style="margin-top: 6px;">全国统一运费
-							<em ng-if="modifyRule.currencyName=='RMB'">¥</em>
-							<em ng-if="modifyRule.currencyName=='USD'">$</em>
+							<em ng-bind="currencySymbol"></em>
 							{{modifyRule.uniformPrice}}
 						</div>
 					</div>
@@ -467,29 +465,26 @@
 					<div class="row" ng-repeat="data in fareArray" ng-class="{'dot' : $index==0}">
 						<span>总金额在</span>
 						<div class="price-input" ng-if="$index == 0">
-							<i class="currency" ng-if="modifyRule.currencyName=='RMB'">¥</i>
-							<i class="currency" ng-if="modifyRule.currencyName=='USD'">$</i>
+							<i class="currency" ng-bind="currencySymbol"></i>
 							<input type="text" class="form-control" placeholder="请输入金额" ng-blur="inputQtyFare(data, $index)" ng-model="data.end" />
 							以下,
 						</div>
 						<div class="price-input" ng-if="$index != 0 && $index != fareArray.length - 1">
 							<em>
-								<i ng-bind="modifyRule.currencyName=='RMB' ? '¥' : '$'"></i><i ng-if="fareArray[$index-1].end">{{fareArray[$index-1].end}}</i>以上,
+								<i ng-bind="currencySymbol"></i><i ng-if="fareArray[$index-1].end">{{fareArray[$index-1].end}}</i>以上,
 							</em>
-							<i class="currency" ng-if="modifyRule.currencyName=='RMB'">¥</i>
-							<i class="currency" ng-if="modifyRule.currencyName=='USD'">$</i>
+							<i class="currency" ng-if="currencySymbol">¥</i>
 							<input type="text" class="form-control" placeholder="请输入金额" ng-blur="inputQtyFare(data, $index)" ng-model="data.end" />
 							<em>以下,</em>
 						</div>
 						<div class="price-input" ng-if="$index == fareArray.length - 1">
 							<em>
-								<i ng-bind="modifyRule.currencyName=='RMB' ? '¥' : '$'"></i><i ng-if="fareArray[$index-1].end">{{fareArray[$index-1].end}}</i>以上,
+								<i ng-bind="currencySymbol"></i><i ng-if="fareArray[$index-1].end">{{fareArray[$index-1].end}}</i>以上,
 							</em>
 						</div>
 						<div class="price-input">
 							<em>运费为</em>
-							<i class="currency" ng-if="modifyRule.currencyName=='RMB'">¥</i>
-							<i class="currency" ng-if="modifyRule.currencyName=='USD'">$</i>
+							<i class="currency" ng-if="currencySymbol">¥</i>
 							<input type="text" class="form-control" placeholder="请输入运费" ng-blur="inputFare(data)" ng-model="data.fare" />
 						</div>
 						<div class="add-box">
@@ -516,34 +511,27 @@
 							<div ng-repeat="data in fareArray">
 								<p ng-if="$index == 0">
 									总价在
-									<i class="currency" ng-if="modifyRule.currencyName=='RMB'">¥</i>
-									<i class="currency" ng-if="modifyRule.currencyName=='USD'">$</i><i class="input-text" ng-bind="data.end"></i>以下,
+									<i class="currency" ng-bind="currencySymbol">¥</i><i class="input-text" ng-bind="data.end"></i>以下,
 									运费为
-									<i class="currency" ng-if="modifyRule.currencyName=='RMB'">¥</i>
-									<i class="currency" ng-if="modifyRule.currencyName=='USD'">$</i>{{data.fare}}
+									<i class="currency" ng-bind="currencySymbol">¥</i>{{data.fare}}
 								</p>
 								<p ng-if="$index != 0 && $index != fareArray.length - 1">
 									总价在
-									<i class="currency" ng-if="modifyRule.currencyName=='RMB'">¥</i>
-									<i class="currency" ng-if="modifyRule.currencyName=='USD'">$</i><i class="input-text">{{data.start}}</i>以上(含
-									<i class="currency" ng-if="modifyRule.currencyName=='RMB'">¥</i>
-									<i class="currency" ng-if="modifyRule.currencyName=='USD'">$</i>{{data.start}}
-									),
-									<i class="currency" ng-if="modifyRule.currencyName=='RMB'">¥</i>
-									<i class="currency" ng-if="modifyRule.currencyName=='USD'">$</i><i class="input-text">{{data.end}}</i>以下,
+									<i class="currency" ng-bind="currencySymbol">¥</i>
+									<i class="input-text">{{data.start}}</i>以上(含
+									<i class="currency" ng-bind="currencySymbol">¥</i>{{data.start}}),
+									<i class="currency" ng-bind="currencySymbol">¥</i>
+									<i class="input-text">{{data.end}}</i>以下,
 									运费为
-									<i class="currency" ng-if="modifyRule.currencyName=='RMB'">¥</i>
-									<i class="currency" ng-if="modifyRule.currencyName=='USD'">$</i>{{data.fare}}
+									<i class="currency" ng-bind="currencySymbol">¥</i>{{data.fare}}
 								</p>
 								<p ng-if="$index == fareArray.length-1">
 									总价在
-									<i class="currency" ng-if="modifyRule.currencyName=='RMB'">¥</i>
-									<i class="currency" ng-if="modifyRule.currencyName=='USD'">$</i><i class="input-text">{{data.start}}</i>以上(含
-									<i class="currency" ng-if="modifyRule.currencyName=='RMB'">¥</i>
-									<i class="currency" ng-if="modifyRule.currencyName=='USD'">$</i>{{data.start}}
-									),运费为
-									<i class="currency" ng-if="modifyRule.currencyName=='RMB'">¥</i>
-									<i class="currency" ng-if="modifyRule.currencyName=='USD'">$</i>{{data.fare}}
+									<i class="currency" ng-bind="currencySymbol">¥</i>
+									<i class="input-text">{{data.start}}</i>以上(含
+									<i class="currency" ng-bind="currencySymbol">¥</i>
+									{{data.start}}),运费为
+									<i class="currency" ng-bind="currencySymbol">¥</i>{{data.fare}}
 								</p>
 							</div>
 						</div>