order.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. import orderApi from '../../api/order'
  2. import drawQrcode from '../../utils/weapp.qrcode.js'
  3. // pages/order/order.js
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. orderId: 0,
  10. order: {},
  11. //1显示订单详情,2显示确认支付,取消订单,3显示删除订单
  12. orderStatus: 1,
  13. timer: {},
  14. codeUrl: ''
  15. },
  16. /**
  17. * 生命周期函数--监听页面加载
  18. */
  19. onLoad: async function (options) {
  20. var orderId = options.id;
  21. this.setData({
  22. orderId: orderId
  23. })
  24. let order = await orderApi.getOrderById(orderId);
  25. },
  26. //生成二维码
  27. createQrcode: function () {
  28. drawById.call(wx, "qrCode", {
  29. text: "1233", // 二维码内容
  30. })
  31. },
  32. createTimeClock: function () {
  33. var self = this;
  34. let order = this.data.order;
  35. let orderId = this.data.orderId;
  36. console.log(order.createTime)
  37. let orderCreateTime = new Date(order.createTime);
  38. let endTime = orderCreateTime.getTime() + 15 * 60 * 1000;
  39. // let endTime = orderCreateTime.getTime() + 30 * 1000;
  40. var timerID = setInterval(() => {
  41. let nowTime = new Date();
  42. let timer = endTime - nowTime;
  43. if (timer < 1) {
  44. clearInterval(timerID);
  45. orderApi.closeOrder(orderId);
  46. order.status = 3;
  47. self.setData({
  48. order
  49. })
  50. }
  51. let minute = Math.floor(timer / (60 * 1000));
  52. minute = minute < 0 ? 0 : minute;
  53. let second = Math.round((timer % (60 * 1000)) / 1000);
  54. this.setData({
  55. timer: {
  56. minute: minute,
  57. second: second
  58. }
  59. })
  60. }, 500);
  61. },
  62. cancelOrder: function () {
  63. let orderId = this.data.orderId;
  64. let order = this.data.order;
  65. var self = this;
  66. wx.showModal({
  67. title: '是否确认取消订单?',
  68. success(res) {
  69. if (res.confirm) {
  70. orderApi.closeOrder(orderId);
  71. order.status = 3;
  72. self.setData({
  73. order
  74. })
  75. } else if (res.cancel) {}
  76. },
  77. })
  78. },
  79. deleteOrder: async function () {
  80. let id = this.data.order.id;
  81. await orderApi.deleteOrder(id);
  82. wx.showToast({
  83. title: '删除成功',
  84. success: function () {
  85. setTimeout(() => {
  86. wx.switchTab({
  87. url: '../personorder/personorder',
  88. })
  89. }, 1000);
  90. }
  91. })
  92. },
  93. drawCode: function (writeOffCode) {
  94. let width = this.rpxToPx(280);
  95. drawQrcode({
  96. width: width,
  97. height: width,
  98. canvasId: 'qrCode',
  99. text: writeOffCode,
  100. })
  101. },
  102. /**
  103. * 生命周期函数--监听页面初次渲染完成
  104. */
  105. onReady: function () {
  106. },
  107. /**
  108. * 生命周期函数--监听页面显示
  109. */
  110. onShow: async function () {
  111. var orderId = this.data.orderId;
  112. let order = await orderApi.getOrderById(orderId);
  113. this.setData({
  114. order: order.info,
  115. orderStatus: order.info.status,
  116. })
  117. if (order.info.status == 1) {
  118. this.createTimeClock()
  119. }
  120. if (order.info.status == 2) {
  121. this.drawCode(order.info.writeOffCode)
  122. }
  123. },
  124. rpxToPx(data) {
  125. return data / 750 * wx.getSystemInfoSync().windowWidth
  126. },
  127. /**
  128. * 生命周期函数--监听页面隐藏
  129. */
  130. onHide: function () {
  131. },
  132. /**
  133. * 生命周期函数--监听页面卸载
  134. */
  135. onUnload: function () {
  136. },
  137. /**
  138. * 页面相关事件处理函数--监听用户下拉动作
  139. */
  140. onPullDownRefresh: function () {
  141. },
  142. /**
  143. * 页面上拉触底事件的处理函数
  144. */
  145. onReachBottom: function () {
  146. },
  147. /**
  148. * 用户点击右上角分享
  149. */
  150. onShareAppMessage: function () {
  151. }
  152. })