order.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  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. await this.orderInfo()
  112. },
  113. orderInfo: async function(){
  114. var orderId = this.data.orderId;
  115. let order = await orderApi.getOrderById(orderId);
  116. this.setData({
  117. order: order.info,
  118. orderStatus: order.info.status,
  119. })
  120. if (order.info.status == 1) {
  121. this.createTimeClock()
  122. }
  123. if (order.info.status == 2) {
  124. this.drawCode(order.info.writeOffCode)
  125. }
  126. },
  127. rpxToPx(data) {
  128. return data / 750 * wx.getSystemInfoSync().windowWidth
  129. },
  130. /**
  131. * 生命周期函数--监听页面隐藏
  132. */
  133. onHide: function () {
  134. },
  135. /**
  136. * 生命周期函数--监听页面卸载
  137. */
  138. onUnload: function () {
  139. },
  140. /**
  141. * 页面相关事件处理函数--监听用户下拉动作
  142. */
  143. onPullDownRefresh: function () {
  144. },
  145. /**
  146. * 页面上拉触底事件的处理函数
  147. */
  148. onReachBottom: function () {
  149. },
  150. /**
  151. * 用户点击右上角分享
  152. */
  153. onShareAppMessage: function () {
  154. },
  155. payOrder: async function(){
  156. const self = this
  157. let orderId = this.data.orderId
  158. const data = {
  159. orderId
  160. }
  161. const rs = await orderApi.payOrderAgain(data)
  162. wx.requestPayment({
  163. timeStamp: rs.timeStamp,
  164. nonceStr: rs.nonceStr,
  165. package: rs.package,
  166. signType: rs.signType,
  167. paySign: rs.paySign,
  168. success: async function (res) {
  169. console.log(res)
  170. await self.orderInfo()
  171. },
  172. fail: async function (res) {
  173. await self.orderInfo()
  174. }
  175. })
  176. }
  177. })