// packageI/invoice/invoiceCenter/invoiceCenter.js
const app = getApp();
Page({
    data: {
        invoiceType: 1,
        loading: false,
        finshed: false,
        page: 1,
        total: 0,
        invoiceList: [], // 发票列表
        orderList: [], // 订单列表
        bearerList: [], // 发票抬头列表

        sinvoice: {},
    },
    onLoad: function (options) {
        if (options.type !== undefined)
        this.setData({
            invoiceType: options.type * 1
        })
    },

    onShow: function () {
        this._initData();
        this.getListData();
    },

    changeTab (event) {
        // 禁止初始化重复触发
        if (event.detail.name != this.data.invoiceType) {
            this.setData({invoiceType: event.detail.name})
            this._initData();
            this.getListData();
        }
    },

    _initData () {
        this.setData({
            loading: false,
            finshed: false,
            page: 1,
            total: 0,
            invoiceList: [],
            orderList: [],
            bearerList: [],
        })
    },

    getListData () {
        if (this.data.finshed || this.data.loading) {
          return false;
        }
        let urlStr = "";
        let requestJson = { page: this.data.page };
        if (this.data.invoiceType == "-1") {
             // 发票抬头
            urlStr = app.getNetAddresss("plugin.invoice.frontend.rise.get-list");
        } else if (this.data.invoiceType == "3") {
            // 申请开票
            urlStr = app.getNetAddresss("plugin.invoice.frontend.index.not-invoice");
        } else {
            // 已开票、申请中
            urlStr = app.getNetAddresss("plugin.invoice.frontend.index.index");
            requestJson.status = this.data.invoiceType;
        }
        this.setData({loading: true});
        app._getNetWork({
            url: urlStr,
            data: requestJson,
            success: ({data:res}) => {  
                if (res.result != 1) {
                    return app.tips(res.msg);
                }
                let resData = res.data;
                if (this.data.page >= resData.last_page || resData.data.length < resData.pre_page) {
                  this.setData({ finshed: true });
                }
                this.setChildData(resData);
                this.setData({ 
                  page: this.data.page + 1,
                  total: resData.total,
                });
            },
            complete: () => {
                this.setData({loading: false})
            }
        })
    },

    // 设置子组件数据
    setChildData (data) {
        let invoiceType = this.data.invoiceType;
        if (invoiceType == "-1") {
            this.setData({
                bearerList: this.data.bearerList.concat(data.data)
            })
        } else if (invoiceType == "3") {
            // 后端没有返回 手动添加开发票按钮
            data.data.forEach(item => {
                item.button_models = [{name: "申请开票", value: "apply_invoice", api: "test", type: ""}]
            })
            this.setData({
                orderList: this.data.orderList.concat(data.data),
                sinvoice: data.sinvoice
            })
        } else {
            this.setData({
                invoiceList: this.data.invoiceList.concat(data.data)
            })
        }
    },

    refreshComponent () {
        this.setData({
            loading: false,
            finshed: false,
            page: 1,
            total: 0,
            invoiceList: [],
            orderList: [],
            bearerList: [],
        })
        this.getListData();
    },

    onReachBottom () {
        this.getListData();
    },

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

    }
})