123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- 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);
- 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)
- })
- },
- });
|