From 7d3abf70bfdca730cfd8bbb659ed99774c489474 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Fri, 25 Nov 2022 17:37:26 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=80=E5=B7=AE=E6=B7=BB=E5=8A=A0=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../standingBookDetail/components/index.less | 3 + .../components/regAddEmployee.js | 48 +++--- .../components/regSelect.js | 151 ++++++++++++++++++ 3 files changed, 172 insertions(+), 30 deletions(-) create mode 100644 pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/regSelect.js diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/index.less b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/index.less index 8fec2dbd..8c5cfa33 100644 --- a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/index.less +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/index.less @@ -93,3 +93,6 @@ } } } +//退差人员选择框 +.regSelectWrapper{ +} diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/regAddEmployee.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/regAddEmployee.js index 82cad6e9..822cc0c7 100644 --- a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/regAddEmployee.js +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/regAddEmployee.js @@ -7,7 +7,7 @@ import React, { Component } from "react"; import { WeaDatePicker, WeaDialog, WeaFormItem, WeaSearchGroup, WeaSelect } from "ecCom"; import { Button, Modal } from "antd"; -import { Select } from "../../../ruleConfig"; +import RegSelect from "./regSelect"; import * as API from "../../../../apis/standingBook"; class RegAddEmployee extends Component { @@ -77,12 +77,6 @@ class RegAddEmployee extends Component { handleSave = () => { const { baseInfo, returnPersonInfo, selectPersonInfo } = this.state; const { onSave } = this.props; - const payload = { - recessionMonthList: baseInfo.billMonth.split(","), - projects: baseInfo.itemsAll ? ["0"] : baseInfo.items.split(","), - includes: returnPersonInfo.employee.split(","), - excludes: selectPersonInfo.employee.split(",") - }; if (_.isEmpty(baseInfo.billMonth) || _.isEmpty(baseInfo.items) || _.isEmpty(returnPersonInfo.employee)) { Modal.warning({ title: "信息确认", @@ -90,6 +84,12 @@ class RegAddEmployee extends Component { }); return; } + const payload = { + recessionMonthList: baseInfo.billMonth.split(","), + projects: baseInfo.itemsAll ? ["0"] : baseInfo.items.split(","), + includes: returnPersonInfo.employee, + excludes: selectPersonInfo.employee + }; onSave(payload); }; @@ -143,38 +143,26 @@ class RegAddEmployee extends Component { ]; const returnPersonItems = [ { - com: Select({ - multiple: true, - label: "对象", - viewAttr: 3, - showSearch: true, - options: returnPersonInfo.employeeOptions, - value: returnPersonInfo.employee, - onChange: ({ selected }) => { - this.setState({ returnPersonInfo: { ...returnPersonInfo, employee: selected } }); - } - }) + com: this.setState({ returnPersonInfo: { ...returnPersonInfo, employee: selected } })} + /> } ]; const selectPersonItems = [ { - com: Select({ - multiple: true, - label: "选择人员", - viewAttr: 2, - showSearch: true, - options: selectPersonInfo.employeeOptions, - value: selectPersonInfo.employee, - onChange: ({ selected }) => { - this.setState({ selectPersonInfo: { ...selectPersonInfo, employee: selected } }); - } - }) + com: this.setState({ selectPersonInfo: { ...selectPersonInfo, employee: selected } })} + /> } ]; return ( diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/regSelect.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/regSelect.js new file mode 100644 index 00000000..76b6954c --- /dev/null +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/regSelect.js @@ -0,0 +1,151 @@ +/* + * Author: 黎永顺 + * name: 退差人员选择弹框 + * Description: + * Date: 2022/11/25 + */ +import React, { Component } from "react"; +import { Button, Tag } from "antd"; +import { WeaDialog, WeaFormItem, WeaInputSearch, WeaTable } from "ecCom"; +import * as API from "../../../../apis/standingBook"; +import "./index.less"; + +class RegSelect extends Component { + constructor(props) { + super(props); + this.state = { + userName: "", + visible: false, + loading: false, + selectedRow: [], + dataSource: [], + pageInfo: { + pageNum: 1, + pageSize: 10, + total: 0 + } + }; + } + + getEmployeeListByTaxAgent = (params = {}) => { + const { pageInfo } = this.state; + const payload = { + ...pageInfo, + ...params + }; + this.setState({ loading: true }); + API.getEmployeeListByTaxAgent(payload).then(({ status, data }) => { + this.setState({ loading: false }); + if (status) { + const { list: dataSource, pageNum, pageSize, total } = data; + this.setState({ + dataSource, + pageInfo: { ...pageInfo, pageNum, pageSize, total } + }); + } + }); + }; + handleSave = () => { + const { onChange } = this.props; + const { selectedRow } = this.state; + this.setState({ + visible: false + }, () => { + const selected = _.map(selectedRow, it => it.employeeId); + onChange({ selected }); + }); + }; + handleClose = (key) => { + const { onChange } = this.props; + const { selectedRow } = this.state; + this.setState({ + selectedRow: _.filter(selectedRow, it => it.employeeId !== key) + }, () => { + const selected = _.map(selectedRow, it => it.employeeId); + onChange({ selected }); + }); + }; + + render() { + const { visible, loading, dataSource, pageInfo, selectedRow, userName } = this.state; + const { label, viewAttr } = this.props; + const pagination = { + current: pageInfo.pageNum, + pageSize: pageInfo.pageSize, + total: pageInfo.total, + showTotal: total => `共 ${total} 条`, + showQuickJumper: true, + onChange: (current) => { + this.setState({ pageInfo: { ...pageInfo, pageNum: current } }, () => { + this.getEmployeeListByTaxAgent(); + }); + } + }; + const rowSelection = { + selectedRowKeys: _.map(selectedRow, it => it.employeeId), + onChange: (selectedRowKeys, rowKey) => { + this.setState({ selectedRow: _.uniqWith([...selectedRow, ...rowKey], _.isEqual) }); + } + }; + const buttons = [ + , + + ]; + return ( +
+ + {selectedRow.map(tag => + this.handleClose(tag.employeeId)}> + {tag.username} + + )} + + { + _.isEmpty(selectedRow) && viewAttr === 3 && + + + + } + + this.setState({ visible: false })} + title="人员" + visible={visible} + loading={loading} + style={{ width: 680, height: 500 }} + hasScroll + buttons={buttons} + > +
+ this.setState({ userName })} + onSearch={() => this.getEmployeeListByTaxAgent({ userName })} + /> +
+ +
+
+ ); + } +} + +export default RegSelect;