weaver_trunk_cli/pc4mobx/hrm/stores/outside.js

425 lines
9.9 KiB
JavaScript
Raw Normal View History

2024-12-11 15:32:14 +08:00
import {
observable,
action
} from 'mobx';
import {
fetch,
getTopButtons,
getDropMenuDatas,
getMenusCreationConfig,
componentReset,
exportExcel,
} from '../../hrmAttendance/util/save-time-util.js';
import * as asyncFetch from '../apis/outside.js';
import {
WeaTools
} from 'ecCom';
import moment from 'moment';
import * as API from '../apis/outside';
import isEmpty from 'lodash/isEmpty';
import {
WeaTableNew
} from 'comsMobx';
import {
i18n
} from '../public/i18n';
import {
WeaLocaleProvider
} from 'ecCom';
const getLabel = WeaLocaleProvider.getLabel;
const {
TableStore
} = WeaTableNew;
export class HrmOutside {
title = () => getLabel('82634', "外勤签到");
hrmId = undefined;
leftTitle = () => getLabel('32997', "人员组织");
tabDatas = () => [{
title: getLabel('387101', "时间视图"),
key: "1"
}, {
title: getLabel('387102', "地图视图"),
key: "2"
}, {
title: getLabel('387103', "明细"),
key: "3"
}];
dateTabDatas = () => [{
title: i18n.label.today(),
key: "1"
}, {
title: i18n.label.yesterday(),
key: "2"
}, {
title: i18n.label.tsmth(),
key: "3"
}];
dateTabDatas1 = () => [{
title: i18n.label.today(),
key: "1"
}, {
title: i18n.label.yesterday(),
key: "2"
}];
signTitle = () => getLabel('386501', "同时显示移动端考勤记录");
@observable showSignInfo = '0';
@observable pDate = new moment().format('YYYY-MM-DD');
@observable dateTabkey = '1';
@observable hrmName = WeaTools.ls.getJSONObj('theme-account') && WeaTools.ls.getJSONObj('theme-account').username || undefined;
@observable loading = false;
@observable userRoot = undefined;
@observable hasRight = true;
@observable tabkey = '1';
@observable visible = false;
@observable positionObj = {};
@observable mapData = [];
@observable timeData = [];
@observable table = new TableStore();
@observable dataKey = "";
@observable orgTreeIsMult = '0';
@observable orgTreeCheckedDatas = [];
@observable radioGroupParams = {};
@observable config = [];
@action getRadioGroupConfig() {
fetch({
asyncFetch,
name: 'getSearchCondition',
logic: (cb) => {
const {
condition,
value,
option,
} = cb;
const configfirstrow = {
label: i18n.label.date(),
options: [{
key: '0',
showname: i18n.label.all()
}, {
key: '1',
showname: i18n.label.today(),
selected: true
}, {
key: '2',
showname: i18n.label.tswk()
}, {
key: '3',
showname: i18n.label.tsmth()
}, {
key: '4',
showname: i18n.label.tssn()
}, {
key: '5',
showname: i18n.label.tsyr()
}, {
key: '7',
showname: i18n.label.preMonth()
}, {
key: '8',
showname: i18n.label.preYear()
}, {
key: '6',
showname: i18n.label.dateRange()
}, ],
domkey: ['typeselect'],
selectLinkageDatas: {
'6': {
conditionType: 'RANGEPICKER',
domkey: ['fromDate', 'toDate'],
}
},
labelcol: 4,
fieldcol: 20,
}
condition[0].items.unshift(configfirstrow);
this.config = condition[0].items;
}
});
}
@action onRadioGroupChange = params => {
// this.radioGroupVal = params;
switch (params.dataScope) {
case '1':
if (params.subcomId == null || params.subcomId == '') {
return;
}
break;
case '2':
if (params.deptId == null || params.deptId == '') {
return;
}
break;
case '3':
if (params.resourceId == null || params.resourceId == '') {
return;
}
break;
}
this.getData(params);
}
// config = () => [{
// label: i18n.label.date(),
// options: [{
// key: '0',
// showname: i18n.label.all()
// }, {
// key: '1',
// showname: i18n.label.today(),
// selected: true
// }, {
// key: '2',
// showname: i18n.label.tswk()
// }, {
// key: '3',
// showname: i18n.label.tsmth()
// }, {
// key: '4',
// showname: i18n.label.tssn()
// }, {
// key: '5',
// showname: i18n.label.tsyr()
// }, {
// key: '7',
// showname: i18n.label.preMonth()
// }, {
// key: '8',
// showname: i18n.label.preYear()
// }, {
// key: '6',
// showname: i18n.label.dateRange()
// }, ],
// domkey: ['typeselect'],
// selectLinkageDatas: {
// '6': {
// conditionType: 'RANGEPICKER',
// domkey: ['fromDate', 'toDate'],
// }
// },
// }, {
// label: i18n.label.kqType(),
// options: [{
// key: '0',
// showname: i18n.label.all()
// }, {
// key: '2',
// showname: getLabel('82634', "外勤签到"),
// selected: true
// }, {
// key: '1',
// showname: getLabel('386502', "移动端考勤")
// }, ],
// domkey: ['signtype'],
// }
// , {
// label: 'test',
// options: [{
// key: '0',
// showname: i18n.label.all(),
// selected: true
// }, {
// key: '1',
// showname: '分部',
// }, {
// key: '2',
// showname: '部门',
// }, {
// key: '3',
// showname: '人员',
// } ],
// selectLinkageDatas: {
// '1': {
// conditionType: 'BROWSER',
// browserConditionParam: { type: 164, title:'分部', ...WeaTools.getIconBGC('hrm'), viewAttr: 3 },
// domkey: ['subcompanyid1'],
// },
// '2': {
// conditionType: 'BROWSER',
// browserConditionParam: { type: 4, title:'部门', ...WeaTools.getIconBGC('hrm'), viewAttr: 3 },
// domkey: ['departmentid'],
// },
// '3': {
// conditionType: 'BROWSER',
// browserConditionParam: { type: 1, title:'人员', ...WeaTools.getIconBGC('hrm'), viewAttr: 3 },
// domkey: ['resourceid'],
// }
// },
// domkey: ['targetid'],
// }
// ]
@action
init() {
this.hrmId = undefined;
this.showSignInfo = '0';
this.tabkey = '1';
this.dateTabkey = '1';
this.visible = false;
this.pDate = new moment().format('YYYY-MM-DD');
this.hrmName = WeaTools.ls.getJSONObj('theme-account') && WeaTools.ls.getJSONObj('theme-account').username || undefined;
this.userRoot = undefined;
this.orgTreeIsMult = '0';
this.orgTreeCheckedDatas = [];
}
@action
updateOrgTreeIsMult(v) {
this.orgTreeIsMult = v;
}
@action
updateOrgTreeCheckedDatas(v = []) {
this.orgTreeCheckedDatas = v;
}
@action
updatePosition(obj) {
this.positionObj = obj;
}
@action
updateVisible(v) {
this.visible = v;
}
@action
handlerCheckbox(v) {
this.showSignInfo = v;
// this.getData();
}
@action
changeTab(key) {
this.tabkey = key;
this.dateTabkey = '1';
this.pDate = new moment().format('YYYY-MM-DD');
this.showSignInfo = '0';
if(this.tabkey==3){
this.getRadioGroupConfig();
}
}
@action
changeDate(v1, v2) {
this.pDate = v2;
}
changeDateTab(key) {
this.dateTabkey = key;
const current = new moment();
if (key == 1) {
this.pDate = current.format('YYYY-MM-DD');
} else if (key == 2) {
this.pDate = current.subtract(1, 'days').format('YYYY-MM-DD');
} else {
this.pDate = current.format('YYYY-MM');
}
}
@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
exportExcel(dataKey) {
//this.table.exportAll('',this.title);
this.table.exportAll();
}
getData(params = {}) {
if (this.hrmId) params.resourceId = this.hrmId;
params.loaddata = "1";
this.loading = true;
if (this.tabkey == '3') {
params = {
...params,
...this.radioGroupParams
};
if (!params.typeselect || params.typeselect == '') params.typeselect = 1;
if (!params.signtype || params.signtype == '') params.signtype = 2;
params.cmd = 'detialData';
} else {
params.fromDate = this.pDate;
params.toDate = this.pDate;
params.signtype = this.showSignInfo;
if (this.tabkey == '1') {
params.cmd = 'timeData';
} else if (this.tabkey == '2') {
params.cmd = 'mapData';
}
}
API.getHrmMobileSignInInfo(params).then((datas) => {
if (datas.status == '1') {
this.hasRight = true;
if (this.tabkey == '1') {
this.timeData = datas.result || [];
} else if (this.tabkey == '2') {
this.mapData = datas.result || [];
} else if (this.tabkey == '3') {
this.table.getDatas(datas.sessionkey, 1);
this.dataKey = datas.sessionkey;
}
} else {
this.hasRight = false;
}
this.loading = false;
})
}
handleViewClick = (id) => {
API.getShowSignImg({
id
}).then(datas => {
const {
signImgIds
} = datas;
if (signImgIds) {
const imgPool = signImgIds.split(',').map(id => `/weaver/weaver.file.FileDownload?fileid=${id}`);
const indexNum = 0;
if (window.IMCarousel) {
window.IMCarousel.showImgScanner4Pool(true, imgPool, indexNum, null, window.top);
} else {
loadjs(["/social/js/drageasy/drageasy.js", "/social/js/bootstrap/js/bootstrap.js?v=20171218", "/social/im/js/IMUtil_wev8.js", "/social/js/imcarousel/imcarousel.js"], () => {
window.IMCarousel.showImgScanner4Pool(true, imgPool, indexNum, null, window.top);
});
}
}
})
}
}