var app = getApp() var that; var chart1; var chart2; import moment from 'moment' // 时间库 Page({ data: { date: app.globalData.month, data_b: {}, chartData: [],//折线图数据 pieData: [1],//饼型图数据 isShowTb:true, employee_id:app.globalData.userData.id||0, isBh:false, year:moment().format('YYYY'), data_year:{}, userName:'', }, onLoad(e) { if(e.employee_id){ this.setData({employee_id:e.employee_id,userName:e.name? e.name:null}) dd.setNavigationBar({ title: `${e.name}的B分统计` }); }else{ dd.setNavigationBar({ title: "我的B分统计" }); } that = this; chart1, chart2 = ''; }, //打开更多 openMore() { console.log(this.data.userName,this.data.employee_id) dd.navigateTo({ url: '../../statistics/integralEvent/integralEvent?month=' + this.data.date + '&type=BF&employee_ids='+this.data.employee_id+'&userName='+this.data.userName }) }, showText() { this.setData({ isBh: !this.data.isBh }) }, //则线图 onInitChart(F2, config) { chart1 = new F2.Chart(config); chart1.source(that.data.chartData, {date: {tickCount: 5}}); chart1.tooltip({ showCrosshairs: true, showItemMarker: false, onShow: function onShow(ev) { const items = ev.items; items[0].name = "月份:" + items[0].origin.date; items[0].value = "分值:" + items[0].value; } }); chart1.line().position('date*value'); chart1.point().position('date*value').style({ stroke: '#fff', lineWidth: 1 }); // that.getIncidentLsit(); chart1.render(); return chart1; }, //饼型图 onInitChart2(F2, config) { chart2 = new F2.Chart(config); chart2.source(that.data.pieData, { percent: { formatter: function formatter(val) { return val * 100 + '%'; } } }); chart2.legend({ position: 'bottom', itemFormatter: function itemFormatter(val) { var str = ''; that.data.pieData.forEach(item => { if (item.name == val) { str =item.str; } }) return str; } }); chart2.tooltip(false); chart2.coord('polar', { transposed: true, radius: 0.85 }); chart2.axis(false); chart2.interval() .position('a*percent') .color('name', ['#1890FF', '#8543E0', '#2FC25B', '#FACC14', '#F04864', '#13C2C2']) .adjust('stack') .style({ lineWidth: 1, stroke: '#fff', lineJoin: 'round', lineCap: 'round' }).animate({appear: { duration: 1200, easing: 'bounceOut' } }); chart2.render(); // 注意:需要把chart return 出来 that.getIncidentLsit(); return chart2; }, //时间选择 openDate() { that.setData({ showDate: true }); dd.datePicker({ format: 'yyyy-MM', currentDate: that.data.date, success: (res) => { that.setData({ date: res.date }) if(res.date){ that.getIncidentLsit(); } }, complete: (res) => { that.setData({ showDate: false }) } }); }, //获取积分事件 getIncidentLsit() { var y = that.data.date.substr(that.data.date.length - 2, 2); var n = that.data.date.substr(0, 4); console.log(y,n) var start_date; if (y >= 6) { start_date = n + "-" + "0" + (y - 5).toString(); } else { n--; switch (y - 5) { case 0: y = 12 break; case -1: y = 11 break; case -2: y = 10 break; case -3: y = "0"+(9).toString() break; case -4: y = "0"+(8).toString() break; } start_date =n+"-"+y; } let employee_id=that.data.employee_id||app.globalData.userData.id; var incident = app.$get("api/integral/statistics/b", { employee_id: employee_id, start_date: start_date, end_date: that.data.date, show_type: '2' }); var pei = app.$get("api/integral/statistics/pie/b", { employee_id: employee_id, month: that.data.date },'application/vnd.test.v2+json'); var headDayBs = app.$get2("api/integral/statistics", { employee_id: employee_id,month: that.data.date},'application/vnd.test.v3+json')//获取个人统计-当天B分 - V2 var headDayBs2 = app.$get2("api/integral/statistics", { employee_id: employee_id,year:moment(that.data.date).format('YYYY')},'application/vnd.test.v3+json')//获取个人统计-当天B分 - V2 var incident2 = app.$get("api/integral/statistics/b", { employee_id: employee_id, start_date:moment(that.data.date).startOf('month').format('YYYY-MM-DD'), end_date:moment(that.data.date).endOf('month').format('YYYY-MM-DD'), show_type: '1' }); Promise.all([incident,pei,headDayBs,headDayBs2,incident2]).then(resArr => { if (resArr[0].data.code == 1) { const {chart} = resArr[0].data.data; const points = chart.reward.map((rewardItem, index) => { return { date: rewardItem.date, value: rewardItem.point - (chart.deduction[index].point || 0) } }) chart1.changeData(points); // that.setData({ // data_good: good, // data_bad: bad, // }); } if (resArr[1].data.code == 1) { let pieData=[]; resArr[1].data.data.list.map((item,index) => { if(index<8){ pieData.push({ name: item.name,a:'1', percent:item.reward, str:item.name + ' ' + '奖' + item.reward + ' ' + '扣' + item.deduction + ' ' + item.ratio + '%'}) } }) var isData=pieData.every(itme=>{ return itme.percent == 0; }) that.setData({ pieData:isData?[]:pieData }); chart2.changeData(pieData); } if (resArr[2].data.code == 1) { const data = resArr[2].data.data that.setData({ data_b: data, monthStr:moment(that.data.date).format('M'), }); } if (resArr[3].data.code == 1) { const data = resArr[3].data.data that.setData({ data_year: data, year:moment(that.data.date).format('YYYY'), }); } if (resArr[4].data.code == 1) { const {good, bad } = resArr[4].data.data that.setData({ data_good: good, data_bad: bad }); } }).catch(e => { console.error(e) }) }, });