| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 | const _Http = getApp().globalData.http;Page({    data: {        sourceData: null,        isEdit: null,        ProductList: null,        disabled: false,        loading: false    },    onLoad(options) {        this.setData({            sourceData: JSON.parse(options.item),            isEdit: options.isEdit == 'true'        })        wx.setNavigationBarTitle({            title: options.isEdit == 'true' ? '预测报表' : '预测填报',        })        this.getList();        this.getProductList();    },    /* 提交 */    submit() {        if (this.data.disabled && this.data.loading) return;        this.setData({            loading: true        })        _Http.basic({            "id": 20220906155003,            "version": 1,            "content": {                "sa_salesforecastmodelid": this.data.sourceData.sa_salesforecastmodelid,                "sa_salesforecastbillid": this.data.sourceData.sa_salesforecastbillid,                "sa_projectid": this.data.sourceData.sa_projectid,                "itemclassinfos": this.data.list            }        }).then(res => {            this.setData({                loading: false            })            if (res.msg != '成功') return wx.showToast({                title: res.data,                icon: "none"            });            this.setData({                disabled: true            })            this.randerData()            setTimeout(() => {                wx.navigateBack({                    delta: 0,                })            }, 500)            wx.showToast({                title: '保存成功',                icon: "none"            });        })    },    randerData() {        let pages = getCurrentPages();        pages[pages.length - 2].getList(true);    },    /* 获取列表 */    getList() {        let parem = {            "id": 20220906154703,            "version": 1,            "content": {                "nocheca": true,                "sa_salesforecastbillid": this.data.sourceData.sa_salesforecastbillid,                'pageSize': 9999,                "where": {}            }        };        if (this.data.sourceData.sa_projectid != 0) parem.content.where = {            "sa_projectid": this.data.sourceData.sa_projectid        }        _Http.basic(parem).then(res => {            console.log(321321321,res)            if (res.msg != '成功') return wx.showToast({                title: res.msg,                icon: "none"            })            for (let i = 0; i < res.data.length; i++) {                res.data[i].complete = true;            }            this.setData({                list: res.data.filter(v => v.itemclassname)            });        })    },    /* 获取产品列表 */    getProductList() {        _Http.basic({            "id": 20220906154903,            "version": 1,            "content": {}        }).then(res => {            console.log("产品列表", res)            if (res.msg != '成功') return wx.showToast({                title: res.data,                icon: "none"            })            this.setData({                ProductList: res.data            })        })    },    /* 打开添加产品 */    addProduct() {        let list = this.data.ProductList.filter(v => !this.data.list.some(value => value.itemclassnum == v.itemclassnum))        this.selectComponent('#Product').setData({            show: true,            list        })    },    /* 得到添加产品 */    getResult({        detail    }) {        const list = detail.map(v => {            const data = this.data.ProductList.find(value => value.itemclassnum == v);            return {                "sa_salesforecastid": 0,                "itemclassnum": data.itemclassnum,                "itemclassname": data.itemclassname,                "orderqty": 0,                "orderamount": 0,                "invoiceqty": 0,                "invoiceamount": 0,                "outqty": 0,                "outamount": 0,                "complete": false            }        })        this.setData({            list: list.concat(this.data.list)        });        wx.pageScrollTo({            scrollTop: 0,        })        this.isDisabled();    },    /* 输入框改变 */    inputChange(e) {        const {            index,            name        } = e.currentTarget.dataset,            value = e.detail.value.trim();        this.setData({            [`list[${index}].${name}`]: value        })        if (['orderamount', 'outamount', 'invoiceamount'].includes(name)) {            const data = this.data.list[index];            this.setData({                [`list[${index}].complete`]: data.orderamount != "" && data.outamount != "" && data.invoiceamount != ""            })        };        this.isDisabled();    },    /* 删除产品 */    deleteProduct(e) {        const {            item        } = e.currentTarget.dataset,            that = this;        wx.showModal({            title: "提示",            content: `是否确认删除${item.itemclassname}`,            success({                confirm            }) {                if (confirm) {                    if (item.sa_salesforecastid == 0) {                        that.setData({                            list: that.data.list.filter(v => v.itemclassnum != item.itemclassnum)                        })                        wx.showToast({                            title: '删除成功',                            icon: "none"                        })                        that.isDisabled();                        that.randerData()                    } else {                        _Http.basic({                            "id": 20220906155103,                            "version": 1,                            "content": {                                "sa_salesforecastid": item.sa_salesforecastid,                                "sa_projectid": 0,                                "sa_salesforecastbillid": item.sa_salesforecastbillid                            }                        }).then(res => {                            if (res.msg != '成功') return wx.showToast({                                title: res.data,                                icon: "none"                            });                            that.setData({                                list: that.data.list.filter(v => v.itemclassnum != item.itemclassnum)                            })                            that.isDisabled();                            that.randerData()                            wx.showToast({                                title: '删除成功',                                icon: "none"                            })                        })                    }                }            }        })    },    /* 判断是否禁用保存按钮 */    isDisabled() {        let count = 0;        this.data.list.forEach(v => v.complete ? count += 1 : '')        this.setData({            disabled: !(count == this.data.list.length)        })    },    onShareAppMessage() {}})
 |