import { OSSBaseUrl } from '@/utils/config';
import { loginStatusPage, post } from '@/utils/https';
import {
  formatFileSize,
  getAuthInfo,
  getDataSet,
  getFileType,
  mediaPreview,
  toArray,
} from '@/utils/util';

Page({
  /**
   * 页面的初始数据
   */
  data: {
    order_no: '',
    head_id: '',
    head_id2: '',
    rel_account_log_id: '',
    rel_bill_no: '',
    list: [] as any[],
    fileIcon: { file: 'file', excel: 'file-excel', pdf: 'file-pdf' },
  },
  handleLogin(e: any) {
    this.setData({ isLogin: e.detail });
    if (e.detail) {
      this.init();
    }
  },
  init() {
    this.setData({ authInfo: getAuthInfo() });
    this.getList();
  },
  formatData(data: any) {
    const list = toArray(data).map((el) => {
      el._file_type = getFileType(el.file_name);
      el.file_path = `${OSSBaseUrl}${el.file_path}`;
      el._file_size = formatFileSize(el.file_size);
      return el;
    });
    this.setData({ list });
  },
  getList() {
    if (this.data.order_no) {
      // 销售订单
      post('Orders/getOrderFiles', { order_no: this.data.order_no }).then((res: any) => {
        this.formatData(res.files);
      });
    } else if (this.data.head_id) {
      // 仓库采购
      post('ErpDepot/fileList', { head_id: this.data.head_id }).then((res: any) => {
        this.formatData(res.data);
      });
    } else if (this.data.head_id2) {
      // 财务
      post('ErpFinance/fileList', { head_id: this.data.head_id2 }).then((res: any) => {
        this.formatData(res.data);
      });
    } else if (this.data.rel_bill_no) {
      // 资金明细附件
      const data: any = {
        order_no: this.data.rel_bill_no,
      };
      if (this.data.rel_account_log_id) {
        data.rel_account_log_id = this.data.rel_account_log_id;
      }
      post('ErpAccount/getAccountPayFile', data).then((res: any) => {
        this.formatData(res.data);
      });
    }
  },
  onPreview(e: any) {
    const data = getDataSet(e);
    const index = data.index;
    const item = this.data.list[index];
    if (item._file_type != 'file') {
      mediaPreview([item.file_path], item.file_path);
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const {
      title,
      order_no = '',
      head_id = '',
      head_id2 = '',
      rel_account_log_id = '',
      rel_bill_no = '',
    } = options || {};
    if (title) {
      wx.setNavigationBarTitle({ title: decodeURIComponent(title) });
    }
    this.data.order_no = order_no;
    this.data.head_id = head_id;
    this.data.head_id2 = head_id2;

    // 资金明细附件
    this.data.rel_account_log_id = rel_account_log_id;
    this.data.rel_bill_no = rel_bill_no;

    loginStatusPage(this);
  },

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

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

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

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

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

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

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