薪资项目
This commit is contained in:
parent
229808f467
commit
8251303da2
|
|
@ -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())
|
||||
}
|
||||
|
||||
//薪资项目-更新薪资项目
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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})} />
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ export default class TaxAgent extends React.Component {
|
|||
case '0': // 删除
|
||||
Modal.confirm({
|
||||
title: "信息确认",
|
||||
content: "薪资档案中有员工在用该个税扣缴义务人,清空后才可删除",
|
||||
content: "确认删除吗?",
|
||||
onOk() {
|
||||
doDelete([record.id])
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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 || "新增失败")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue