historyOrder.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. // pages/historyOrderAfter/historyOrderAfter.js
  2. Page({
  3. /**
  4. * 页面的初始数据
  5. */
  6. data: {
  7. date:'',
  8. startDate:'',
  9. endDate:'',
  10. orders:[
  11. {
  12. buttonMessage1:'',
  13. buttonColor1:'',
  14. buttonMessage2:'',
  15. buttonColor2:'',
  16. order:{
  17. oilName:"92#",
  18. nozzleNum:'5',
  19. volume:'20.0',
  20. amount:'46.8',
  21. date:'2024-11-24',
  22. time:'09:08',
  23. status:'已授权'
  24. },
  25. statusColor:'#838282',
  26. countdown:'60'
  27. },
  28. {
  29. buttonMessage1:'取消订单',
  30. buttonColor1:'#838282',
  31. buttonMessage2:'重新授权',
  32. buttonColor2:'#d17067',
  33. order:{
  34. oilName:"0#",
  35. nozzleNum:'6',
  36. volume:'21.0',
  37. amount:'42.8',
  38. date:'2024-11-24',
  39. time:'09:08',
  40. status:'已失效'
  41. },
  42. statusColor:'#838282',
  43. countdown:''
  44. },
  45. {
  46. buttonMessage1:'',
  47. buttonColor1:'',
  48. buttonMessage2:'重新支付',
  49. buttonColor2:'#d17067',
  50. order:{
  51. oilName:"0#",
  52. nozzleNum:'6',
  53. volume:'21.0',
  54. amount:'42.8',
  55. date:'2024-11-24',
  56. time:'09:08',
  57. status:'支付失败'
  58. },
  59. statusColor:'#d17067',
  60. countdown:''
  61. },
  62. {
  63. buttonMessage1:'',
  64. buttonColor1:'',
  65. buttonMessage2:'重新支付',
  66. buttonColor2:'#d17067',
  67. order:{
  68. oilName:"0#",
  69. nozzleNum:'6',
  70. volume:'21.0',
  71. amount:'42.8',
  72. date:'2024-11-24',
  73. time:'09:08',
  74. status:'支付失败'
  75. },
  76. statusColor:'#d17067',
  77. countdown:''
  78. },
  79. {
  80. buttonMessage1:'',
  81. buttonColor1:'',
  82. buttonMessage2:'重新支付',
  83. buttonColor2:'#d17067',
  84. order:{
  85. oilName:"0#",
  86. nozzleNum:'6',
  87. volume:'21.0',
  88. amount:'42.8',
  89. date:'2024-11-24',
  90. time:'09:08',
  91. status:'支付失败'
  92. },
  93. statusColor:'#d17067',
  94. countdown:''
  95. },
  96. {
  97. buttonMessage1:'',
  98. buttonColor1:'',
  99. buttonMessage2:'重新支付',
  100. buttonColor2:'#d17067',
  101. order:{
  102. oilName:"0#",
  103. nozzleNum:'6',
  104. volume:'21.0',
  105. amount:'42.8',
  106. date:'2024-11-24',
  107. time:'09:08',
  108. status:'支付失败'
  109. },
  110. statusColor:'#d17067',
  111. countdown:''
  112. },
  113. ]
  114. },
  115. /** 获取当前日期 */
  116. getNowDate(){
  117. const date = new Date(); // 获取当前日期
  118. const year = date.getFullYear(); // 获取年份
  119. const month = String(date.getMonth() + 1).padStart(2, '0'); // 获取月份,补零
  120. const day = String(date.getDate()).padStart(2, '0'); // 获取日期,补零
  121. return `${year}-${month}-${day}`; // 拼接成 yyyy-MM-dd 格式
  122. },
  123. /** 获取上个月日期 */
  124. getLastMouthDate(){
  125. const currentDate = new Date(); // 获取当前日期
  126. const year = currentDate.getFullYear(); // 当前年份
  127. const month = currentDate.getMonth(); // 当前月份(0-11)
  128. const day = currentDate.getDate(); // 当前日期
  129. // 计算一个月前的日期
  130. const oneMonthAgoDate = new Date(year, month - 1, day);
  131. // 处理跨年问题(如果当前月份是 1 月,month - 1 会是 0,即上一年的 12 月)
  132. // 无需额外处理,Date 对象会自动处理
  133. // 格式化日期为 YYYY-MM-DD
  134. const formattedDate = `${oneMonthAgoDate.getFullYear()}-${String(oneMonthAgoDate.getMonth() + 1).padStart(2, '0')}-${String(oneMonthAgoDate.getDate()).padStart(2, '0')}`;
  135. return formattedDate;
  136. },
  137. /** 计算倒计时,倒计时结束后发起取消授权 */
  138. startCountdow(){
  139. this.timer = setInterval(() => {
  140. const countDownZeroOrders = []
  141. const orders = this.data.orders.map(order => {
  142. if(order.countdown && order.countdown != '0') {
  143. const currentCountDown = (Number(order.countdown) - 1);
  144. order.countdown = currentCountDown.toString();
  145. if(currentCountDown <= 0) countDownZeroOrders.push(order)
  146. }
  147. return order
  148. })
  149. this.setData({
  150. orders:orders
  151. })
  152. this.toUnAnthorization(countDownZeroOrders)
  153. },1000);
  154. },
  155. /** 结束倒计时 */
  156. endCountDown(){
  157. if(this.timer) {
  158. clearInterval(this.timer)
  159. this.timer = null
  160. }
  161. },
  162. /** 发送取消授权 */
  163. toUnAnthorization(orders) {
  164. console.log(orders)
  165. },
  166. /**
  167. * 生命周期函数--监听页面加载
  168. */
  169. onLoad(options) {
  170. const today = this.getNowDate();
  171. const lastMouthDay = this.getLastMouthDate();
  172. this.setData({
  173. date:today,
  174. startDate:today,
  175. endDate:lastMouthDay
  176. });
  177. this.startCountdow();
  178. },
  179. onUnload(){
  180. this.endCountDown()
  181. },
  182. /**
  183. * 生命周期函数--监听页面初次渲染完成
  184. */
  185. onReady() {
  186. },
  187. /**
  188. * 生命周期函数--监听页面显示
  189. */
  190. onShow() {
  191. },
  192. /**
  193. * 生命周期函数--监听页面隐藏
  194. */
  195. onHide() {
  196. },
  197. /**
  198. * 生命周期函数--监听页面卸载
  199. */
  200. onUnload() {
  201. },
  202. /**
  203. * 页面相关事件处理函数--监听用户下拉动作
  204. */
  205. onPullDownRefresh() {
  206. },
  207. /**
  208. * 页面上拉触底事件的处理函数
  209. */
  210. onReachBottom() {
  211. },
  212. /**
  213. * 用户点击右上角分享
  214. */
  215. onShareAppMessage() {
  216. },
  217. /** 日期选择器选择时间 */
  218. bindDateChange(date) {
  219. this.setData({
  220. date: date.detail.value
  221. });
  222. console.log(date)
  223. },
  224. /** 组件按钮一点击事件 */
  225. onOrderButtonClick1(event){
  226. console.log(event)
  227. },
  228. /** 组件按钮二点击事件 */
  229. onOrderButtonClick2(event){
  230. console.log(event)
  231. },
  232. })