grab.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. var app = getApp();
  2. var timer = null;
  3. var location = require("../../utils/Location")
  4. const bgMusic = wx.getBackgroundAudioManager();
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. list: [],
  11. noData: 0
  12. },
  13. _onPlay: false,
  14. /**
  15. * 生命周期函数--监听页面加载
  16. */
  17. onLoad: function (options) {
  18. this.getData();
  19. },
  20. onReady: function() {
  21. bgMusic.onEnded(()=>{
  22. this._onPlay = false;
  23. })
  24. },
  25. initFn: function(){
  26. timer = setInterval(()=>{
  27. this.getData();
  28. }, 1500)
  29. },
  30. /**
  31. * 生命周期函数--监听页面显示
  32. */
  33. onShow: function () {
  34. this.initFn();
  35. },
  36. onHide: function () {
  37. clearInterval(timer);
  38. timer = null;
  39. },
  40. onUnload: function () {
  41. clearInterval(timer);
  42. timer = null;
  43. },
  44. getData: function () {
  45. let token = wx.getStorageSync('token');
  46. app.util.ProReq('localtown.get_localtown_delivery', { token }).then(res => {
  47. let list = res.data || [];
  48. if(res.new_order_notice==1 && !this._onPlay) {
  49. this._onPlay = true;
  50. bgMusic.src = "https://shiziyu.liofis.com/addons/lionfish_comshop/static/mp3/click.mp3";
  51. bgMusic.title = '您有新订单';
  52. bgMusic.play()
  53. }
  54. this.setData({
  55. noData: false,
  56. list
  57. })
  58. }).catch(err => {
  59. console.log(err)
  60. if(err.code==2) {
  61. this.setData({
  62. list: [],
  63. noData: true
  64. })
  65. return;
  66. }
  67. app.util.message(err.msg || '请求出错', 'switchTo:/lionfish_comshop/pages/user/me', 'error');
  68. })
  69. },
  70. /**
  71. * 查看地图
  72. */
  73. gotoMap: function (e) {
  74. let idx = e.currentTarget.dataset.idx;
  75. if(idx<0) { return; }
  76. let list = this.data.list || [];
  77. let item = list[idx];
  78. let longitude = parseFloat(item.member_lon),
  79. latitude = parseFloat(item.member_lat),
  80. name = item.shop_name,
  81. address = item.member_address;
  82. wx.openLocation({
  83. latitude: latitude,
  84. longitude: longitude,
  85. name: name,
  86. address: address,
  87. scale: 28
  88. })
  89. },
  90. /**
  91. * 抢单
  92. */
  93. rob: function(e){
  94. let order_id = e.currentTarget.dataset.orderid;
  95. if(!order_id) {
  96. app.util.message('订单ID错误', '', 'error');
  97. return;
  98. }
  99. let ps_lon=0, ps_lat=0;
  100. location.getGps().then(res=>{
  101. console.log('经纬度结果', res);
  102. if(res.errCode==2) {
  103. console.log(res.errMsg)
  104. app.util.message('请检查手机定位是否开启', '', 'error');
  105. return;
  106. }
  107. ps_lon = res.latitude
  108. ps_lat = res.longitude
  109. let token = wx.getStorageSync('token');
  110. app.util.ProReq('localtown.rob_distribution_order', { token, order_id, ps_lon, ps_lat }).then(res => {
  111. app.util.message('抢单失败,请重试', '', 'error');
  112. this.getData();
  113. }).catch(err => {
  114. if(err.code==1) {
  115. app.util.message(err.msg || '抢单成功', '', 'error');
  116. } else {
  117. app.util.message(err.msg || '抢单失败', '', 'error');
  118. }
  119. this.getData();
  120. })
  121. }).catch(()=>{
  122. app.util.message('请先开启定位服务', '', 'error');
  123. return;
  124. })
  125. },
  126. /**
  127. * 页面相关事件处理函数--监听用户下拉动作
  128. */
  129. onPullDownRefresh: function () {
  130. },
  131. /**
  132. * 页面上拉触底事件的处理函数
  133. */
  134. onReachBottom: function () {
  135. }
  136. })