locationAdd.js 5.9 KB

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