/* * Author: 黎永顺 * name: 社保福利方案-信息表单 * Description: * Date: 2023/2/13 */ import React, { Component } from "react"; import { WeaFormItem, WeaInput, WeaSearchGroup, WeaSelect, WeaTextarea } from "ecCom"; import { schemeFields } from "./enum"; class SchemeInfoForm extends Component { constructor(props) { super(props); this.state = { schemeFieldsItem: schemeFields }; } componentDidMount() { const { schemeFieldsItem } = this.state; const { requestParams, salaryFileStore: { userStatusList }, taxAgentStore: { taxAgentAdminOption } } = this.props; const { sharedType } = requestParams; this.setState({ schemeFieldsItem: _.map(schemeFieldsItem, item => { const { key } = item; switch (key) { case "sharedType": return { ...item, options: userStatusList }; case "taxAgentIds": return { ...item, multiple: true, display: !_.isNil(sharedType) && sharedType.toString() === "1", options: taxAgentAdminOption }; default: break; } return { ...item }; }) }); } handleChangeSchemeFiledItems = (key, v) => { const { onChangeFieldsItem } = this.props; const { schemeFieldsItem } = this.state; this.setState({ schemeFieldsItem: _.map(schemeFieldsItem, item => { if (key === "sharedType" && item.key === "taxAgentIds") { return { ...item, display: v === "1" }; } return { ...item }; }) }, () => { onChangeFieldsItem({ [key]: (key === "useDefault" || key === "useInEmployeeSalary") ? Number(v) : v }); }); }; render() { const { requestParams } = this.props; const { schemeFieldsItem } = this.state; return ( { _.map(schemeFieldsItem, item => { const { key, label, type, viewAttr, options, display = true, multiple = false } = item; const value = !_.isNil(requestParams[key]) ? requestParams[key].toString() : ""; return { (type === "INPUT" && display) ? this.handleChangeSchemeFiledItems(key, v)}/> : (type === "SELECT" && display) ? this.handleChangeSchemeFiledItems(key, v)}/> : (type === "TEXTAREA" && display) ? this.handleChangeSchemeFiledItems(key, v)}/> : null } ; }) } ); } } export default SchemeInfoForm;