diff --git a/pc4mobx/hrmSalary/apis/standingBook.js b/pc4mobx/hrmSalary/apis/standingBook.js index 24da62d4..745b3706 100644 --- a/pc4mobx/hrmSalary/apis/standingBook.js +++ b/pc4mobx/hrmSalary/apis/standingBook.js @@ -266,6 +266,37 @@ export const getPaymentById = ({ id }) => { mode: "cors", headers: { "Content-Type": "application/json" - }, + } }).then(res => res.json()); }; +//获取社保福利项列表 +export const compensationCategoryType = ({ id }) => { + return fetch(`/api/bs/hrmsalary/siaccount/compensationCategoryType?id=${id}`, { + method: "GET", + mode: "cors", + headers: { + "Content-Type": "application/json" + } + }).then(res => res.json()); +}; + +//获取调差列表 +export const getCompensationList = (params) => { + return postFetch("/api/bs/hrmsalary/siaccount/compensationList", params); +}; +//获取可调差的人员列表 +export const getEmployeeListToCompensation = (params) => { + return postFetch("/api/bs/hrmsalary/siaccount/getEmployeeListToCompensation", params); +}; +//获取当前调差行-公司方支出总计 +export const getCompensationComTotal = (params) => { + return postFetch("/api/bs/hrmsalary/siaccount/compensationComTotal", params); +}; +//社保调差保存 +export const compensationSave = (params) => { + return postFetch("/api/bs/hrmsalary/siaccount/compensationSave", params); +}; +//撤回调差数据 +export const compensationBack = (params) => { + return postFetch("/api/bs/hrmsalary/siaccount/compensationBack", params); +}; diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/adjustTable.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/adjustTable.js new file mode 100644 index 00000000..a15527d0 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/adjustTable.js @@ -0,0 +1,428 @@ +/* + * Author: 黎永顺 + * name: 调差列表 + * Description: + * Date: 2022/12/5 + */ +import React, { Component } from "react"; +import { WeaHelpfulTip, WeaInputNumber, WeaSelect, WeaTableEdit } from "ecCom"; +import { message, Modal } from "antd"; +import { + compensationBack, + compensationCategoryType, + compensationSave, + getCompensationComTotal, + getCompensationList, + getEmployeeListToCompensation +} from "../../../../apis/standingBook"; +import { getQueryString } from "../../../../util/url"; +import "./index.less"; + +class AdjustTable extends Component { + constructor(props) { + super(props); + this.state = { + loading: { + query: false + }, + dataSource: [], + columns: [], + selectedRowKeys: [], + targetOptions: [] + }; + } + + componentDidMount() { + this.getCompensationList().then(r => { + }); + } + + componentWillReceiveProps(nextProps, nextContext) { + } + + getCompensationList = async () => { + const { pageInfo, loading } = this.state; + const billMonth = getQueryString("billMonth"); + const paymentOrganization = getQueryString("paymentOrganization"); + const [adjustmentObjEnum] = await Promise.all([this.getEmployeeListToCompensation()]); + const { status, data: list } = adjustmentObjEnum; + this.setState({ targetOptions: list }); + const targetOptions = status ? _.map(list, it => ({ + key: it.employeeId.toString(), + showname: it.username + })) : []; + const payload = { + paymentOrganization, + billMonth, + ...pageInfo + }; + this.setState({ loading: { ...loading, query: true } }); + getCompensationList(payload).then(({ status, data }) => { + this.setState({ loading: { ...loading, query: false } }); + if (status) { + const { columns, data: dataSource } = data; + this.setState({ + dataSource: _.map(dataSource, it => { + return { + ...it, + welfareType: it.welfareType.toString(), + target: it.employeeId.toString(), + adjustTo: it.adjustTo.toString(), + adjustToOptions: _.map(it.categoryTypeOptions, child => ({ key: child.id, showname: child.content })), + categoryTypeOptions: _.map(it.categoryTypeOptions, child => ({ key: child.id, showname: child.content })), + targetOptions: _.map(it.targetOptions, child => ({ key: child.id, showname: child.name })) + }; + }), + columns: _.map(columns, item => { + const { dataIndex } = item; + switch (dataIndex) { + case "target": + item.com = [ + { + type: "custom", + key: "target", + width: 220, + render: (text, record, index, onEdit) => { + return ( + this.handleChangeTableItem("target", v, index)} + /> + ); + } + } + ]; + break; + case "welfareType": + item.com = [ + { + width: 220, + type: "custom", + key: "welfareType", + render: (text, record, index, onEdit) => ( + this.handleChangeTableItem("welfareType", v, index)} + /> + ) + } + ]; + break; + case "categoryType": + item.com = [ + { + width: 220, + type: "custom", + key: "categoryType", + render: (text, record, index, onEdit) => ( + this.handleChangeTableItem("categoryType", v, index)} + /> + ) + } + ]; + break; + case "countryTotal": + item.com = [ + { + width: 220, + type: "custom", + key: "countryTotal", + render: (text, record, index, onEdit) => ( + this.handleChangeTableItem("countryTotal", v, index)} + /> + ) + } + ]; + break; + case "companyTotal": + item.com = [ + { + width: 220, + type: "custom", + key: "companyTotal", + render: (text, record, index, onEdit) => ( + this.handleChangeTableItem("companyTotal", v, index)} + /> + ) + } + ]; + break; + case "adjustmentTotal": + item.title = + {item.title} + + ; + item.com = [ + { + width: 220, + type: "custom", + key: "adjustmentTotal", + render: (text, record, index, onEdit) => ( + this.handleChangeTableItem("adjustmentTotal", v, index)} + /> + ) + } + ]; + break; + case "adjustTo": + item.com = [ + { + width: 220, + type: "custom", + key: "adjustTo", + render: (text, record, index, onEdit) => { + return ( + this.handleChangeTableItem("adjustTo", v, index)} + /> + ); + } + } + ]; + break; + default: + break; + } + return { ...item, display: true, width: "20%" }; + }) + }); + } + }).catch(() => { + this.setState({ loading: { ...loading, query: false } }); + }); + }; + compensationCategoryType = (id, index) => { + const { dataSource } = this.state; + compensationCategoryType({ id }).then(({ status, data }) => { + if (status) { + this.setState({ + dataSource: _.map(dataSource, (item, idx) => { + if (index === idx) { + return { + ...item, + adjustTo: "", + adjustToOptions: [], + categoryType: "", + categoryTypeOptions: _.map(data, child => ({ key: child.id, showname: child.content })) + }; + } else { + return { ...item }; + } + }) + }); + } + }); + }; + getEmployeeListToCompensation = () => { + const billMonth = getQueryString("billMonth"); + const paymentOrganization = getQueryString("paymentOrganization"); + const payload = { + billMonth, paymentOrganization, + pageNum: 1, pageSize: 100 + }; + return getEmployeeListToCompensation(payload); + }; + getCompensationComTotal = (payload, index, categoryType) => { + const { dataSource } = this.state; + getCompensationComTotal(payload).then(({ status, data }) => { + if (status && !_.isEmpty(data)) { + this.setState({ + dataSource: _.map(dataSource, (item, idx) => { + if (index === idx) { + return { + ...item, + companyTotal: data[0].totalNum, + adjustToOptions: categoryType ? _.map(categoryType.split(","), tmpV => { + return _.find(item.categoryTypeOptions, tmpJ => tmpJ.key === tmpV); + }) : [] + }; + } else { + return { ...item }; + } + }) + }); + } + } + ); + }; + handleChangeCom = (dataSource) => { + this.setState({ dataSource }); + }; + handleChangeTableItem = (filedItemkey, value, index) => { + const { dataSource, targetOptions } = this.state; + this.setState({ + dataSource: _.map(dataSource, (item, idx) => { + if (index === idx) { + return { ...item, [filedItemkey]: value }; + } else { + return { ...item }; + } + }) + }, () => { + const paymentOrganization = getQueryString("paymentOrganization"); + if (filedItemkey === "target") { + this.compensationCategoryType(_.find(targetOptions, it => it.employeeId == value).target, index); + } else if (filedItemkey === "categoryType") { + _.map(this.state.dataSource, (it, itdx) => { + const bool = it.target && it.categoryType; + if (bool && itdx === index) { + const payload = { + paymentOrganization, + target: _.find(targetOptions, child => child.employeeId == it.target).target, + employeeId: it.target, + categoryType: it.categoryType + }; + this.getCompensationComTotal([payload], itdx, it.categoryType); + } + }); + } else if (filedItemkey === "countryTotal") { + this.setState({ + dataSource: _.map(this.state.dataSource, (child, childidx) => { + if (index === childidx) { + return { + ...child, + adjustmentTotal: (Number(child.countryTotal) - Number(child.companyTotal)).toFixed(2) + }; + } else { + return { ...child }; + } + }) + }); + } + }); + }; + + handleClick = (record) => { + const { status, id, paymentOrganization, billMonth } = record; + const { targetOptions } = this.state; + if (status) { + Modal.confirm({ + title: "信息确认", + content: "确定撤回吗?撤回后该笔调差将失效!", + onOk: () => { + const payload = { id, paymentOrganization, billMonth }; + compensationBack(payload).then(({ status, data, errormsg }) => { + if (status) { + message.success(data || "撤回成功"); + this.getCompensationList().then(r => { + }); + } else { + message.error(errormsg || "撤回失败"); + } + }); + }, + onCancel: () => { + } + }); + } else { + Modal.confirm({ + title: "信息确认", + content: "确定保存吗?保存后数据将即时更新到台账!", + onOk: () => { + const { adjustToOptions, categoryTypeOptions, key, target, ...extraParams } = record; + const month = getQueryString("billMonth"); + const paymentOrg = getQueryString("paymentOrganization"); + const bool = _.every(Object.keys(record), child => !!record[child]); + if (!bool) { + Modal.warning({ + title: "信息确认", + content: "必要信息不完整,红色*为必填项!" + }); + return; + } + const payload = { + ...extraParams, + employeeId: target, + target: _.find(targetOptions, child => child.employeeId == target).target, + billMonth: month, + paymentOrganization: paymentOrg + }; + compensationSave([payload]).then(({ status, data, errormsg }) => { + if (status) { + const { data: dataMsg } = data; + message.success(dataMsg || "保存成功"); + this.getCompensationList().then(r => { + }); + } else { + message.error(errormsg || "保存失败"); + } + }); + }, + onCancel: () => { + } + }); + } + }; + getRowSelection = (rowSelection) => { + let sel = { ...rowSelection }; + sel.getCheckboxProps = (record) => { + return { disabled: record.status }; + }; + return sel; + }; + + render() { + const { dataSource, columns, selectedRowKeys } = this.state; + + return ( + { + const { status } = record; + return this.handleClick(record)}>{status ? "撤回" : "保存"}; + } + } + ] + } + datas={dataSource} + onChange={this.handleChangeCom} + selectedRowKeys={selectedRowKeys} + getRowSelection={this.getRowSelection} + tableProps={{ x: 800 }} + /> + ); + } +} + +export default AdjustTable; diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/adjustmentSlide.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/adjustmentSlide.js new file mode 100644 index 00000000..a7fdc244 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/adjustmentSlide.js @@ -0,0 +1,117 @@ +/* + * Author: 黎永顺 + * name: 调差 + * Description: + * Date: 2022/12/5 + */ +import React, { Component } from "react"; +import { inject, observer } from "mobx-react"; +import { WeaSlideModal } from "ecCom"; +import { Button, message, Modal } from "antd"; +import SlideModalTitle from "../../../../components/slideModalTitle"; +import AdjustTable from "./adjustTable"; +import "./index.less"; +import { getQueryString } from "../../../../util/url"; +import { compensationSave } from "../../../../apis/standingBook"; + + +@inject("taxAgentStore") +@observer +class AdjustmentSlide extends Component { + constructor(props) { + super(props); + this.state = { + current: 0, + loading: false, + taxAgentId: "" + }; + this.adjustTableRef = null; + } + + componentWillReceiveProps(nextProps, nextContext) { + if (nextProps.visible !== this.props.visible) { + } + } + + handleSave = () => { + let { dataSource, targetOptions } = this.adjustTableRef.state; + dataSource = _.filter(dataSource, it => !it.id); + const billMonth = getQueryString("billMonth"); + const paymentOrganization = getQueryString("paymentOrganization"); + let bool = true; + _.map(dataSource, item => { + bool = _.every(Object.keys(item), child => !!item[child]); + }); + if (_.isEmpty(dataSource)) { + Modal.warning({ + title: "信息确认", + content: "请添加调差项!" + }); + return; + } else if (!bool) { + Modal.warning({ + title: "信息确认", + content: "必要信息不完整,红色*为必填项!" + }); + return; + } + const payload = _.map(dataSource, item => { + const { adjustToOptions, categoryTypeOptions, target, ...extraParams } = item; + return { + ...extraParams, + employeeId: target, + target: _.find(targetOptions, child => child.employeeId == target).target, + billMonth, + paymentOrganization + }; + }); + this.setState({ loading: true }); + compensationSave(payload).then(({ status, data, errormsg }) => { + this.setState({ loading: false }); + if (status) { + const { data: dataMsg } = data; + message.success(dataMsg || "保存成功"); + this.adjustTableRef.getCompensationList().then(r => { + }); + } else { + message.error(errormsg || "保存失败"); + } + }).catch(() => this.setState({ loading: false })); + }; + renderCustomOperate = () => { + return [ + + ]; + }; + + render() { + const { title, visible, onCancel, taxAgentStore: { showOperateBtn } } = this.props; + const { loading } = this.state; + return ( + + } + content={ this.adjustTableRef = dom}/>} + onClose={onCancel} + /> + ); + } +} + +export default AdjustmentSlide; + diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/index.less b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/index.less index 8fec2dbd..c3f0ab99 100644 --- a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/index.less +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/index.less @@ -93,3 +93,47 @@ } } } + +//退差人员选择框 +.regSelectWrapper { +} + +//调差抽屉 +.adjustmentWrapper { + .wea-slide-modal-title { + height: initial; + line-height: initial; + text-align: left; + } + + .rodal-close { + z-index: 99; + top: 10px !important; + } + + .wea-table-edit table { + table-layout: fixed; + + .text-elli { + display: inline-block; + width: 100%; + } + } + +} + +@media (min-width: 1260px) { + .adjustmentWrapper { + .reqTopWrapper .wea-new-top-req-title > div:first-child > div { + max-width: 100% !important; + } + } +} + +@media screen and (min-width: 1060px) and (max-width: 1260px) { + .adjustmentWrapper { + .reqTopWrapper .wea-new-top-req-title > div:first-child > div { + max-width: calc(100% - 96px) !important; + } + } +} diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/normal.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/normal.js index 67abafe6..5892b500 100644 --- a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/normal.js +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/normal.js @@ -13,6 +13,7 @@ import { calcPageNo, getSearchs } from "../../../../util"; import { getQueryString } from "../../../../util/url"; import ProgressModal from "../../../../components/progressModal"; import AcctResultImportModal from "../../../calculateDetail/acctResult/importModal/acctResultImportModal"; +import AdjustmentSlide from "./adjustmentSlide"; import _ from "lodash"; import "./index.less"; @@ -30,6 +31,10 @@ export default class NormalIndex extends Component { title: "", visible: false }, + adjustSlide: { + title: "调差", + visible: false + }, tableData: { list: [], columns: [], @@ -44,6 +49,7 @@ export default class NormalIndex extends Component { } }; this.timer = null; + this.timerDelete = null; } componentDidMount() { @@ -61,6 +67,9 @@ export default class NormalIndex extends Component { if (this.timer) { clearInterval(this.timer); } + if (this.timerDelete) { + clearInterval(this.timerDelete); + } } componentWillReceiveProps(nextProps) { @@ -270,14 +279,46 @@ export default class NormalIndex extends Component { title: "确认信息", content: "确认删除勾选的数据吗?", onOk: () => { + this.setState({ + progressVisible: true + }, () => { + this.timerDelete = setInterval(() => { + if (this.state.progress !== 100) { + this.setState({ + progress: this.state.progress + 10 + }); + } else { + clearInterval(this.timerDelete); + this.setState({ + progressVisible: false, + progress: 0 + }, () => { + message.success("删除成功"); + selectedKey === "1" + ? this.getNormalList({ + billMonth, + paymentOrganization, + current: calcPageNo(this.state.tableData.total, this.state.current, 10, includes.length) + }) + : this.getSupplementaryList({ + billMonth, + current: calcPageNo(this.state.tableData.total, this.state.current, 10, includes.length), + paymentOrganization + }); + }); + } + }, 800); + }); + siaccountCommonDelete({ billMonth, includes, ids, paymentOrganization }).then(() => { + clearInterval(this.timerDelete); message.success("删除成功"); - this.setState({ selectedRowKeys: [] }); + this.setState({ selectedRowKeys: [], progressVisible: false, progress: 0 }); selectedKey === "1" ? this.getNormalList({ billMonth, @@ -290,6 +331,7 @@ export default class NormalIndex extends Component { paymentOrganization }); }); + }, onCancel: () => { } @@ -331,7 +373,7 @@ export default class NormalIndex extends Component { this.timer = setInterval(() => { if (this.state.progress !== 100) { this.setState({ - progress: this.state.progress + 20 + progress: this.state.progress + 10 }); } else { clearInterval(this.timer); @@ -352,7 +394,7 @@ export default class NormalIndex extends Component { current: this.state.current }); } - }, 800); + }, 1000); }); }); } @@ -370,7 +412,7 @@ export default class NormalIndex extends Component { render() { const { remarks, billMonth, selectedKey, paymentOrganization } = this.props; - const { selectedRowKeys, addProps, date, importParams } = this.state; + const { selectedRowKeys, addProps, adjustSlide, importParams } = this.state; const { loading, form, @@ -489,6 +531,14 @@ export default class NormalIndex extends Component { + } { @@ -501,6 +551,7 @@ export default class NormalIndex extends Component { } {/*核算进度条*/} { this.setState({ progressVisible: false, progress: 0 }); @@ -573,6 +624,17 @@ export default class NormalIndex extends Component { scroll={{ x: 1200, y: "calc(100vh - 233px)" }} /> + { + this.setState({ + adjustSlide: { + ...adjustSlide, + visible: false + } + }); + }} + /> ); 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..7155f9b4 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/regSelect.js @@ -0,0 +1,162 @@ +/* + * 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, + selectedRowKeys: [], + 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; + this.setState({ + visible: false + }, () => { + const { selectedRowKeys } = this.state; + onChange({ selected: selectedRowKeys }); + }); + }; + handleClose = (key) => { + const { onChange } = this.props; + const { selectedRow } = this.state; + this.setState({ + selectedRow: _.filter(selectedRow, it => it.employeeId !== key) + }, () => { + const { selectedRow } = this.state; + this.setState({ + selectedRowKeys: _.map(selectedRow, it => it.employeeId) + }); + onChange({ selected: _.map(selectedRow, it => it.employeeId) }); + }); + }; + + render() { + const { visible, loading, dataSource, pageInfo, selectedRowKeys, 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: 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 = [ + , + + ]; + 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;