salary-management-front/pc4mobx/hrmSalary/pages/ledger/addUserModal.js

184 lines
5.1 KiB
JavaScript

import React from "react";
import { Button, Col, Radio, Row } from "antd";
import { WeaBrowser, WeaDialog, WeaSelect } from "ecCom";
import { inject, observer } from "mobx-react";
import RequiredLabelTip from "../../components/requiredLabelTip";
const objectOptions = [
{
key: "EMPLOYEE",
showname: "人员",
selected: false
},
{
key: "SUBCOMPANY",
showname: "分部",
selected: false
},
{
key: "DEPT",
showname: "部门",
selected: false
},
{
key: "POSITION",
showname: "岗位",
selected: false
}
];
@inject("ledgerStore")
@observer
export default class AddUserModal extends React.Component {
constructor(props) {
super(props);
this.state = {
selectedKey: "EMPLOYEE",
radioValue: "ALL",
ids: ""
};
}
onRadioChange(e) {
this.setState({ radioValue: e.target.value });
}
// 保存
handleSave() {
const {
ledgerStore: { saveLedgerPersonRange, salarySobId, includeType }
} = this.props;
saveLedgerPersonRange({
salarySobId: salarySobId,
includeType: includeType,
employeeStatus: this.state.radioValue,
targetParams: this.state.ids
.split(",")
.map((id) => ({ targetType: this.state.selectedKey, targetId: id }))
});
}
// 重置
handleReset() {
this.setState({
selectedKey: "EMPLOYEE",
radioValue: "ALL",
ids: ""
});
}
render() {
return (
<WeaDialog
visible={this.props.visible}
onCancel={() => {
this.props.onCancel();
}}
style={{ width: 600 }}
title="关联人员"
buttons={[
<Button
type="primary"
onClick={() => {
this.handleSave();
}}>
保存
</Button>,
<Button
type="default"
onClick={() => {
this.handleReset();
}}>
重置
</Button>
]}>
<div style={{ padding: "20px" }}>
<Row style={{ lineHeight: "40px" }}>
<Col span={8}>
对象类型
<RequiredLabelTip/>
</Col>
<Col span={16}>
<div style={{ display: "inline-block", verticalAlign: "top" }}>
<WeaSelect
style={{ height: "30px", marginRight: "10px" }}
options={objectOptions}
value={this.state.selectedKey}
onChange={(value) => {
this.setState({ selectedKey: value, ids: "" });
}}
/>
</div>
<div style={{ display: "inline-block", verticalAlign: "middle" }}>
{this.state.selectedKey == "EMPLOYEE" && (
<WeaBrowser
type={17}
title={"人员选择"}
isSingle={false}
inputStyle={{ width: 200 }}
value={this.state.ids}
onChange={(ids, names, datas) => {
this.setState({ ids });
}}
/>
)}
{this.state.selectedKey == "DEPT" && (
<WeaBrowser
type={57}
title={"部门选择"}
isSingle={false}
value={this.state.ids}
inputStyle={{ width: 200 }}
onChange={(ids, names, datas) => {
this.setState({ ids });
}}
/>
)}
{this.state.selectedKey == "SUBCOMPANY" && (
<WeaBrowser
type={164}
title={"分部选择"}
isSingle={false}
value={this.state.ids}
inputStyle={{ width: 200 }}
onChange={(ids, names, datas) => {
this.setState({ ids });
}}
/>
)}
{this.state.selectedKey == "POSITION" && (
<WeaBrowser
type={278}
title={"岗位选择"}
isSingle={false}
value={this.state.ids}
inputStyle={{ width: 200 }}
onChange={(ids, names, datas) => {
this.setState({ ids });
}}
/>
)}
</div>
</Col>
</Row>
<Row style={{ lineHeight: "40px" }}>
<Col span={8}>
选择员工状态
<RequiredLabelTip/>
</Col>
<Col span={16}>
<Radio.Group
onChange={(e) => this.onRadioChange(e)}
value={this.state.radioValue}>
<Radio value={"ALL"}>全部</Radio>
<Radio value={"NORMAL"}>在职</Radio>
<Radio value={"UNAVAILABLE"}>离职</Radio>
</Radio.Group>
</Col>
</Row>
</div>
</WeaDialog>
);
}
}