weaver_trunk_cli/pc4mobx/hrm/stores/schedulediffreport.js

232 lines
7.9 KiB
JavaScript

import { observable, action } from 'mobx';
import * as API from '../apis/schedulediffreport';
import * as Util from '../util/index';
import cloneDeep from 'lodash/cloneDeep'
import {Modal,message} from 'antd'
import {WeaTableNew,WeaForm} from 'comsMobx'
import { toJS } from 'mobx';
import isEmpty from 'lodash/isEmpty';
const {TableStore} = WeaTableNew;
import {WeaLocaleProvider} from 'ecCom';
import {addContentPath} from '../util/index.js'
const confirm = Modal.confirm;
const getLabel = WeaLocaleProvider.getLabel;
export class HrmScheduleDiffReport {
title = () => getLabel('16559',"考勤报表");
@observable dialogTitle = '考勤明细';
@observable loading = false;
@observable form = new WeaForm();
@observable table = new TableStore();
@observable config = [];
@observable configbak = [];
@observable configall = [];
@observable reportdata = {};
@observable visible = false;
@observable lastname = "";
@observable radiogroupdata = {};
@observable fromDate = '';
@observable toDate = '';
@observable detialexcelurl = '';
@observable selectedKey = '0';
@observable topTab = [];
@action
getSearchCondition(params={}){
this.config = [];
this.configbak = [];
this.configall = [];
API.getSearchCondition(params).then(data=>{
if (data.status == '1') {
let c = cloneDeep(data.conditions);
let tmpCondition = [];
tmpCondition.push(c[0]);
tmpCondition.push(c[1]);
this.configbak = cloneDeep(tmpCondition);
this.configall = data.conditions;
this.config = cloneDeep(tmpCondition);
} else {
message.warning(data.message);
}
}, error=> {
message.warning(error.message);
})
}
@action
setSelectedKey = (key)=>{
this.selectedKey = key;
this.getTableData();
}
updateVisible(v) {
let params = this.radiogroupdata;
let fromDate = this.fromDate || '';
let toDate = this.toDate || '';
let resourceid = params.resourceId || '';
let departmentid = params.departmentId || '';
let subcompanyid = params.subCompanyId || '';
this.selectedKey = '0';
if(fromDate!='' && toDate!=''){
if(fromDate > toDate) {
message.warning(getLabel('386537',"开始日期不能大于结束日期"));
return;
}
if(params.viewscope=='1' && resourceid=="" && departmentid=="" && subcompanyid=="" ){
message.warning(getLabel('386536',"请选择数据范围"));
return;
}
}
this.visible = v;
}
updateDialogTitle() {
this.dialogTitle = "";
if(this.stsType=='SIGININ'){
this.dialogTitle = getLabel('20241',"签到明细");
this.detialexcelurl = "HrmScheduleDiffSignInDetail&tnum=20241";
}else if(this.stsType=='SIGINOUT'){
this.dialogTitle = getLabel('20242',"签退明细");
this.detialexcelurl = "HrmScheduleDiffSignOutDetail&tnum=20242";
}else if(this.stsType=='BELATE'){
this.dialogTitle = getLabel('20088',"迟到明细")
;
this.detialexcelurl = "HrmScheduleDiffBeLateDetail&tnum=20088";
}else if(this.stsType=='LEAVEEARLY'){
this.dialogTitle = getLabel('20089',"早退明细");
this.detialexcelurl = "HrmScheduleDiffLeaveEarlyDetail&tnum=20089";
}else if(this.stsType=='ABSENT'){
this.dialogTitle = getLabel('20090',"旷工明细");
this.detialexcelurl = "HrmScheduleDiffAbsentFromWorkDetail&tnum=20090";
}else if(this.stsType=='NOSIGN'){
this.dialogTitle = getLabel('20091',"漏签明细");
this.detialexcelurl = "HrmScheduleDiffNoSignDetail&tnum=20091";
}else if(this.stsType=='LEAVE'){
this.dialogTitle = getLabel('20092',"请假明细");
this.detialexcelurl = "HrmScheduleDiffLeaveDetail&tnum=20092";
}else if(this.stsType=='EVECTION'){
this.dialogTitle = getLabel('20093',"出差明细");
this.detialexcelurl = "HrmScheduleDiffEvectionDetail&tnum=20093";
}else if(this.stsType=='OUTDAYS'){
this.dialogTitle = getLabel('20094',"公出明细");
this.detialexcelurl = "HrmScheduleDiffOutDetail&tnum=20094";
}else if(this.stsType=='OVERTIME'){
this.dialogTitle = getLabel('33501',"加班明细");
this.detialexcelurl = "HrmScheduleOvertimeWorkDetail&tnum=33501";
}else if(this.stsType=='OTHER'){
this.dialogTitle = getLabel('386409',"考勤异常数据抵冲明细");
this.detialexcelurl = "HrmScheduleDiffOtherDetail&tnum=127655,17463";
}
}
getTableData() {
let params = this.radiogroupdata;
params.kqtype = this.stsType;
params.from = 'schedulediffreport';
params.selectedKey = this.selectedKey;
this.updateDialogTitle();
API.getTableData(params).then((datas)=> {
this.table.getDatas(datas.sessionkey,1);
})
}
getHrmKQReportDetialTabInfo(){
let params = this.radiogroupdata;
params.kqtype = this.stsType;
API.getHrmKQReportDetialTabInfo(params).then((datas)=> {
this.topTab = cloneDeep(datas.tabs);
this.selectedKey = '0';
})
}
getTabTableData(){
API.getTabTableData().then(rs => {
rs.map((result, index) => {
switch (index) {
case 0:
this.getHrmKQReportDetialTabInfo();
break;
case 1:
this.getTableData();
break;
}
})
})
}
exportExcel(){
let params = this.radiogroupdata;
let fromDate = this.fromDate || '';
let toDate = this.toDate || '';
let resourceid = params.resourceId || '';
let departmentid = params.departmentId || '';
let subcompanyid = params.subCompanyId || '';
if(fromDate == '' || toDate == ''){
message.error(getLabel('383565',"请选择日期范围"));
return;
}
if(fromDate!='' && toDate!=''){
if(fromDate > toDate) {
message.warning(getLabel('386537',"开始日期不能大于结束日期"));
return;
}
if(params.viewscope=='1' && resourceid=="" && departmentid=="" && subcompanyid=="" ){
message.warning(getLabel('386536',"请选择数据范围"));
return;
}
}
window.location.href = addContentPath("/hrm/report/schedulediff/HrmScheduleDiffReportExcelE9.jsp?cmd=HrmScheduleDiffReport&tnum=20078"+
"&fromDate="+this.fromDate+"&toDate="+this.toDate+"&resourceId="+resourceid+"&departmentId="+departmentid+
"&subCompanyId="+subcompanyid+"&viewscope="+params.viewscope) ;
}
exportDetialExcel(){
let params = this.radiogroupdata;
let fromDate = this.fromDate || '';
let toDate = this.toDate || '';
let resourceid = params.resourceId || '';
let departmentid = params.departmentId || '';
let subcompanyid = params.subCompanyId || '';
let url = "/hrm/report/schedulediff/HrmScheduleDiffReportExcelE9.jsp?cmd="+this.detialexcelurl+"&fromDate="+this.fromDate+"&toDate="+this.toDate+"&resourceId="+resourceid+"&departmentId="+departmentid+
"&subCompanyId="+subcompanyid+"&viewscope="+params.viewscope+"&selectedKey="+this.selectedKey;
window.location.href = addContentPath(url) ;
}
getReportData(params={}){
if(params.viewscope=='1'){
this.config = this.configall;
let resourceid = params.resourceId || '';
let departmentid = params.departmentId || '';
let subcompanyid = params.subCompanyId || '';
if(resourceid=='' && departmentid=='' && subcompanyid==''){
//message.warning("请选择数据范围");
return false;
}
}else{
this.config = this.configbak;
params.resourceId = '';
params.departmentId = '';
params.subCompanyId = '';
}
this.radiogroupdata = params;
this.loading=true;
API.getReportData(params).then(data=>{
if (data.status == '1') {
this.reportdata = data.reportdata;
this.fromDate = data.fromDate;
this.toDate = data.toDate;
this.loading=false;
} else {
message.warning(data.message);
}
}, error=> {
message.warning(error.message);
})
}
}