order.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  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. console.log(order.createTime)
  36. let orderCreateTime = new Date(order.createTime);
  37. let endTime = orderCreateTime.getTime() + 15 * 60 * 1000;
  38. // let endTime = orderCreateTime.getTime() + 30 * 1000;
  39. var timerID = setInterval(() => {
  40. let nowTime = new Date();
  41. let timer = endTime - nowTime;
  42. if (timer < 1) {
  43. clearInterval(timerID);
  44. order.status = 3;
  45. self.setData({
  46. order
  47. })
  48. }
  49. let minute = Math.floor(timer / (60 * 1000));
  50. minute = minute < 0 ? 0 : minute;
  51. let second = Math.round((timer % (60 * 1000)) / 1000);
  52. this.setData({
  53. timer: {
  54. minute: minute,
  55. second: second
  56. }
  57. })
  58. }, 500);
  59. },
  60. cancelOrder: function () {
  61. var self = this;
  62. wx.showModal({
  63. title: '是否确认取消订单?',
  64. success(res) {
  65. if (res.confirm) {
  66. self.setData({
  67. orderStatus: 3
  68. })
  69. } else if (res.cancel) {}
  70. },
  71. })
  72. },
  73. deleteOrder: async function () {
  74. let id = this.data.order.id;
  75. await orderApi.deleteOrder(id);
  76. wx.showToast({
  77. title: '删除成功',
  78. success: function () {
  79. setTimeout(() => {
  80. wx.switchTab({
  81. url: '../personorder/personorder',
  82. })
  83. }, 1000);
  84. }
  85. })
  86. },
  87. drawCode: function (writeOffCode) {
  88. let width = this.rpxToPx(280);
  89. drawQrcode({
  90. width: width,
  91. height: width,
  92. canvasId: 'qrCode',
  93. text: writeOffCode,
  94. })
  95. },
  96. /**
  97. * 生命周期函数--监听页面初次渲染完成
  98. */
  99. onReady: function () {
  100. },
  101. /**
  102. * 生命周期函数--监听页面显示
  103. */
  104. onShow: async function () {
  105. var orderId = this.data.orderId;
  106. let order = await orderApi.getOrderById(orderId);
  107. this.setData({
  108. order: order.info,
  109. orderStatus: order.info.status,
  110. })
  111. if (order.info.status == 1) {
  112. this.createTimeClock()
  113. }
  114. if (order.info.status == 2) {
  115. this.drawCode(order.info.writeOffCode)
  116. }
  117. },
  118. rpxToPx(data) {
  119. return data / 750 * wx.getSystemInfoSync().windowWidth
  120. },
  121. /**
  122. * 生命周期函数--监听页面隐藏
  123. */
  124. onHide: function () {
  125. },
  126. /**
  127. * 生命周期函数--监听页面卸载
  128. */
  129. onUnload: function () {
  130. },
  131. /**
  132. * 页面相关事件处理函数--监听用户下拉动作
  133. */
  134. onPullDownRefresh: function () {
  135. },
  136. /**
  137. * 页面上拉触底事件的处理函数
  138. */
  139. onReachBottom: function () {
  140. },
  141. /**
  142. * 用户点击右上角分享
  143. */
  144. onShareAppMessage: function () {
  145. }
  146. })