| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 | const _Http = getApp().globalData.http,    {        formatTime    } = require("../../utils/getTime");let pageNumber = 1,    pageTotal = 1,    sys_payorderid = null,    currency = require("../../utils/currency"),    CNY = value => currency(value, {        symbol: "¥",        precision: 2    }).format();Page({    data: {        users: [],        remarks: "",        showAmount: "¥0.00",        isDelete: true,        useDiscount: 0    },    onLoad(options) {        this.setData({            sys_payinstructions: wx.getStorageSync('siteP').sys_payinstructions,            sys_payincidence: 1,            opUsers: options.users ? JSON.parse(options.users) : []        })        sys_payorderid = options.sys_payorderid;        this.getVersions(options.vid || "");        this.getDiscounts();    },    /* 获取优惠卷 */    getDiscounts() {        _Http.basic({            "id": 20230801162402,            "content": {                nocache: true            }        }).then(res => {            console.log("获取优惠卷", res)            this.setData({                discounts: res.data            })        })    },    /* 保存订单进度 */    changeOrder() {        _Http.basic({            "classname": "system.payorder.payorder",            "method": "insertUsers",            "content": {                "sys_site_systempartitionid": this.data.sys_site_systempartitionid,                sys_payorderid,                "remarks": this.data.remarks,                "users": this.data.users.map(v => {                    let item = this.data.userList.find(s => {                        let id = this.data.sys_payincidence == 1 ? s.userid : s.sa_agentsid;                        return id == v                    })                    return {                        "isleader": item.isleader,                        "userid": item.userid,                        "sa_agentsid": item.sa_agentsid,                        "enddate": item.enddate[this.data.sys_site_systempartitionid] || ''                    }                })            }        }).then(res => {            console.log("修改订单信息", res)            if (res.msg != '成功') return wx.showToast({                title: res.msg,                icon: "none",                mask: true            });            this.setData({                showAmount: CNY(res.data.amount),                orderno: res.data.orderno            })        })    },    /* 更改备注 */    onblur(e) {        console.log(e)        if (e.detail.value == this.data.remarks) return;        this.setData({            remarks: e.detail.value        });        this.changeOrder();    },    /* 获取版本 */    getVersions(vid) {        _Http.basic({            "classname": "system.payorder.payorder",            "method": "chooseSystemPartition",            "content": {                "pageNumber": 1,                "pageSize": 9999,                "where": {                    "condition": ""                }            }        }).then(res => {            console.log("版本列表", res)            if (res.msg != '成功') {                wx.showToast({                    title: res.msg,                    icon: "none",                    mask: true                })                setTimeout(() => {                    wx.navigateBack();                }, 1000)                return;            };            let sys_site_systempartitionid = res.data[0].sys_site_systempartitionid || '';            if (vid && res.data.some(v => v.sys_site_systempartitionid == vid)) sys_site_systempartitionid = vid - 0;            this.setData({                versionsList: res.data,                sys_site_systempartitionid            })            this.getUsers(true);        })    },    /* 切换版本 */    changeVer(e) {        const {            sys_site_systempartitionid        } = e.currentTarget.dataset.item;        if (this.data.sys_site_systempartitionid == sys_site_systempartitionid) return;        this.setData({            sys_site_systempartitionid        });        this.setUsers();    },    checkVer(e) {        const {            item        } = e.currentTarget.dataset;        this.selectComponent("#inventory").show(item.systemapp)    },    /* 获取可添加账号/主体 */    getUsers(init = false) {        if (init) {            pageNumber = 1;            pageTotal = 1;        };        if (pageNumber > pageTotal) return;        _Http.basic({            "classname": "system.payorder.payorder",            "method": "chooseUsers",            "content": {                pageNumber,                "pageSize": 99999,                "where": {                    "condition": ""                }            }        }).then(res => {            console.log("用户列表", res)            if (res.msg != '成功') {                wx.showToast({                    title: res.msg,                    icon: "none",                    mask: true                })                setTimeout(() => {                    wx.navigateBack();                }, 1000)                return;            };            pageTotal = res.pageTotal;            if (res.data.some(v => v.isleader == 1)) {                this.setData({                    userList: res.pageNumber == 1 ? res.data : this.data.userList.concat(res.data)                })                pageNumber = res.pageNumber + 1;                this.setUsers(this.data.opUsers.filter(id => this.data.userList.some(v => id == v.userid)));            } else {                wx.showModal({                    title: '提示',                    content: "您的团队缺少主账号无法使用,请联系客服!",                    showCancel: false,                    complete: (res) => {                        if (res.confirm) {                            wx.navigateBack()                        }                    }                })            }        })    },    setUsers(users = []) {        let list = this.data.userList,            idname = this.data.sys_payincidence == 1 ? 'userid' : 'sa_agentsid',            useDiscount = 0;        list.forEach(v => {            let date = v.enddate[this.data.sys_site_systempartitionid];            if (v.userid == wx.getStorageSync('userMsg').userid || v.isleader == 1) {                if (date) {                    // if (formatTime(new Date(), '-').split(" ")[0] >= date) users.push(v[idname] + '');                } else {                    if (!users.some(v => v == v[idname])) users.push(v[idname] + '');                }            }            if (users.some(id => id == v.userid) && v.isleader == 0) useDiscount += 1        });        this.setData({            users,            useDiscount        });        this.changeOrder();    },    onReachBottom() {        // this.getUsers();    },    onChange(e) {        const {            id,            isleader        } = e.currentTarget.dataset;        let users = this.data.users,            useDiscount = this.data.useDiscount;        if (users.some(v => v == id)) {            users = users.filter(s => s != id)            if (isleader == 0) useDiscount -= 1;        } else {            users.push(id + "")            if (isleader == 0) useDiscount += 1;        }        this.setData({            users,            useDiscount        });        this.changeOrder();    },    examine() {        return new Promise((resolve, reject) => {            if (currency(this.data.showAmount).value == 0) {                wx.showModal({                    title: '提示',                    content: '优惠后金额为0,是否确认',                    complete: (res) => {                        if (res.cancel) resolve(false)                        if (res.confirm) resolve(true)                    }                })            } else {                resolve(true)            }        })    },    isRenew() {        return new Promise((resolve, reject) => {            const idname = this.data.sys_payincidence == 1 ? 'userid' : 'sa_agentsid',                renew = this.data.users.map(v => this.data.userList.find(s => s[idname] == v)).filter(v => v.enddate[this.data.sys_site_systempartitionid]).map(v => v[this.data.sys_payincidence == 1 ? 'name' : 'agentname']).join(',');            if (renew) {                wx.showModal({                    title: '提示',                    content: `${renew}还未到期,是否继续付费`,                    confirmText: "继续付费",                    complete: (res) => {                        if (res.cancel) resolve(false)                        if (res.confirm) resolve(true)                    }                })            } else {                resolve(true)            }        })    },    /* 支付 */    async payment() {        let isRenew = await this.isRenew();        if (!isRenew) return;        let isPayment = await this.examine();        if (!isPayment) return;        let that = this;        that.data.isDelete = false;        wx.login({            success: (s) => {                _Http.basic({                    "classname": "system.payment.wechatpay",                    "method": "createWechatOrder",                    "content": {                        "orderno": that.data.orderno,                        "wechat_code": s.code,                        "trade_type": "JSAPI"                    }                }).then(res => {                    if (res.data == '失败') return wx.showToast({                        title: res.msg,                        icon: "none",                        mask: true                    });                    wx.requestPayment({                        timeStamp: res.data.timeStamp,                        nonceStr: res.data.nonceStr,                        package: res.data.package,                        signType: res.data.signType,                        paySign: res.data.paySign,                        success() {                            wx.showToast({                                title: '支付成功',                                mask: true                            })                        },                        fail(err) {                            if (res.msg == '成功' && currency(that.data.showAmount).value == 0) {                                wx.showToast({                                    title: '支付成功',                                    mask: true                                })                            } else {                                wx.showToast({                                    title: '支付失败',                                    icon: "error",                                    mask: true                                })                                console.error(err)                            }                        },                        complete(e) {                            console.log(e)                            setTimeout(() => {                                wx.redirectTo({                                    url: '/pages/teams/order?id=' + sys_payorderid,                                })                            }, 1000)                        }                    })                })            },        })    },    onUnload() {        if (this.data.isDelete) _Http.basic({            "classname": "system.payorder.payorder",            "method": "delete",            "content": {                sys_payorderid            }        }).then(res => {            console.log("删除订单", res)        })    }})
 |