/* * Author: 黎永顺 * name: 表头字段添加 * Description: * Date: 2023/5/17 */ import React, { Component } from "react"; import { Button, Col, Row } from "antd"; import { WeaCheckbox, WeaDialog, WeaLocaleProvider, WeaSearchGroup } from "ecCom"; import "./index.less"; const { getLabel } = WeaLocaleProvider; class AddHeaderFieldsModal extends Component { constructor(props) { super(props); this.state = { itemsCheckeds: [], showOnlyChecked: false }; } componentWillReceiveProps(nextProps, nextContext) { if (nextProps.visible !== this.props.visible && nextProps.visible) { this.setState({ itemsCheckeds: nextProps.selectItems ? _.map(nextProps.selectItems.split(","), it => Number(it)) : [] }); } } handleShowOnlyChecked = (showOnlyChecked) => this.setState({ showOnlyChecked: !!Number(showOnlyChecked) }); handleSelectGroupAll = (groupId, checked) => { const { itemsCheckeds } = this.state; const { itemsByGroup } = this.props; _.map(itemsByGroup, item => { if (item.salarySobItemGroupId === groupId) { if (!!Number(checked)) { this.setState({ itemsCheckeds: [...itemsCheckeds, ..._.map(item.salaryItems, child => child.salaryItemId)] }); } else { this.setState({ itemsCheckeds: _.differenceWith(itemsCheckeds, _.map(item.salaryItems, child => child.salaryItemId), _.isEqual) }); } } }); }; render() { const { showOnlyChecked, itemsCheckeds } = this.state; const { itemsByGroup } = this.props; let dataSource = _.map(itemsByGroup, item => { return { ...item, salaryItems: _.map(item.salaryItems, child => { return { ...child, checked: itemsCheckeds.includes(child.salaryItemId) }; }) }; }); if (showOnlyChecked) { dataSource = _.map(dataSource, item => { return { ...item, salaryItems: _.filter(item.salaryItems, it => !!it.checked) }; }); } return ( this.props.onAdd(itemsCheckeds)}>{getLabel(111, "添加")}, ]} bottomLeft={} > { _.map(dataSource, item => { const { salarySobItemGroupName, salaryItems, salarySobItemGroupId } = item; const value = _.every(salaryItems, it => !!it.checked) ? "1" : "0"; return this.handleSelectGroupAll(salarySobItemGroupId, val)}/>}> { !_.isEmpty(salaryItems) ? _.map(salaryItems, it => { const { salaryItemId, salaryItemName, checked } = it; return this.setState({ itemsCheckeds: _.xorWith(itemsCheckeds, [salaryItemId], _.isEqual) })}/> ; }) : 暂无数据 } ; }) } ); } } export default AddHeaderFieldsModal;