import { observable, action } from 'mobx'; import * as mobx from 'mobx'; import * as Api from '../apis/job'; // 引入API接口文件 import { WeaForm } from 'comsMobx'; import { WeaTableNew } from 'comsMobx'; import { Modal, message, } from 'antd' import { i18n } from '../public/i18n'; import { findIndex } from 'lodash'; import { WeaLocaleProvider } from 'ecCom' const toJS = mobx.toJS; const { TableStore } = WeaTableNew; const getLabel = WeaLocaleProvider.getLabel; export class JobStore { @observable tableStore = new TableStore(); @observable topMenu = [] @observable rightMenu = []; @observable dataSource = []; @observable columns = []; @observable loading = true; @observable dialogLoading = true; @observable isEdit = true; @observable nEdialogTitle = ''; @observable searchCondition = []; @observable condition = []; @observable copyCondition = []; @observable mergeCondition = []; @observable isPanelShow = false; //高级搜索面板 @observable form = new WeaForm(); @observable form1 = new WeaForm(); //新增主表表单 @observable form2 = new WeaForm(); //复制表单 合并表单 @observable jobTitleName = ''; @observable conditionNum = 6; @observable ids = ''; //选择行id @observable id = ''; //页面跳转参数id @observable searchConditionLoading = true; @observable visible = false; @observable newVisible = false; //新增弹窗 @observable jobId = ''; @observable selectedRowKeys = []; @observable date = ''; @observable init = true; //是否首次加载 @observable total = ''; @observable current = 1; @observable pageSize = 10; @observable sortParams = []; @observable defaultShowLeft = true; @observable companysId = 1 @observable hasRight = ''; @observable key = ''; @observable key1 = ''; @observable selectTreeNodeInfo; saveAndSetting = false; @observable jobtitleVisible = false; @action initData() { this.getHasRight(); this.refresh(); // this.getCopyForm(); // this.getMergeForm(); } @action getTableInfo() { this.setLoading(true); let params = { ...this.selectTreeNodeInfo, current: this.current, pageSize: this.pageSize, sortParams: this.sortParams } if (this.isEmptyObject(this.form.getFormParams())) { params = { ...params, jobTitleName: this.jobTitleName, }; } else { params = { ...params, ...this.form.getFormParams(), }; } Api.getSearchList(params).then(response => { return response.json() }).then(res => { if (res.code === 200) { this.setHasRight(res.data.hasRight); res.data.pageInfo.columns && this.setColumns(res.data.pageInfo.columns); this.setTotal(res.data.pageInfo.total); res.data.pageInfo.list && this.setDataSource(res.data.pageInfo.list); this.setLoading(false); this.setInit(false); } else { message.warning(res.msg); } }).catch(error => { message.warning(error.msg); }) } @action("leftTree事件") doSearch(params) { this.selectTreeNodeInfo = params; this.setCurrent(1); this.setPageSize(10); this.setInit(true); this.getTableInfo(); } @action("联查人员") getHrmTable(id) { let params = { jobId: id } this.tableStore = new TableStore(); Api.getHrmListByJobId(params).then(res => { if (res.code === 200) { res.data.datas && this.tableStore.getDatas(res.data.datas, 1); } else { message.warning(res.msg); } }, error => { message.warning(error.msg); }) } @action("删除") delete() { let params = { ids: this.ids }; Api.deleteTableData(params).then(response => { return response.json() }).then(data => { if (data.code === 200) { message.success(i18n.message.deleteSuccess()); this.setSelectedRowKeys([]); this.getTableInfo(); } else { message.warning(data.msg); } }).catch(error => { message.warning(error.msg); }) } @action("刷新") refresh() { Api.refresh().then(res => { if (res.code === 200) { this.getTableInfo(); message.success(getLabel(547202,'数据刷新成功')); } else { message.warning(res.msg); } }, error => { message.warning(error.msg); }) } updateForbiddenTag(checked, id) { let params = { forbiddenTag: checked, id: id } Api.updateForbiddenTag(params).then(response => { return response.json() }).then(data => { if (data.code === 200) { message.success(data.msg, 1); this.getTableInfo(); } else { message.warning(data.msg); } }).catch(error => { message.warning(error.msg); }) } getSearchCondition() { this.setScLoadingStatus(true); Api.getAdvanceSearchCondition().then(res => { if (res.code === 200) { this.setScLoadingStatus(false); res.data.conditions && this.setSearchCondition(res.data.conditions); res.data.conditions && this.form.initFormFields(res.data.conditions); } else { message.warning(res.msg); } }, error => { message.warning(error.msg); }) } getJobForm() { this.setDialogLoadingStatus(true); Api.getJobForm(this.selectTreeNodeInfo).then(res => { if (res.code === 200) { this.setDialogLoadingStatus(false); if(res.data.condition) { let condition = this.processCondition(res.data.condition) this.setCondition(condition); this.form1.initFormFields(condition); } } else { message.warning(res.msg); } }, error => { message.warning(error.msg); }) } processCondition = (condition) => { condition.map(c => c.items.map(item => { if (item.domkey[0] === "ec_jobTitle") { item.otherParams = { addOnClick: () => { this.setJobtitleVisible(true); } } } })); return condition; } @action("复制表单") getCopyForm() { let params = {}; Api.getCopyForm(params).then(res => { if (res.code === 200) { res.data && this.setCopyCondition(res.data); } else { message.warning(res.msg); } }, error => { message.warning(error.msg); }) } @action("合并表单") getMergeForm() { Api.getMergeForm().then(res => { if (res.code === 200) { res.data && this.setMergeCondition(res.data); } else { message.warning(res.msg); } }, error => { message.warning(error.msg); }) } save() { let params = { ...this.form1.getFormParams() }; this.form1.validateForm().then(f => { if (f.isValid) { Api.add(params).then(response => { return response.json() }).then(data => { if (data.code === 200) { message.success(data.msg); this.getTableInfo(); this.setNewVisible(false); this.saveAndSetting && window.open(`/spa/organization/static/index.html#/main/organization/jobExtend/${data.data}`, "_blank") } else { message.warning(data.msg); } }).catch(error => { message.warning(error.msg); }) } else { f.showErrors(); this.setDate(new Date()); } }); } copy() { let params = { ids: this.ids, ...this.form2.getFormParams() }; Api.copy(params).then(response => { return response.json() }).then(data => { if (data.code === 200) { message.success(data.msg); this.getTableInfo(); this.setSelectedRowKeys([]); } else { message.error(data.msg); } }).catch(error => { message.warning(error.msg); }) } merge(id) { let params = { id: id, ...this.form2.getFormParams() }; Api.merge(params).then(response => { return response.json() }).then(data => { if (data.code === 200) { message.success(data.msg); this.getTableInfo(); } else { message.error(data.msg); } }).catch(error => { message.warning(error.msg); }) } @action getHasRight() { Api.getHasRight().then(res => { if (res.code === 200) { res.data.rightMenu && this.setRightMenu(res.data.rightMenu); res.data.topMenu && this.setTopMenu(res.data.topMenu); } else { message.warning(res.msg); } }, error => { message.warning(error.msg); }) } updateFields(val) { this.form.updateFields({ jobTitleName: { value: val } }); } setSearchCondition(condition) { this.searchCondition = condition; } setScLoadingStatus(bool) { this.searchConditionLoading = bool; } setPanelStatus(bool) { this.isPanelShow = bool; bool && this.getSearchCondition(); if (!bool) { this.scLoadingReset(); } } setJobName(val) { this.jobTitleName = val; } setJobtitleVisible(val) { this.jobtitleVisible = val; } isEmptyObject(obj) { for (let key in obj) { return false; } return true; } setIds(ids) { this.ids = ids; } setId(id) { this.id = id; } scLoadingReset() { this.searchConditionLoading = true; } formReset() { this.form1 = new WeaForm(); } setVisible(bool) { this.visible = bool; } setDialogLoadingStatus(bool) { this.dialogLoading = bool; } setSearchCondition(searchCondition) { this.searchCondition = searchCondition; } setJobId(jobId) { this.jobId = jobId; } setDate(date) { this.date = date; } setTopMenu(topMenu) { this.topMenu = topMenu; } setRightMenu(rightMenu) { this.rightMenu = rightMenu; } setDataSource(dataSource) { this.dataSource = dataSource; } setColumns(columns) { this.columns = columns } setSelectedRowKeys(selectedRowKeys) { this.selectedRowKeys = selectedRowKeys; } setLoading(bool) { this.loading = bool; } setNeDialogTitle(title) { this.nEdialogTitle = title } setCondition(condition) { this.condition = condition; } setCopyCondition(copyCondition) { this.copyCondition = copyCondition; } setNewVisible(bool) { this.formReset(); this.newVisible = bool; } setTotal(total) { this.total = total; } setCurrent(current) { this.current = current; } setPageSize(pageSize) { this.pageSize = pageSize; } setInit(bool) { this.init = bool; } setHasRight(bool) { this.hasRight = bool; } setSortParams(sorter) { this.sortParams = []; sorter.order && this.sortParams.push({ orderkey: sorter.field, sortOrder: sorter.order }) } setSaveAndSetting(bool) { this.saveAndSetting = bool; } setMergeCondition(mergeCondition) { this.mergeCondition = mergeCondition; } setKey(key) { this.key = key; } }