locationAdd.js 6.0 KB

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