Merge branch 'feature/v2-社保福利档案调差退差-1208' into develop

This commit is contained in:
黎永顺 2022-12-06 11:34:53 +08:00
commit 4413484c0a
7 changed files with 867 additions and 35 deletions

View File

@ -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);
};

View File

@ -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 (
<WeaSelect
showSearch
optionFilterProp="children"
options={targetOptions}
value={record.target}
style={{ width: "100%" }}
viewAttr={3}
onChange={v => this.handleChangeTableItem("target", v, index)}
/>
);
}
}
];
break;
case "welfareType":
item.com = [
{
width: 220,
type: "custom",
key: "welfareType",
render: (text, record, index, onEdit) => (
<WeaSelect
options={[{ key: "1", showname: "社保" }]}
value={record.welfareType}
viewAttr={3}
onChange={v => this.handleChangeTableItem("welfareType", v, index)}
/>
)
}
];
break;
case "categoryType":
item.com = [
{
width: 220,
type: "custom",
key: "categoryType",
render: (text, record, index, onEdit) => (
<WeaSelect
multiple
options={record.categoryTypeOptions || []}
value={record.categoryType}
viewAttr={3}
onChange={v => this.handleChangeTableItem("categoryType", v, index)}
/>
)
}
];
break;
case "countryTotal":
item.com = [
{
width: 220,
type: "custom",
key: "countryTotal",
render: (text, record, index, onEdit) => (
<WeaInputNumber
precision={2}
value={record.countryTotal}
viewAttr={3}
onChange={v => this.handleChangeTableItem("countryTotal", v, index)}
/>
)
}
];
break;
case "companyTotal":
item.com = [
{
width: 220,
type: "custom",
key: "companyTotal",
render: (text, record, index, onEdit) => (
<WeaInputNumber
precision={2}
disabled
value={record.companyTotal}
onChange={v => this.handleChangeTableItem("companyTotal", v, index)}
/>
)
}
];
break;
case "adjustmentTotal":
item.title = <span>
<span>{item.title}</span>
<WeaHelpfulTip
width={200}
title="国家核算金额(单位) - 公司核算金额(单位)"
placement="topLeft"
/>
</span>;
item.com = [
{
width: 220,
type: "custom",
key: "adjustmentTotal",
render: (text, record, index, onEdit) => (
<WeaInputNumber
precision={2}
disabled
value={record.adjustmentTotal}
onChange={v => this.handleChangeTableItem("adjustmentTotal", v, index)}
/>
)
}
];
break;
case "adjustTo":
item.com = [
{
width: 220,
type: "custom",
key: "adjustTo",
render: (text, record, index, onEdit) => {
return (
<WeaSelect
options={record.adjustToOptions || []}
value={record.adjustTo}
viewAttr={3}
onChange={v => 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 (
<WeaTableEdit
deleteConfirm
showCopy={false}
columns={
[
...columns,
{
dataIndex: "operate",
title: "操作",
key: "operate",
width: 80,
render: (text, record) => {
const { status } = record;
return <a href="javascript: void(0);"
onClick={() => this.handleClick(record)}>{status ? "撤回" : "保存"}</a>;
}
}
]
}
datas={dataSource}
onChange={this.handleChangeCom}
selectedRowKeys={selectedRowKeys}
getRowSelection={this.getRowSelection}
tableProps={{ x: 800 }}
/>
);
}
}
export default AdjustTable;

View File

@ -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 [
<Button type="primary" onClick={this.handleSave}>保存全部</Button>
];
};
render() {
const { title, visible, onCancel, taxAgentStore: { showOperateBtn } } = this.props;
const { loading } = this.state;
return (
<WeaSlideModal
className="adjustmentWrapper"
visible={visible}
top={0}
width={100}
height={100}
direction="right"
measure="%"
title={
<SlideModalTitle
subtitle={title}
tabs={[]}
loading={loading}
showOperateBtn={showOperateBtn}
editable={false}
customOperate={this.renderCustomOperate()}
/>
}
content={<AdjustTable ref={dom => this.adjustTableRef = dom}/>}
onClose={onCancel}
/>
);
}
}
export default AdjustmentSlide;

View File

@ -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;
}
}
}

View File

@ -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 {
<Button type="primary" onClick={() => {
this.handleCommonAccountClick();
}}>核算</Button>
<Button type="ghost" onClick={() => {
this.setState({
adjustSlide: {
...adjustSlide,
visible: true
}
});
}}>调差</Button>
</React.Fragment>
}
{
@ -501,6 +551,7 @@ export default class NormalIndex extends Component {
}
{/*核算进度条*/}
<ProgressModal
title={selectedKey === "3" ? "正在删除请稍后" : "正在核算请稍后"}
visible={this.state.progressVisible}
onCancel={() => {
this.setState({ progressVisible: false, progress: 0 });
@ -573,6 +624,17 @@ export default class NormalIndex extends Component {
scroll={{ x: 1200, y: "calc(100vh - 233px)" }}
/>
</Spin>
<AdjustmentSlide
{...adjustSlide}
onCancel={() => {
this.setState({
adjustSlide: {
...adjustSlide,
visible: false
}
});
}}
/>
</div>
</div>
);

View File

@ -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: <RegSelect
label="对象"
viewAttr={3}
onChange={({ selected }) => 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: <RegSelect
label="选择人员"
viewAttr={2}
onChange={({ selected }) => this.setState({ selectPersonInfo: { ...selectPersonInfo, employee: selected } })}
/>
}
];
return (
<WeaDialog
{...this.props}
style={{ width: 900 }}
style={{ width: 900, height: 600 }}
hasScroll
buttons={buttons}
>

View File

@ -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 = [
<Button type="primary" onClick={this.handleSave}>保存</Button>,
<Button type="ghost" onClick={() => this.setState({ visible: false })}>取消</Button>
];
return (
<div className="regSelectWrapper">
<WeaFormItem label={label} labelCol={{ span: 6 }} wrapperCol={{ span: 18 }}>
{selectedRow.map(tag =>
<Tag key={tag.employeeId} closable onClose={() => this.handleClose(tag.employeeId)}>
{tag.username}
</Tag>
)}
<Button
size="small"
type="dashed"
onClick={() => this.setState({ visible: true }, () => this.getEmployeeListByTaxAgent())}
>添加人员</Button>
{
_.isEmpty(selectedRow) && viewAttr === 3 &&
<span className="wea-required-e9" style={{ verticalAlign: "middle" }}>
<img src="/images/BacoError_wev9.png" alt=""/>
</span>
}
</WeaFormItem>
<WeaDialog
onCancel={() => this.setState({ visible: false })}
title="人员"
visible={visible}
loading={loading}
style={{ width: 680, height: 500 }}
hasScroll
buttons={buttons}
>
<div style={{ display: "flex", justifyContent: "flex-end", margin: 10 }}>
<WeaInputSearch
value={userName}
placeholder="请输入姓名"
onChange={(userName) => this.setState({ userName })}
onSearch={() => this.getEmployeeListByTaxAgent({ userName })}
/>
</div>
<WeaTable
rowKey="employeeId"
columns={[
{
title: "姓名",
dataIndex: "username",
key: "username"
}
]}
dataSource={dataSource}
loading={loading.query}
pagination={pagination}
rowSelection={rowSelection}
/>
</WeaDialog>
</div>
);
}
}
export default RegSelect;