addressAdminCtrl.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. define(['app/app'], function(app) {
  2. app.register.controller('adressAdminCtrl', ['$scope', '$anchorScroll', '$location', 'ShippingAddress', 'ngTableParams', 'BaseService', '$modal', 'toaster', function($scope, $anchorScroll, $location, ShippingAddress, ngTableParams, BaseService, $modal, toaster) {
  3. BaseService.scrollBackToTop();
  4. $scope.active = "ship";
  5. $scope.setActive = function(status) {
  6. $scope.active = status;
  7. loadAddrs();
  8. }
  9. $scope.isSendType = false;
  10. var getMethod = function() {
  11. switch($scope.active) {
  12. case 'ship':
  13. $scope.isSendType = false; break;
  14. case 'send':
  15. $scope.isSendType = true; break;
  16. }
  17. }
  18. var loadAddrs = function() {
  19. getMethod();
  20. ShippingAddress.get({send: $scope.isSendType}, function(data) {
  21. $scope.shipAddress = data;
  22. }, function(response) {
  23. toaster.pop('error', '获取地址失败 ' + response);
  24. });
  25. }
  26. loadAddrs();
  27. $scope.setDefaultAddress = function(id) {
  28. ShippingAddress.setTop({addid: id}, null, function(data) {
  29. toaster.pop('success', '设置成功');
  30. loadAddrs();
  31. }, function(response) {
  32. toaster.pop('error', '设置失败');
  33. });
  34. }
  35. //删除收货地址
  36. $scope.deleteAddr = function(addr){
  37. var isSure = confirm('确认删除?删除后不可恢复,请谨慎操作!');
  38. if(isSure) {
  39. var id = addr.id;
  40. ShippingAddress.del({addid: id}, {}, function(data){
  41. //重新加载购物数据
  42. loadAddrs();
  43. }, function(res){
  44. toaster.pop('error', '系统错误', '删除收货地址失败');
  45. });
  46. }
  47. };
  48. //编辑收货地址
  49. $scope.editAddr = function(isSetTop, addr) {
  50. $modal.open({
  51. templateUrl : 'static/view/prod/modal/editAddr_modal.html',
  52. controller : 'editAddrCtrl',
  53. backdrop : 'static',
  54. size : 'lg',
  55. resolve : {
  56. isSetTop : function(){
  57. //必须用 angular.copy深拷贝一份
  58. return angular.copy(isSetTop);
  59. },
  60. addr : function(){
  61. return angular.copy(addr);
  62. },
  63. isSendType : function() {
  64. return $scope.isSendType;
  65. }
  66. }
  67. }).result.then(function(address){
  68. loadAddrs();
  69. }, function(reason){
  70. });
  71. };
  72. }]);
  73. //地址编辑模态框的Controller
  74. app.register.controller('editAddrCtrl', ['$scope', 'isSetTop', 'addr', 'isSendType', '$modalInstance', 'toaster', '$http', 'ShippingAddress', function($scope, isSetTop, addr, isSendType, $modalInstance, toaster, $http, ShippingAddress){
  75. $scope.isSetTop = isSetTop;
  76. $scope.isSendType = isSendType;
  77. //验证数据
  78. $scope.checkeds = {};
  79. $scope.checkform = function(name,num) {
  80. if(num == 1) {
  81. if(angular.isUndefined(name)) {
  82. $scope.checkeds.name = false;
  83. } else {
  84. $scope.checkeds.name = true;
  85. }
  86. } else if(num == 2) {
  87. if(angular.isUndefined(name)) {
  88. $scope.checkeds.detailAddress = false;
  89. } else {
  90. $scope.checkeds.detailAddress = true;
  91. }
  92. } else if(num == 3) {
  93. if(angular.isUndefined(name)) {
  94. $scope.checkeds.tel = false;
  95. } else {
  96. $scope.checkeds.tel = true;
  97. }
  98. }
  99. }
  100. $http.get('static/js/prod/data/city.json').success(function(data) {
  101. $scope.division = data;
  102. if(addr){
  103. $scope.address = addr;
  104. //拼装下拉选择框
  105. var arr = addr.area.split(',');
  106. addr.province = arr[0];
  107. addr.city = arr[1];
  108. addr.district = arr[2];
  109. $scope.address = addr;
  110. $scope.addr = true;
  111. }
  112. }).error(function(e) {
  113. toaster.pop('error', '系统错误 ' + '加载城市信息失败');
  114. });
  115. $scope.save = function () {
  116. var address = $scope.address;
  117. //拼装地区
  118. /**
  119. * TODO 这里没做校验
  120. */
  121. var strAres = address.province + ',' + address.city + ',' + address.district;
  122. address.area = strAres;
  123. // send属性 控制本地址是否是发货地址
  124. ShippingAddress.save({isSetTop: $scope.isSetTop, send: $scope.isSendType, isPersonal: true}, address, function(data){
  125. toaster.pop('success', '成功 ', '保存收货地址成功');
  126. $modalInstance.close(data);
  127. }, function(res){
  128. toaster.pop('error', '保存收货地址失败 ', res.data);
  129. });
  130. }
  131. $scope.cancel = function() {
  132. $modalInstance.dismiss();
  133. };
  134. }]);
  135. })