hulh 8 лет назад
Родитель
Сommit
9531f787c9

+ 26 - 1
src/main/java/com/uas/platform/b2c/logistics/model/RuleQtyFare.java

@@ -20,5 +20,30 @@ public class RuleQtyFare {
 	/**
 	 * 分段币别
 	 */
-	private String currency;
+//	private String currency;
+
+
+	public Double getStart() {
+		return start;
+	}
+
+	public void setStart(Double start) {
+		this.start = start;
+	}
+
+	public Double getEnd() {
+		return end;
+	}
+
+	public void setEnd(Double end) {
+		this.end = end;
+	}
+
+	public Double getFare() {
+		return fare;
+	}
+
+	public void setFare(Double fare) {
+		this.fare = fare;
+	}
 }

+ 79 - 2
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_deliveryRule_add_ctrl.js

@@ -1,6 +1,6 @@
 define([ 'app/app' ], function(app) {
     'use strict';
-    app.register.controller('vendorDeliveryRuleAddCtrl', ['$scope', '$rootScope', '$stateParams', 'Enterprise', 'toaster', 'DistributionRule', function ($scope, $rootScope, $stateParams, Enterprise, toaster, DistributionRule) {
+    app.register.controller('vendorDeliveryRuleAddCtrl', ['$scope', '$rootScope', '$stateParams', 'Enterprise', 'toaster', 'DistributionRule', '$state', function ($scope, $rootScope, $stateParams, Enterprise, toaster, DistributionRule, $state) {
         $rootScope.active = 'vendor_deliveryRule';
         // $scope.tab = 'deliverRule';
         $scope.title = '新增配送规则';
@@ -10,6 +10,7 @@ define([ 'app/app' ], function(app) {
                 $scope.rule = angular.fromJson($stateParams.rule);
                 $scope.isModify = true;
                 $scope.isActive = $scope.rule.active == 1;
+                $scope.fareArray = angular.fromJson($scope.rule.fares);
                 if ($scope.rule.orderType){
                     var orderTypeArray = $scope.rule.orderType.split("-");
                     $scope.orderType = {
@@ -57,6 +58,7 @@ define([ 'app/app' ], function(app) {
                 $scope.fareArray = [];
                 var firstFare = {
                     start : 0,
+                    end : 0,
                     fare : 0
                 };
                 var secondFare = {
@@ -66,11 +68,85 @@ define([ 'app/app' ], function(app) {
                 };
                 $scope.fareArray.push(firstFare);
                 $scope.fareArray.push(secondFare);
+                console.log($scope.fareArray.length);
             }
         };
         initData();
 
+        $scope.addQtyFare = function (data) {
+            var fare = {
+                start : data.end,
+                end : 0,
+                fare : 0
+            };
+            $scope.fareArray.push(fare);
+        };
+
+        $scope.deleteQtyFare = function (index) {
+            $scope.fareArray[index+1].start = $scope.fareArray[index-1].end;
+            $scope.fareArray.splice(index, 1);
+        };
+
+        $scope.inputFare = function (data) {
+            if(!data.fare) {
+                data.fare = 0;
+                return false;
+            }
+            if(isNaN(data.fare)){
+                data.fare = 0;
+                toaster.pop('warning', '提示', '运费必须是整数');
+                return false;
+            }
+            if(Number(data.fare) < 0 || Number(data.fare) % 1 != 0) {
+                data.fare = 0;
+                toaster.pop('warning', '提示', '运费必须是整数');
+                return false;
+            }
+            if(Number(data.fare) > 100000){
+                data.fare = 100000;
+            }
+            data.fare = Number(data.fare);
+        };
+
+        $scope.inputQtyFare = function (data, index) {
+            if(!data.start && !data.end) {
+                data.start = 0;
+                data.end = 0;
+                return false;
+            }
+            if(isNaN(data.start) || isNaN(data.end)) {
+                data.end = data.start + 1;
+                $scope.fareArray[index+1].start = Number(data.end);
+                toaster.pop('warning', '提示', '金额必须是数字');
+                return false;
+            }
+            if(Number(data.start) < 0) {
+                data.start = 0;
+                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(Number(data.end) <= Number(data.start)){
+                data.end = data.start + 1;
+            }
+            if(Number(data.start) > 100000){
+                data.start = 100000;
+            }
+            if(Number(data.end) > 100000){
+                data.end = 100000;
+            }
+            data.start = Number(data.start);
+            data.end = Number(data.end);
+            $scope.fareArray[index+1].start = Number(data.end);
+        };
+
         $scope.saveDistributionRule = function (isAdd) {
+            console.log(angular.toJson($scope.fareArray));
             if (!$scope.rule.shippingMethod){
                 toaster.pop('error', "请选择配送方式");
                 return;
@@ -104,6 +180,7 @@ define([ 'app/app' ], function(app) {
                 typeArray.push(1203);
             }
             $scope.rule.orderType = typeArray.join("-");
+            $scope.rule.qtyFare = angular.toJson($scope.fareArray);
             DistributionRule.saveRule({isAdd:isAdd, isActive:$scope.isActive}, $scope.rule , function (data) {
                 if (data){
                     // $scope.loadDeliveryRule();
@@ -114,7 +191,7 @@ define([ 'app/app' ], function(app) {
         };
 
         $scope.close = function () {
-            window.open("vendor#/vendor_deliveryRule", '_blank');
+            $state.go('vendor_deliveryRule');
         };
 
         // 切换tab

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

@@ -58,10 +58,10 @@ define([ 'app/app' ], function(app) {
         $scope.deleteRule = function (id) {
             DistributionRule.deleteOne({id:id}, {}, function () {
                 $scope.deleteFrame = false;
-                toaster.pop('info', '删除自提点地址成功');
+                toaster.pop('info', '删除配送规则成功');
                 $scope.loadDeliveryRule();
             }, function () {
-                toaster.pop('error', '删除自提点地址失败');
+                toaster.pop('error', '删除配送规则失败');
             });
         };
 

+ 61 - 13
src/main/webapp/resources/view/vendor/forstore/vendor_delivery_add_rule.html

@@ -349,17 +349,21 @@
 	.rule-main .rule-content .common-style.style-price .row.dot:before{
 		left: 260px;
 	}
-	.add-box a{
+	.add-box span{
 		margin: 0 1px;
 		position: relative;
 		top: 1px;
+		border: none;
 	}
-	.add-box a i{
+	.add-box span i{
 		font-size: 16px;
 	}
 	.add-box .reduce{
 		color: #ff8522;
 	}
+	.add-box span:hover{
+		cursor: pointer;
+	}
 	.add-box .add{
 		color: #32b500;
 	}
@@ -514,27 +518,41 @@
 							<!--<input type="text" class="form-control" placeholder="0" />-->
 						<!--</div>-->
 					<!--</div>-->
-					<div class="row" ng-repeat="(data, index) in fareArray" ng-class="{'dot' : index==0}">
+					<div class="row" ng-repeat="data in fareArray" ng-class="{'dot' : $index==0}">
 						<span>总金额在</span>
-						<div class="price-input">
+						<div class="price-input" ng-if="$index == 0">
+							<i class="currency" ng-if="rule.currencyName=='RMB'">¥</i>
+							<i class="currency" ng-if="rule.currencyName=='USD'">$</i>
+							<input type="text" class="form-control" ng-blur="inputQtyFare(data, $index)" placeholder="0" ng-model="data.end" />
+							以下,
+						</div>
+						<div class="price-input" ng-if="$index != 0 && $index != fareArray.length - 1">
 							<em>
 								<i class="currency" ng-if="rule.currencyName=='RMB'">¥</i>
 								<i class="currency" ng-if="rule.currencyName=='USD'">$</i>
-								<i>{{data.start}}</i>以上,
+								<i ng-bind="fareArray[$index-1].end"></i>以上,
 							</em>
 							<i class="currency" ng-if="rule.currencyName=='RMB'">¥</i>
 							<i class="currency" ng-if="rule.currencyName=='USD'">$</i>
-							<input type="text" class="form-control" placeholder="100" />
+							<input type="text" class="form-control" ng-blur="inputQtyFare(data, $index)" ng-model="data.end" placeholder="100" />
 							<em>以下,</em>
 						</div>
+						<div class="price-input" ng-if="$index == fareArray.length - 1">
+							<em>
+								<i class="currency" ng-if="rule.currencyName=='RMB'">¥</i>
+								<i class="currency" ng-if="rule.currencyName=='USD'">$</i>
+								<i ng-bind="fareArray[$index-1].end"></i>以上,
+							</em>
+						</div>
 						<div class="price-input">
 							<em>运费为</em>
-							<i class="currency">$</i>
-							<input type="text" class="form-control" placeholder="2000" />
+							<i class="currency" ng-if="rule.currencyName=='RMB'">¥</i>
+							<i class="currency" ng-if="rule.currencyName=='USD'">$</i>
+							<input type="text" class="form-control" ng-blur="inputFare(data)" ng-model="data.fare" placeholder="0" />
 						</div>
 						<div class="add-box">
-							<a class="add" ng-click=""><i class="fa fa-plus-circle"></i></a>
-							<a class="reduce" ng-click=""><i class="fa fa-minus-circle"></i></a>
+							<span class="add" ng-if="$index == fareArray.length - 1 && fareArray.length < 5" ng-click="addQtyFare(data)"><i class="fa fa-plus-circle"></i></span>
+							<span class="reduce" ng-if="$index != 0 && $index != fareArray.length - 1" ng-click="deleteQtyFare($index)"><i class="fa fa-minus-circle"></i></span>
 						</div>
 					</div>
 					<!--<div class="row">-->
@@ -553,9 +571,39 @@
 					<div class="row" style="background: none; padding: 0; margin-top: 10px !important;">
 						<span class="f14">计算说明</span>
 						<div class="no-edit">
-							<p>总金额在 $1000 以下,运费为 $500</p>
-							<p>总金额在 $1000  (含$1000) 以上,运费为 $20</p>
-							<p>总金额在 $2000  (含$2000) 以上,运费为 $0</p>
+							<div ng-repeat="data in fareArray">
+								<p ng-if="$index == 0">
+									总价在
+									<i class="currency" ng-if="rule.currencyName=='RMB'">¥</i>
+									<i class="currency" ng-if="rule.currencyName=='USD'">$</i>{{data.end}}以下,
+									运费为
+									<i class="currency" ng-if="rule.currencyName=='RMB'">¥</i>
+									<i class="currency" ng-if="rule.currencyName=='USD'">$</i>{{data.fare}}
+								</p>
+								<p ng-if="$index != 0 && $index != fareArray.length - 1">
+									总价在
+									<i class="currency" ng-if="rule.currencyName=='RMB'">¥</i>
+									<i class="currency" ng-if="rule.currencyName=='USD'">$</i>{{data.start}}以上(含
+									<i class="currency" ng-if="rule.currencyName=='RMB'">¥</i>
+									<i class="currency" ng-if="rule.currencyName=='USD'">$</i>{{data.start}}
+									),
+									<i class="currency" ng-if="rule.currencyName=='RMB'">¥</i>
+									<i class="currency" ng-if="rule.currencyName=='USD'">$</i>{{data.end}}以下,
+									运费为
+									<i class="currency" ng-if="rule.currencyName=='RMB'">¥</i>
+									<i class="currency" ng-if="rule.currencyName=='USD'">$</i>{{data.fare}}
+								</p>
+								<p ng-if="$index == fareArray.length-1">
+									总价在
+									<i class="currency" ng-if="rule.currencyName=='RMB'">¥</i>
+									<i class="currency" ng-if="rule.currencyName=='USD'">$</i>{{data.start}}以上(含
+									<i class="currency" ng-if="rule.currencyName=='RMB'">¥</i>
+									<i class="currency" ng-if="rule.currencyName=='USD'">$</i>{{data.start}}
+									),运费为
+									<i class="currency" ng-if="rule.currencyName=='RMB'">¥</i>
+									<i class="currency" ng-if="rule.currencyName=='USD'">$</i>{{data.fare}}
+								</p>
+							</div>
 						</div>
 					</div>
 				</div>

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

@@ -251,7 +251,7 @@
 						</td>
 						<td>
 							<!--ui-sref="vendor_deliveryRule_add({ruleModify:{{turnToJson(rule)}}})"-->
-							<a ng-click="editRule(rule)">修改</a> | <a ng-click="deleteRule(rule)">删除</a>
+							<a ng-click="editRule(rule)">修改</a> | <a ng-click="deleteRule(rule.id)">删除</a>
 						</td>
 					</tr>