|
@@ -2,34 +2,37 @@ var app = getApp();
|
|
|
var that;
|
|
|
var chart1;
|
|
|
var chart2;
|
|
|
+var chart3;
|
|
|
Page({
|
|
|
data: {
|
|
|
userData: {},
|
|
|
isBh: false,
|
|
|
chartData: [],//折线图数据
|
|
|
pieData: [1],//饼型图数据
|
|
|
- isAdministrator:app.globalData.isAdministrator,//是否管理员角色
|
|
|
+ isAdministrator: app.globalData.isAdministrator,//是否管理员角色
|
|
|
+ rankingTotal: 0,
|
|
|
+ rankingList: [],
|
|
|
+ getRole_four: app.globalData.isCreator,//是否创始人
|
|
|
+ setECharts: [],//柱形图数据
|
|
|
+ pieTotal: 1
|
|
|
},
|
|
|
onLoad() {
|
|
|
that = this;
|
|
|
- chart1, chart2 = '';
|
|
|
+ chart1, chart2, chart3 = '';
|
|
|
},
|
|
|
onShow(query) {
|
|
|
- // that.getUserData();
|
|
|
- // that.getIncidentLsit();
|
|
|
- // that.getIncidentNum();
|
|
|
if (app.globalData.userData) {
|
|
|
that.getUserData();
|
|
|
- that.getIncidentLsit();
|
|
|
- that.getIncidentNum();
|
|
|
- that.setData({isAdministrator:app.globalData.isAdministrator})
|
|
|
+ // that.getIncidentLsit();
|
|
|
+ // that.getIncidentNum();
|
|
|
+ that.setData({ isAdministrator: app.globalData.isAdministrator, getRole_four: app.globalData.isCreator })
|
|
|
} else {
|
|
|
app.login(app.globalData.corpId, function (is) {
|
|
|
if (is) {
|
|
|
that.getUserData();
|
|
|
- that.getIncidentLsit();
|
|
|
- that.getIncidentNum();
|
|
|
- that.setData({isAdministrator:app.globalData.isAdministrator})
|
|
|
+ // that.getIncidentLsit();
|
|
|
+ // that.getIncidentNum();
|
|
|
+ that.setData({ isAdministrator: app.globalData.isAdministrator, getRole_four: app.globalData.isCreator })
|
|
|
} else {
|
|
|
dd.reLaunch({
|
|
|
url: '../noJurisdiction/noJurisdiction'
|
|
@@ -41,6 +44,20 @@ Page({
|
|
|
showText() {
|
|
|
this.setData({ isBh: !this.data.isBh })
|
|
|
},
|
|
|
+ openViewRanking(e) {
|
|
|
+ var item = e.target.dataset.item;
|
|
|
+ var url = '';
|
|
|
+ if (item.type == 'normal') {
|
|
|
+ url = '../../statistics/sectionRanking/sectionRanking';
|
|
|
+ } else if (item.type == 'all') {
|
|
|
+ url = '../../statistics/B_ranking/B_ranking';
|
|
|
+ } else {
|
|
|
+ url = '../../statistics/C_ranking/C_ranking?id=' + item.target_id + '&name=' + item.group_name+'&date_interval='+item.date_interval;
|
|
|
+ }
|
|
|
+ dd.navigateTo({
|
|
|
+ url: url
|
|
|
+ })
|
|
|
+ },
|
|
|
//跳转
|
|
|
openView(e) {
|
|
|
var index = e.target.dataset.index - 1;
|
|
@@ -56,6 +73,7 @@ Page({
|
|
|
{ url: '../prize_buckle/prize_buckle', query: '' },
|
|
|
{ url: '../../statistics/prizeBuckleDetail/prizeBuckleDetail', query: 'id=' + e.target.dataset.item.id },
|
|
|
{ url: '../../statistics/integralEvent/integralEvent', query: '' },
|
|
|
+ { url: '../../statistics/userRamking/userRamking', query: '' },
|
|
|
];
|
|
|
} else {
|
|
|
urls = [
|
|
@@ -68,6 +86,7 @@ Page({
|
|
|
{ url: '../prize_buckle/prize_buckle', query: '' },
|
|
|
{ url: '../../statistics/prizeBuckleDetail/prizeBuckleDetail', query: '' },
|
|
|
{ url: '../../statistics/integralEvent/integralEvent', query: '' },
|
|
|
+ { url: '../../statistics/userRamking/userRamking', query: '' },
|
|
|
];
|
|
|
}
|
|
|
dd.navigateTo({
|
|
@@ -78,20 +97,28 @@ Page({
|
|
|
onInitChart(F2, config) {
|
|
|
chart1 = new F2.Chart(config);
|
|
|
chart1.source(that.data.chartData, {
|
|
|
- date: {
|
|
|
- // range: [0, 1],
|
|
|
- tickCount: 5
|
|
|
- }
|
|
|
+ date: { tickCount: 4 }
|
|
|
});
|
|
|
chart1.tooltip({
|
|
|
showCrosshairs: true,
|
|
|
- showItemMarker: false,
|
|
|
+ showItemMarker: true,
|
|
|
onShow: function onShow(ev) {
|
|
|
const items = ev.items;
|
|
|
items[0].name = "月份:" + items[0].origin.date;
|
|
|
items[0].value = "分值:" + items[0].value;
|
|
|
}
|
|
|
});
|
|
|
+ chart1.axis('date', {
|
|
|
+ label: function label(text, index, total) {
|
|
|
+ const textCfg = {};
|
|
|
+ if (index === 0) {
|
|
|
+ textCfg.textAlign = 'left';
|
|
|
+ } else if (index === total - 1) {
|
|
|
+ textCfg.textAlign = 'right';
|
|
|
+ }
|
|
|
+ return textCfg;
|
|
|
+ }
|
|
|
+ });
|
|
|
chart1.line().position('date*value');
|
|
|
chart1.point().position('date*value').style({
|
|
|
stroke: '#fff',
|
|
@@ -140,16 +167,34 @@ Page({
|
|
|
// that.getLsit();
|
|
|
return chart2;
|
|
|
},
|
|
|
+ //柱形图
|
|
|
+ onInitChart3(F2, config) {
|
|
|
+ chart3 = new F2.Chart(config);
|
|
|
+ chart3.source(that.data.setECharts, {
|
|
|
+ date: { tickCount: 5 }
|
|
|
+ });
|
|
|
+ chart3.legend(false);
|
|
|
+ chart3.interval().position('name*val').color('type', (type) => { // 通过回调函数
|
|
|
+ if (type === '奖分') {
|
|
|
+ return 'l(90) 0:#4ECFFF 1:#26A2FF';
|
|
|
+ }
|
|
|
+ return 'l(90) 0:#F8C748 1:#F2A640';
|
|
|
+ }).adjust({
|
|
|
+ type: 'dodge',
|
|
|
+ marginRatio: 0.05 // 设置分组间柱子的间距
|
|
|
+ });
|
|
|
+ chart3.render()
|
|
|
+ return chart3;
|
|
|
+ },
|
|
|
//获取统计数据
|
|
|
getLsit() {
|
|
|
var date1 = new Date();
|
|
|
var date2 = new Date(date1);
|
|
|
date2.setDate(date1.getDate() - 30);
|
|
|
- var start_date= date2.getFullYear() + "-" + (date2.getMonth() + 1) + "-" + date2.getDate();
|
|
|
-
|
|
|
- var incident = app.$get("api/integral/statistics/b", { employee_id: 0, start_date: start_date, end_date: app.globalData.day, show_type: '1' });
|
|
|
- var pei = app.$get("api/integral/statistics/pie/b", { employee_id: 0, month: that.data.date });
|
|
|
- Promise.all([incident, pei]).then(resArr => {
|
|
|
+ var start_date = date2.getFullYear() + "-" + (date2.getMonth() + 1) + "-" + date2.getDate();
|
|
|
+ var incident = app.$get2("api/integral/statistics/b", { employee_id: 0, start_date: start_date, end_date: app.globalData.day, show_type: '1' });
|
|
|
+ // var pei = app.$get2("api/integral/statistics/pie/b", { employee_id: 0, month: that.data.date });
|
|
|
+ Promise.all([incident]).then(resArr => {
|
|
|
if (resArr[0].data.code == 1) {
|
|
|
const { b, chart, good, bad } = resArr[0].data.data
|
|
|
const points = chart.reward.map((rewardItem, index) => {
|
|
@@ -162,18 +207,18 @@ Page({
|
|
|
data_bad: bad,
|
|
|
});
|
|
|
}
|
|
|
- if (resArr[1].data.code == 1) {
|
|
|
- const pieData = resArr[1].data.data.list.map((item) => {
|
|
|
- return { name: item.name, percent: item.point < 0 ? 0 : item.point, a: '1',point:item.point }
|
|
|
- })
|
|
|
- var isData=pieData.every(itme=>{
|
|
|
- return itme.percent == 0;
|
|
|
- })
|
|
|
- that.setData({
|
|
|
- pieData:isData?[]:pieData
|
|
|
- });
|
|
|
- chart2.changeData(pieData);
|
|
|
- }
|
|
|
+ // if (resArr[1].data.code == 1) {
|
|
|
+ // const pieData = resArr[1].data.data.list.map((item) => {
|
|
|
+ // return { name: item.name, percent: item.point < 0 ? 0 : item.point, a: '1', point: item.point }
|
|
|
+ // })
|
|
|
+ // var isData = pieData.every(itme => {
|
|
|
+ // return itme.percent == 0;
|
|
|
+ // })
|
|
|
+ // that.setData({
|
|
|
+ // pieData: isData ? [] : pieData
|
|
|
+ // });
|
|
|
+ // chart2.changeData(pieData);
|
|
|
+ // }
|
|
|
}).catch(e => {
|
|
|
console.error(e)
|
|
|
})
|
|
@@ -181,25 +226,81 @@ Page({
|
|
|
|
|
|
//获取个人统计
|
|
|
getUserData() {
|
|
|
- app.$get("api/integral/statistics", { employee_id: 0, month: app.globalData.month }).then((res) => {
|
|
|
- var data = res.data.data;
|
|
|
- var task = data.task;
|
|
|
- dd.setNavigationBar({ title: data.name });
|
|
|
- var ratio = task.reward.point === 0 || task.deduction.point === 0 ? '-' : `${task.ratio.ratio}:1`
|
|
|
- var target_ratio = task.ratio.target_ratio <= 0 ? '0:0' : `${task.ratio.target_ratio}:1`
|
|
|
- data.ratio = {
|
|
|
- ratio: ratio,
|
|
|
- target_ratio: target_ratio
|
|
|
+ var http1 = app.$get2("api/integral/statistics", { employee_id: 0, month: app.globalData.month })
|
|
|
+ var http2 = app.$get2("api/integral/statistics/integral", { month: app.globalData.month, page: 1, page_size: 5, employee_ids: app.globalData.userData.id })
|
|
|
+ var http3 = app.$get2("api/integral/review/list", { type: 'waiting', page: 1, pt_id: 0 })
|
|
|
+ var ranking = app.$get('api/integral/statistics/ranking/list', { page: 1, page_size: 5 })// 获取排行榜
|
|
|
+ var task = app.$get('api/integral/statistics/task/pie', { month: app.globalData.month })// 管理者奖扣任务柱状图
|
|
|
+ Promise.all([http1, http2, http3, ranking, task]).then(function (values) {
|
|
|
+ if (values[0]) {
|
|
|
+ let data = values[0].data.data;
|
|
|
+ var task = data.task;
|
|
|
+ dd.setNavigationBar({ title: data.name });
|
|
|
+ var ratio = task.reward.point === 0 || task.deduction.point === 0 ? '-' : `${task.ratio.ratio}:1`
|
|
|
+ var target_ratio = task.ratio.target_ratio <= 0 ? '0:0' : `${task.ratio.target_ratio}:1`
|
|
|
+ data.ratio = {
|
|
|
+ ratio: ratio,
|
|
|
+ target_ratio: target_ratio
|
|
|
+ }
|
|
|
+ that.getLsit();
|
|
|
+ that.setData({
|
|
|
+ userData: data
|
|
|
+ })
|
|
|
}
|
|
|
- that.getLsit();
|
|
|
- this.setData({
|
|
|
- userData: data
|
|
|
- })
|
|
|
- }, (err) => { })
|
|
|
+ if (values[1]) {
|
|
|
+ let data = values[1].data.data.list;
|
|
|
+ data.map((item) => {
|
|
|
+ item.ptObj = app.getTypesItem(item.pt_id);
|
|
|
+ })
|
|
|
+ that.setData({
|
|
|
+ incidentLsit: data,
|
|
|
+ incidentLsitTotal: values[1].data.data.total
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (values[2]) {
|
|
|
+ let data = values[2].data.data;
|
|
|
+ that.setData({
|
|
|
+ total: data.total
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (values[3]) {
|
|
|
+ that.setData({
|
|
|
+ rankingList: values[3].data.data.list,
|
|
|
+ rankingTotal: values[3].data.data.total
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (values[4]) {
|
|
|
+ if (that.data.isAdministrator) {
|
|
|
+ var data = values[4].data.data.list
|
|
|
+ if (data.length > 5) {
|
|
|
+ data.pop()
|
|
|
+ }
|
|
|
+ that.setData({
|
|
|
+ pieTotal: values[4].data.data.total
|
|
|
+ })
|
|
|
+ if (that.data.pieTotal != 0) {
|
|
|
+ var employees = [];
|
|
|
+ data.forEach((item) => {
|
|
|
+ var obj = [{
|
|
|
+ type: '奖分',
|
|
|
+ name: item.employee_name,
|
|
|
+ val: item.deduction
|
|
|
+ }, {
|
|
|
+ type: '扣分',
|
|
|
+ name: item.employee_name,
|
|
|
+ val: item.reward
|
|
|
+ }]
|
|
|
+ employees.push(...obj)
|
|
|
+ })
|
|
|
+ chart3.changeData(employees);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
},
|
|
|
//获取积分事件
|
|
|
getIncidentLsit() {
|
|
|
- app.$get("api/integral/statistics/integral", { month: app.globalData.month, page: 1, page_size: 5,employee_ids:app.globalData.userData.id }).then((res) => {
|
|
|
+ app.$get("api/integral/statistics/integral", { month: app.globalData.month, page: 1, page_size: 5, employee_ids: app.globalData.userData.id }).then((res) => {
|
|
|
var data = res.data.data.list;
|
|
|
data.map((item) => {
|
|
|
item.ptObj = app.getTypesItem(item.pt_id);
|