salary-management-front/pc4mobx/hrmSalary/pages/salaryFile/saralyFileViewSlide.js

202 lines
6.3 KiB
JavaScript
Raw Normal View History

2022-08-25 17:54:18 +08:00
import React from "react";
2023-04-18 14:00:08 +08:00
import { WeaFormItem, WeaHelpfulTip, WeaInput, WeaInputNumber, WeaLocaleProvider, WeaSearchGroup } from "ecCom";
2022-08-25 17:54:18 +08:00
import { inject, observer } from "mobx-react";
import SelectedTab from "../../components/selectedTab";
2022-04-07 13:39:21 +08:00
import SalaryItemChangeList from "./salaryItemChangeList";
import TaxAgentChangeList from "./taxAgentChangeList";
import { PickDate } from "../appConfig";
import "./index.less";
2022-04-06 15:36:31 +08:00
2023-04-18 14:00:08 +08:00
const getLabel = WeaLocaleProvider.getLabel;
2022-04-06 15:36:31 +08:00
const selectedTabItems = [
2022-08-25 17:54:18 +08:00
{
key: "0",
2023-06-08 18:13:37 +08:00
name: getLabel(543328, "薪资调整记录")
}
];
const baseInfolist = [
{
id: 1,
items: [
{
2023-06-07 15:27:24 +08:00
label: getLabel(25034, "姓名"),
2023-07-31 15:30:28 +08:00
value: "username", lanId: 25034
},
{
2023-06-07 15:27:24 +08:00
label: getLabel(27511, "部门"),
2023-07-31 15:30:28 +08:00
value: "department", lanId: 27511
},
{
2023-06-07 15:27:24 +08:00
label: getLabel(6086, "岗位"),
2023-07-31 15:30:28 +08:00
value: "position", lanId: 6086
}
]
2022-08-25 17:54:18 +08:00
},
{
id: 2,
items: [
{
2023-06-08 18:13:37 +08:00
label: getLabel(1908, "入职时间"),
2023-07-31 15:30:28 +08:00
value: "hiredate", lanId: 1908
},
{
2023-06-07 15:27:24 +08:00
label: getLabel(125238, "手机号"),
2023-07-31 15:30:28 +08:00
value: "mobile", lanId: 125238
},
{
2023-06-07 15:27:24 +08:00
label: getLabel(537996, "个税扣缴义务人"),
2023-07-31 15:30:28 +08:00
value: "taxAgent", lanId: 537996
}
]
}
2022-08-25 17:54:18 +08:00
];
2022-04-02 17:34:40 +08:00
2022-08-25 17:54:18 +08:00
@inject("salaryFileStore")
2022-04-02 17:34:40 +08:00
@observer
export default class SalaryFileViewSlide extends React.Component {
2022-08-25 17:54:18 +08:00
constructor(props) {
super(props);
this.state = {
selectedTab: "0"
2022-08-25 17:54:18 +08:00
};
}
2022-04-06 15:36:31 +08:00
2022-08-25 17:54:18 +08:00
componentWillMount() {
const { salaryFileStore: { getArchiveForm, fetchSingleSalaryItemList, salaryAdjustmentInfo } } = this.props;
getArchiveForm(this.props.id).then(result => {
const { onChangePaySetParams } = this.props;
const { payEndDate, payStartDate } = result;
onChangePaySetParams({ payEndDate, payStartDate });
});
// fetchSingleSalaryItemList({ salaryArchiveId: this.props.id });
2022-08-25 17:54:18 +08:00
}
2022-04-07 09:41:16 +08:00
2022-08-25 17:54:18 +08:00
// tab页签切换回调
handleTabChange(item) {
this.setState({ selectedTab: item.key });
}
2022-04-02 17:34:40 +08:00
2022-08-25 17:54:18 +08:00
render() {
const {
salaryFileStore: { detailForm, adjustSalaryItems, setAdjustSalaryItems },
selectedKey,
handleSetpay,
paysetParams
} = this.props;
const { baseInfo } = detailForm;
const items = [
{
com: PickDate({
2023-06-08 18:13:37 +08:00
label: getLabel(542346, "起始发薪日期"),
2023-03-16 11:03:52 +08:00
viewAttr: (selectedKey === "pending" || selectedKey === "ext") ? 3 : 1,
value: paysetParams.payStartDate,
onChange: handleSetpay
})
},
{
com: PickDate({
2023-06-08 18:13:37 +08:00
label: getLabel(542347, "最后发薪日期"),
2023-07-20 13:40:42 +08:00
viewAttr: (selectedKey === "pending" || selectedKey === "fixed" || selectedKey === "ext") ? 2 : selectedKey === "stop" ? 1 : 3,
value: paysetParams.payEndDate,
onChange: handleSetpay
})
}
];
2022-08-25 17:54:18 +08:00
return (
<div className="salaryFileViewSlide">
2023-06-07 15:27:24 +08:00
<WeaSearchGroup title={getLabel(1361, "基本信息")} items={[]} needTigger showGroup center>
<table className="baseInfoWrapper">
<tbody>
2022-08-25 17:54:18 +08:00
{
_.map(baseInfolist, item => {
const { id, items } = item;
return <tr key={id} className="descriptions-row">
{
_.map(items, it => {
2023-07-31 15:30:28 +08:00
const { label, value, lanId } = it;
return <React.Fragment>
2023-07-31 15:30:28 +08:00
<th className="descriptions-label">{getLabel(lanId, label)}</th>
<td className="descriptions-value">{baseInfo && baseInfo["employee"][value]}</td>
</React.Fragment>;
})
}
</tr>;
})
2022-08-25 17:54:18 +08:00
}
</tbody>
</table>
</WeaSearchGroup>
2023-06-08 18:13:37 +08:00
<WeaSearchGroup title={getLabel(543329, "发薪设置")} items={items} needTigger showGroup center/>
2022-04-02 17:34:40 +08:00
<WeaSearchGroup
title={
<span>
2023-06-08 18:13:37 +08:00
<span>{getLabel(538004, "薪资档案")}</span>
<WeaHelpfulTip
width={200}
2023-06-08 18:13:37 +08:00
title={getLabel(543330, "提示:显示已生效的最新数据")}
placement="topLeft"
style={{ marginLeft: 8 }}
/>
</span>
} items={[]} needTigger showGroup center>
{
<div className="slideItemWrapper">
{
!_.isEmpty(adjustSalaryItems) ? adjustSalaryItems.map(item => (
<WeaFormItem
label={item.name}
labelCol={{ span: 6 }}
wrapperCol={{ span: 18 }}
>
{
item.dataType === "number" ?
<WeaInputNumber
2023-02-24 15:52:19 +08:00
value={!_.isNil(item.value) ? item.value : 0}
precision={2}
viewAttr={selectedKey === "pending" ? 2 : 1}
onChange={value => {
item.value = value;
setAdjustSalaryItems(adjustSalaryItems);
}}
/> :
<WeaInput
value={item.value}
viewAttr={selectedKey === "pending" ? 2 : 1}
onChange={value => {
item.value = value;
setAdjustSalaryItems(adjustSalaryItems);
}}
/>
}
</WeaFormItem>
2023-06-08 18:13:37 +08:00
)) : <div>{getLabel(83553, "暂无数据")}</div>
}
</div>
}
</WeaSearchGroup>
2022-08-25 17:54:18 +08:00
{
selectedKey !== "pending" &&
<WeaSearchGroup
className="tableGroupWrapper"
title={
<SelectedTab
items={selectedTabItems} onChange={(item) => {
this.handleTabChange(item);
}}/>
}
items={[]}
needTigger showGroup center
>
{
this.state.selectedTab === "0" ?
<SalaryItemChangeList id={this.props.id} selectedKey={selectedKey}/> :
<TaxAgentChangeList id={this.props.id}/>
}
</WeaSearchGroup>
2022-08-25 17:54:18 +08:00
}
</div>
);
}
2022-07-20 10:33:23 +08:00
}