|
|
@@ -1,6 +1,6 @@
|
|
|
define([ 'app/app' ], function(app) {
|
|
|
'use strict';
|
|
|
- app.register.controller('vendorDeliveryRuleCtrl', ['$scope', '$rootScope', 'ngTableParams', 'DistributionRule', 'BaseService', 'toaster', '$state', '$http', 'Enterprise', 'TreeData', function ($scope, $rootScope, ngTableParams, DistributionRule, BaseService, toaster, $state, $http, Enterprise, TreeData) {
|
|
|
+ app.register.controller('vendorDeliveryRuleCtrl', ['$scope', '$rootScope', 'ngTableParams', 'DistributionRule', 'BaseService', 'toaster', '$state', '$http', 'Enterprise', 'TreeData','$q','NumberService', function ($scope, $rootScope, ngTableParams, DistributionRule, BaseService, toaster, $state, $http, Enterprise, TreeData,$q,NumberService) {
|
|
|
$rootScope.active = 'vendor_logistics';
|
|
|
$scope.tab = 'deliverRule';
|
|
|
$scope.title = '配送规则';
|
|
|
@@ -53,17 +53,19 @@ define([ 'app/app' ], function(app) {
|
|
|
$scope.modifyRule = data;
|
|
|
$scope.isModify = true;
|
|
|
$scope.isActive = $scope.modifyRule.active == 1;
|
|
|
- $scope.fareArray = angular.fromJson($scope.modifyRule.fares);
|
|
|
+ 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);
|
|
|
@@ -89,10 +91,9 @@ define([ 'app/app' ], function(app) {
|
|
|
$scope.mapArray = [];
|
|
|
if ($scope.modifyRule.areas){
|
|
|
var data = angular.fromJson($scope.modifyRule.areas);
|
|
|
- $scope.mapArray = data;
|
|
|
- }
|
|
|
- if ($scope.mapArray.length == 0){
|
|
|
-
|
|
|
+ $scope.tree = $scope.tree ? $scope.tree : new TreeData($scope.cityData);
|
|
|
+ $scope.tree.newInitData(data);
|
|
|
+ $scope.mapArray = $scope.tree.getChecked();
|
|
|
}
|
|
|
}else {
|
|
|
$scope.isModify = false;
|
|
|
@@ -107,7 +108,11 @@ define([ 'app/app' ], function(app) {
|
|
|
};
|
|
|
Enterprise.getCurrencyByRegisterAddress({}, {} ,function (data) {
|
|
|
if (data){
|
|
|
- $scope.modifyRule.currencyName = data.data;
|
|
|
+ /**
|
|
|
+ * 目前存在没有注册地址的公司,暂时设为RMB
|
|
|
+ */
|
|
|
+ $scope.modifyRule.currencyName = data.data ? data.data : 'RMB';
|
|
|
+ $scope.currencySymbol = $scope.modifyRule.currencyName == "RMB" ? "¥" : "$";
|
|
|
}
|
|
|
}, function (error) {
|
|
|
toaster.pop('error', "获取企业币别信息失败");
|
|
|
@@ -124,13 +129,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);
|
|
|
@@ -147,12 +151,12 @@ define([ 'app/app' ], function(app) {
|
|
|
|
|
|
$scope.inputNum = function (data) {
|
|
|
if(isNaN(data.num)){
|
|
|
- data.num = 1;
|
|
|
+ data.num = null;
|
|
|
toaster.pop('warning', '提示', '请输入大于0的整数');
|
|
|
return false;
|
|
|
}
|
|
|
- if(Number(data.num) < 0 || Number(data.num) % 1 != 0) {
|
|
|
- data.num = 1;
|
|
|
+ if(Number(data.num) < 1 || Number(data.num) % 1 != 0) {
|
|
|
+ data.num = null;
|
|
|
toaster.pop('warning', '提示', '请输入大于0的整数');
|
|
|
return false;
|
|
|
}
|
|
|
@@ -177,21 +181,7 @@ define([ 'app/app' ], function(app) {
|
|
|
$scope.loadCityData();
|
|
|
|
|
|
$scope.repeatError = false;
|
|
|
- $scope.checkRuleName = function () {
|
|
|
- console.log($scope.nameArray);
|
|
|
- var k = 1;
|
|
|
- angular.forEach($scope.nameArray, function (item) {
|
|
|
- if (item == $scope.modifyRule.ruleName){
|
|
|
- k = 0;
|
|
|
- return;
|
|
|
- }
|
|
|
- });
|
|
|
- if (k == 1){
|
|
|
- $scope.repeatError = false;
|
|
|
- }else {
|
|
|
- $scope.repeatError = true;
|
|
|
- }
|
|
|
-
|
|
|
+ $scope.checkRuleNameSize = function () {
|
|
|
if ($scope.modifyRule.ruleName){
|
|
|
var size = $scope.modifyRule.ruleName.replace(/[^x00-xFF]/g,'**').length;
|
|
|
if (size > 20) {
|
|
|
@@ -201,7 +191,7 @@ define([ 'app/app' ], function(app) {
|
|
|
}
|
|
|
}
|
|
|
if ($scope.nameError){
|
|
|
- toaster.pop("error", "最多可输入10个文字")
|
|
|
+ toaster.pop("error", "规则名称,最多可输入10个文字")
|
|
|
return;
|
|
|
}
|
|
|
};
|
|
|
@@ -211,11 +201,14 @@ define([ 'app/app' ], function(app) {
|
|
|
* @param data
|
|
|
*/
|
|
|
$scope.addQtyFare = function (data) {
|
|
|
+ if (Number(data.start) == 1000000){
|
|
|
+ toaster.pop('warning', '提示', '已达到最大值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);
|
|
|
@@ -231,22 +224,19 @@ define([ 'app/app' ], function(app) {
|
|
|
};
|
|
|
|
|
|
$scope.inputFare = function (data) {
|
|
|
- // if(!data.fare) {
|
|
|
- // data.fare = 0;
|
|
|
- // return false;
|
|
|
- // }
|
|
|
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;
|
|
|
+ toaster.pop('warning', '提示', '请勿超过100,100');
|
|
|
}
|
|
|
if(data.fare.length > 0){
|
|
|
data.fare = Number(data.fare);
|
|
|
@@ -254,10 +244,6 @@ define([ 'app/app' ], function(app) {
|
|
|
};
|
|
|
|
|
|
$scope.inputUniform = function () {
|
|
|
- // if(!$scope.modifyRule.uniformPrice) {
|
|
|
- // $scope.modifyRule.uniformPrice = 0;
|
|
|
- // return false;
|
|
|
- // }
|
|
|
if(isNaN($scope.modifyRule.uniformPrice)){
|
|
|
$scope.modifyRule.uniformPrice = "";
|
|
|
toaster.pop('warning', '提示', '运费必须是整数');
|
|
|
@@ -281,127 +267,186 @@ 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(isNaN(data.end)) {
|
|
|
+ data.end = "";
|
|
|
+ toaster.pop('warning', '提示', '仅可输入数值');
|
|
|
+ return;
|
|
|
}
|
|
|
- // 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(Number(data.end) > 1000000){
|
|
|
+ data.end = "";
|
|
|
+ toaster.pop('warning', '提示', '请勿超过1,000,000');
|
|
|
+ return;
|
|
|
}
|
|
|
- if(Number(data.end) <= Number(data.start)){
|
|
|
- data.end = data.start + 1;
|
|
|
+ if(Number(data.end) <= Number(data.start)) {
|
|
|
+ data.end = "";
|
|
|
+ toaster.pop('warning', '提示', '输入值应大于该行起始金额');
|
|
|
+ return;
|
|
|
}
|
|
|
- if(Number(data.start) > 100000){
|
|
|
- data.start = 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(Number(data.end) > 100000){
|
|
|
- data.end = 100000;
|
|
|
+ if (data.end.length != 0){
|
|
|
+ data.end = Number(NumberService.toCeil(data.end, 2)) + "";
|
|
|
+ $scope.fareArray[index+1].start = data.end;
|
|
|
}
|
|
|
- data.start = Number(data.start);
|
|
|
- data.end = Number(data.end);
|
|
|
- $scope.fareArray[index+1].start = Number(data.end);
|
|
|
};
|
|
|
|
|
|
- $scope.saveDistributionRule = function (isAdd) {
|
|
|
- if (!isAdd){
|
|
|
- $scope.checkRuleName();
|
|
|
+ $scope.formatMoney = function (data) {
|
|
|
+ if (Number(data) > 100000){
|
|
|
+ data = 100000;
|
|
|
}
|
|
|
+ return Number(data);
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 后台检查规则名是否重复
|
|
|
+ * @param newSave
|
|
|
+ * @returns {*|{url, method}}
|
|
|
+ */
|
|
|
+ var checkRepeatName = function (newSave) {
|
|
|
+ return DistributionRule.checkRuleName({id:$scope.modifyRule.id,ruleName:$scope.modifyRule.ruleName,newSave:newSave}, {}, function (data) {
|
|
|
+
|
|
|
+ })
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 检查配送规则字段
|
|
|
+ * @returns {boolean}
|
|
|
+ */
|
|
|
+ var checkRuleError = function () {
|
|
|
if (!$scope.modifyRule.shippingMethod){
|
|
|
toaster.pop('error', "请选择配送方式");
|
|
|
- return;
|
|
|
+ return false;
|
|
|
}
|
|
|
if(!$scope.modifyRule.ruleName){
|
|
|
toaster.pop('error', "请填写规则名称");
|
|
|
- return;
|
|
|
+ return false;
|
|
|
}
|
|
|
if($scope.nameError){
|
|
|
- toaster.pop('error', "最多可输入10个文字");
|
|
|
- return;
|
|
|
+ toaster.pop('error', "规则名称,最多可输入10个文字");
|
|
|
+ return false;
|
|
|
}
|
|
|
if($scope.repeatError){
|
|
|
toaster.pop('error', "该规则名称已存在,请修改");
|
|
|
- return;
|
|
|
+ return false;
|
|
|
}
|
|
|
/**
|
|
|
* TODO 暂时注释,以后在放出来
|
|
|
*/
|
|
|
// if(!$scope.orderType.normal && !$scope.orderType.preSale && !$scope.orderType.bill){
|
|
|
// toaster.pop('error', "请选择适用类型");
|
|
|
- // return;
|
|
|
+ // return false;
|
|
|
// }
|
|
|
// if(!$scope.modifyRule.userType){
|
|
|
// toaster.pop('error', "请选择适用类型");
|
|
|
- // return;
|
|
|
+ // return false;
|
|
|
// }
|
|
|
+ if (!$scope.mapArray){
|
|
|
+ toaster.pop('error', "您还没有选择任何地区");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
if ($scope.mapArray.length > 0){
|
|
|
- $scope.modifyRule.qtyArea = angular.toJson($scope.mapArray);
|
|
|
+ var resultArray = convertArray($scope.mapArray);
|
|
|
+ $scope.modifyRule.qtyArea = angular.toJson(resultArray);
|
|
|
}else {
|
|
|
toaster.pop('error', "您还没有选择任何地区");
|
|
|
- return;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (!$scope.modifyRule.qtyArea){
|
|
|
+ toaster.pop('error', "您还没有选择任何地区");
|
|
|
+ return false;
|
|
|
}
|
|
|
if ($scope.modifyRule.fareType == 1){
|
|
|
- if (!$scope.modifyRule.uniformPrice){
|
|
|
+ if (typeof($scope.modifyRule.uniformPrice) == 'undefined' ||
|
|
|
+ typeof($scope.modifyRule.uniformPrice) == 'string'){
|
|
|
toaster.pop('error', "请输入统一规定运费");
|
|
|
- return;
|
|
|
+ return false;
|
|
|
}
|
|
|
}
|
|
|
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){
|
|
|
toaster.pop('error', "请完善计费方式");
|
|
|
- return;
|
|
|
+ return false;
|
|
|
}
|
|
|
$scope.modifyRule.qtyFare = angular.toJson($scope.fareArray);
|
|
|
}
|
|
|
+ return true;
|
|
|
+ };
|
|
|
|
|
|
+ /**
|
|
|
+ * isAdd false-另存为
|
|
|
+ * @param isAdd
|
|
|
+ */
|
|
|
+ $scope.saveDistributionRule = function (isAdd) {
|
|
|
+ if ($scope.modifyRule.ruleName){
|
|
|
+ $q.all([checkRepeatName(!isAdd).$promise]).then(function(data) {
|
|
|
+ if (data){
|
|
|
+ $scope.repeatError = data[0].data;
|
|
|
+ }
|
|
|
+ var valid = checkRuleError();
|
|
|
+ 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.success){
|
|
|
+ $scope.editFrame = false;
|
|
|
+ $scope.tab = 'deliverRule';
|
|
|
+ if (isAdd){
|
|
|
+ toaster.pop('info', "保存成功");
|
|
|
+ }else{
|
|
|
+ toaster.pop('info', "新增规则成功");
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ toaster.pop('error', data.message);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ },function (error) {
|
|
|
+ toaster.pop('error', "保存配送规则失败");
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }else {
|
|
|
+ toaster.pop('error', "请填写规则名称");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
};
|
|
|
|
|
|
// 切换计费类型
|
|
|
@@ -409,10 +454,39 @@ define([ 'app/app' ], function(app) {
|
|
|
$scope.modifyRule.fareType = t;
|
|
|
};
|
|
|
|
|
|
+ var convertArray = function (array) {
|
|
|
+ var resultArray = angular.copy(array);
|
|
|
+ var indexArray = [];
|
|
|
+ angular.forEach(array, function (item, index) {
|
|
|
+ if (item.mainland && !item.province){
|
|
|
+ indexArray.push(index);
|
|
|
+ angular.forEach($scope.tree.$data, function (v) {
|
|
|
+ if (v.label == item.mainland){
|
|
|
+ angular.forEach(v.items, function (p) {
|
|
|
+ var object = {
|
|
|
+ province : p.label
|
|
|
+ };
|
|
|
+ resultArray.push(object);
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ var count = 0;
|
|
|
+ angular.forEach(indexArray, function (index) {
|
|
|
+ resultArray.splice(index - count, 1);
|
|
|
+ count++;
|
|
|
+ });
|
|
|
+ return resultArray;
|
|
|
+ };
|
|
|
+
|
|
|
$scope.chooseBox = false;
|
|
|
$scope.cancel = function () {
|
|
|
$scope.resetData($scope.tree.$data);
|
|
|
- $scope.tree.initData($scope.mapArray);
|
|
|
+ if ($scope.mapArray.length > 0){
|
|
|
+ var resultArray = convertArray($scope.mapArray);
|
|
|
+ $scope.tree.newInitData(resultArray);
|
|
|
+ }
|
|
|
$scope.chooseBox = false;
|
|
|
};
|
|
|
|
|
|
@@ -424,6 +498,11 @@ define([ 'app/app' ], function(app) {
|
|
|
$scope.resetData = function (items) {
|
|
|
angular.forEach(items, function (item) {
|
|
|
item.checked = false;
|
|
|
+ if (item.parent == null){
|
|
|
+ item.folded = false;
|
|
|
+ }else {
|
|
|
+ item.folded = true;
|
|
|
+ }
|
|
|
item.selectedNum = 0;
|
|
|
if (item.items){
|
|
|
$scope.resetData(item.items);
|
|
|
@@ -438,12 +517,17 @@ define([ 'app/app' ], function(app) {
|
|
|
toaster.pop("info", "您还没有选择任何地区");
|
|
|
return;
|
|
|
}
|
|
|
- $scope.tree.initData($scope.mapArray);
|
|
|
+ $scope.tree.newInitData($scope.mapArray);
|
|
|
$scope.chooseBox = false;
|
|
|
};
|
|
|
|
|
|
$scope.deleteMapItem = function (index) {
|
|
|
$scope.mapArray.splice(index, 1);
|
|
|
+ $scope.resetData($scope.tree.$data);
|
|
|
+ if ($scope.mapArray.length > 0){
|
|
|
+ var resultArray = convertArray($scope.mapArray);
|
|
|
+ $scope.tree.newInitData(resultArray);
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
@@ -518,8 +602,8 @@ define([ 'app/app' ], function(app) {
|
|
|
// 选择地区
|
|
|
$scope.chooseAddress = function () {
|
|
|
$scope.chooseBox = true;
|
|
|
- $scope.tree = new TreeData($scope.cityData);
|
|
|
- $scope.tree.initData($scope.mapArray);
|
|
|
+ $scope.tree = $scope.tree ? $scope.tree : new TreeData($scope.cityData);
|
|
|
+ $scope.tree.newInitData($scope.mapArray);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -528,8 +612,8 @@ define([ 'app/app' ], function(app) {
|
|
|
* @param isAdd
|
|
|
* @param active
|
|
|
*/
|
|
|
- $scope.changeActive = function (rule, isAdd, active) {
|
|
|
- DistributionRule.saveRule({isAdd:isAdd,isActive:active}, rule, function (data) {
|
|
|
+ $scope.changeActive = function (ruleId, active) {
|
|
|
+ DistributionRule.changeActive({id:ruleId, isActive:active}, {}, function (data) {
|
|
|
if (data){
|
|
|
$scope.ruleTableParams.reload();
|
|
|
}
|
|
|
@@ -576,70 +660,60 @@ define([ 'app/app' ], function(app) {
|
|
|
var me = this;
|
|
|
me.$data = tree;
|
|
|
|
|
|
- me.initData = function (initData) {
|
|
|
- console.log(initData);
|
|
|
+ /**
|
|
|
+ * 根据已选地区映射到树对象中
|
|
|
+ * @param initData
|
|
|
+ */
|
|
|
+ me.newInitData = function (initData) {
|
|
|
+ if (initData){
|
|
|
+ angular.forEach(me.$data, function (v) {
|
|
|
+ me.initData(v.items, initData);
|
|
|
+ })
|
|
|
+ }
|
|
|
+ me._updateParentsCheck(me.$data);
|
|
|
+ };
|
|
|
+
|
|
|
+ me.initData = function (data, 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.mainland) {
|
|
|
+ for(var i in data) {
|
|
|
+ var value = data[i];//获取单个省
|
|
|
+ if(value.label == v.province) {
|
|
|
p = value; break;
|
|
|
}
|
|
|
}
|
|
|
p.checked = true;
|
|
|
- if(v.province) {
|
|
|
+ if(v.city) {
|
|
|
var c = {};
|
|
|
for(var i in p.items) {
|
|
|
- var value = p.items[i];
|
|
|
- if(value.label == v.province) {
|
|
|
+ var value = p.items[i];//获取单个市
|
|
|
+ if(value.label == v.city) {
|
|
|
c = value; break;
|
|
|
}
|
|
|
}
|
|
|
c.checked = true;
|
|
|
- if(v.city) {
|
|
|
- var a = {};
|
|
|
+ if(v.area) {
|
|
|
for(var i in c.items) {
|
|
|
- var value = c.items[i];
|
|
|
- if(value.label == v.city) {
|
|
|
- a = value; break;
|
|
|
+ var a = c.items[i];//获取单个区
|
|
|
+ if(a.label == v.area) {
|
|
|
+ a.checked = true; 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 (city) {
|
|
|
- city.checked = true;
|
|
|
- angular.forEach(city.items, function (area) {
|
|
|
- area.checked = true;
|
|
|
- })
|
|
|
+ }else {
|
|
|
+ angular.forEach(c.items, function (area) {
|
|
|
+ area.checked = true;
|
|
|
})
|
|
|
}
|
|
|
- } else {
|
|
|
- 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;
|
|
|
- })
|
|
|
+ }else {
|
|
|
+ angular.forEach(p.items, function (city) {
|
|
|
+ city.checked = true;
|
|
|
+ angular.forEach(city.items, function (area) {
|
|
|
+ area.checked = true;
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
})
|
|
|
- console.log(me.$data);
|
|
|
- me._updateParentsCheck(me.$data);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -812,7 +886,7 @@ define([ 'app/app' ], function(app) {
|
|
|
if (data.checked){
|
|
|
if(!data.semiChecked) {
|
|
|
var second = {
|
|
|
- mainland : v.label,
|
|
|
+ // mainland : v.label,
|
|
|
province : data.label
|
|
|
};
|
|
|
addressArray.push(second);
|
|
|
@@ -820,7 +894,7 @@ define([ 'app/app' ], function(app) {
|
|
|
angular.forEach(data.items, function (item) {
|
|
|
if(!item.semiChecked) {
|
|
|
var third = {
|
|
|
- mainland : v.label,
|
|
|
+ // mainland : v.label,
|
|
|
province : data.label,
|
|
|
city : item.label
|
|
|
};
|
|
|
@@ -829,7 +903,7 @@ define([ 'app/app' ], function(app) {
|
|
|
angular.forEach(item.items, function (m) {
|
|
|
if (m.checked){
|
|
|
var forth = {
|
|
|
- mainland : v.label,
|
|
|
+ // mainland : v.label,
|
|
|
province : data.label,
|
|
|
city : item.label,
|
|
|
area : m.label
|