薪资项目

This commit is contained in:
MustangDeng 2022-03-24 14:18:45 +08:00
parent 229808f467
commit 8251303da2
6 changed files with 124 additions and 14 deletions

View File

@ -65,7 +65,14 @@ export const deleteItemList = params => {
//薪资项目-新增薪资项目
export const saveItem = params => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryitem/save', 'POST', params);
return fetch('/api/bs/hrmsalary/salaryitem/save', {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
}).then(res => res.json())
}
//薪资项目-更新薪资项目

View File

@ -3,21 +3,102 @@ import { Row, Col, Switch, Radio } from 'antd'
import { WeaHelpfulTip, WeaSelect, WeaTextarea, WeaInput } from 'ecCom'
import "./index.less"
const roundingModeOptions = [
{
key: "1",
selected: false,
showname: "原始数据"
},
{
key: "2",
selected: false,
showname: "四舍五入"
},
{
key: "3",
selected: false,
showname: "向上舍入"
},
{
key: "4",
selected: false,
showname: "向下舍入"
}
];
const patternOptions = [
{
key: "0",
showname: "0",
selected: false
},
{
key: "1",
showname: "1",
selected: false
},
{
key: "2",
showname: "2",
selected: false
},
{
key: "3",
showname: "3",
selected: false
},
{
key: "4",
showname: "4",
selected: false
},
{
key: "5",
showname: "5",
selected: false
},
]
export default class CustomSalaryItemSlide extends React.Component {
constructor(props) {
super(props)
this.state = {
request: {
name: '',
useDefault: 0,
useInEmployeeSalary: 0,
systemType:0,
roundingMode: 0,
pattern: 0,
valueType: 1,
description: ""
}
}
}
handleChange(params) {
let request = {...this.state.request, ...params}
this.setState({request})
this.props.onChange(request)
}
render() {
const { request } = this.state;
const { name, useDefault, useInEmployeeSalary, roundingMode, pattern, valueType, description } = request;
return (
<div className="customSalaryItemSlide">
<div>
<Row className="formItem">
<Col span={4}>名称</Col>
<Col span={20}>
<WeaInput />
<WeaInput value={name} onChange={(value) => {this.handleChange({name: value})}}/>
</Col>
</Row>
<Row className="formItem">
<Col span={4}>默认使用</Col>
<Col span={20}>
<Switch />
<Switch value = {useDefault == 1} onChange={(value) => {this.handleChange({useDefault: value ? 1 : 0})}}/>
<WeaHelpfulTip
style={{marginLeft: "10px"}}
width={200}
@ -31,7 +112,7 @@ export default class CustomSalaryItemSlide extends React.Component {
<Row className="formItem">
<Col span={4}>薪资档案引用</Col>
<Col span={20}>
<Switch />
<Switch value={useInEmployeeSalary == 1} onChange={(value) => {this.handleChange({useInEmployeeSalary: value})}}/>
<WeaHelpfulTip
style={{marginLeft: "10px"}}
width={200}
@ -58,7 +139,7 @@ export default class CustomSalaryItemSlide extends React.Component {
<Col span={8}>舍入规则</Col>
<Col span={16}>
<WeaSelect style={{width: "200px"}}/>
<WeaSelect options={roundingModeOptions} style={{width: "200px"}} value={roundingMode} onChange={(value) => {this.handleChange({roundingMode: value})}}/>
</Col>
</Row>
</Col>
@ -66,7 +147,7 @@ export default class CustomSalaryItemSlide extends React.Component {
<Row>
<Col span={8}>保留小数位</Col>
<Col span={16}>
<WeaSelect style={{width: "200px"}}/>
<WeaSelect options={patternOptions} onChange={(value) => {this.handleChange({pattern: value})}} value={pattern} style={{width: "200px"}}/>
</Col>
</Row>
</Col>
@ -76,7 +157,7 @@ export default class CustomSalaryItemSlide extends React.Component {
<Row className="formItem">
<Col span={4}>取值方式</Col>
<Col span={20}>
<Radio.Group>
<Radio.Group value={valueType} onChange={(e) => {this.handleChange({valueType: e.target.value})}}>
<Radio value={1}>输入</Radio>
<Radio value={2}>公式</Radio>
</Radio.Group>
@ -93,7 +174,7 @@ export default class CustomSalaryItemSlide extends React.Component {
<Row className="formItem">
<Col span={4}>备注</Col>
<Col span={20}>
<WeaTextarea />
<WeaTextarea value={description} onChange={(value) => {this.handleChange({description: value})}}/>
</Col>
</Row>

View File

@ -14,7 +14,7 @@ import SystemSalaryItemModal from './systemSalaryItemModal'
import { columns, dataSource } from './columns';
import SlideModalTitle from "../../components/slideModalTitle"
import CustomSalaryItemSlide from './customSalaryItemSlide'
import DeleteSalaryItemModal from './deleteSalaryItemModal copy';
import DeleteSalaryItemModal from './deleteSalaryItemModal';
const { MonthPicker } = DatePicker;
@ -28,7 +28,8 @@ export default class SalaryItem extends React.Component {
this.state = {
value: "",
selectedKey: "0",
editSlideVisible: false
editSlideVisible: false,
request: {}
}
columns.map(item => {
if(item.dataIndex == "refere") {
@ -153,15 +154,24 @@ export default class SalaryItem extends React.Component {
}
const handleSlideSave = () => {
const { salaryItemStore: {saveItem}} = this.props;
saveItem(this.state.request);
}
const renderCustomOperate = () => {
return (
<div>
<Button type="primary" style={{marginRight: "10px"}}>保存</Button>
<Button type="primary" style={{marginRight: "10px"}} onClick={() => {handleSlideSave()}}>保存</Button>
<Button type="default">保存并继续创建</Button>
</div>
)
}
const handleSaveSlideChange = (value) => {
this.setState({request: value})
}
return (
<div className="mySalaryBenefitsWrapper">
<WeaRightMenu
@ -215,14 +225,14 @@ export default class SalaryItem extends React.Component {
title={
<SlideModalTitle
subtitle={"新建自定义薪资项目"}
editable={true}
editable={false}
customOperate={renderCustomOperate()}
subItemChange={
(item) => {this.setState({selectedTab: item.key})}
}
/>
}
content={<CustomSalaryItemSlide />}
content={<CustomSalaryItemSlide onChange={(value) => {handleSaveSlideChange(value)}}/>}
onClose={() => this.setState({editSlideVisible: false})}
showMask={true}
closeMaskOnClick={() => this.setState({editSlideVisible: false})} />

View File

@ -92,7 +92,7 @@ export default class TaxAgent extends React.Component {
case '0': // 删除
Modal.confirm({
title: "信息确认",
content: "薪资档案中有员工在用该个税扣缴义务人,清空后才可删除",
content: "确认删除吗?",
onOk() {
doDelete([record.id])
},

View File

@ -141,6 +141,18 @@ export class SalaryItemStore {
})
}
//薪资项目-新增薪资项目
@action
saveItem = (params) => {
API.saveItem(params).then(res => {
if(res.status) {
message.success("新增成功")
} else {
message.error(res.errormsg || "新增失败")
}
})
}
}