/* * Author: 黎永顺 * name: 编辑新增字段弹框 * Description: * Date: 2023/1/19 */ import React, { Component } from "react"; import { inject, observer } from "mobx-react"; import { WeaCheckbox, WeaFormItem, WeaHelpfulTip, WeaInput, WeaInputNumber, WeaLocaleProvider, WeaSelect, WeaSlideModal, WeaTextarea } from "ecCom"; import { message, Modal } from "antd"; import SlideModalTitle from "../../../components/slideModalTitle"; import { getSalaryFieldForm, saveSalaryField } from "../../../apis/fieldManage"; import { commonEnumList } from "../../../apis/payrollFiles"; import { dataTypeOptions, patternOptions, roundingModeOptions } from "../../salaryItem/options"; const getLabel = WeaLocaleProvider.getLabel; @inject("taxAgentStore") @observer class FieldSlide extends Component { constructor(props) { super(props); this.state = { loading: false, name: "", useInEmployeeSalary: "1", useDefault: "0", hideDefault: "0", sharedType: "0", shareTypeList: [], taxAgentIds: "", dataType: "number", roundingMode: "1", pattern: "2", sortedIndex: "", description: "" }; } componentDidMount() { const { taxAgentStore } = this.props; this.commonEnumList(); const { fetchTaxAgentOption } = taxAgentStore; fetchTaxAgentOption(); } componentWillReceiveProps(nextProps, nextContext) { if (nextProps.record.id !== this.props.record.id && nextProps.record.id) { this.getSalaryFieldForm(nextProps.record.id); } } getSalaryFieldForm = (id) => { getSalaryFieldForm({ id }).then(({ status, data }) => { if (status) { const { onChangeRecord } = this.props; const { name, useDefault, hideDefault, useInEmployeeSalary, dataType, description, sortedIndex, sharedType, roundingMode, taxAgentIds, pattern } = data; onChangeRecord(data); this.setState({ name, useInEmployeeSalary: useInEmployeeSalary ? useInEmployeeSalary.toString() : "0", useDefault: useDefault ? useDefault.toString() : "0", hideDefault: hideDefault ? hideDefault.toString() : "0", dataType, description, sortedIndex, sharedType: sharedType ? sharedType.toString() : "0", roundingMode: roundingMode ? roundingMode.toString() : "0", taxAgentIds, pattern: pattern ? pattern.toString() : "0" }); } }); }; /* * Author: 黎永顺 * Description: 获取可见性列表 * Params: * Date: 2023/1/28 */ commonEnumList = () => { const payload = { enumClass: "com.engine.salary.enums.sicategory.SharedTypeEnum" }; commonEnumList(payload).then(({ status, data }) => { if (status) { const result = _.map(data, it => ({ key: String(it.value), showname: it.defaultLabel })); this.setState({ shareTypeList: result }); } }); }; /* * Author: 黎永顺 * Description: 保存字段信息 * Params: * Date: 2022/12/12 */ saveFieldInfo = () => { if (_.isEmpty(this.state.name) || (this.state.sharedType === "1" && _.isEmpty(this.state.taxAgentIds))) { Modal.warning({ title: "信息确认", content: "必要信息不完整,红色*为必填项!" }); return false; } const { onRefreshList, onCancel, record } = this.props; const { name, useDefault, hideDefault, useInEmployeeSalary, dataType, description, sortedIndex, sharedType, roundingMode, taxAgentIds, pattern } = this.state; const payload = { name, useInEmployeeSalary: Number(useInEmployeeSalary), useDefault: Number(useDefault), hideDefault: Number(hideDefault), dataType, description, sortedIndex, sharedType, roundingMode: Number(roundingMode), taxAgentIds, pattern: Number(pattern) }; this.setState({ loading: true }); saveSalaryField({ ...record, ...payload }).then(({ status, errormsg }) => { this.setState({ loading: false }); if (status) { onRefreshList(); onCancel(); this.handleReset(); message.success("保存成功"); } else { message.error(errormsg || "保存失败"); } }).catch(() => this.setState({ loading: false })); }; /* * Author: 黎永顺 * Description: 字段项修改 * Params: * Date: 2022/12/14 */ handleChangeFields = (type, value) => { this.setState({ [type]: value }); }; handleReset = () => { this.setState({ name: "", useInEmployeeSalary: "1", useDefault: "0", hideDefault: "0", sharedType: "0", taxAgentIds: "", dataType: "number", roundingMode: "1", pattern: "2", sortedIndex: "", description: "" }); }; render() { const { title, visible, record: { id: editId }, taxAgentStore: { taxAgentOption, showSalaryItemBtn, showOperateBtn }, onCancel } = this.props; const { loading, name, useInEmployeeSalary, useDefault, hideDefault, shareTypeList, sharedType, taxAgentIds, dataType, roundingMode, pattern, sortedIndex, description } = this.state; return ( } content={
this.handleChangeFields("name", value)}/> {/*{*/} {/* editId &&*/} {/* */} {/* this.handleChangeFields("useInEmployeeSalary", value)}*/} {/* />*/} {/* */} {/* */} {/*}*/} this.handleChangeFields("useDefault", value)} /> this.handleChangeFields("hideDefault", value)} /> this.handleChangeFields("sharedType", value)} /> { sharedType === "1" && this.handleChangeFields("taxAgentIds", value)} /> } this.handleChangeFields("dataType", value)} /> this.handleChangeFields("roundingMode", value)} /> this.handleChangeFields("pattern", value)} /> this.handleChangeFields("sortedIndex", value)}/> this.handleChangeFields("description", value)} />
} onClose={() => { this.handleReset(); onCancel(); }} /> ); } } export default FieldSlide;