weaver_trunk_cli/pc4mobx/hrm/stores/group.js

966 lines
20 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import {
observable,
action
} from 'mobx';
import * as Api from '../apis/hrmgroup';
import {
WeaForm
} from 'comsMobx';
import {
WeaTableNew
} from 'comsMobx'
import {
message,
Modal
} from 'antd'
import * as mobx from 'mobx';
import {i18n} from '../public/i18n';
import {WeaLocaleProvider} from 'ecCom';
const getLabel = WeaLocaleProvider.getLabel;
const toJS = mobx.toJS;
const {
TableStore
} = WeaTableNew;
const confirm = Modal.confirm;
export class HrmGroup {
@observable editTabKey = '0';
@observable suggestTabKey = '3';
@observable condition1 = [];
@observable condition2 = [];
@observable condition3 = [];
@observable condition4 = [];
@observable condition5 = [];
@observable condition6 = [];
@observable condition7 = [];
@observable isSuggestDialogShow = false;
@observable isPanelOneShow = false;
@observable isPanelTwoShow = false;
@observable isPanelThreeShow = false;
@observable isNewDialogShow = false;
@observable isEditDialogShow = false;
@observable isMadalShow = false;
@observable isImportBaseDialogShow = false;
@observable isImportMemberDialogShow = false;
@observable isShareDialogShow = false;
@observable isImportInfoDialogShow = false;
@observable isImportHistoryDialogShow = false;
@observable isImportMemInfoDialogShow = false;
@observable form1 = new WeaForm();
@observable form2 = new WeaForm();
@observable form3 = new WeaForm();
@observable form4 = new WeaForm();
@observable form5 = new WeaForm();
@observable form6 = new WeaForm();
@observable form7 = new WeaForm();
@observable tableStore1 = new TableStore();
@observable tableStore2 = new TableStore();
@observable tableStore3 = new TableStore();
@observable tableStore4 = new TableStore();
@observable groupid = '';
@observable memberid = '';
@observable typeid = '';
@observable excelfile = '';
@observable list = [];
@observable upStatus = '';
@observable importStatus = '';
@observable currentIndex = '0';
@observable logFilePath = '';
@observable loading = true;
@observable columns = [];
@observable dataSource = [];
@observable action = {};
@observable delFileNum = '';
@observable suggestid = '';
@observable hasTrumpet = false;
@observable hasHint = false;
@observable height = 510;
@observable orderArr = [];
@observable rowIdArr = [];
@observable valArr = [];
@observable checkBoxVal = 0;
@observable hasWeaTop = false;
@observable selectvalue = '1';
@observable scopeValue = [10, 100];
@observable isImportStop = false;
@observable hasAuthority = false;
@observable showCanceled = false;
@action
updateFormFields = (arg, val) => {
if (arg == '1') this.form1.updateFields({
name: {
value: val
}
});
if (arg == '2') this.form2.updateFields({
resourcename: {
value: val
}
});
if (arg == '3') this.form4.updateFields({
excelfile: {
value: val
}
});
if (arg == '4') this.form5.updateFields({
excelfile: {
value: val
}
});
if (arg == '5') this.form7.updateFields({
suggesttitle: {
value: val
}
});
if (arg == '6') this.form6.updateFields({
seclevel__seclevelTo: {
value: val
}
});
}
tabClick = (key) => {
this.editTabKey = key;
if (key == '0') {
this.getPanelForm('1');
}
if (key == '1') {
this.getPanelForm('2');
this.getTableInfo('2');
}
if (key == '2') {
this.getTableInfo('3');
}
}
suggestTabClick = (key) => {
this.suggestTabKey = key;
this.getTableInfo('7');
}
tabReset = () => {
this.editTabKey = '0';
}
getPanelForm = (arg) => {
let params;
if (arg == '1') params = {
cmd: 'base'
};
if (arg == '2') params = {
cmd: 'member'
};
if (arg == '3') params = {
cmd: 'suggest'
};
Api.getSearchCondition(params).then((data) => {
if (arg == '1') {
this.condition1 = data.condition;
this.form1.initFormFields(data.condition);
}
if (arg == '2') {
this.condition2 = data.condition;
this.form2.initFormFields(data.condition);
}
if (arg == '3') {
this.condition7 = data.condition;
this.form7.initFormFields(data.condition);
}
});
}
getForm = (arg) => {
let params;
if (arg == '1' || arg == '2') {
params = {
cmd: 'base'
};
}
if (arg == '2') {
params.groupid = this.groupid;
}
if (arg == '3') {
params = {
cmd: 'importbase'
};
}
if (arg == '4') {
params = {
cmd: 'importmember'
};
}
if (arg == '5') {
params = {
cmd: 'share'
};
}
Api.getFormCondition(params).then((data) => {
if (arg == '1' || arg == '2') {
this.form3 = new WeaForm();
this.condition3 = data.condition;
this.form3.initFormFields(data.condition);
}
if (arg == '1') {
this.setNewDialogStatus(true);
}
if (arg == '2') {
this.setNewDialogStatus(false);
this.setEditDialogStatus(true);
}
if (arg == '3') {
this.condition4 = data.condition;
this.form4.initFormFields([data.condition[0]]);
this.setImportBaseDialogStatus(true);
}
if (arg == '4') {
this.condition5 = data.condition;
this.form5.initFormFields([data.condition[0]]);
this.setImportMemberDialogStatus(true);
}
if (arg == '5') {
data.condition[0].items = this.putElementToLast('rolelevel', data.condition[0].items);
this.condition6 = data.condition;
this.form6.initFormFields(data.condition);
this.setShareDialogStatus(true);
}
})
}
changeShowAll = () => {
this.showCanceled = !this.showCanceled;
this.getTableInfo("1");
}
doCancel = (params = {}) => {
let _this = this;
confirm({
title: i18n.confirm.defaultTitle(),
content: i18n.label.sealConfirm(),
okText: i18n.button.ok(),
cancelText: i18n.button.cancel(),
onOk() {
Api.doCancel(params).then(data => {
if (data.status == '1') {
_this.getTableInfo("1");
// message.success(i18n.message.cancelSuccess());
} else {
message.warning(data.message);
}
}, error => {
message.warning(error.message);
})
},
onCancel() {
return false;
},
});
}
doISCanceled = (params = {}) => {
let _this = this;
confirm({
title: i18n.confirm.defaultTitle(),
content: i18n.label.unsealConfirm(),
okText: i18n.button.ok(),
cancelText: i18n.button.cancel(),
onOk() {
Api.doISCanceled(params).then(data => {
if (data.status == '1') {
_this.getTableInfo("1");
// message.success(i18n.message.doISCancelSuccess());
} else {
message.warning(data.message);
}
}, error => {
message.warning(error.message);
})
},
onCancel() {
return false;
},
});
}
getTableInfo = (arg) => {
let params;
if (arg == '1') {
params = {
cmd: 'base',
showCanceled : this.showCanceled ? '1' : '0',
...this.form1.getFormParams()
};
}
if (arg == '2') {
params = {
cmd: 'member',
groupid: this.groupid,
...this.form2.getFormParams()
};
}
if (arg == '3') {
params = {
cmd: 'share',
groupid: this.groupid
};
}
if (arg == '4') {
params = {
cmd: 'importbaseresult',
currentIndex: this.currentIndex
};
}
if (arg == '5') {
params = {
cmd: 'importhistory',
importtype: 'group'
};
}
if (arg == '6') {
params = {
cmd: 'importmemberresult',
currentIndex: this.currentIndex
};
}
if (arg == '7') {
params = {
cmd: 'suggest',
status: (parseInt(this.suggestTabKey) - 3).toString(),
...this.form7.getFormParams()
};
}
Api.getSearchResult(params).then((data) => {
if (data.status == '-1' && arg !== '5') {
if (data.message) message.warning(data.message);
this.loading = false;
return false;
}
if (data.status == '-1' && arg == '5') {
this.setAuthorityStatus(false);
this.loading = false;
return false;
}
this.setAuthorityStatus(true);
if (arg == '1') {
this.tableStore1.getDatas(data.sessionkey, 1);
}
if (arg == '2') {
this.tableStore2.getDatas(data.sessionkey, 1);
}
if (arg == '3') {
this.tableStore3.getDatas(data.sessionkey, 1);
}
if (arg == '4' || arg == '6') {
let is = data.importStatus;
this.importStatus = is;
if (is == 'over' && data.logFilePath) {
this.logFilePath = data.logFilePath;
}
if (data.items) {
this.dataSource = this.dataSource.concat(data.items);
this.currentIndex = this.dataSource.length;
}
this.columns = data.columns;
}
if (arg == '5') {
data.columns[0].width = '40%';
data.columns[1].width = '40%';
data.columns[2].width = '20%';
if (data.items.length == 0) this.loading = false;
this.columns = data.columns;
this.dataSource = data.items;
this.action = data.action;
}
if ((arg == '4' || arg == '5' || arg == '6') && data.items && data.items.length > 0) {
this.loading = false;
}
if (arg == '7') {
this.tableStore4.getDatas(data.sessionkey, 1);
}
})
}
save = (arg) => {
let params;
if (arg == '1' || arg == '2' || arg == '9') {
params = this.form3.getFormParams();
if (!params.name) {
message.warning(getLabel('386497',"必填信息不完整!"));
return false;
}
params = {
cmd: 'base',
...params
};
}
if (arg == '9') {
params = {
groupid: this.groupid,
...params
};
}
if (arg == '3') {
params = {
cmd: 'member',
groupid: this.groupid,
members: this.memberid
};
}
if (arg == '4') {
params = this.form6.getFormParams();
let sharetype = params.sharetype;
let jobtitlelevel = params.jobtitlelevel;
if ((sharetype == '2' || sharetype == '3' || sharetype == '4' || sharetype == '8' || sharetype == '5') && (!('seclevel' in params) || !('seclevelTo' in params))) {
params.seclevel = this.scopeValue[0];
params.seclevelTo = this.scopeValue[1];
}
if ((sharetype == '1' && !params.rsid) || (sharetype == '2' && (!params.sbid || params.seclevel == undefined || params.seclevelTo == undefined)) || (sharetype == '3' && (!params.did || params.seclevel == undefined || params.seclevelTo == undefined)) || (sharetype == '4' && !params.rid) || (sharetype == '7' && !params.jobtitle) || (sharetype == '7' && jobtitlelevel == '1' && !params.jobtitledepartment) || (sharetype == '7' && jobtitlelevel == '2' && !params.jobtitlesubcompany) || (sharetype == '8' && !params.customid)) {
message.warning(getLabel('386497',"必填信息不完整!"));
return false;
}
params = {
cmd: 'share',
groupid: this.groupid,
...params,
'alllevel': this.checkBoxVal,
'rolelevel': (parseInt(this.selectvalue) - 1).toString()
};
}
if (arg == '5') {
params = {
cmd: 'importbase',
importtype: 'group',
creater: '',
...this.form4.getFormParams()
};
}
if (arg == '6') {
params = {
cmd: 'importmember',
groupid: this.groupid,
...this.form5.getFormParams()
};
}
if (arg == '5' || arg == '6') {
if (this.importStatus == 'over') this.importStatusReset();
if (this.isImportStop) this.importStopReset();
setTimeout(() => this.timer(arg), 1000);
}
if (arg == '7') {
params = {
cmd: 'doAdd',
id: this.suggestid
};
}
if (arg == '8') {
params = {
cmd: 'doChange',
id: this.suggestid
};
}
if (arg == '10') {
let arr = this.dataFilter(toJS(this.rowIdArr), toJS(this.valArr));
for (let i = 0; i < arr.length; i++) {
if (parseInt(arr[i]) < 0) {
message.warning(getLabel('386498',"排序值不能小于0"));
return false;
}
}
let result = this.dataFilter(toJS(this.rowIdArr), toJS(this.orderArr));
params = {
cmd: 'saveDspOrder',
dspOrder: result
};
}
Api.saveForm(params).then((data) => {
if (data.status == '1') {
if (data.message) message.success(data.message);
if (data.groupid) {
this.groupid = data.groupid;
}
if (arg == '1' || arg == '2') {
this.setNewDialogStatus(false);
this.getTableInfo('1');
}
if (arg == '2') {
this.setEditDialogStatus(true);
this.getForm('2');
}
if (arg == '3') {
this.getTableInfo('1');
this.getTableInfo('2');
}
if (arg == '4') {
this.setShareDialogStatus(false);
this.getTableInfo('3');
this.shareFormReset();
}
if (arg == '7') {
this.getTableInfo('7');
this.getTableInfo('1');
this.getTableInfo('2');
}
if (arg == '8') {
this.getTableInfo('7');
}
if (arg == '9') {
this.setEditDialogStatus(false);
this.getTableInfo('1');
}
if (arg == '10') {
this.setEditDialogStatus(false);
this.getTableInfo('1');
}
} else {
if (data.message) message.warning(data.message);
return false;
}
})
}
putElementToLast = (domkey, arr) => {
let index = this.getIndex(domkey, arr);
if (index) {
let ele = arr.splice(index, 1);
arr.push(ele[0]);
} else {
return false;
}
return arr;
}
getIndex = (domkey, arr) => {
let index;
for (let i = 0; i < arr.length; i++) {
if (domkey == arr[i].domkey[0]) {
index = i;
}
}
return index;
}
delete = (arg, tag1, tag2) => {
let params;
if (arg == '1') {
params = {
cmd: 'base',
groupid: this.groupid
};
}
if (arg == '2') {
params = {
cmd: 'member',
groupid: this.groupid,
id: this.memberid
};
}
if (arg == '3') {
params = {
cmd: 'share',
groupid: this.groupid,
id: this.typeid
};
}
if (arg == '4') {
params = {
cmd: 'importhistory',
filename: this.delFileNum
}
}
if (arg == '5') {
params = {
cmd: 'doDel',
id: this.suggestid
}
}
Api.deleteTableRow(params).then((data) => {
if (tag1 == 'batch' && tag2 == 'last') {
if (data.status == '1') {
if (data.message) message.success(data.message);
this.getTableInfo('1');
if (arg == '2') {
this.getTableInfo('2');
}
if (arg == '3') {
this.getTableInfo('3');
}
} else {
if (data.message) message.warning(data.message);
return false;
}
}
if (tag1 !== 'batch' && data.status == '1') {
if (data.message) message.success(data.message);
this.getTableInfo('1');
if (arg == '2') {
this.getTableInfo('2');
}
if (arg == '3') {
this.getTableInfo('3');
}
if (arg == '4') {
this.getTableInfo('5');
}
if (arg == '5') {
this.getTableInfo('7');
this.getTableInfo('2');
}
} else {
if (data.message) message.warning(data.message);
return false;
}
})
}
hasSuggestHint = () => {
let params = {
cmd: 'isHasSuggest'
};
Api.getSearchResult(params).then((data) => {
if (data.isHas == 1) {
this.setTrumpet(true);
this.getPanelForm('3');
this.getTableInfo('7');
} else {
this.setTrumpet(false);
}
if (data.isHasNew == 1) {
this.setHint(true);
} else {
this.setHint(false);
}
})
}
timer = (arg) => {
let t = setInterval(() => {
if (this.importStatus == 'over') {
clearInterval(t);
this.importStatusReset();
this.currentIndexReset();
if (!this.isImportStop) {
message.success(getLabel('386988',"导入完成!"));
}
this.getTableInfo('2');
this.getTableInfo('1');
return false;
}
arg == '5' ? this.getTableInfo('4') : this.getTableInfo('6');
}, 1000);
}
dataFilter = (arr, _arr) => {
let _arr_ = [];
for (let i = 0; i < arr.length; i++) {
if (arr.indexOf(arr[i]) == arr.lastIndexOf(arr[i])) {
if (_arr_.indexOf(_arr[i]) == -1) {
_arr_.push(_arr[i]);
}
} else {
let index = arr.lastIndexOf(arr[i]);
if (_arr_.indexOf(_arr[index]) == -1) {
_arr_.push(_arr[index]);
}
}
}
return _arr_;
}
showConfirm = (arg, bool) => {
let _this = this;
confirm({
title: i18n.confirm.defaultTitle(),
content: getLabel('386499',"文件导入未完成,您确定要关闭当前弹出框吗?"),
okText: i18n.button.ok(),
cancelText: i18n.button.cancel(),
onOk() {
if (arg == '1') _this.isImportInfoDialogShow = false;
if (arg == '2') _this.isImportMemInfoDialogShow = false;
_this.loadingReset();
_this.colAndDsReset();
_this.logFilePathReset();
if (_this.importStatus == 'importing') {
_this.importStatus = 'over';
_this.setImportStopStatus(true);
}
},
onCancel() {
return false;
},
});
}
setSuggestDialogStatus = (bool) => {
this.isSuggestDialogShow = bool;
this.hasSuggestHint();
this.form7.reset();
}
setPanelOneStatus = (bool) => {
this.isPanelOneShow = bool;
}
setPanelTwoStatus = (bool) => {
this.isPanelTwoShow = bool;
}
setPanelThreeStatus = (bool) => {
this.isPanelThreeShow = bool;
}
setNewDialogStatus = (bool) => {
this.isNewDialogShow = bool;
}
setEditDialogStatus = (bool) => {
this.isEditDialogShow = bool;
this.form2.reset();
}
setGroupId = (groupid) => {
this.groupid = groupid;
}
setMemberId = (memberid) => {
this.memberid = memberid;
}
setTypeId = (typeid) => {
this.typeid = typeid;
}
setMadalStatus = (bool) => {
this.isMadalShow = bool;
}
setWeaTopStatus = (bool) => {
this.hasWeaTop = bool;
}
setImportBaseDialogStatus = (bool) => {
this.isImportBaseDialogShow = bool;
if (!bool) {
this.upStatusReset();
this.excelfileReset();
this.listReset();
}
}
setImportMemberDialogStatus = (bool) => {
this.isImportMemberDialogShow = bool;
if (!bool) {
this.upStatusReset();
this.excelfileReset();
this.listReset();
}
}
setShareDialogStatus = (bool) => {
this.isShareDialogShow = bool;
this.shareFormReset();
}
setImportInfoDialogStatus = (bool) => {
if (bool) {
this.isImportInfoDialogShow = true;
} else {
if (this.importStatus == 'importing') {
this.showConfirm('1', false);
} else {
this.isImportInfoDialogShow = false;
this.importStatus = 'over';
this.setImportStopStatus(false);
this.loadingReset();
this.colAndDsReset();
this.logFilePathReset();
}
}
}
setImportHistoryDialogStatus = (bool) => {
this.isImportHistoryDialogShow = bool;
if (!bool) {
this.loadingReset();
this.colAndDsReset();
this.actionReset();
}
}
setImportMemInfoDialogStatus = (bool) => {
if (bool) {
this.isImportMemInfoDialogShow = true;
} else {
if (this.importStatus == 'importing') {
this.showConfirm('2', false);
} else {
this.isImportMemInfoDialogShow = false;
this.importStatus = 'over';
this.setImportStopStatus(false);
this.loadingReset();
this.colAndDsReset();
this.logFilePathReset();
}
}
}
setImportStopStatus = (bool) => {
this.isImportStop = bool;
}
setExcelfile = (excelfile) => {
this.excelfile = excelfile;
}
setList = (list) => {
this.list = list;
}
setUpStatus = (upStatus) => {
this.upStatus = upStatus;
}
setDelFileNum = (delFileNum) => {
this.delFileNum = delFileNum;
}
setSuggestId = (suggestid) => {
this.suggestid = suggestid;
}
setTrumpet = (bool) => {
this.hasTrumpet = bool;
}
setHint = (bool) => {
this.hasHint = bool;
}
setAuthorityStatus = (bool) => {
this.hasAuthority = bool;
}
setDsporderArr = (val, rowData) => {
if (val < 0) {
message.warning(getLabel('386498',"排序值不能小于0"));
}
this.rowIdArr.push(rowData.id);
this.orderArr.push(rowData.id + '-' + val);
this.valArr.push(val);
}
setImportStatus = (status) => {
this.importStatus = status;
}
setCheckBoxVal = (val) => {
this.checkBoxVal = val;
}
setSelectValue = (val) => {
this.selectvalue = val;
}
setScopeValue = (scopeValue) => {
this.scopeValue = scopeValue;
this.updateFormFields('6', scopeValue);
}
loadingReset = () => {
this.loading = true;
}
importStatusReset = () => {
this.importStatus = '';
}
colAndDsReset = () => {
this.columns = [];
this.dataSource = [];
}
actionReset = () => {
this.action = {};
}
upStatusReset = () => {
this.upStatus = '';
}
logFilePathReset = () => {
this.logFilePath = '';
}
currentIndexReset = () => {
this.currentIndex = '0';
}
excelfileReset = () => {
this.excelfile = '';
}
listReset = () => {
this.list = [];
}
selectValueReset = () => {
this.selectvalue = '1';
}
scopeValueReset = () => {
this.scopeValue = [10, 100];
}
checkBoxValReset = () => {
this.checkBoxVal = 0;
}
shareFormReset = () => {
this.form6.reset();
this.form6.updateFields({
sharetype: {
value: '1'
}
});
this.checkBoxValReset();
this.selectValueReset();
this.scopeValueReset();
}
importStopReset = () => {
this.isImportStop = false;
}
changeHeight = (height) => {
this.height = height;
}
}