addressAdminCtrl.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. define(['app/app'], function(app) {
  2. app.register.controller('addressAdminCtrl', ['$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.getListEnterprise({ship: !$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', '系统错误', '删除收货地址失败 '+ res);
  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. size : 'lg',
  54. resolve : {
  55. isSetTop : function(){
  56. //必须用 angular.copy深拷贝一份
  57. return angular.copy(isSetTop);
  58. },
  59. addr : function(){
  60. return angular.copy(addr);
  61. },
  62. isSendType : function() {
  63. return $scope.isSendType;
  64. }
  65. }
  66. }).result.then(function(address){
  67. loadAddrs();
  68. }, function(reason){
  69. });
  70. };
  71. }]);
  72. //地址编辑模态框的Controller
  73. app.register.controller('editAddrCtrl', ['$scope', 'isSetTop', 'addr', 'isSendType', '$modalInstance', 'toaster', '$http', 'ShippingAddress', function($scope, isSetTop, addr, isSendType, $modalInstance, toaster, $http, ShippingAddress){
  74. $scope.isSetTop = isSetTop;
  75. $scope.isSendType = isSendType;
  76. //验证数据
  77. $scope.checkeds = {};
  78. $scope.checkform = function(name,num) {
  79. if(num == 1) {
  80. if(angular.isUndefined(name)) {
  81. $scope.checkeds.name = false;
  82. } else {
  83. $scope.checkeds.name = true;
  84. }
  85. } else if(num == 2) {
  86. if(angular.isUndefined(name)) {
  87. $scope.checkeds.detailAddress = false;
  88. } else {
  89. $scope.checkeds.detailAddress = true;
  90. }
  91. } else if(num == 3) {
  92. if(angular.isUndefined(name)) {
  93. $scope.checkeds.tel = false;
  94. } else {
  95. $scope.checkeds.tel = true;
  96. }
  97. }
  98. }
  99. $http.get('static/js/prod/data/city.json').success(function(data) {
  100. $scope.division = data;
  101. if(addr){
  102. $scope.address = addr;
  103. //拼装下拉选择框
  104. var arr = addr.area.split(',');
  105. addr.province = arr[0];
  106. addr.city = arr[1];
  107. addr.district = arr[2];
  108. $scope.address = addr;
  109. $scope.addr = true;
  110. }
  111. }).error(function(e) {
  112. toaster.pop('error', '系统错误 ' + '加载城市信息失败');
  113. });
  114. $scope.save = function () {
  115. var address = $scope.address;
  116. //拼装地区
  117. /**
  118. * TODO 这里没做校验
  119. */
  120. var strAres = address.province + ',' + address.city + ',' + address.district;
  121. address.area = strAres;
  122. // send属性 控制本地址是否是发货地址
  123. ShippingAddress.save({isSetTop: $scope.isSetTop, send: $scope.isSendType, isPersonal: false}, address, function(data){
  124. toaster.pop('success', '成功 ', '保存收货地址成功');
  125. $modalInstance.close(data);
  126. }, function(res){
  127. toaster.pop('error', '系统错误 ', '保存收货地址失败');
  128. });
  129. }
  130. $scope.cancel = function() {
  131. $modalInstance.dismiss();
  132. };
  133. }]);
  134. })