| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 | const _Http = getApp().globalData.http;Page({	data: {		tradefieldIndex: 0,		pickerIndex: 0,		targetYear: null,		hrid: null,		"year": new Date().getFullYear().toString(),		"content": {			"nocache": true,			"year": new Date().getFullYear().toString(), //年			"type": 1,			"where": {				"condition": ""			}		},		target: null, //目标		showActions: false,		actionSheet: "开票金额",		actions: [{			name: '开票金额',			value: "1"		}, {			name: '订单金额',			value: "2"		}, {			name: '出货金额',			value: "3"		}],	},	onLoad(options) {		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();	},	getData() {		let content = this.data.content;		_Http.basic({			"id": wx.getStorageSync('userrole') == '业务员' ? 20230111163102 : 20230110151902,			content		}).then(res => {			console.log("业绩目标", res)			if (res.msg != '成功') return wx.showToast({				title: res.data,				icon: "none"			})			this.setData({				list: res.data,				tradefieldIndex: 0			})			this.setShowData();		})	},	bindTradefieldChange(e) {		this.setData({			tradefieldIndex: e.detail.value		})		this.setShowData()	},	setShowData() {		let data = this.data.list[this.data.tradefieldIndex];		let lineData = [],			histogram = [];		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: data.y1l,				yh: data.y1h,				ya: 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: data[`s${s}l`],					sh: data[`s${s}h`],					sa: data[`s${s}a`],				},				targetMonth: {					ml: data[`m${m}l`],					mh: data[`m${m}h`],					ma: 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() {}})
 |