/* * Author: 黎永顺 * name: 新增编辑薪资账套 * Description: * Date: 2022/12/8 */ import React, { Component } from "react"; import { inject, observer } from "mobx-react"; import { WeaLocaleProvider, WeaSlideModal, WeaSteps } from "ecCom"; import { Button, message, Modal } from "antd"; import LedgerBaseSetting from "./ledgerBaseSetting"; import LedgerAssociatedPersonnel from "./ledgerAssociatedPersonnel"; import LedgerSalaryAdjustmentRules from "./ledgerSalaryAdjustmentRules"; import LedgerBackCalculatedSalaryItem from "./ledgerBackCalculatedSalaryItem"; import LedgerSalaryItem from "./ledgerSalaryItem"; import WeaTopTitle from "../../../components/custom-title/weaTopTitle"; import WeaReqTitle from "../../../components/custom-title/weaReqTitle"; import { saveAdjustmentRule, saveLedgerBasic, saveLedgerItem } from "../../../apis/ledger"; import "./index.less"; const { getLabel } = WeaLocaleProvider; const Step = WeaSteps.Step; @inject("taxAgentStore", "ledgerStore") @observer class LedgerSlide extends Component { constructor(props) { super(props); this.state = { current: 0, loading: false, baseSettingInfo: {}, adjustRules: [], empFields: [], itemGroups: [], saveSalarySobId: "" }; } componentWillUnmount() { this.setState({ saveSalarySobId: "" }); } /* * Author: 黎永顺 * Description: 保存基本信息 * Params: * Date: 2022/12/12 */ saveLedgerBasic = () => { const { baseSettingInfo, current } = this.state; const { editId } = this.props; const { description, canEdit, ...extra } = baseSettingInfo; const bool = _.every(Object.keys(extra), key => !!extra[key]); if (!bool || _.isEmpty(baseSettingInfo)) { Modal.warning({ title: "信息确认", content: "必要信息不完整,红色*为必填项!" }); return false; } this.setState({ loading: true }); saveLedgerBasic({ ...extra, description, id: editId }).then(({ status, data, errormsg }) => { this.setState({ loading: false }); if (status) { const { onRefreshList } = this.props; message.success("保存成功"); onRefreshList(); !editId && this.setState({ current: current + 1, saveSalarySobId: data }); } else { message.error(errormsg || "保存失败"); } }).catch(() => this.setState({ loading: false })); }; /* * Author: 黎永顺 * Description: 保存调薪计薪规则 * Params: * Date: 2022/12/12 */ saveLedgerAdjustRule = () => { const { adjustRules, saveSalarySobId } = this.state; const payload = { salarySobId: this.props.editId || saveSalarySobId, ruleParams: adjustRules }; this.setState({ loading: true }); saveAdjustmentRule(payload).then(({ status, errormsg }) => { this.setState({ loading: false }); if (status) { message.success("保存成功"); this.handleClose(); } else { message.success(errormsg || "保存失败"); } }).catch(() => this.setState({ loading: false })); }; /* * Author: 黎永顺 * Description: 薪资项目保存 * Params: * Date: 2022/12/14 */ saveLedgerItem = () => { const { empFields, itemGroups, saveSalarySobId } = this.state; const { editId: salarySobId } = this.props; const payload = { empFields: _.map(empFields, it => { if (!it.salarySobId) delete it.id; return { ...it }; }), itemGroups: _.map(_.filter(itemGroups, it => it.name !== "未分类"), (item, index) => { return { ...item, sortedIndex: index, items: _.map(item.items, it => { delete it.originFormulaContent; delete it.originSqlContent; // if (it.id && it.id.length > 4) delete it.id; return { ...it }; }) }; }), items: _.map(_.find(itemGroups, it => it.name === "未分类").items, child => { // if (child.id && child.id.length > 4) delete child.id; delete child.originFormulaContent; delete child.originSqlContent; return { ...child }; }) || [], salarySobId: salarySobId || saveSalarySobId }; this.setState({ loading: true }); saveLedgerItem(payload).then(({ status, errormsg }) => { this.setState({ loading: false }); if (status) { message.success("保存成功"); } else { message.error(errormsg || "保存失败"); } }).catch(() => this.setState({ loading: false })); }; handleClose = () => this.setState({ current: 0, baseSettingInfo: {} }, () => this.props.onCancel()); /* * Author: 黎永顺 * Description: 基础信息字段切换 * Params: * Date: 2022/12/9 */ handleChangeSaveParams = (baseSettingInfo) => this.setState({ baseSettingInfo }); /* * Author: 黎永顺 * Description: 薪资项目保存数据 * Params: * Date: 2022/12/14 */ handleSaveSalaryItemParams = (empFields, itemGroups) => this.setState({ empFields, itemGroups }); render() { const { visible, editId, taxAgentStore: { showOperateBtn } } = this.props; const { current, saveSalarySobId, loading } = this.state; let tabs = [ { key: 0, title: getLabel(82751, "基础设置"), createBtns: [ ], editBtns: [ ], children: this.setState({ taxableItems: val })} /> }, { key: 1, title: getLabel(543467, "关联人员"), createBtns: [ , ], editBtns: [], children: }, { key: 2, title: getLabel(542362, "薪资项目"), createBtns: [ , , ], editBtns: [ ], children: }, { key: 3, title: getLabel(543468, "回算薪资项目"), createBtns: [ , , ], editBtns: [], children: }, { key: 4, title: getLabel(543469, "调薪计薪规则"), createBtns: [ , ], editBtns: [ ], children: this.setState({ adjustRules })}/> } ]; return ( current === o.key).createBtns}/> : current === o.key).editBtns : []} tabDatas={tabs} selectedKey={String(current)} onChange={cur => this.setState({ current: parseInt(cur) })}/> } content={
{ !editId && { _.map(tabs, item => { const { key, title } = item; return ; }) } } {_.find(tabs, o => current === o.key).children}
} onClose={this.handleClose} /> ); } } export default LedgerSlide;