locationAdd.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  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'),
  69. lon: wx.getStorageSync('LONGITUDE'),
  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. wx.setStorageSync('LATITUDE', e.currentTarget.dataset.item.lat)
  101. wx.setStorageSync('LONGITUDE', e.currentTarget.dataset.item.lon)
  102. // this.getTxmap()
  103. // wx.setStorageSync('ADDRESS', e.currentTarget.dataset.item.address)
  104. wx.setStorageSync('shopInfo', e.currentTarget.dataset.item)
  105. setTimeout(() => {
  106. let pages = getCurrentPages();
  107. let prevPage = pages[pages.length - 2]; //获取A页面
  108. wx.navigateBack({
  109. delta: 1,
  110. success: function (e) { // 成功的回调
  111. if (prevPage == undefined || prevPage == null) return;
  112. // prevPage.go_update(); // 调用A页面的方法, 并将值传过去
  113. prevPage.getAllData(); // 调用A页面的方法, 并将值传过去
  114. }
  115. })
  116. }, 500)
  117. },
  118. /**
  119. * 设置默认
  120. */
  121. setDefault: function (e) {
  122. wx.setStorageSync('LATITUDE', e.currentTarget.dataset.item.latitude)
  123. wx.setStorageSync('LONGITUDE', e.currentTarget.dataset.item.longitude)
  124. var addrId = e.currentTarget.dataset.item.addrId;
  125. wx.showLoading();
  126. var params = {
  127. url: "/p/address/defaultAddr/" + addrId,
  128. method: "PUT",
  129. callBack: (res) => {
  130. wx.hideLoading();
  131. this.getAddrList()
  132. // 当前定位显示选择地址的名称 不再显示路名
  133. this.getTxmap()
  134. wx.setStorageSync('ADDRESS', e.currentTarget.dataset.item.addressName)
  135. setTimeout(() => {
  136. let pages = getCurrentPages();
  137. let prevPage = pages[pages.length - 2]; //获取A页面
  138. wx.navigateBack({
  139. delta: 1,
  140. success: function (e) { // 成功的回调
  141. if (prevPage == undefined || prevPage == null) return;
  142. prevPage.go_update(); // 调用A页面的方法, 并将值传过去
  143. }
  144. })
  145. }, 500)
  146. }
  147. }
  148. http.request(params);
  149. },
  150. getTxmap: function () {
  151. // 调用腾讯地图api获取当前位置
  152. qqmapsdk.reverseGeocoder({
  153. location: {
  154. latitude: wx.getStorageSync('LATITUDE'),
  155. longitude: wx.getStorageSync('LONGITUDE')
  156. },
  157. success: (res) => {
  158. wx.hideLoading()
  159. wx.setStorageSync('ADDRESS', res.result.address_component.street)
  160. this.setData({
  161. address: res.result.address_component.street
  162. })
  163. },
  164. fail: function (res) {
  165. console.log(res, '---获取失败');
  166. wx.showToast({
  167. title: res+'地址信息获取失败',
  168. icon: "none"
  169. })
  170. setTimeout(()=>{
  171. wx.hideToast();
  172. },2000)
  173. },
  174. complete: function (res) {
  175. // console.log(res, '---callback');
  176. }
  177. });
  178. },
  179. /**
  180. * 获取定位
  181. */
  182. getLocation: function () {
  183. let _this = this
  184. wx.chooseLocation({
  185. success: function (res) {
  186. wx.setStorageSync('LATITUDE', res.latitude)
  187. wx.setStorageSync('LONGITUDE', res.longitude)
  188. wx.setStorageSync('ADDRESS', res.name)
  189. _this.setData({
  190. address: res.name
  191. })
  192. setTimeout(() => {
  193. let pages = getCurrentPages();
  194. let prevPage = pages[pages.length - 2]; //获取A页面
  195. wx.navigateBack({
  196. delta: 1,
  197. success: function (e) { // 成功的回调
  198. if (prevPage == undefined || prevPage == null) return;
  199. prevPage.go_update(); // 调用A页面的方法, 并将值传过去
  200. }
  201. })
  202. }, 500)
  203. },
  204. fail: function (err) {
  205. console.log(err, '---err');
  206. },
  207. complete: function (e) {
  208. // console.log(e, '-----callback');
  209. }
  210. })
  211. },
  212. //新增收货地址
  213. onAddAddr: function (e) {
  214. wx.navigateTo({
  215. url: '/pages/editAddress/editAddress',
  216. })
  217. },
  218. /**
  219. * 生命周期函数--监听页面隐藏
  220. */
  221. onHide() {
  222. },
  223. /**
  224. * 生命周期函数--监听页面卸载
  225. */
  226. onUnload() {
  227. },
  228. /**
  229. * 页面相关事件处理函数--监听用户下拉动作
  230. */
  231. onPullDownRefresh() {
  232. },
  233. /**
  234. * 页面上拉触底事件的处理函数
  235. */
  236. onReachBottom() {
  237. },
  238. /**
  239. * 用户点击右上角分享
  240. */
  241. onShareAppMessage() {
  242. }
  243. })