diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/regSelect.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/regSelect.js index 853c2880..7155f9b4 100644 --- a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/regSelect.js +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/regSelect.js @@ -17,6 +17,7 @@ class RegSelect extends Component { userName: "", visible: false, loading: false, + selectedRowKeys: [], selectedRow: [], dataSource: [], pageInfo: { @@ -50,9 +51,8 @@ class RegSelect extends Component { this.setState({ visible: false }, () => { - const { selectedRow } = this.state; - const selected = _.map(selectedRow, it => it.employeeId); - onChange({ selected }); + const { selectedRowKeys } = this.state; + onChange({ selected: selectedRowKeys }); }); }; handleClose = (key) => { @@ -62,13 +62,15 @@ class RegSelect extends Component { selectedRow: _.filter(selectedRow, it => it.employeeId !== key) }, () => { const { selectedRow } = this.state; - const selected = _.map(selectedRow, it => it.employeeId); - onChange({ selected }); + this.setState({ + selectedRowKeys: _.map(selectedRow, it => it.employeeId) + }); + onChange({ selected: _.map(selectedRow, it => it.employeeId) }); }); }; render() { - const { visible, loading, dataSource, pageInfo, selectedRow, userName } = this.state; + const { visible, loading, dataSource, pageInfo, selectedRowKeys, selectedRow, userName } = this.state; const { label, viewAttr } = this.props; const pagination = { current: pageInfo.pageNum, @@ -83,9 +85,17 @@ class RegSelect extends Component { } }; const rowSelection = { - selectedRowKeys: _.map(selectedRow, it => it.employeeId), - onChange: (selectedRowKeys, rowKey) => { - this.setState({ selectedRow: _.uniqWith([...selectedRow, ...rowKey], _.isEqual) }); + selectedRowKeys: selectedRowKeys, + onChange: (selectedRowKeys) => this.setState({ selectedRowKeys }), + onSelect: (record, selected) => { + if (selected) { + this.setState({ selectedRow: [...selectedRow, record] }); + } else { + this.setState({ selectedRow: _.xorWith(selectedRow, [record], _.isEqual) }); + } + }, + onSelectAll: (selected, selectedRows, changeRows) => { + this.setState({ selectedRow: _.xorWith(selectedRow, changeRows, _.isEqual) }); } }; const buttons = [