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

101 lines
3.5 KiB
JavaScript
Raw Normal View History

2022-03-16 10:41:38 +08:00
import React from 'react'
import { Table, Icon } from 'antd'
2022-05-05 09:13:38 +08:00
import { WeaTable } from 'ecCom'
2022-03-30 20:04:34 +08:00
import { slideStep4Columns} from './columns'
2022-03-16 10:41:38 +08:00
import "./index.less"
2022-03-30 20:04:34 +08:00
import RuleEditModal from './step4/RuleEditModal'
import { inject, observer } from 'mobx-react';
2022-03-16 10:41:38 +08:00
2022-03-30 20:04:34 +08:00
@inject('ledgerStore')
@observer
2022-03-16 10:41:38 +08:00
export default class CalRulesForm extends React.Component {
2022-03-30 20:04:34 +08:00
constructor(props) {
super(props);
this.state = {
modalVisible: false,
slideStep4Columns: slideStep4Columns.map(item => {
item = {...item}
if(item.key == "cz") {
item.render = (text, record) => {
return (
<a onClick={() => {this.handleDeleteItem(record)}}>删除</a>
)
}
}
return item
})
}
}
componentWillMount() {
const { ledgerStore: { listAdjustmentRule }} = this.props;
listAdjustmentRule()
}
handleSave(params) {
const { ledgerStore: {sobItemRuleDataSource, setSobItemRuleDataSource}} = this.props;
let dataSource = [...sobItemRuleDataSource]
dataSource.push(params)
setSobItemRuleDataSource(dataSource)
}
handleDeleteItem(record) {
const { ledgerStore: {sobItemRuleDataSource, setSobItemRuleDataSource}} = this.props;
let dataSource = [...sobItemRuleDataSource]
setSobItemRuleDataSource(dataSource.filter(item => item.salaryItemId != record.key))
}
convertAdjustmentType(index) {
let nameList = ['取调整后薪资', '分段计薪', '取平均']
2022-05-05 09:13:38 +08:00
return nameList[Number(index) - 1]
2022-03-30 20:04:34 +08:00
}
getSalaryItemName(salaryItemId) {
const { ledgerStore: {ruleOptionList}} = this.props;
let result = ""
ruleOptionList.map(item => {
if(item.key == salaryItemId) {
result = item.showname
}
})
return result;
}
convertDataSource(dataSoruce) {
let result = [...dataSoruce];
return result.map(item => {
let resultStr = "";
2022-05-05 09:13:38 +08:00
resultStr += `${item.dayOfMonth}号(含)之前调薪,${this.convertAdjustmentType(item.beforeAdjustmentType)}${item.dayOfMonth}号之后调薪,${this.convertAdjustmentType(item.afterAdjustmentType)}`
2022-03-30 20:04:34 +08:00
return {
key: item.salaryItemId,
salaryItemId: item.salaryItemId,
salaryItemName: item.salaryItemName ? item.salaryItemName : this.getSalaryItemName(item.salaryItemId),
rule: resultStr
}
})
}
2022-03-16 10:41:38 +08:00
render() {
2022-03-30 20:04:34 +08:00
const { ledgerStore: {sobItemRuleDataSource}} = this.props;
let datas = this.convertDataSource(sobItemRuleDataSource)
2022-03-16 10:41:38 +08:00
return (
<div className="calRulesForm">
<div className="headerIcon">
2022-03-30 20:04:34 +08:00
<Icon className="iconItem" type="plus-square" onClick={() => {this.setState({modalVisible: true})}}/>
2022-03-16 10:41:38 +08:00
</div>
<div className="tableWrapper">
2022-05-05 09:13:38 +08:00
<WeaTable dataSource={datas} columns={this.state.slideStep4Columns} pagination={false}/>
2022-03-16 10:41:38 +08:00
</div>
2022-03-30 20:04:34 +08:00
{
this.state.modalVisible && <RuleEditModal
visible={this.state.modalVisible}
onCancel={() => this.setState({modalVisible: false})}
onSave={(params) => {this.handleSave(params)}}
/>
}
2022-03-16 10:41:38 +08:00
</div>
)
}
}