index.js 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. var app = getApp();
  2. var util = require('../../utils/util.js');
  3. var canpay = true;
  4. Page({
  5. mixins: [require('../../mixin/globalMixin.js')],
  6. data: {
  7. tablebar: 4,
  8. page: 1,
  9. theme_type: '',
  10. order_status: -1,
  11. no_order: 0,
  12. hide_tip: true,
  13. order: [],
  14. tip: '正在加载',
  15. is_empty: false,
  16. tabs: [
  17. { id: -1, name: '全部' },
  18. { id: 3, name: '待付款' },
  19. { id: 1, name: '待配送' },
  20. { id: 14, name: '配送中' },
  21. { id: 4, name: '待提货' },
  22. { id: 6, name: '已提货' }
  23. ],
  24. hexiaoStatus: ['','','','待付款','待使用','','','','','','','已完成']
  25. },
  26. onLoad: function(options) {
  27. let { order_status, is_show_tip, isfail } = options;
  28. wx.showLoading();
  29. if (order_status == undefined) {
  30. order_status = -1;
  31. }
  32. this.setData({
  33. order_status: order_status,
  34. })
  35. if (is_show_tip != undefined && is_show_tip == 1) {
  36. wx.showToast({
  37. title: '支付成功',
  38. })
  39. } else if (isfail != undefined && isfail == 1) {
  40. wx.showToast({
  41. title: '支付失败',
  42. icon: 'none'
  43. })
  44. }
  45. this.getData();
  46. },
  47. getData: function() {
  48. this.setData({ isHideLoadMore: true })
  49. this.data.no_order = 1
  50. let that = this;
  51. var token = wx.getStorageSync('token');
  52. app.util.request({
  53. 'url': 'entry/wxapp/index',
  54. 'data': {
  55. controller: 'order.orderlist',
  56. token: token,
  57. page: that.data.page,
  58. order_status: that.data.order_status
  59. },
  60. dataType: 'json',
  61. success: function(res) {
  62. wx.hideLoading();
  63. if (res.data.code == 0) {
  64. let rushList = that.data.order.concat(res.data.data);
  65. that.setData({
  66. order: rushList,
  67. hide_tip: true,
  68. no_order: 0
  69. });
  70. } else {
  71. if(that.data.page == 1 && that.data.order.length <= 0) that.setData({is_empty: true});
  72. that.setData({
  73. isHideLoadMore: true
  74. })
  75. return false;
  76. }
  77. }
  78. })
  79. },
  80. goOrder: function(event) {
  81. let id = event.currentTarget.dataset.type;
  82. var pages_all = getCurrentPages();
  83. let delivery = event.currentTarget.dataset.delivery || '';
  84. let url = `/lionfish_comshop/pages/order/order?id=${id}&delivery=${delivery}`;
  85. if (pages_all.length > 3) {
  86. wx.redirectTo({ url })
  87. } else {
  88. wx.navigateTo({ url })
  89. }
  90. },
  91. receivOrder: function(event) {
  92. let id = event.currentTarget.dataset.type;
  93. let delivery = event.currentTarget.dataset.delivery;
  94. var token = wx.getStorageSync('token');
  95. if (delivery == "pickup") content = "确认提货";
  96. var that = this;
  97. wx.showModal({
  98. title: '提示',
  99. content: '确认收到',
  100. confirmColor: '#F75451',
  101. success(res) {
  102. if (res.confirm) {
  103. app.util.request({
  104. 'url': 'entry/wxapp/index',
  105. 'data': {
  106. controller: 'order.receive_order',
  107. token: token,
  108. order_id: id
  109. },
  110. dataType: 'json',
  111. success: function(res) {
  112. if (res.data.code == 0) {
  113. wx.showToast({
  114. title: '收货成功',
  115. icon: 'success',
  116. duration: 1000
  117. })
  118. that.order(that.data.order_status);
  119. }
  120. }
  121. })
  122. }
  123. }
  124. })
  125. },
  126. cancelOrder: function(event) {
  127. let id = event.currentTarget.dataset.type;
  128. var token = wx.getStorageSync('token');
  129. var that = this;
  130. wx.showModal({
  131. title: '取消支付',
  132. content: '好不容易挑出来,确定要取消吗?',
  133. confirmColor: '#F75451',
  134. success(res) {
  135. if (res.confirm) {
  136. app.util.request({
  137. 'url': 'entry/wxapp/index',
  138. 'data': {
  139. controller: 'order.cancel_order',
  140. token: token,
  141. order_id: id
  142. },
  143. dataType: 'json',
  144. success: function (res) {
  145. wx.showToast({
  146. title: '取消成功',
  147. icon: 'success',
  148. duration: 1000
  149. })
  150. that.order(that.data.order_status);
  151. }
  152. })
  153. }
  154. }
  155. })
  156. },
  157. getOrder: function(event) {
  158. this.setData({ is_empty: false })
  159. wx.showLoading();
  160. let starus = event.currentTarget.dataset.type;
  161. this.order(starus);
  162. },
  163. order: function(starus) {
  164. var that = this;
  165. that.setData({
  166. order_status: starus,
  167. order: [],
  168. no_order: 0,
  169. page: 1
  170. })
  171. this.getData();
  172. },
  173. /**
  174. * 支付防抖
  175. */
  176. preOrderPay: util.debounce(function(event) {
  177. canpay&&this.orderPay(event);
  178. }),
  179. orderPay: function(event) {
  180. canpay = false;
  181. let that = this;
  182. var token = wx.getStorageSync('token');
  183. let id = event[0].currentTarget.dataset.type;
  184. let delivery = event[0].currentTarget.dataset.delivery;
  185. app.util.request({
  186. 'url': 'entry/wxapp/index',
  187. 'data': {
  188. controller: 'car.wxpay',
  189. token: token,
  190. order_id: id,
  191. scene: app.globalData.scene
  192. },
  193. dataType: 'json',
  194. method: 'POST',
  195. success: function(res) {
  196. if(res.data.code ==0)
  197. {
  198. var is_pin = res.data.is_pin;
  199. // 交易组件
  200. if(res.data.isRequestOrderPayment==1) {
  201. wx.requestOrderPayment({
  202. orderInfo: res.data.order_info,
  203. timeStamp: res.data.timeStamp,
  204. nonceStr: res.data.nonceStr,
  205. package: res.data.package,
  206. signType: res.data.signType,
  207. paySign: res.data.paySign,
  208. success: function (wxres) {
  209. wx.redirectTo({
  210. url: '/lionfish_comshop/pages/order/order?id=' + id + '&is_show=1&delivery='+delivery
  211. })
  212. },
  213. fail: function (res) {
  214. console.log(res);
  215. },
  216. complete: ()=>{
  217. canpay = true;
  218. }
  219. })
  220. } else {
  221. wx.requestPayment({
  222. appId: res.data.appId,
  223. timeStamp: res.data.timeStamp,
  224. nonceStr: res.data.nonceStr,
  225. package: res.data.package,
  226. signType: res.data.signType,
  227. paySign: res.data.paySign,
  228. success: function (wxres) {
  229. wx.redirectTo({
  230. url: '/lionfish_comshop/pages/order/order?id=' + id + '&is_show=1&delivery='+delivery
  231. })
  232. },
  233. fail: function (res) {
  234. console.log(res);
  235. },
  236. complete: ()=>{
  237. canpay = true;
  238. }
  239. })
  240. }
  241. } else if (res.data.code == 1) {
  242. wx.showToast({
  243. title: res.data.RETURN_MSG || '支付错误',
  244. icon: 'none'
  245. })
  246. canpay = true;
  247. } else if (res.data.code == 2) {
  248. wx.showToast({
  249. title: res.data.msg,
  250. icon:'none'
  251. })
  252. canpay = true;
  253. setTimeout(() => {
  254. that.setData({
  255. page: 1,
  256. no_order: 0,
  257. order: [],
  258. tip: '正在加载',
  259. is_empty: false
  260. }, ()=>{
  261. that.getData();
  262. })
  263. }, 1500);
  264. }
  265. },
  266. fail: ()=>{
  267. canpay = true;
  268. }
  269. })
  270. },
  271. onReachBottom: function() {
  272. if (this.data.no_order == 1) return false;
  273. this.data.page += 1;
  274. this.getData();
  275. this.setData({
  276. isHideLoadMore: false
  277. })
  278. },
  279. onPullDownRefresh: function () {
  280. this.setData({
  281. is_empty: false,
  282. page: 1,
  283. order: []
  284. })
  285. wx.showLoading();
  286. this.getData();
  287. wx.stopPullDownRefresh();
  288. }
  289. })