import { observable, action, } from 'mobx'; import * as Api from '../../apis/hrmgroup'; import { WeaForm, WeaTableNew, } from 'comsMobx'; import { message, Modal, } from 'antd'; import * as mobx from 'mobx'; import { i18n, } from '../../hrm/i18n'; import { WeaLocaleProvider, } from 'ecCom'; const getLabel = WeaLocaleProvider.getLabel; const toJS = mobx.toJS; const { TableStore, } = WeaTableNew; const confirm = Modal.confirm; import { WeaLogView, } from 'comsMobx'; const { LogStore, } = WeaLogView; import HrmImportCommon from './importCommon.js'; export default class WeaHrmGroupStore { @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 = [0, 100]; @observable isImportStop = false; @observable hasAuthority = false; @observable date = ''; @observable logView = { visible: false, logSmallType: '', targetId: '', logStore: new LogStore(), } @observable showCanceled = false; @observable hrmImportCommon = new HrmImportCommon(); @observable hasLogRight = false; setSourceStore = () => { this.hrmImportCommon.setSourceStore(this); } @action toggleLog = (params) => { const { visible, logSmallType, targetId, } = params; ['visible', 'logSmallType', 'targetId'].map((v) => { this.logView[v] = eval(v) === undefined ? '' : eval(v); }); } @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); this.hasLogRight = data.hasRight; } 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', }; this.condition3 = []; this.form3 = new WeaForm(); } if (arg == '2') { params.groupid = this.groupid; } if (arg == '3') { params = { cmd: 'importbase', }; this.condition4 = []; this.form4 = new WeaForm(); } if (arg == '4') { params = { cmd: 'importmember', }; this.condition5 = []; this.form5 = new WeaForm(); } if (arg == '5') { params = { cmd: 'share', }; this.condition6 = []; this.form6 = new WeaForm(); } Api.getFormCondition(params).then((data) => { if (arg == '1' || arg == '2') { this.condition3 = data.condition; this.form3.initFormFields(data.condition); } if (arg == '1') { this.setNewDialogStatus(true); } if (arg == '2') { // this.editTabKey = '0'; 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') { this.tableStore1 = new TableStore(); params = { cmd: 'base', showCanceled: this.showCanceled ? '1' : '0', ...this.form1.getFormParams(), }; } if (arg == '2') { this.tableStore2 = new TableStore(); params = { cmd: 'member', groupid: this.groupid, ...this.form2.getFormParams(), }; } if (arg == '3') { this.tableStore3 = new TableStore(); 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') { this.tableStore4 = new TableStore(); 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('必填信息不完整!'); // return; // } 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) || (sharetype == '3' && !params.did) || (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(i18n.message.requiredIsNotFull()); return false; } if (!(sharetype == '1' || sharetype == '7') && (params.seclevel === undefined || params.seclevelTo === undefined)) { message.warning(i18n.message.requiredIsNotFull()); 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(i18n.message.canLowerThanZero()); return false; } } let result = this.dataFilter(toJS(this.rowIdArr), toJS(this.orderArr)); params = { cmd: 'saveDspOrder', dspOrder: result, }; } if (arg == '1' || arg == '2' || arg == '9') { this.form3.validateForm().then((f) => { if (f.isValid) { 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 == '9') { this.setEditDialogStatus(false); this.getTableInfo('1'); } } else { if (data.message) message.warning(data.message); return false; } }); } else { f.showErrors(); this.setDate({ date: new Date(), }); } }); } else { 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 == '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 == '10') { this.setEditDialogStatus(false); this.getTableInfo('1'); this.tabReset(); } } else { if (data.message) message.warning(data.message); return false; } }); } } setDate = (date) => { this.date = date; } 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') { data.message && message.success(data.message); this.getTableInfo('1'); arg == '2' && this.getTableInfo('2'); 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(i18n.message.importSuccess()); } 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: i18n.confirm.closeDialogIfunfinished(), 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; }, }); } getButtons() { return []; } getRightMenu() { const dropMenuDatas = [{ key: '0', content: i18n.button.import(), icon: , }, { key: '1', content: i18n.button.create(), icon: , }, { key: '2', content: i18n.button.multiDelete(), icon: , }]; if (this.hasLogRight) { dropMenuDatas.push({ key: '3', content: getLabel('83', '日志'), icon: , onClick: () => { this.toggleLog({ visible: true, logSmallType: '3002', }); }, }); } return dropMenuDatas; } onRightMenuClick(key) { key == '0' && this.getForm('3'); key == '1' && this.getForm('1'); key == '2' && this.showConfirm(); } showConfirm() { let _this = this; confirm({ title: i18n.confirm.defaultTitle(), content: i18n.confirm.batchDeleteConfirm(), okText: i18n.button.ok(), cancelText: i18n.button.cancel(), onOk() { _this.ok(); }, onCancel() { return false; }, }); } ok() { this.tableStore1.selectedRowKeys.map((item) => { this.setGroupId(item); this.delete('1', 'batch', 'last'); }); } setSuggestDialogStatus(bool) { this.isSuggestDialogShow = bool; this.hasSuggestHint(); this.form7.reset(); this.suggestTabKey = '3'; } 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(i18n.message.canLowerThanZero()); } 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 = [0, 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; } refreshTable=() => { if (this.isEditDialogShow) { this.getTableInfo('2'); } else { this.getTableInfo('1'); } } }