const app = getApp()
import { paystatusList } from '../../utils/dict';
import WxValidate from '../../utils/wxValidate';
Page({

    /**
     * 页面的初始数据
     */
    data: {
        frameStyle: { useTop: true, name: '订单管理', leftArrow: true, useBar: false },
        searchInfo: {},
        list: [],
        dialog: { title: '详细信息', show: false, type: '1' },
        info: {},
        statusList: paystatusList
    },
    // 跳转菜单
    back(e) {
        wx.navigateBack({ delta: 1 })
    },
    // 查询
    onSearch: function () {
        const that = this;
        that.setData({ dialog: { title: '查询条件', show: true, type: '2' } })
    },
    // 选择支付状态
    statusChange: function (e) {
        const that = this;
        let data = that.data.statusList[e.detail.value];
        if (data) that.setData({ 'searchInfo.status': data.value })
    },
    // 提交查询
    searchSubmit: function (e) {
        const that = this;
        const params = e.detail.value;
        that.setData({ searchInfo: params })
        that.watchLogin();
        that.toClose()
    },
    // 查看
    toView: async function (e) {
        const that = this;
        const { item } = e.currentTarget.dataset;
        const arr = await app.$get(`/newCourt/api/payOrder/${item._id}`);
        if (arr.errcode == '0') {
            // 用户信息
            const user = await app.$get(`/newCourt/api/user/${arr.data.openid}`);
            if (user.errcode = '0') { arr.data.user_name = user.data.name };
            arr.data.statusZh = that.getStatusZh(arr.data.status)
            that.setData({ info: arr.data })
            that.setData({ dialog: { title: '详细信息', show: true, type: '1' } })
        }
    },
    // 关闭弹框
    toClose: function () {
        const that = this;
        that.setData({ dialog: { title: '详细信息', show: false, type: '1' } })
    },
    // 退款
    toRefund: async function (e) {
        const that = this;
        const { item } = e.currentTarget.dataset;
        wx.showModal({
            title: '提示',
            content: '您是否确定要进行退款，一旦操作不可恢复？',
            async success(res) {
                if (res.confirm) {
                    const arr = await app.$post('/newCourt/api/payOrder/toRefund', { id: item._id })
                    if (arr.errcode == '0') {
                        wx.showToast({ title: `退款成功`, icon: 'success', duration: 2000 });
                        that.watchLogin();
                    } else {
                        wx.showToast({ title: `${arr.errmsg}`, icon: 'error', duration: 2000 });
                    }
                } else if (res.cancel) { }
            }
        });
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        const that = this;
        that.watchLogin();
    },
    // 监听用户是否登录
    watchLogin: async function () {
        const that = this;
        const searchInfo = that.data.searchInfo;
        wx.getStorage({
            key: 'user',
            success: async res => {
                let info = {};
                if (searchInfo.money) info.money = searchInfo.money;
                if (searchInfo.type) info.type = searchInfo.type;
                if (searchInfo.status) info.status = searchInfo.status;
                const arr = await app.$get(`/newCourt/api/payOrder`, { skip: 0, limit: 1000, ...info });
                if (arr.errcode == '0') {
                    let list = arr.data;
                    list = list.map(i => ({ ...i, statusZh: this.getStatusZh(i.status) }))
                    this.setData({ list })
                }
            },
            fail: res => {
                wx.redirectTo({ url: '/pages/index/index', })
            }
        })
    },
    getStatusZh(status) {
        let word = "未知"
        switch (status) {
            case '0':
                word = "未支付"
                break;
            case '1':
                word = "支付成功"
                break;
            case '-1':
                word = "支付失败"
                break;
            case '-2':
                word = "申请退款"
                break;
            case '-3':
                word = "已退款"
                break;
            default:
                break;
        }
        return word;
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

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

    },

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

    },

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

    },

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

    },

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

    },

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

    }
})