let _Http = getApp().globalData.http, currency = require("../../utils/currency"), CNY = value => currency(value, { symbol: "¥", precision: 2 }).format(); Page({ data: { showFiltrate: false, pageIndex: 0, admin: false, tabsActive: 0, active: null, "content": { "type": 1, "dataid": 0, "baseonproject": 0, "title": "" } }, onLoad(options) { this.setData({ sa_salesforecastbillid: options.id }) if (options.admin == 'true') { this.setData({ admin: true }) _Http.basic({ "id": 20230620102004, "content": {} }).then(res => { console.log("获取下级部门和下级人员", res) if (res.msg != '成功') return wx.showToast({ title: res.data, icon: "none" }) let data = { label: "查询范围", showName: "name", //显示字段 valueKey: "active", //返回Key value: "id", //选中值 list: res.data.hr.map(v => { v.id = v.userid; v.type = '人员' delete(v.rowindex) delete(v.userid) return v }) }; const mflat = (v, prefix) => { v.subdep.forEach(s => mflat(s, v.depname)); v.name = v.depname; v.type = '部门'; v.id = v.departmentid; delete(v.depname) delete(v.departmentid) delete(v.parentid) delete(v.rowindex) delete(v.subdep) data.list.unshift(v) }; res.data.dep.forEach(v => mflat(v)) this.setData({ "filtratelist[0]": data }); }); } const appAuth = wx.getStorageSync('auth')[options.admin == 'true' ? 'invoiceforecastadmin' : 'invoiceforecast']; let tabsList = [{ label: "订单", icon: "icon-E-dingdan", model: "#OrderForm" }, { label: "项目", icon: "icon-tabxiangmu", model: "#Project" }, { label: "客户", icon: "icon-tabkehu", model: "#Client" }, { label: "附件", icon: "icon-tabfujian1", model: "#Files" }, { label: "操作记录", icon: "icon-tabcaozuojilu1", model: "#Record" }]; if (appAuth.istask) tabsList.push({ label: "任务", icon: "icon-tabrenwu", model: "#Work" }) this.setData({ tabsList }) this.getDetail(); this.getTags(); this.partialRenewal(); }, /* 切换 */ onChange(e) { this.setData({ pageIndex: e.detail.index }) }, openFiltrate() { this.setData({ showFiltrate: true }) }, handleFilter(e) { let { active } = e.detail; try { if (active.type) this.setData({ active, 'content.type': active.type == '人员' ? 0 : 1, 'content.dataid': active.id || 0, }); } catch (error) { this.setData({ active: null, 'content.type': 1, 'content.dataid': 0, }) } this.getRests(); }, getRests() { _Http.basic({ "id": 20230705144804, content: this.data.content }).then(res => { console.log("其他预测单", res) if (res.msg != '成功') wx.showToast({ title: res.msg, icon: "none" }); res.data.allorderinvoamount = CNY(res.data.allorderinvoamount) res.data.allorderoutamount = CNY(res.data.allorderoutamount) res.data.data = res.data.data.filter(v => v.billnum).map(v => { v.orderoutamount = CNY(v.orderoutamount) v.orderinvoamount = CNY(v.orderinvoamount) return v }) this.setData({ rests: res.data }) }) }, getDetail() { _Http.basic({ "id": 20230705144704, "content": { "sa_salesforecastbillid": this.data.sa_salesforecastbillid } }).then(res => { console.log("预测详情", res) if (res.msg != '成功') wx.showToast({ title: res.msg, icon: "none" }); res.data.orderoutamount = CNY(res.data.orderoutamount) res.data.orderinvoamount = CNY(res.data.orderinvoamount) this.setData({ detail: res.data, 'content.title': res.data.title, isLeader: res.data.userid == wx.getStorageSync('userMsg').userid }); if (this.data.admin) this.getRests(); }) }, //tabs 切换 tabsChange({ detail }) { this.setData({ tabsActive: detail }); this.partialRenewal(); }, //更新标签 getTags() { this.selectComponent("#Tags").getTags(); }, //局部数据更新 tabs partialRenewal(init = false) { let model = this.data.tabsList[this.data.tabsActive].model; if (model) { let Component = this.selectComponent(model), { total, pageNumber, pageTotal } = Component.data.content, id = this.data.sa_salesforecastbillid; if (total == null || init) { Component.getList(id, init); } else if (pageNumber <= pageTotal) { Component.getList(id, false); } } }, onReachBottom() { this.partialRenewal(); }, onUnload() { let page = getCurrentPages()[getCurrentPages().length - 2]; if (page.getRests) return page.getRests(); let content = JSON.parse(JSON.stringify(page.data.content)); content.pageSize = (content.pageNumber - 1) * content.pageSize; content.pageNumber = 1; _Http.basic({ id: page.data.admim ? 20230705144604 : 20230706092304, content }).then(res => { console.log("更新预测", res); res.data = res.data.map(v => { v.orderoutamount = CNY(v.orderoutamount) v.orderinvoamount = CNY(v.orderinvoamount) return v }) if (res.msg == '成功') page.setData({ list: res.data, "content.total": res.total }) }) } })