Jelajahi Sumber

配送规则模块的功能调整

hulh 8 tahun lalu
induk
melakukan
398008cbe4

+ 12 - 0
src/main/java/com/uas/platform/b2c/logistics/model/RuleQtyArea.java

@@ -5,6 +5,10 @@ package com.uas.platform.b2c.logistics.model;
  * 分段地区
  */
 public class RuleQtyArea {
+	/**
+	 * 地区:中国大陆--港澳台
+	 */
+	private String mainland;
 	/**
 	 * 地区:省
 	 */
@@ -41,4 +45,12 @@ public class RuleQtyArea {
 	public void setArea(String area) {
 		this.area = area;
 	}
+
+	public String getMainland() {
+		return mainland;
+	}
+
+	public void setMainland(String mainland) {
+		this.mainland = mainland;
+	}
 }

+ 4 - 4
src/main/webapp/resources/js/prod/data/city.json

@@ -1,5 +1,5 @@
 {
-    "北京": {
+    "北京": {
         "北京市": [
             "东城区",
 		    "西城区",
@@ -19,7 +19,7 @@
 		    "延庆县"         
         ]
     },
-    "上海": {
+    "上海": {
         "上海市": [
 			"黄浦区",
 		    "徐汇区",
@@ -41,7 +41,7 @@
 		    "崇明县"
         ]
     },
-    "天津": {
+    "天津": {
         "天津市": [
 		  	"和平区",
 		    "河东区",
@@ -64,7 +64,7 @@
 		    "蓟县"
         ]
     },
-    "重庆": {
+    "重庆": {
         "重庆市": [
 		  	"万州区",
 		    "涪陵区",

+ 0 - 7
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_deliveryRule_add_ctrl.js

@@ -412,13 +412,6 @@ define([ 'app/app' ], function(app) {
                 item.folded = angular.isUndefined(folded) ? !item.folded : folded;
             }
 
-            me.getLastItems = function (item) {
-                while (item.items){
-                    item = item.items;
-                }
-                return item;
-            };
-
             /**
              * 折叠文件夹
              * @param item

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

@@ -46,6 +46,9 @@ define([ 'app/app' ], function(app) {
         $scope.editRule = function (data) {
             $scope.editFrame = true;
             $scope.tab = 'editRule';
+            if ($scope.tree){
+                $scope.resetData($scope.tree.$data);
+            }
             if (data){
                 $scope.modifyRule = data;
                 $scope.isModify = true;
@@ -68,6 +71,7 @@ define([ 'app/app' ], function(app) {
                         }
                     })
                 }
+                $scope.mapArray = [];
                 if ($scope.modifyRule.areas){
                     var data = angular.fromJson($scope.modifyRule.areas);
                     $scope.mapArray = data;
@@ -98,16 +102,18 @@ define([ 'app/app' ], function(app) {
                     }
                 });
 
+                $scope.mapArray = [];
+
                 $scope.fareArray = [];
                 var firstFare = {
                     start : 0,
-                    end : 0,
-                    fare : 0
+                    end : "",
+                    fare : ""
                 };
                 var secondFare = {
-                    start : 0,
-                    end : 0,
-                    fare : 0
+                    start : "",
+                    end : 100000,
+                    fare : ""
                 };
                 $scope.fareArray.push(firstFare);
                 $scope.fareArray.push(secondFare);
@@ -117,7 +123,7 @@ define([ 'app/app' ], function(app) {
         $scope.loadCityData = function () {
             $http.get('static/js/prod/data/city.json').success(function (data) {
                 $scope.cityJson = data;
-                $scope.cityData = convert($scope.cityJson);
+                $scope.cityData = convert($scope.cityJson, null);
             }).error(function (res) {
                 console.log(res);
             });
@@ -132,7 +138,7 @@ define([ 'app/app' ], function(app) {
         $scope.checkRuleName = function () {
             var k = 1;
             angular.forEach($scope.nameArray, function (item) {
-                if (item == $scope.rule.ruleName){
+                if (item == $scope.modifyRule.ruleName){
                     k = 0;
                     return;
                 }
@@ -149,10 +155,12 @@ define([ 'app/app' ], function(app) {
          * @param data
          */
         $scope.addQtyFare = function (data) {
+            var index = $scope.fareArray.length-1;
+            $scope.fareArray[index].end = "";
             var fare = {
                 start : data.end,
-                end : 0,
-                fare : 0
+                end : 100000,
+                fare : ""
             };
             $scope.fareArray.push(fare);
         };
@@ -167,64 +175,68 @@ define([ 'app/app' ], function(app) {
         };
 
         $scope.inputFare = function (data) {
-            if(!data.fare) {
-                data.fare = 0;
-                return false;
-            }
+            // if(!data.fare) {
+            //     data.fare = 0;
+            //     return false;
+            // }
             if(isNaN(data.fare)){
-                data.fare = 0;
+                data.fare = "";
                 toaster.pop('warning', '提示', '运费必须是整数');
                 return false;
             }
             if(Number(data.fare) < 0 || Number(data.fare) % 1 != 0) {
-                data.fare = 0;
+                data.fare = "";
                 toaster.pop('warning', '提示', '运费必须是整数');
                 return false;
             }
             if(Number(data.fare) > 100000){
                 data.fare = 100000;
             }
-            data.fare = Number(data.fare);
+            if(data.fare.length > 0){
+                data.fare = Number(data.fare);
+            }
         };
 
         $scope.inputUniform = function () {
-            if(!$scope.rule.uniformPrice) {
-                $scope.rule.uniformPrice = 0;
-                return false;
-            }
-            if(isNaN($scope.rule.uniformPrice)){
-                $scope.rule.uniformPrice = 0;
+            // if(!$scope.modifyRule.uniformPrice) {
+            //     $scope.modifyRule.uniformPrice = 0;
+            //     return false;
+            // }
+            if(isNaN($scope.modifyRule.uniformPrice)){
+                $scope.modifyRule.uniformPrice = "";
                 toaster.pop('warning', '提示', '运费必须是整数');
                 return false;
             }
-            if(Number($scope.rule.uniformPrice) < 0 || Number($scope.rule.uniformPrice) % 1 != 0) {
-                data.fare = 0;
+            if(Number($scope.modifyRule.uniformPrice) < 0 || Number($scope.modifyRule.uniformPrice) % 1 != 0) {
+                $scope.modifyRule.uniformPrice = "";
                 toaster.pop('warning', '提示', '运费必须是整数');
                 return false;
             }
-            if(Number($scope.rule.uniformPrice) > 100000){
-                $scope.rule.uniformPrice = 100000;
+            if(Number($scope.modifyRule.uniformPrice) > 100000){
+                $scope.modifyRule.uniformPrice = 100000;
+            }
+            if ($scope.modifyRule.uniformPrice.length != 0){
+                $scope.modifyRule.uniformPrice = Number($scope.modifyRule.uniformPrice);
             }
-            data.fare = Number($scope.rule.uniformPrice);
         };
 
         $scope.inputQtyFare = function (data, index) {
             if(!data.start && !data.end) {
-                data.start = 0;
-                data.end = 0;
+                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 = Number(data.end);
+                $scope.fareArray[index+1].start = data.end;
                 toaster.pop('warning', '提示', '金额必须是数字');
                 return false;
             }
-            if(Number(data.start) < 0) {
-                data.start = 0;
-                toaster.pop('warning', '提示', '金额必须大于0');
-                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);
@@ -246,9 +258,7 @@ define([ 'app/app' ], function(app) {
         };
 
         $scope.saveDistributionRule = function (isAdd) {
-            console.log(angular.toJson($scope.fareArray));
-            console.log(angular.toJson($scope.mapArray));
-            $scope.checkRuleName();
+            // $scope.checkRuleName();
             if (!$scope.modifyRule.shippingMethod){
                 toaster.pop('error', "请选择配送方式");
                 return;
@@ -261,15 +271,45 @@ define([ 'app/app' ], function(app) {
                 toaster.pop('error', "该规则名称已存在,请修改");
                 return;
             }
-            if(!$scope.orderType.normal && !$scope.orderType.preSale && !$scope.orderType.bill){
-                toaster.pop('error', "请选择适用类型");
+            /**
+             * TODO 暂时注释,以后在放出来
+             */
+            // if(!$scope.orderType.normal && !$scope.orderType.preSale && !$scope.orderType.bill){
+            //     toaster.pop('error', "请选择适用类型");
+            //     return;
+            // }
+            // if(!$scope.modifyRule.userType){
+            //     toaster.pop('error', "请选择适用类型");
+            //     return;
+            // }
+            if ($scope.mapArray.length > 0){
+                $scope.modifyRule.qtyArea = angular.toJson($scope.mapArray);
+            }else {
+                toaster.pop('error', "您还没有选择任何地区");
                 return;
             }
-            if(!$scope.modifyRule.userType){
-                toaster.pop('error', "请选择适用类型");
-                return;
+            if ($scope.modifyRule.fareType == 1){
+                if (!$scope.modifyRule.uniformPrice){
+                    toaster.pop('error', "请输入统一规定运费");
+                    return;
+                }
+            }
+            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 (lackData){
+                    toaster.pop('error', "请完善计费方式");
+                    return;
+                }
+                $scope.modifyRule.qtyFare = angular.toJson($scope.fareArray);
             }
 
+
             //拼接适用类型
             var typeArray = [];
             if ($scope.orderType.normal){
@@ -282,13 +322,11 @@ define([ 'app/app' ], function(app) {
                 typeArray.push(1203);
             }
             $scope.modifyRule.orderType = typeArray.join("-");
-            if ($scope.modifyRule.fareType == 2){
-                $scope.modifyRule.qtyFare = angular.toJson($scope.fareArray);
-            }
-            $scope.modifyRule.qtyArea = angular.toJson($scope.mapArray);
+
             DistributionRule.saveRule({isAdd:isAdd, isActive:$scope.isActive}, $scope.modifyRule , function (data) {
                 if (data){
-                    // $scope.loadDeliveryRule();
+                    $scope.editFrame = false;
+                    $scope.tab = 'deliverRule';
                     if (isAdd){
                         toaster.pop('info', "保存成功");
                     }else{
@@ -347,23 +385,67 @@ define([ 'app/app' ], function(app) {
          * @param item
          * @returns {Array}
          */
-        function convert(item) {
+        function convert(item, parent) {
             var arr = [];
             if(angular.isArray(item)) {
                 angular.forEach(item, function (v) {
                     arr.push({
-                        label: v
+                        label: v,
+                        checked: false,
+                        parent:parent
                     })
                 })
             } else {
-                angular.forEach(item, function (v, k) {
-                    arr.push({
-                        label: k,
-                        items: convert(v),
-                        selectedNum : 0,
-                        folded: true
+                if (parent == null){
+                    var china = {
+                        label:'中国大陆',
+                        checked: false,
+                        parent:null,
+                        items:null,
+                        selectedNum: 0,
+                        folded: false
+                    };
+                    $scope.hmt = {
+                        label:'港澳台',
+                        checked: false,
+                        parent:null,
+                        items:null,
+                        selectedNum:0,
+                        folded: false
+                    };
+                    china.items = convert(item, china);
+                    arr.push(china);
+                    arr.push($scope.hmt);
+                }else {
+                    angular.forEach(item, function (v, k) {
+                        if (k != '香港特别行政区'){
+                            var object = {
+                                label: k,
+                                checked: false,
+                                parent:parent,
+                                items: null,
+                                selectedNum : 0,
+                                folded: true
+                            };
+                            object.items = convert(v, object);
+                            arr.push(object);
+                        }else {
+                            $scope.hmtChild = {
+                                label: k,
+                                checked: false,
+                                parent:$scope.hmt,
+                                items: null,
+                                selectedNum : 0,
+                                folded: true
+                            }
+                            $scope.hmtChild.items = convert(v, $scope.hmtChild);
+                            var hmtArr = [];
+                            hmtArr.push($scope.hmtChild);
+                            $scope.hmt.items = hmtArr;
+                            // arr.push($scope.hmtChild);
+                        }
                     })
-                })
+                }
             }
             return arr;
         }
@@ -429,46 +511,68 @@ define([ 'app/app' ], function(app) {
             me.$data = tree;
 
             me.initData = function (initData) {
+                console.log(initData);
                 if(initData) {
                     angular.forEach(initData, function (v) {
                         var p = {};
                         for(var i in me.$data) {
                             var value = me.$data[i];
-                            if(value.label == v.province) {
+                            if(value.label == v.mainland) {
                                 p = value; break;
                             }
                         }
                         p.checked = true;
-                        if(v.city) {
+                        if(v.province) {
                             var c = {};
                             for(var i in p.items) {
                                 var value = p.items[i];
-                                if(value.label == v.city) {
+                                if(value.label == v.province) {
                                     c = value; break;
                                 }
                             }
                             c.checked = true;
-                            if(v.area) {
+                            if(v.city) {
+                                var a = {};
                                 for(var i in c.items) {
                                     var value = c.items[i];
-                                    if(value.label == v.area) {
-                                        value.checked = true; break;
+                                    if(value.label == v.city) {
+                                        a = value; break;
+                                    }
+                                }
+                                a.checked = true;
+                                if (v.area){
+                                    for(var i in a.items){
+                                        var m = a.items[i];
+                                        if (m.label == v.area){
+                                            m.checked = true;break;
+                                        }
                                     }
+                                }else {
+                                    angular.forEach(a.items, function (area) {
+                                        area.checked = true;
+                                    })
                                 }
                             } else {
-                                angular.forEach(c.items, function (area) {
-                                    area.checked = true;
+                                angular.forEach(c.items, function (city) {
+                                    city.checked = true;
+                                    angular.forEach(city.items, function (area) {
+                                        area.checked = true;
+                                    })
                                 })
                             }
                         } else {
-                            angular.forEach(p.items, function (city) {
-                                city.checked = true;
-                                angular.forEach(city.items, function (area) {
-                                    area.checked = true;
+                            angular.forEach(p.items, function (province) {
+                                province.checked = true;
+                                angular.forEach(province.items, function (city) {
+                                    city.checked = true;
+                                    angular.forEach(city.items, function (area) {
+                                        area.checked = true;
+                                    })
                                 })
                             })
                         }
                     })
+                    console.log(me.$data);
                     me._updateParentsCheck(me.$data);
                 }
             };
@@ -480,15 +584,15 @@ define([ 'app/app' ], function(app) {
              * @param folded
              */
             me.toggleFold = function (item, folded) {
-                item.folded = angular.isUndefined(folded) ? !item.folded : folded;
-            }
-
-            me.getLastItems = function (item) {
-                while (item.items){
-                    item = item.items;
+                var f = item.folded;
+                if (item.items){
+                    me._resetFold(me.$data);
+                    if (item.parent != null){
+                        me._unFoldThisItem(item.parent);
+                    }
                 }
-                return item;
-            };
+                item.folded = angular.isUndefined(folded) ? !f : folded;
+            }
 
             /**
              * 折叠文件夹
@@ -511,9 +615,39 @@ define([ 'app/app' ], function(app) {
              * @param item
              */
             me.check = function (item) {
+                if (item.items){
+                    me._resetFold(me.$data);
+                    me._unFoldThisItem(item);
+                }
                 me._updateChildrenCheck(item);
                 me._updateParentsCheck(me.$data);
-                // me.getChecked();
+
+            }
+
+            /**
+             * 展开当前列表和父列表
+             * @param item
+             * @private
+             */
+            me._unFoldThisItem = function (item) {
+                me.unFold(item);
+                if (item.parent != null){
+                    me._unFoldThisItem(item.parent);
+                }
+            }
+
+            /**
+             * 折叠全部
+             * @param items
+             * @private
+             */
+            me._resetFold = function (items) {
+                angular.forEach(items, function (v) {
+                    v.folded = true;
+                    if (v.items){
+                        me._resetFold(v.items);
+                    }
+                });
             }
 
             /**
@@ -604,7 +738,7 @@ define([ 'app/app' ], function(app) {
                     if(v.checked) {
                         if(!v.semiChecked) {
                             var first = {
-                                province : v.label
+                                mainland : v.label
                             };
                             addressArray.push(first);
                         } else {
@@ -612,19 +746,30 @@ define([ 'app/app' ], function(app) {
                                 if (data.checked){
                                     if(!data.semiChecked) {
                                         var second = {
-                                            province : v.label,
-                                            city : data.label
+                                            mainland : v.label,
+                                            province : data.label
                                         };
                                         addressArray.push(second);
                                     }else {
                                         angular.forEach(data.items, function (item) {
-                                            if (item.checked){
+                                            if(!item.semiChecked) {
                                                 var third = {
-                                                    province : v.label,
-                                                    city : data.label,
-                                                    area : item.label
+                                                    mainland : v.label,
+                                                    province : data.label,
+                                                    city : item.label
                                                 };
                                                 addressArray.push(third);
+                                            }else {
+                                                angular.forEach(item.items, function (m) {
+                                                    if (m.checked){
+                                                        var forth = {
+                                                            mainland : v.label,
+                                                            province : data.label,
+                                                            city : item.label
+                                                        };
+                                                        addressArray.push(forth);
+                                                    }
+                                                })
                                             }
                                         })
                                     }

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

@@ -27,7 +27,6 @@
 		width: 1000px;
 		margin: 0 auto;
 		text-align: center;
-		display: inline-block;
 	}
 	.delivery-list .content-body table{
 		box-sizing: border-box;
@@ -213,7 +212,7 @@
 <!--右侧主体部分-->
 <div class="count user_right fr">
 	<div class="count_center">
-		<div class="com_tab rule-act" style="position: relative">
+		<div class="com_tab" ng-class="{'rule-act': tab=='editRule'}" style="position: relative">
 			<ul class="fl">
 				<!--<li ng-class="{'active': tab=='deliverRule'}"><a ui-sref="vendor_deliveryRule">配送规则</a></li>-->
 				<li ng-class="{'active': tab=='deliverRule'}"><a ng-click="toggleTab('deliverRule')" ui-sref="vendor_deliveryRule">配送规则</a></li>
@@ -223,9 +222,11 @@
 			</ul>
 			<!--配送规则导航-->
 			<div class="addRule-menu" ng-if="editFrame">
-                <span class="active">
-                    <a ng-if="!isModify" ng-click="toggleTab('editRule')">新增配送规则</a>
-					<a ng-if="isModify" ng-click="toggleTab('editRule')">修改配送规则</a>
+                <span ng-class="{'active': tab=='editRule'}">
+                    <a ng-click="toggleTab('editRule')">
+						<em ng-if="!isModify">新增</em><em ng-if="isModify">修改</em>配送规则
+					</a>
+					<!--<a ng-if="isModify" ng-click="toggleTab('editRule')">修改配送规则</a>-->
                     <i class="fa fa-remove" ng-click="cancelEdit()"></i>
                 </span>
 			</div>
@@ -316,36 +317,34 @@
 			<!--适用范围-->
 			<div class="rule-title">适用范围</div>
 			<div class="rule-content">
-				<div class="row check-1">
-					<span><strong>*</strong>适用类型</span>
-					<label class="check-act">
-						<input type="checkbox" id="1" ng-model="orderType.normal"/>
-						<label for="1"></label>
-						普通订单
-					</label>
-					<label class="check-act">
-						<input type="checkbox" id="2" ng-model="orderType.preSale"/>
-						<label for="2"></label>
-						预售订单
-					</label>
-					<label class="check-act">
-						<input type="checkbox" id="3" ng-modle="orderType.bill"/>
-						<label for="3"></label>
-						发票
-					</label>
-					<span>适用用户</span>
-					<select class="select-adder form-control for-people" ng-model="modifyRule.userType">
-						<option value="1301">所有用户</option>
-						<!--<option value="2">所有用户</option>-->
-						<!--<option value="3">所有用户</option>-->
-					</select>
-				</div>
+				<!--暂时注释,在以后的开发中在释放出来-->
+				<!--<div class="row check-1">-->
+					<!--<span><strong>*</strong>适用类型</span>-->
+					<!--<label class="check-act">-->
+						<!--<input type="checkbox" id="1" ng-model="orderType.normal"/>-->
+						<!--<label for="1"></label>-->
+						<!--普通订单-->
+					<!--</label>-->
+					<!--<label class="check-act">-->
+						<!--<input type="checkbox" id="2" ng-model="orderType.preSale"/>-->
+						<!--<label for="2"></label>-->
+						<!--预售订单-->
+					<!--</label>-->
+					<!--<label class="check-act">-->
+						<!--<input type="checkbox" id="3" ng-modle="orderType.bill"/>-->
+						<!--<label for="3"></label>-->
+						<!--发票-->
+					<!--</label>-->
+					<!--<span>适用用户</span>-->
+					<!--<select class="select-adder form-control for-people" ng-model="modifyRule.userType">-->
+						<!--<option value="1301">所有用户</option>-->
+					<!--</select>-->
+				<!--</div>-->
 				<div class="row" style="position: relative;">
-					<span>适用地区</span>
-					<div class="area-content">
-						<!--<span ng-repeat="data in tree.getChecked()">{{data.province}}{{data.city}}{{data.area}}</span>-->
-						<!--<span ng-repeat="data in tree.addressArray">{{data.province}}{{data.city}}{{data.area}}</span>-->
+					<span><strong>*</strong>适用地区</span>
+					<div class="area-content" ng-if="mapArray.length >0">
 						<span ng-repeat="data in mapArray" ng-click="deleteMapItem($index)">
+							<em ng-if="!data.province">{{data.mainland}}</em>
 							<em ng-if="data.province">{{data.province}}</em>
 							<em ng-if="data.city">/{{data.city}}</em>
 							<em ng-if="data.area">/{{data.area}}</em>
@@ -354,44 +353,57 @@
 					</div>
 					<button ng-click="chooseAddress()">选择地区</button>
 					<!--选择地区 begin-->
-					<div class="choose-box" ng-show="chooseBox">
+					<div class="choose-box" ng-if="chooseBox">
 						<div>
 							<div class="tree">
 								<ul>
-									<li ng-repeat="address in tree.$data">
+									<li ng-repeat="mainland in tree.$data">
 										<div>
-											<i class="fa fa-fw" ng-class="address.folded?'fa-caret-right':'fa-caret-down'" ng-click="tree.toggleFold(address)"></i>
-											<span ng-bind="::address.label" ng-click="tree.toggleFold(address)"></span><em ng-if="address.selectedNum!=0 && address.selectedNum!=address.items.length">({{address.selectedNum}})</em>
+											<i class="fa fa-fw" ng-class="mainland.folded?'fa-caret-right':'fa-caret-down'" ng-click="tree.toggleFold(mainland)"></i>
+											<span ng-bind="::mainland.label" ng-click="tree.toggleFold(mainland)"></span><em ng-if="mainland.selectedNum!=0 && mainland.selectedNum!=mainland.items.length">({{mainland.selectedNum}})</em>
 											<div class="check-1">
-												<label class="check-act" ng-class="{'intermediate': tree.isSemiChecked(address)}">
-													<input type="checkbox" ng-model="address.checked" ng-change="tree.check(address)"  id="{{address.label}}">
-													<label for="{{address.label}}"></label>
+												<label class="check-act" ng-class="{'intermediate': tree.isSemiChecked(mainland)}">
+													<input type="checkbox" ng-model="mainland.checked" ng-change="tree.check(mainland)"  id="{{mainland.label}}">
+													<label for="{{mainland.label}}"></label>
 												</label>
 											</div>
 										</div>
-										<ul ng-hide="address.folded">
-											<li ng-repeat="city in address.items">
+										<ul ng-if="!mainland.folded">
+											<li ng-repeat="address in mainland.items">
 												<div>
-													<i ng-if="city.items" class="fa fa-fw" ng-class="city.folded?'fa-caret-right':'fa-caret-down'" ng-click="tree.toggleFold(city)"></i>
-													<span ng-bind="::city.label" ng-click="tree.toggleFold(city)"></span><em ng-if="city.selectedNum!=0 && city.selectedNum!=city.items.length">({{city.selectedNum}})</em>
+													<i ng-if="address.items" class="fa fa-fw" ng-class="address.folded?'fa-caret-right':'fa-caret-down'" ng-click="tree.toggleFold(address)"></i>
+													<span ng-bind="::address.label" ng-click="tree.toggleFold(address)"></span><em ng-if="address.selectedNum!=0 && address.selectedNum!=address.items.length">({{address.selectedNum}})</em>
 													<div class="check-1">
-														<label class="check-act" ng-class="{'intermediate': tree.isSemiChecked(city)}" >
-															<input type="checkbox" ng-model="city.checked" ng-change="tree.check(city)" id="{{city.label}}">
-															<label for="{{city.label}}"></label>
+														<label class="check-act" ng-class="{'intermediate': tree.isSemiChecked(address)}" >
+															<input type="checkbox" ng-model="address.checked" ng-change="tree.check(address)" id="{{address.label}}">
+															<label for="{{address.label}}"></label>
 														</label>
 													</div>
 												</div>
-												<ul ng-hide="city.folded">
-													<li ng-repeat="area in city.items">
-														<label style="width: 100%;">
-															<span ng-bind="::area.label"></span>
+												<ul ng-if="!address.folded">
+													<li ng-repeat="city in address.items">
+														<div style="width: 100%;">
+															<span ng-bind="::city.label" ng-click="tree.toggleFold(city)"></span><em ng-if="city.selectedNum!=0 && city.selectedNum!=city.items.length"></span>({{city.selectedNum}})</em>
 															<div class="check-1">
 																<label class="check-act">
-																	<input type="checkbox" ng-model="area.checked" ng-change="tree.check(area)" id="{{area.label}}">
-																	<label for="{{area.label}}"></label>
+																	<input type="checkbox" ng-model="city.checked" ng-change="tree.check(city)" id="{{city.label}}">
+																	<label for="{{city.label}}"></label>
 																</label>
 															</div>
-														</label>
+														</div>
+														<ul ng-if="!city.folded">
+															<li ng-repeat="area in city.items">
+																<label style="width: 100%;">
+																	<span ng-bind="::area.label"></span>
+																	<div class="check-1">
+																		<label class="check-act">
+																			<input type="checkbox" ng-model="area.checked" ng-change="tree.check(area)" id="{{area.label}}">
+																			<label for="{{area.label}}"></label>
+																		</label>
+																	</div>
+																</label>
+															</li>
+														</ul>
 													</li>
 												</ul>
 											</li>
@@ -405,7 +417,7 @@
 							</div>
 						</div>
 					</div>
-					<!--<i class="notes">默认对全部地区生效</i>-->
+					<!--<i class="notes" ng-if="mapArray.length == 0">&nbsp;&nbsp;默认对全部地区生效</i>-->
 				</div>
 			</div>
 			<!--计费方式-->
@@ -431,18 +443,18 @@
 						<div class="price-input">
 							<i class="currency" ng-if="modifyRule.currencyName=='RMB'">¥</i>
 							<i class="currency" ng-if="modifyRule.currencyName=='USD'">$</i>
-							<input type="text" class="form-control" placeholder="请输入金额" ng-blur="inputUniform()" ng-model="modifyRule.uniformPrice" />
+							<input type="text" class="form-control" placeholder="请输入运费" ng-blur="inputUniform()" ng-model="modifyRule.uniformPrice" />
 						</div>
 					</div>
 					<div class="row" style="background: none; padding: 0;">
-						<span class="f14">计算说明</span>
-						<!--可编辑-->
-						<!--<div class="edit">-->
-						<!--<textarea class="form-control" placeholder="全国统一运费 $20"></textarea>-->
-						<!--<div class="prompt"><strong>*</strong>公式说明内容将会在购物车中显示,可自行修改</div>-->
+						<span class="f14" style="margin-right: 10px;">计算说明</span>
+						<!--&lt;!&ndash;可编辑&ndash;&gt;-->
+						<!--<div class="edit" style="margin-top: 6px;">-->
+							<!--<textarea class="form-control" placeholder="全国统一运费 $20"></textarea>-->
+							<!--<div class="prompt"><strong>*</strong>公式说明内容将会在购物车中显示,可自行修改</div>-->
 						<!--</div>-->
 						<!--不可以编辑的状态-->
-						<div class="no-edit">全国统一运费
+						<div class="no-edit" style="margin-top: 6px;">全国统一运费
 							<em ng-if="modifyRule.currencyName=='RMB'">¥</em>
 							<em ng-if="modifyRule.currencyName=='USD'">$</em>
 							{{modifyRule.uniformPrice}}
@@ -451,51 +463,33 @@
 				</div>
 				<!--按总金额计算-->
 				<div class="style-price common-style" ng-if="modifyRule.fareType==2">
-					<!--<div class="row dot">-->
-					<!--<span>总金额在</span>-->
-					<!--<div class="price-input">-->
-					<!--<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="0" />-->
-					<!--<em>以下,</em>-->
-					<!--</div>-->
-					<!--<div class="price-input">-->
-					<!--<em>运费为</em>-->
-					<!--<i class="currency">$</i>-->
-					<!--<input type="text" class="form-control" placeholder="0" />-->
-					<!--</div>-->
-					<!--</div>-->
 					<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>
-							<input type="text" class="form-control" ng-blur="inputQtyFare(data, $index)" placeholder="0" ng-model="data.end" />
+							<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 class="currency" ng-if="modifyRule.currencyName=='RMB'">¥</i>
-								<i class="currency" ng-if="modifyRule.currencyName=='USD'">$</i>
-								<i ng-bind="fareArray[$index-1].end"></i>以上,
+								<i ng-bind="modifyRule.currencyName=='RMB' ? '¥' : '$'"></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>
-							<input type="text" class="form-control" ng-blur="inputQtyFare(data, $index)" ng-model="data.end" placeholder="100" />
+							<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 class="currency" ng-if="modifyRule.currencyName=='RMB'">¥</i>
-								<i class="currency" ng-if="modifyRule.currencyName=='USD'">$</i>
-								<i ng-bind="fareArray[$index-1].end"></i>以上,
+								<i ng-bind="modifyRule.currencyName=='RMB' ? '¥' : '$'"></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>
-							<input type="text" class="form-control" ng-blur="inputFare(data)" ng-model="data.fare" placeholder="0" />
+							<input type="text" class="form-control" placeholder="请输入运费" ng-blur="inputFare(data)" ng-model="data.fare" />
 						</div>
 						<div class="add-box">
 							<span class="add" ng-if="$index == fareArray.length - 1 && fareArray.length < 5" ng-click="addQtyFare(data)"><i class="fa fa-plus-circle"></i></span>
@@ -516,8 +510,8 @@
 					<!--</div>-->
 					<!--计算说明-->
 					<div class="row" style="background: none; padding: 0; margin-top: 10px !important;">
-						<span class="f14">计算说明</span>
-						<div class="no-edit">
+						<span class="f14" style="margin-right: 10px;">计算说明</span>
+						<div class="no-edit" style="margin-top: 6px;">
 							<div ng-repeat="data in fareArray">
 								<p ng-if="$index == 0">
 									总价在
@@ -978,7 +972,7 @@
 	}
 	.choose-box .tree{
 		width: 290px;
-		max-height: 364px;
+		height: 364px;
 		overflow-y: auto;
 		margin: 0 auto;
 		border: #e8e9ea 1px solid;
@@ -991,7 +985,9 @@
 		width: 100%;
 		float: left;
 	}
-
+	.choose-box .tree li li li{
+		padding-left: 2.75em;
+	}
 	.choose-box .tree ul {
 		list-style: none;
 		padding-left: 0;
@@ -1039,4 +1035,7 @@
 	.rule-main .rule-content .row .choose-box label{
 		margin-right: 12px;
 	}
+	.rule-main .rule-content .common-style .row .add-box span{
+		width: auto;
+	}
 </style>

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

@@ -31,7 +31,7 @@
 					</thead>
 					<tbody>
 					<tr ng-repeat="address in addressList">
-						<td class="text-left">{{address.name}}</td>
+						<td class="text-left" title="{{address.name}}">{{address.name}}</td>
 						<td class="text-left">
 							<div>{{address.province}}&nbsp;{{address.city}}&nbsp;{{address.district}}</div>
 							<div>{{address.detailAddress}}</div>

+ 2 - 2
src/main/webapp/resources/view/vendor/left_nav.html

@@ -22,8 +22,8 @@
 	<a href="javascript:void(0)" ui-sref="vendor_index"><p ng-class="{'active' : active == 'index'}"><span>卖家中心</span></p></a>
 	<ul>
 		<li ng-class="{'active' : active == 'vendor_order'}"><a href="javascript:void(0)" ui-sref="vendor_order">订单中心</a></li>
-		<!--<li ng-class="{'active' : active == 'vendor_logistics'}"><a href="javascript:void(0)" ui-sref="vendor_deliveryRule">物流管理</a></li>-->
-		<li ng-class="{'active' : active == 'vendor_logistics'}"><a href="javascript:void(0)" ui-sref="vendor_logistics">物流管理</a></li>
+		<li ng-class="{'active' : active == 'vendor_logistics'}"><a href="javascript:void(0)" ui-sref="vendor_deliveryRule">物流管理</a></li>
+		<!--<li ng-class="{'active' : active == 'vendor_logistics'}"><a href="javascript:void(0)" ui-sref="vendor_logistics">物流管理</a></li>-->
 		<li ng-class="{'active' : active == 'pay_center'}"><a href="javascript:void(0)" ui-sref="pay_center">结算中心</a></li>
 		<li ng-class="{'active' : active == 'vendor_brand_apply'}"><a href="javascript:void(0)" ui-sref="vendor_brand_apply">品牌申请</a></li>
 		<li ng-class="{'active' : active == 'vendor_component_apply'}"><a href="javascript:void(0)" ui-sref="vendor_component_apply">器件申请</a></li>