import { onPageLoadInitAuth, post } from '@/utils/https';
import { getAuthInfo, getDataSet, showModal, sleep, toArray, toastSuccess } from '@/utils/util';

Page({
  /**
   * 页面的初始数据
   */
  data: {
    list: [] as any[],
    isLogin: false,
  },
  handleLogin(e: any) {
    this.setData({ isLogin: e.detail });
    if (e.detail) {
      this.init();
      this.getList();
    }
  },
  init() {
    this.setData({ authInfo: getAuthInfo() });
  },
  getList() {
    return new Promise<void>((resolve, reject) => {
      post('Orders/getLiteOrders')
        .then((res: any) => {
          const list = toArray(res.data);
          this.setData({ list, isLogin: true });
          resolve(res);
        })
        .catch((res) => {
          this.setData({ isLogin: false });
          reject(res);
        })
        .finally(() => {
          wx.stopPullDownRefresh();
        });
    });
  },
  onOrderToTop(e: any) {
    const data = getDataSet(e);
    const index = data.index;
    const item = this.data.list[index];
    showModal({ content: `确认把 ${item.order_no} 订单移至顶部?` }).then(() => {
      post('Orders/setTop', { order_no: item.order_no }).then(() => {
        toastSuccess('移动成功');
        sleep(() => {
          this.getList();
        }, 1000);
      });
    });
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(_options) {},

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

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    onPageLoadInitAuth(this, () => this.getList());
  },

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

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

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

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

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