locationAdd.js 5.9 KB

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