order.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. var app = getApp();
  2. var location = require("../../utils/Location")
  3. // 0 =>'未付款,未配送',1=>'已付款,未被抢',2=>'已付款,待配送,已被抢单',3=>'已拿货,配送中',4=>'已送达',5=>'已取消'
  4. Page({
  5. data: {
  6. tabs: [{
  7. id: 2,
  8. name: '待取货'
  9. },
  10. {
  11. id: 3,
  12. name: '配送中'
  13. },
  14. {
  15. id: 4,
  16. name: '已送达'
  17. }
  18. ],
  19. status: 2,
  20. list: [],
  21. loadText: "加载中...",
  22. noData: 0,
  23. loadMore: true,
  24. },
  25. page: 1,
  26. /**
  27. * 生命周期函数--监听页面加载
  28. */
  29. onLoad: function (options) {
  30. let status = options.status || 2;
  31. this.setData({
  32. status
  33. }, () => {
  34. this.initFn();
  35. })
  36. },
  37. /**
  38. * 生命周期函数--监听页面显示
  39. */
  40. onShow: function () {
  41. },
  42. changeTabs: function (e) {
  43. let that = this;
  44. let status = e.currentTarget.dataset.type || 0;
  45. this.page = 1;
  46. this.setData({
  47. status,
  48. list: [],
  49. showEmpty: false,
  50. loadMore: true
  51. }, () => {
  52. that.initFn();
  53. })
  54. },
  55. initFn: function () {
  56. this.page = 1;
  57. this.setData({
  58. list: [],
  59. loadText: "加载中...",
  60. noData: 0,
  61. loadMore: true,
  62. }, () => {
  63. this.getData();
  64. })
  65. },
  66. getData: function () {
  67. let that = this;
  68. let token = wx.getStorageSync('token');
  69. let type = this.data.status;
  70. wx.showLoading();
  71. app.util.request({
  72. url: 'entry/wxapp/index',
  73. data: {
  74. controller: 'localtown.get_distribution_orderlist',
  75. token,
  76. type,
  77. page: this.page,
  78. },
  79. dataType: 'json',
  80. success: function (res) {
  81. wx.stopPullDownRefresh();
  82. if (res.data.code == 0) {
  83. let h = {};
  84. let list = res.data.data;
  85. if (list.length == 0) {
  86. if (that.page == 1) {
  87. h.noData = 1;
  88. } else {
  89. h.loadMore = false;
  90. h.noMore = false;
  91. h.loadText = "没有更多记录了~"
  92. }
  93. }
  94. if (list.length < 10) h.noMore = true;
  95. let oldList = that.data.list;
  96. list = oldList.concat(list);
  97. that.page++;
  98. that.setData({
  99. list,
  100. ...h
  101. })
  102. } else if (res.data.code == 2) {
  103. let h = {};
  104. h.loadMore = false;
  105. h.noMore = false;
  106. h.loadText = "没有更多记录了~";
  107. if(that.page==1) { h.noData = 1; }
  108. that.setData(h)
  109. } else {
  110. app.util.message(res.data.msg, 'switchTo:/lionfish_comshop/pages/user/me', 'error');
  111. }
  112. wx.hideLoading();
  113. }
  114. })
  115. },
  116. /**
  117. * 查看地图
  118. */
  119. gotoMap: function (e) {
  120. let idx = e.currentTarget.dataset.idx;
  121. if (idx < 0) {
  122. return;
  123. }
  124. let list = this.data.list || [];
  125. let item = list[idx];
  126. let longitude = parseFloat(item.member_lon),
  127. latitude = parseFloat(item.member_lat),
  128. name = item.shop_name,
  129. address = item.member_address;
  130. wx.openLocation({
  131. latitude: latitude,
  132. longitude: longitude,
  133. name: name,
  134. address: address,
  135. scale: 28
  136. })
  137. },
  138. /**
  139. * 确认取货
  140. */
  141. pickup: function (e) {
  142. this.preConfirm('确认已取到商品?').then(() => {
  143. let order_id = e.currentTarget.dataset.orderid;
  144. if (!order_id) {
  145. app.util.message('订单ID错误', '', 'error');
  146. return;
  147. }
  148. let token = wx.getStorageSync('token');
  149. app.util.ProReq('localtown.distribution_deliverying_order', {
  150. token,
  151. order_id
  152. }).then(res => {
  153. app.util.message('取货失败,请重试', '', 'success');
  154. this.initFn();
  155. }).catch(err => {
  156. app.util.message(err.msg || '取货成功', '', 'success');
  157. this.initFn();
  158. })
  159. })
  160. },
  161. preConfirm: function (msg) {
  162. return new Promise((resolve, reject) => {
  163. wx.showModal({
  164. title: '提示',
  165. content: msg,
  166. confirmColor: '#FED206',
  167. success: function (res) {
  168. if (res.confirm) {
  169. resolve()
  170. } else {
  171. console.log('用户点击了取消')
  172. }
  173. }
  174. })
  175. })
  176. },
  177. /**
  178. * 确认送达
  179. */
  180. arrived: function (e) {
  181. this.preConfirm('确认已送达商品?').then(() => {
  182. let order_id = e.currentTarget.dataset.orderid;
  183. if (!order_id) {
  184. app.util.message('订单ID错误', '', 'error');
  185. return;
  186. }
  187. console.log('确认已送达商品 ---- 是');
  188. let ps_lon=0, ps_lat=0;
  189. location.getGps().then(res=>{
  190. console.log('经纬度结果', res);
  191. if(res.errCode==2) {
  192. console.log(res.errMsg)
  193. app.util.message('请检查手机定位是否开启', '', 'error');
  194. return;
  195. }
  196. ps_lon = res.latitude
  197. ps_lat = res.longitude
  198. let token = wx.getStorageSync('token');
  199. app.util.ProReq('localtown.distribution_arrived_order', {
  200. token,
  201. order_id,
  202. ps_lon,
  203. ps_lat
  204. }).then(ret => {
  205. console.log('确认失败,请重试', ret);
  206. app.util.message('确认失败,请重试', '', 'success');
  207. this.initFn();
  208. }).catch(err => {
  209. console.log('成功', err);
  210. if(err.code==3) {
  211. app.util.message(err.msg, '', 'error');
  212. } else {
  213. app.util.message(err.msg || '确认成功', '', 'error');
  214. this.initFn();
  215. }
  216. })
  217. }).catch(()=>{
  218. app.util.message('请先开启定位服务', '', 'error');
  219. return;
  220. })
  221. })
  222. },
  223. /**
  224. * 联系商家
  225. */
  226. phoneCall: function (e) {
  227. let phoneNumber = e.currentTarget.dataset.tel || '';
  228. phoneNumber && wx.makePhoneCall({
  229. phoneNumber,
  230. complete: function () {}
  231. })
  232. },
  233. /**
  234. * 页面相关事件处理函数--监听用户下拉动作
  235. */
  236. onPullDownRefresh: function () {
  237. this.initFn();
  238. },
  239. /**
  240. * 页面上拉触底事件的处理函数
  241. */
  242. onReachBottom: function () {
  243. console.log(this.data.noMore)
  244. this.data.loadMore && this.getData();
  245. }
  246. })