const { default: api } = require("../../js/api");

// pages/historyOrderAfter/historyOrderAfter.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    date:'',
    startDate:'',
    endDate:'',
    orders:[
      {
        order:{
          nozzle:5,
          status:'已授权',
          statusColor:'#bbe06e',
          oilName:"92#",
          volume:20.0,
          amount:46.8,
          payAmount:46.8,
          discount:0.00,
          time:'2024-11-24 09:08',
        },
        bottonText2:'请尽快提枪'
      },
    ]
  },

  /** 获取当前日期 */
  getNowDate(){
    const date = new Date(); // 获取当前日期
    const year = date.getFullYear(); // 获取年份
    const month = String(date.getMonth() + 1).padStart(2, '0'); // 获取月份,补零
    const day = String(date.getDate()).padStart(2, '0'); // 获取日期,补零
  
    return `${year}-${month}-${day}`; // 拼接成 yyyy-MM-dd 格式
  },
  /** 获取上个月日期 */
  getLastMouthDate(){
    const currentDate = new Date(); // 获取当前日期
    const year = currentDate.getFullYear(); // 当前年份
    const month = currentDate.getMonth(); // 当前月份(0-11)
    const day = currentDate.getDate(); // 当前日期

    // 计算一个月前的日期
    const oneMonthAgoDate = new Date(year, month - 1, day);

    // 处理跨年问题(如果当前月份是 1 月,month - 1 会是 0,即上一年的 12 月)
    // 无需额外处理,Date 对象会自动处理

    // 格式化日期为 YYYY-MM-DD
    const formattedDate = `${oneMonthAgoDate.getFullYear()}-${String(oneMonthAgoDate.getMonth() + 1).padStart(2, '0')}-${String(oneMonthAgoDate.getDate()).padStart(2, '0')}`;

    return formattedDate;
  },

  /** 计算倒计时,倒计时结束后发起取消授权 */
  startCountdow(){
    this.timer = setInterval(() => {
      const countDownZeroOrders = []
      const orders = this.data.orders.map(order => {
        if(order.countdown && order.countdown != '0') {
          const currentCountDown = (Number(order.countdown) - 1);
          order.countdown = currentCountDown.toString();
          if(currentCountDown <= 0) countDownZeroOrders.push(order)
        }
        return order
      })

      this.setData({
        orders:orders
      })
      this.toUnAnthorization(countDownZeroOrders)
    },1000);
  },

  /** 结束倒计时 */
  endCountDown(){
    if(this.timer) {
      clearInterval(this.timer)
      this.timer = null
    }
  },
  /** 发送取消授权 */
  toUnAnthorization(orders) {
    console.log(orders)
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const today = this.getNowDate();
    const lastMouthDay = this.getLastMouthDate();
    this.setData({
      date:today,
      startDate:today,
      endDate:lastMouthDay
    });


    // this.startCountdow();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    this.endCountDown()
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  /** 日期选择器选择时间 */
  bindDateChange(date) {
    this.setData({
      date: date.detail.value
    });
    console.log(date)
  },

  /** 组件按钮一点击事件 */
  onOrderButtonClick1(event){
    console.log(event)
  },

  /** 组件按钮二点击事件 */
  onOrderButtonClick2(event){
    console.log(event)
  },

  /** 获取订单 */
  getOrder(){
    api.request_GetMiniProgramTransactionsUnpaidQuery(null).then(res => {
      console.log("未支付订单",res)
    }).catch(err => {
      console.log("获取未支付订单失败",err)
    })
  }
})