/* * Author: 黎永顺 * name: 新增调薪计薪规 * Description: * Date: 2022/12/12 */ import React, { Component } from "react"; import { inject, observer } from "mobx-react"; import { WeaDialog, WeaFormItem, WeaHelpfulTip, WeaLocaleProvider, WeaSelect, WeaTools } from "ecCom"; import FormInfo from "../../../components/FormInfo"; import { WeaSwitch } from "comsMobx"; import { Button } from "antd"; import { listSalarySobItem } from "../../../apis/ledger"; import { monthDays, ruleConditions } from "../config"; import "./index.less"; const { getLabel } = WeaLocaleProvider; const getKey = WeaTools.getKey; @inject("ledgerStore") @observer class LedgerAdjustRuleAddModal extends Component { constructor(props) { super(props); this.state = { conditions: [] }; } componentWillReceiveProps(nextProps, nextContext) { if (nextProps.visible !== this.props.visible && nextProps.visible) this.listSalarySobItem(nextProps.salarySobId); if (nextProps.visible !== this.props.visible && !nextProps.visible) this.props.ledgerStore.initRuleForm(); } listSalarySobItem = (salarySobId) => { const { salaryRuleItemsList } = this.props; const payload = { excludeSalaryItemIds: _.map(salaryRuleItemsList, item => item.salaryItemId), salarySobId }; listSalarySobItem(payload).then(({ status, data }) => { if (status) { this.setState({ conditions: _.map(ruleConditions, item => ({ ...item, items: _.map(item.items, o => { o = { ...o, label: getLabel(o.lanId, o.label) }; if (getKey(o) === "salaryItemId") { return { ...o, options: _.map(data, it => ({ key: it.salaryItemId.toString(), showname: it.salaryItemName })) }; } else if (getKey(o) === "dayOfMonth") { return { ...o, options: monthDays }; } else if (getKey(o) === "beforeAdjustmentType" || getKey(o) === "afterAdjustmentType") { return { ...o, options: _.map(o.options, k => ({ ...k, showname: !k.helpfultip ? getLabel(k.lanId, k.showname) : {getLabel(k.lanId, k.showname)} })) }; } return o; }) })) }, () => this.props.ledgerStore.ruleForm.initFormFields(this.state.conditions)); } }); }; handleSave = () => { const { salaryRuleItemsList, onSave, ledgerStore: { ruleForm } } = this.props; ruleForm.validateForm().then(f => { if (f.isValid) { const { salaryItemId } = ruleForm.getFormParams(), { fieldMap } = ruleForm; const fields = _.map(salaryItemId.split(","), o => ({ ...ruleForm.getFormParams(), salaryItemId: o, salaryItemName: _.find(fieldMap["salaryItemId"]["options"], k => k.key === o).showname })); this.props.onCancel(onSave([...salaryRuleItemsList, ...fields])); } else { f.showErrors(); } }); }; render() { const { ledgerStore: { ruleForm } } = this.props, { conditions } = this.state; const buttons = []; const itemRender = { salaryItemId: (field, textAreaProps, form, formParams) => { return (); }, dayOfMonth: () => null, beforeAdjustmentType: () => null, afterAdjustmentType: () => null }; const childrenComponents = { salaryItemId: () => { const { dayOfMonth, beforeAdjustmentType, afterAdjustmentType } = ruleForm.getFormParams(); const coms = [], { fieldMap } = ruleForm; coms.push( {getLabel(111, "计薪规则")} } labelCol={{ span: 6 }} wrapperCol={{ span: 18 }}>
{fieldMap["dayOfMonth"].label}
ruleForm.updateFields({ dayOfMonth: { value: v } })}/>
{getLabel(111, "(含)之前")}
{fieldMap["beforeAdjustmentType"].label}
ruleForm.updateFields({ beforeAdjustmentType: { value: v } })}/>
{getLabel(111, "否则:调薪生效日期在10号之后")}
{fieldMap["afterAdjustmentType"].label}
ruleForm.updateFields({ afterAdjustmentType: { value: v } })}/>
); return [{ com:
{coms}
, col: 1 }]; } }; return ( ); } } export default LedgerAdjustRuleAddModal;