locationAdd.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. // pages/locationAdd/locationAdd.js
  2. var http = require("../../utils/http.js");
  3. var QQMapWX = require('../../utils/qqmap-wx-jssdk.js');
  4. var qqmapsdk;
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. address: '',
  11. addressList: [],
  12. nearShop:null,
  13. shopList:[]
  14. },
  15. /**
  16. * 生命周期函数--监听页面加载
  17. */
  18. onLoad(options) {
  19. // 实例化API核心类
  20. qqmapsdk = new QQMapWX({
  21. key:'D3MBZ-LQK6U-IONVC-GJDPK-C43GF-UYFOC'
  22. // key: 'UNBBZ-OKDCB-FSTU4-N5EGG-CMJ67-CKB6H'
  23. });
  24. this.setData({
  25. address: wx.getStorageSync('ADDRESS')
  26. })
  27. },
  28. /**
  29. * 生命周期函数--监听页面初次渲染完成
  30. */
  31. onReady() {
  32. },
  33. /**
  34. * 生命周期函数--监听页面显示
  35. */
  36. onShow() {
  37. this.getAddrList()
  38. this.getshopList()
  39. },
  40. /**
  41. * 获取地址列表
  42. */
  43. getAddrList() {
  44. wx.showLoading();
  45. var params = {
  46. url: "/p/address/list",
  47. method: "GET",
  48. data: {},
  49. callBack: (res) => {
  50. this.setData({
  51. addressList: res
  52. });
  53. wx.hideLoading();
  54. }
  55. }
  56. http.request(params);
  57. },
  58. /**
  59. * 获取附近店铺
  60. */
  61. getshopList() {
  62. wx.showLoading();
  63. var params = {
  64. url: "/shop/addrShop",
  65. method: "GET",
  66. data: {
  67. addrId:'',
  68. lat: wx.getStorageSync('LATITUDE')||wx.getStorageSync('shopInfo').lat,
  69. lon: wx.getStorageSync('LONGITUDE')||wx.getStorageSync('shopInfo').lon,
  70. channelId:wx.getStorageSync('channelId')||3
  71. },
  72. callBack: (res) => {
  73. if(res&&res.length){
  74. let data = res
  75. let nearShop = data.splice(0,1)[0]
  76. console.log(nearShop,data);
  77. this.setData({
  78. nearShop,
  79. shopList: data
  80. });
  81. }
  82. wx.hideLoading();
  83. }
  84. }
  85. http.request(params);
  86. },
  87. /**
  88. *维护地址
  89. */
  90. editAddress: function () {
  91. wx.navigateTo({
  92. url: '/pages/delivery-address/delivery-address'
  93. })
  94. },
  95. /**
  96. *
  97. * 选择店铺
  98. */
  99. chooseShop(e){
  100. if(!e.currentTarget.dataset.item.hasProduct) return
  101. wx.setStorageSync('LATITUDE', e.currentTarget.dataset.item.lat)
  102. wx.setStorageSync('LONGITUDE', e.currentTarget.dataset.item.lon)
  103. // this.getTxmap()
  104. // wx.setStorageSync('ADDRESS', e.currentTarget.dataset.item.address)
  105. wx.setStorageSync('shopInfo', e.currentTarget.dataset.item)
  106. setTimeout(() => {
  107. let pages = getCurrentPages();
  108. let prevPage = pages[pages.length - 2]; //获取A页面
  109. wx.navigateBack({
  110. delta: 1,
  111. success: function (e) { // 成功的回调
  112. if (prevPage == undefined || prevPage == null) return;
  113. // prevPage.go_update(); // 调用A页面的方法, 并将值传过去
  114. prevPage.getAllData(); // 调用A页面的方法, 并将值传过去
  115. }
  116. })
  117. }, 500)
  118. },
  119. /**
  120. * 设置默认
  121. */
  122. setDefault: function (e) {
  123. wx.setStorageSync('LATITUDE', e.currentTarget.dataset.item.latitude)
  124. wx.setStorageSync('LONGITUDE', e.currentTarget.dataset.item.longitude)
  125. var addrId = e.currentTarget.dataset.item.addrId;
  126. wx.showLoading();
  127. var params = {
  128. url: "/p/address/defaultAddr/" + addrId,
  129. method: "PUT",
  130. callBack: (res) => {
  131. wx.hideLoading();
  132. this.getAddrList()
  133. // 当前定位显示选择地址的名称 不再显示路名
  134. // this.getTxmap()
  135. wx.setStorageSync('ADDRESS', e.currentTarget.dataset.item.addressName)
  136. setTimeout(() => {
  137. let pages = getCurrentPages();
  138. let prevPage = pages[pages.length - 2]; //获取A页面
  139. wx.navigateBack({
  140. delta: 1,
  141. success: function (e) { // 成功的回调
  142. if (prevPage == undefined || prevPage == null) return;
  143. // prevPage.go_update(); // 调用A页面的方法, 并将值传过去
  144. prevPage.getAllData(); // 调用A页面的方法, 并将值传过去
  145. }
  146. })
  147. }, 500)
  148. }
  149. }
  150. http.request(params);
  151. },
  152. getTxmap: function () {
  153. // 调用腾讯地图api获取当前位置
  154. qqmapsdk.reverseGeocoder({
  155. location: {
  156. latitude: wx.getStorageSync('LATITUDE')||wx.getStorageSync('shopInfo').lat,
  157. longitude: wx.getStorageSync('LONGITUDE')||wx.getStorageSync('shopInfo').lon
  158. },
  159. success: (res) => {
  160. wx.hideLoading()
  161. wx.setStorageSync('ADDRESS', res.result.address_component.street)
  162. this.setData({
  163. address: res.result.address_component.street
  164. })
  165. },
  166. fail: function (res) {
  167. console.log(res, '---获取失败');
  168. wx.showToast({
  169. title: res+'地址信息获取失败',
  170. icon: "none"
  171. })
  172. setTimeout(()=>{
  173. wx.hideToast();
  174. },2000)
  175. },
  176. complete: function (res) {
  177. // console.log(res, '---callback');
  178. }
  179. });
  180. },
  181. /**
  182. * 获取定位
  183. */
  184. getLocation: function () {
  185. let _this = this
  186. wx.chooseLocation({
  187. success: function (res) {
  188. wx.setStorageSync('LATITUDE', res.latitude)
  189. wx.setStorageSync('LONGITUDE', res.longitude)
  190. wx.setStorageSync('ADDRESS', res.name)
  191. _this.setData({
  192. address: res.name
  193. })
  194. setTimeout(() => {
  195. let pages = getCurrentPages();
  196. let prevPage = pages[pages.length - 2]; //获取A页面
  197. wx.navigateBack({
  198. delta: 1,
  199. success: function (e) { // 成功的回调
  200. if (prevPage == undefined || prevPage == null) return;
  201. prevPage.go_update(); // 调用A页面的方法, 并将值传过去
  202. // prevPage.getAllData('refresh'); // 调用A页面的方法, 并将值传过去
  203. }
  204. })
  205. }, 500)
  206. },
  207. fail: function (err) {
  208. console.log(err, '---err');
  209. },
  210. complete: function (e) {
  211. // console.log(e, '-----callback');
  212. }
  213. })
  214. },
  215. //新增收货地址
  216. onAddAddr: function (e) {
  217. wx.navigateTo({
  218. url: '/pages/editAddress/editAddress',
  219. })
  220. },
  221. /**
  222. * 生命周期函数--监听页面隐藏
  223. */
  224. onHide() {
  225. },
  226. /**
  227. * 生命周期函数--监听页面卸载
  228. */
  229. onUnload() {
  230. },
  231. /**
  232. * 页面相关事件处理函数--监听用户下拉动作
  233. */
  234. onPullDownRefresh() {
  235. },
  236. /**
  237. * 页面上拉触底事件的处理函数
  238. */
  239. onReachBottom() {
  240. },
  241. /**
  242. * 用户点击右上角分享
  243. */
  244. onShareAppMessage() {
  245. }
  246. })