326 lines
7.6 KiB
JavaScript
326 lines
7.6 KiB
JavaScript
|
|
import {
|
||
|
|
observable,
|
||
|
|
action
|
||
|
|
} from 'mobx';
|
||
|
|
import {
|
||
|
|
WeaTools
|
||
|
|
} from 'ecCom';
|
||
|
|
import moment from 'moment';
|
||
|
|
import * as API from '../apis/checking';
|
||
|
|
import * as Util from '../util/index';
|
||
|
|
import isEmpty from 'lodash/isEmpty';
|
||
|
|
import {
|
||
|
|
WeaTableNew
|
||
|
|
} from 'comsMobx'
|
||
|
|
const {
|
||
|
|
TableStore
|
||
|
|
} = WeaTableNew;
|
||
|
|
import {
|
||
|
|
onNewRequest
|
||
|
|
} from '../util/pulic-func';
|
||
|
|
import {
|
||
|
|
WeaLocaleProvider
|
||
|
|
} from 'ecCom';
|
||
|
|
const getLabel = WeaLocaleProvider.getLabel;
|
||
|
|
|
||
|
|
export class HrmOldChecking {
|
||
|
|
tabDatas = [{
|
||
|
|
title: '考勤统计',
|
||
|
|
key: "1"
|
||
|
|
}, {
|
||
|
|
title: '考勤日历',
|
||
|
|
key: "2"
|
||
|
|
}];
|
||
|
|
leftTitle = '人员组织';
|
||
|
|
dateTabDatas = [{
|
||
|
|
title: '年',
|
||
|
|
key: "1"
|
||
|
|
}, {
|
||
|
|
title: '月',
|
||
|
|
key: "2"
|
||
|
|
}];
|
||
|
|
constructor(props) {
|
||
|
|
this.statusList = [{
|
||
|
|
name: '全部',
|
||
|
|
type: 'ALL',
|
||
|
|
}, {
|
||
|
|
name: '正常',
|
||
|
|
type: 'NORMAL',
|
||
|
|
}, {
|
||
|
|
name: '迟到',
|
||
|
|
type: 'BELATE',
|
||
|
|
}, {
|
||
|
|
name: '早退',
|
||
|
|
type: 'LEAVEEARLY',
|
||
|
|
}, {
|
||
|
|
name: '旷工',
|
||
|
|
type: 'ABSENT',
|
||
|
|
}, {
|
||
|
|
name: '漏签',
|
||
|
|
type: 'NOSIGN',
|
||
|
|
}, {
|
||
|
|
name: '请假',
|
||
|
|
type: 'LEAVE',
|
||
|
|
}, {
|
||
|
|
name: '出差',
|
||
|
|
type: 'EVECTION',
|
||
|
|
}, {
|
||
|
|
name: '公出',
|
||
|
|
type: 'OUTDAYS',
|
||
|
|
}, {
|
||
|
|
name: '加班',
|
||
|
|
type: 'OVERTIME',
|
||
|
|
}, {
|
||
|
|
name: '异常',
|
||
|
|
type: 'OTHER',
|
||
|
|
}, ];
|
||
|
|
this.statusList.reverse();
|
||
|
|
// this.statusList.forEach((item)=> {
|
||
|
|
// const ic = Util.getIconColor(item.type);
|
||
|
|
// item.icon = ic.icon;
|
||
|
|
// item.color = ic.color;
|
||
|
|
// item.name = ic.name;
|
||
|
|
// if(ic.title){
|
||
|
|
// item.title = ic.title;
|
||
|
|
// }
|
||
|
|
// });
|
||
|
|
}
|
||
|
|
stsType = '';
|
||
|
|
|
||
|
|
@observable hrmId = undefined;
|
||
|
|
@observable newWorklist = [];
|
||
|
|
@observable visible = false;
|
||
|
|
@observable newVisible = false;
|
||
|
|
@observable table = new TableStore();
|
||
|
|
@observable yearData = {};
|
||
|
|
@observable calendarData = {};
|
||
|
|
@observable hrmName = WeaTools.ls.getJSONObj('theme-account') && WeaTools.ls.getJSONObj('theme-account').username || undefined;
|
||
|
|
@observable statusActiveType = 'ALL';
|
||
|
|
@observable calendarCheckedDay = undefined;
|
||
|
|
@observable loading = false;
|
||
|
|
@observable tabkey = '1';
|
||
|
|
@observable dateTabkey = '2';
|
||
|
|
@observable userRoot = undefined;
|
||
|
|
@observable pDate = new moment().format('YYYY-MM');
|
||
|
|
@observable pDate1 = new moment();
|
||
|
|
@observable hasRight = true;
|
||
|
|
@observable chartOptions = {
|
||
|
|
tooltip: {
|
||
|
|
trigger: 'item',
|
||
|
|
formatter: "{a} <br/>{b}: {c} ({d}%)",
|
||
|
|
position: 'right',
|
||
|
|
},
|
||
|
|
series: [{
|
||
|
|
type: 'pie',
|
||
|
|
name: getLabel('16732', "出勤统计"),
|
||
|
|
radius: ['60%', '80%'],
|
||
|
|
avoidLabelOverlap: false,
|
||
|
|
label: {
|
||
|
|
normal: {
|
||
|
|
show: true,
|
||
|
|
position: 'center',
|
||
|
|
formatter: [
|
||
|
|
`{a|${this.count}}`,
|
||
|
|
`{b|${this.countTxt}}`
|
||
|
|
].join('\n'),
|
||
|
|
|
||
|
|
rich: {
|
||
|
|
a: {
|
||
|
|
color: '#484A4D',
|
||
|
|
fontSize: 24,
|
||
|
|
lineHeight: 24
|
||
|
|
},
|
||
|
|
b: {
|
||
|
|
color: '#666',
|
||
|
|
fontSize: 11,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
}
|
||
|
|
},
|
||
|
|
color: ['#FC4B6C', '#1E88E5'],
|
||
|
|
data: []
|
||
|
|
}]
|
||
|
|
};
|
||
|
|
@observable groupitem2 = [];
|
||
|
|
@observable groupitem3 = [];
|
||
|
|
@observable groupitem4 = [];
|
||
|
|
|
||
|
|
@action getStatusList = () => {
|
||
|
|
let arr = [];
|
||
|
|
this.statusList.forEach((item) => {
|
||
|
|
const ic = Util.getIconColor(item.type);
|
||
|
|
arr.push({ ...ic,
|
||
|
|
type: item.type
|
||
|
|
});
|
||
|
|
// item.icon = ic.icon;
|
||
|
|
// item.color = ic.color;
|
||
|
|
// item.name = ic.name;
|
||
|
|
// if(ic.title){
|
||
|
|
// item.title = ic.title;
|
||
|
|
// }
|
||
|
|
});
|
||
|
|
return arr;
|
||
|
|
}
|
||
|
|
@action
|
||
|
|
handlerNewWorkflow = (item) => {
|
||
|
|
onNewRequest(item);
|
||
|
|
this.newVisible = false;
|
||
|
|
}
|
||
|
|
|
||
|
|
@action
|
||
|
|
updateVisible = (v) => {
|
||
|
|
this.visible = v;
|
||
|
|
}
|
||
|
|
|
||
|
|
@action
|
||
|
|
updateNewVisible = (v) => {
|
||
|
|
this.newVisible = v;
|
||
|
|
}
|
||
|
|
|
||
|
|
@action
|
||
|
|
updateStsType = (v) => {
|
||
|
|
this.stsType = v;
|
||
|
|
}
|
||
|
|
|
||
|
|
@action
|
||
|
|
handlerStatusClick = (type) => {
|
||
|
|
this.statusActiveType = type;
|
||
|
|
}
|
||
|
|
|
||
|
|
@action
|
||
|
|
updateCalendarCheckedDay = (v) => {
|
||
|
|
this.calendarCheckedDay = v;
|
||
|
|
}
|
||
|
|
|
||
|
|
@action
|
||
|
|
changeTabHandler = (key) => {
|
||
|
|
this.tabkey = key;
|
||
|
|
this.calendarCheckedDay = undefined;
|
||
|
|
this.statusActiveType = 'ALL';
|
||
|
|
}
|
||
|
|
@action
|
||
|
|
changeDateTabHandler = (key) => {
|
||
|
|
if (this.pDate) {
|
||
|
|
if (key == '1') {
|
||
|
|
this.pDate = new moment().format('YYYY');
|
||
|
|
} else {
|
||
|
|
this.pDate = new moment().format('YYYY-MM');
|
||
|
|
}
|
||
|
|
}
|
||
|
|
this.pDate1 = new moment();
|
||
|
|
this.dateTabkey = key;
|
||
|
|
this.calendarCheckedDay = undefined;
|
||
|
|
this.statusActiveType = 'ALL';
|
||
|
|
}
|
||
|
|
|
||
|
|
@action
|
||
|
|
updateDateTabkey = (key) => {
|
||
|
|
this.dateTabkey = key;
|
||
|
|
}
|
||
|
|
|
||
|
|
@action
|
||
|
|
changeDateHandler = (v) => {
|
||
|
|
this.pDate = v;
|
||
|
|
if (v.length == 4)
|
||
|
|
this.pDate1 = new moment().year(v);
|
||
|
|
this.statusActiveType = 'ALL';
|
||
|
|
this.calendarCheckedDay = undefined;
|
||
|
|
}
|
||
|
|
@action
|
||
|
|
init = () => {
|
||
|
|
this.tabkey = '1';
|
||
|
|
this.dateTabkey = '2';
|
||
|
|
this.pDate = new moment().format('YYYY-MM');
|
||
|
|
this.hrmId = undefined;
|
||
|
|
this.hrmName = WeaTools.ls.getJSONObj('theme-account') && WeaTools.ls.getJSONObj('theme-account').username || undefined;
|
||
|
|
this.userRoot = undefined;
|
||
|
|
}
|
||
|
|
|
||
|
|
@action
|
||
|
|
updateUserRoot = (data) => {
|
||
|
|
this.userRoot = data;
|
||
|
|
}
|
||
|
|
|
||
|
|
@action
|
||
|
|
updateHrmId = (v) => {
|
||
|
|
this.hrmId = v;
|
||
|
|
}
|
||
|
|
|
||
|
|
@action
|
||
|
|
updateHrmName = (v) => {
|
||
|
|
this.hrmName = v || WeaTools.ls.getJSONObj('theme-account') && WeaTools.ls.getJSONObj('theme-account').username || undefined;
|
||
|
|
}
|
||
|
|
|
||
|
|
@action
|
||
|
|
getTableData = () => {
|
||
|
|
let params = {};
|
||
|
|
if (this.hrmId) params.resourceId = this.hrmId;
|
||
|
|
if (this.pDate) params.typevalue = this.pDate;
|
||
|
|
params.type = this.dateTabkey;
|
||
|
|
params.kqtype = this.stsType;
|
||
|
|
API.getTableData(params).then((datas) => {
|
||
|
|
this.table.getDatas(datas.sessionkey, 1);
|
||
|
|
})
|
||
|
|
}
|
||
|
|
|
||
|
|
@action
|
||
|
|
getData = (cb) => {
|
||
|
|
let params = {};
|
||
|
|
if (this.hrmId) params.resourceId = this.hrmId;
|
||
|
|
if (this.pDate) params.typevalue = this.pDate;
|
||
|
|
params.loaddata = "1";
|
||
|
|
params.type = this.dateTabkey;
|
||
|
|
this.loading = true;
|
||
|
|
if (this.tabkey == '1') {
|
||
|
|
API.getKQReport(params).then((datas) => {
|
||
|
|
if (datas.status == '1') {
|
||
|
|
this.hasRight = true;
|
||
|
|
if (datas.groupitem1) {
|
||
|
|
this.chartOptions.series[0].name = getLabel('16732', "出勤统计");
|
||
|
|
this.chartOptions.series[0].label.normal.formatter = [
|
||
|
|
`{a|${parseFloat(datas.groupitem1.value)}}`,
|
||
|
|
`{b|${datas.groupitem1.name}}`
|
||
|
|
].join('\n')
|
||
|
|
datas.groupitem1.items.forEach((i) => {
|
||
|
|
i.value = parseFloat(i.value);
|
||
|
|
})
|
||
|
|
this.chartOptions.series[0].data = datas.groupitem1.items;
|
||
|
|
}
|
||
|
|
this.groupitem2 = datas.groupitem2.items;
|
||
|
|
this.groupitem2.forEach((item) => {
|
||
|
|
const ic = Util.getIcon(item.type);
|
||
|
|
item.icon = ic.icon;
|
||
|
|
item.color = ic.color;
|
||
|
|
})
|
||
|
|
this.groupitem3 = datas.groupitem3.items;
|
||
|
|
this.groupitem4 = datas.groupitem4.items;
|
||
|
|
cb && cb();
|
||
|
|
} else {
|
||
|
|
this.hasRight = false;
|
||
|
|
}
|
||
|
|
this.loading = false;
|
||
|
|
})
|
||
|
|
} else {
|
||
|
|
API.getKQCarendarReport(params).then((datas) => {
|
||
|
|
if (datas.status == '1') {
|
||
|
|
if (this.dateTabkey == '1') {
|
||
|
|
this.yearData = datas.result;
|
||
|
|
} else {
|
||
|
|
this.calendarData = datas.result;
|
||
|
|
}
|
||
|
|
this.hasRight = true;
|
||
|
|
} else {
|
||
|
|
this.hasRight = false;
|
||
|
|
}
|
||
|
|
this.loading = false;
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
@action
|
||
|
|
getHrmNewWorkflwList = (params = {}) => {
|
||
|
|
API.getHrmNewWorkflwList(params).then((datas) => {
|
||
|
|
this.newWorklist = datas.result;
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|