const _Http = getApp().globalData.http; Page({ data: { pickerIndex: 0, showText: "全部", popupShow: false, activeId: null, mainActiveIndex: 0, targetYear: null, hrid: null, departmentid: null, "year": new Date().getFullYear().toString(), "content": { "nocache": true, "year": new Date().getFullYear().toString(), //年 "targettype": "人员目标", //1 "type": 1, // "where": { "condition": "" } }, target: null, //目标 showActions: false, actionSheet: "开票金额", actions: [{ name: '开票金额', value: "1" }, { name: '订单金额', value: "2" }, { name: '出货金额', value: "3" }], }, onLoad(options) { /* 获取部门列表 */ _Http.basic({ "id": 20220922113302, "content": { pageSize: 9999 } }).then(res => { if (res.msg != '成功') return wx.showToast({ title: res.msg, icon: "none" }) let hrList = res.data.map(v => { v.hr.unshift({ name: v.depname + ' (包含所有下级)', hrid: v.departmentid }) return { id: v.departmentid, text: v.depname, children: v.hr.map(value => { const text = value.position ? value.name + ` (${value.position})` : value.name return { id: value.hrid, text } }) } }) this.setData({ hrList }) }); this.getYear(true) }, getYear(init = false) { /* 获取年份 */ _Http.basic({ "classname": "sysmanage.develop.optiontype.optiontype", "method": "optiontypeselect", "content": { pageSize: 999, "typename": 'targetyearofpersonal', "parameter": { "siteid": wx.getStorageSync('siteP').siteid } } }).then(res => { if (res.msg != '成功') return wx.showToast({ title: res.msg, icon: "none" }) this.setData({ userYearList: res.data.map(v => v.year), "content.year": res.data.length ? res.data[res.data.length - 1].year : this.data.content.year, year: res.data.length ? res.data[res.data.length - 1].year : this.data.year, pickerIndex: res.data.length - 1 }) if (init) this.getData(); }) /* 获取年份 */ _Http.basic({ "classname": "sysmanage.develop.optiontype.optiontype", "method": "optiontypeselect", "content": { pageSize: 999, "typename": 'targetyearofproject', "parameter": { "siteid": wx.getStorageSync('siteP').siteid } } }).then(res => { console.log('项目分类', res) if (res.msg != '成功') return wx.showToast({ title: res.msg, icon: "none" }) this.setData({ projectYearList: res.data.map(v => v.year) }) }) }, onShow() { this.getData(); }, onClickNav({ detail }) { this.setData({ mainActiveIndex: detail.index }) }, onClickItem({ detail }) { let hrid = null, departmentid = null; if (detail.text.includes('包含所有下级')) { departmentid = detail.id } else { hrid = detail.id }; let text = detail.text.split("(")[0]; this.setData({ hrid, departmentid, activeId: detail.id, text }) }, /* 切换分析对象 */ openPupop() { this.setData({ popupShow: true }) }, onClose() { this.setData({ popupShow: false }) }, toDetail() { wx.navigateTo({ url: `./person?year=${this.data.content.year}&yearArr=${this.data.userYearList}&pickerIndex=${this.data.pickerIndex}` }) }, getData(e) { if (e) this.setData({ showText: this.data.text ? this.data.text : '全部' }) let content = this.data.content; if (this.data.hrid) content.hrid = this.data.hrid; if (this.data.departmentid) content.departmentid = this.data.departmentid; _Http.basic({ "id": 20220920133102, content }).then(res => { this.onClose() if (res.msg != '成功') return wx.showToast({ title: res.data, icon: "none" }) let lineData = [], histogram = []; res.data.month.forEach(v => { lineData = lineData.concat([{ label: v.month + '月', value: v.l, type: "基本目标金额" }, { label: v.month + '月', value: v.h, type: "挑战目标金额" }, { label: v.month + '月', value: v.a, type: "实际订单金额" } ]) histogram = histogram.concat([{ label: v.month + '月', value: v.pl, type: "基础目标实际完成率" }, { label: v.month + '月', value: v.ph, type: "挑战目标实际完成率" } ]) }); //绘制线图 this.selectComponent("#line").render(lineData); this.selectComponent("#histogram").render(histogram); this.setData({ targetYear: { yl: res.data.y1l, yh: res.data.y1h, ya: res.data.y1a, } }); if (this.data.year == this.data.content.year) { const m = new Date().getMonth() + 1; let s = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12] ].findIndex(v => v.some(va => va == m)) + 1; this.setData({ targetSeason: { sl: res.data[`s${s}l`], sh: res.data[`s${s}h`], sa: res.data[`s${s}a`], }, targetMonth: { ml: res.data[`m${m}l`], mh: res.data[`m${m}h`], ma: res.data[`m${m}a`] } }) } }) }, /* 弹出选择 */ select({ detail }) { if (this.data.actionSheet == detail.name) return; this.setData({ actionSheet: detail.name, "content.type": detail.value, showActions: false }); this.getData(); }, cancelActions() { this.setData({ showActions: false }) }, openActions() { this.setData({ showActions: true }) }, /* 选择年份 */ bindDateChange({ detail }) { let index = detail.value; let year = this.data.userYearList[index]; if (year == detail.value) return; this.setData({ "content.year": year, pickerIndex: index }); this.getData(); }, onShareAppMessage() {} })