historyOrder.js 6.3 KB

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