address.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. var util = require('../../../utils/util.js');
  2. var api = require('../../../config/api.js');
  3. var app = getApp();
  4. // 引入SDK核心类
  5. var QQMapWX = require('../../../lib/qqmap/qqmap-wx-jssdk.js');
  6. // 实例化API核心类
  7. var qqMap = new QQMapWX({
  8. key: 'BNVBZ-U7RHQ-UUM5Q-GLW6J-SOKSZ-4GBDL' // 必填
  9. });
  10. Page({
  11. data: {
  12. addressList: [],
  13. },
  14. onLoad: function (options) {
  15. // 页面初始化 options为页面跳转所带来的参数
  16. this.getAddressList();
  17. },
  18. onReady: function () {
  19. // 页面渲染完成
  20. },
  21. onShow: function () {
  22. // 页面显示
  23. this.getAddressList();
  24. },
  25. getAddressList() {
  26. let that = this;
  27. util.request(api.AddressList).then(function (res) {
  28. if (res.errno === 0) {
  29. that.setData({
  30. addressList: res.data
  31. });
  32. }
  33. });
  34. },
  35. addressAddOrUpdate(event) {
  36. var addressId = event.currentTarget.dataset.addressId;
  37. try {
  38. wx.navigateTo({
  39. url: '/pages/shopping/addressAdd/addressAdd?id=' + addressId,
  40. success: function (res) {
  41. console.log(res)
  42. },
  43. fail: function (res) {
  44. console.log(res)
  45. }
  46. })
  47. } catch (e) {
  48. console.log(e);
  49. }
  50. },
  51. selectAddress(event) {
  52. var that = this;
  53. var addressId = event.currentTarget.dataset.addressId;
  54. try {
  55. wx.setStorageSync('addressId', addressId);
  56. } catch (e) {
  57. }
  58. var selectAddressVo = that.data.addressList.filter(function (v) {
  59. if (v.id == addressId) {
  60. return true;
  61. } else {
  62. return false;
  63. }
  64. }).map(function (v) {
  65. return v;
  66. });
  67. var pages = getCurrentPages();
  68. var currPage = pages[pages.length - 1];  //当前页面
  69. var prevPage = pages[pages.length - 2]; //上一个页面
  70. //直接调用上一个页面的setData()方法,把数据存到上一个页面中去
  71. prevPage.setData({
  72. addressVo: selectAddressVo[0]
  73. })
  74. util.request(api.AddressSave, {
  75. id: selectAddressVo[0].id,
  76. userName: selectAddressVo[0].userName,
  77. telNumber: selectAddressVo[0].telNumber,
  78. provinceName: selectAddressVo[0].provinceName,
  79. cityName: selectAddressVo[0].cityName,
  80. countyName: selectAddressVo[0].countyName,
  81. detailInfo: selectAddressVo[0].detailInfo,
  82. isDefault: true,
  83. latitude: selectAddressVo[0].latitude,
  84. longitude: selectAddressVo[0].longitude,
  85. }, 'POST').then(function (res) {
  86. });
  87. wx.navigateBack();
  88. },
  89. getWtAddress() {
  90. let that = this;
  91. wx.chooseAddress({
  92. success: function (res) {
  93. console.log(res.detailInfo);
  94. qqMap.geocoder({ //调用地址解析类
  95. address: res.provinceName+","+res.cityName+","+res.countyName+","+ res.detailInfo,
  96. success: gcres => {
  97. res.latitude = gcres.result.location.lat;
  98. res.longitude = gcres.result.location.lng;
  99. that.syncAddress(res);
  100. },
  101. fail: function (gcres) {
  102. console.log("fail:" + gcres);
  103. that.syncAddress(res);
  104. },
  105. complete: function (gcres) {
  106. console.log("complete:" + gcres);
  107. }
  108. });
  109. }
  110. })
  111. },
  112. syncAddress(res) {
  113. let that = this;
  114. if (!(/^1[34578]\d{9}$/.test(res.telNumber)) || res.telNumber.length != 11) {
  115. util.showErrorToast('手机号有误');
  116. return false;
  117. }
  118. util.request(api.AddressSync, {
  119. userName: res.userName,
  120. telNumber: res.telNumber,
  121. provinceName: res.provinceName,
  122. cityName: res.cityName,
  123. countyName: res.countyName,
  124. detailInfo: res.detailInfo,
  125. postalCode: res.postalCode,
  126. nationalCode: res.nationalCode,
  127. latitude: res.latitude,
  128. longitude: res.longitude
  129. }, 'POST').then(function (res) {
  130. if (res.errno === 0) {
  131. that.getAddressList();
  132. } else {
  133. util.showErrorToast(res.errmsg);
  134. }
  135. });
  136. },
  137. deleteAddress(event) {
  138. console.log(event.target);
  139. let that = this;
  140. wx.showModal({
  141. title: '',
  142. content: '确定要删除地址?',
  143. success: function (res) {
  144. if (res.confirm) {
  145. let addressId = event.target.dataset.addressId;
  146. util.request(api.AddressDelete, { id: addressId }, 'POST').then(function (res) {
  147. if (res.errno === 0) {
  148. that.getAddressList();
  149. }
  150. });
  151. }
  152. }
  153. })
  154. return false;
  155. },
  156. onHide: function () {
  157. // 页面隐藏
  158. },
  159. onUnload: function () {
  160. // 页面关闭
  161. }
  162. })