基础社保福利方案
This commit is contained in:
parent
be4051e5ea
commit
c020cc5a80
|
|
@ -17,7 +17,14 @@ export const createScheme = params => {
|
|||
}).then(res => res.json())
|
||||
};
|
||||
export const updateScheme = params => {
|
||||
return WeaTools.callApi('/api/bs/hrmsalary/scheme/update', 'post', params);
|
||||
return fetch('/api/bs/hrmsalary/scheme/update', {
|
||||
method: 'POST',
|
||||
mode: 'cors',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(params)
|
||||
}).then(res => res.json())
|
||||
};
|
||||
export const getCopyForm = params => {
|
||||
return WeaTools.callApi('/api/bs/hrmsalary/scheme/copyForm', 'get', params);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
import React from 'react'
|
||||
import { Modal, Row, Col } from "antd"
|
||||
import { WeaInput } from 'ecCom'
|
||||
|
||||
export default class CopySchemaModal extends React.Component {
|
||||
render() {
|
||||
return (
|
||||
<Modal title="复制社保方案" footer={this.props.footer} onCancel={() => this.props.onCancel()} visible={this.props.visible}>
|
||||
<Row>
|
||||
<Col span={6}>
|
||||
方案名称
|
||||
</Col>
|
||||
<Col span={18}>
|
||||
<WeaInput value={this.props.value} onChange={(v) =>{this.props.onChange(v)}} />
|
||||
</Col>
|
||||
</Row>
|
||||
</Modal>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -28,6 +28,7 @@ import {
|
|||
const { MonthPicker } = DatePicker;
|
||||
|
||||
import TwoColContent from '../../../components/twoColContent';
|
||||
import CopySchemaModal from './copySchemaModal';
|
||||
|
||||
@inject('programmeStore')
|
||||
@observer
|
||||
|
|
@ -38,11 +39,9 @@ export default class Programme extends React.Component {
|
|||
value: "",
|
||||
searchValue: "",
|
||||
slideVisiable: false,
|
||||
requestParams: {
|
||||
schemeName: "",
|
||||
remarks: "",
|
||||
paymentArea: "1"
|
||||
}
|
||||
currentOperate: "add",
|
||||
copyModalValue: "",
|
||||
copyId: "",
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -51,10 +50,59 @@ export default class Programme extends React.Component {
|
|||
const {doInit} = programmeStore;
|
||||
doInit();
|
||||
}
|
||||
|
||||
// 增加编辑功能,重写columns绑定事件
|
||||
getColumns = (columns) => {
|
||||
let newColumns = '';
|
||||
newColumns = columns.map(column => {
|
||||
let newColumn = column;
|
||||
newColumn.render = (text, record, index) => { //前端元素转义
|
||||
let valueSpan = record[newColumn.dataIndex + "span"] !== undefined ? record[newColumn.dataIndex + "span"] : record[newColumn.dataIndex];
|
||||
switch(newColumn.dataIndex) {
|
||||
case "operate":
|
||||
return <a onClick={() => {this.onEdit(record)}}>编辑</a>
|
||||
default:
|
||||
return <div dangerouslySetInnerHTML={{ __html: valueSpan }} />
|
||||
}
|
||||
}
|
||||
return newColumn;
|
||||
});
|
||||
return newColumns;
|
||||
}
|
||||
|
||||
onEdit(record) {
|
||||
let id = record.id;
|
||||
const { programmeStore } = this.props
|
||||
const { getForm, selectedKey } = programmeStore
|
||||
getForm({
|
||||
welfareTypeEnum: selectedKey,
|
||||
id
|
||||
})
|
||||
this.setState({slideVisiable: true, currentOperate: "update"})
|
||||
}
|
||||
|
||||
onCopy(record) {
|
||||
this.setState({
|
||||
copyId: record.id,
|
||||
copyModalVisible: true
|
||||
})
|
||||
}
|
||||
|
||||
onOperatesClick(record, index, operate, flag) {
|
||||
switch(operate.text.toString()){
|
||||
case '编辑': // 编辑
|
||||
this.onEdit(record);
|
||||
break;
|
||||
case "复制": // 复制
|
||||
this.onCopy(record);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
const { programmeStore } = this.props;
|
||||
const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = programmeStore;
|
||||
const { selectedKey, setSelectedKey, getCustomCategoryList, customTableStore, customSelectkey, setCustomSelectkey } = programmeStore;
|
||||
const { selectedKey, setSelectedKey, getCustomCategoryList, customTableStore, customSelectkey, setCustomSelectkey, requestParams, setRequestParams } = programmeStore;
|
||||
if (!hasRight && !loading) { // 无权限处理
|
||||
return renderNoright();
|
||||
}
|
||||
|
|
@ -110,12 +158,12 @@ export default class Programme extends React.Component {
|
|||
},
|
||||
{
|
||||
showname: "企业年金及其他福利",
|
||||
key: "OTHER"
|
||||
key: "OTHER"
|
||||
}
|
||||
]
|
||||
|
||||
const handleNewClick = () => {
|
||||
this.setState({ slideVisiable: true })
|
||||
this.setState({ slideVisiable: true, currentOperate: "add" })
|
||||
}
|
||||
|
||||
const renderSearchOperationItem = () => {
|
||||
|
|
@ -137,10 +185,10 @@ export default class Programme extends React.Component {
|
|||
}
|
||||
|
||||
const handleOnSave = () => {
|
||||
let {requestParams} = this.state;
|
||||
let { schemeName, remarks, paymentArea } = requestParams
|
||||
const { programmeStore } = this.props
|
||||
const { selectedKey, defaultPersonDataSource, defaultCompanyDataSource, createScheme } = programmeStore
|
||||
const { currentOperate } = this.state
|
||||
const { selectedKey, defaultPersonDataSource, defaultCompanyDataSource, createScheme, requestParams, updateScheme } = programmeStore
|
||||
let { schemeName, remarks, paymentArea } = requestParams
|
||||
let request = {
|
||||
insuranceScheme: {
|
||||
paymentType: paymentArea == "1" ? "SCHEME_TOWN": "SCHEME_VILLAGE",
|
||||
|
|
@ -151,7 +199,14 @@ export default class Programme extends React.Component {
|
|||
},
|
||||
insuranceSchemeDetailList: [...defaultPersonDataSource, ...defaultCompanyDataSource]
|
||||
}
|
||||
createScheme(request)
|
||||
|
||||
if(currentOperate == "add") {
|
||||
createScheme(request)
|
||||
} else if(currentOperate == "update"){
|
||||
request.insuranceScheme.id = requestParams.id
|
||||
updateScheme(request)
|
||||
}
|
||||
this.setState({slideVisiable: false})
|
||||
}
|
||||
|
||||
const renderCustomRightContent = () => {
|
||||
|
|
@ -163,6 +218,13 @@ export default class Programme extends React.Component {
|
|||
return (<TipLabel tipList={tipList} />)
|
||||
}
|
||||
|
||||
const handleCopyModalSave = () => {
|
||||
const { programmeStore: {copyScheme}} = this.props;
|
||||
const { copyId, copyModalValue } = this.state;
|
||||
copyScheme({id:copyId, schemeName: copyModalValue})
|
||||
this.setState({copyModalVisible : false})
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="mySalaryBenefitsWrapper">
|
||||
<WeaRightMenu
|
||||
|
|
@ -208,9 +270,10 @@ export default class Programme extends React.Component {
|
|||
comsWeaTableStore={tableStore} // table store
|
||||
hasOrder={true} // 是否启用排序
|
||||
needScroll={true} // 是否启用table内部列表滚动,将自适应到父级高度
|
||||
getColumns={this.getColumns}
|
||||
onOperatesClick={this.onOperatesClick.bind(this)}
|
||||
/>
|
||||
}
|
||||
|
||||
</WeaTop>
|
||||
</WeaRightMenu>
|
||||
<WeaSlideModal visible={this.state.slideVisiable}
|
||||
|
|
@ -228,13 +291,24 @@ export default class Programme extends React.Component {
|
|||
}}
|
||||
/>
|
||||
}
|
||||
content={(<DefaultSlideForm requestParams={this.state.requestParams} onChange={(requestParams) => {
|
||||
this.setState({requestParams})
|
||||
content={(<DefaultSlideForm requestParams={requestParams} onChange={(requestParams) => {
|
||||
setRequestParams(requestParams)
|
||||
}}/>)}
|
||||
onClose={() => this.setState({ slideVisiable: false })}
|
||||
showMask={true}
|
||||
closeMaskOnClick={() => this.setState({ slideVisiable: false })}
|
||||
onAnimationEnd={() => console.log('onAnimationEnd')} />
|
||||
|
||||
{
|
||||
this.state.copyModalVisible && <CopySchemaModal
|
||||
visible={this.state.copyModalVisible}
|
||||
value={this.state.copyModalValue}
|
||||
onChange={(value) => this.setState({copyModalValue: value})}
|
||||
onCancel={() => {this.setState({copyModalVisible: false})}}
|
||||
footer={<Button type="primary" onClick={() => {handleCopyModalSave()}}>保存</Button>
|
||||
}
|
||||
/>
|
||||
}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ export class ProgrammeStore {
|
|||
}
|
||||
|
||||
@action
|
||||
setRequestParams = requestParams => this.requestParams;
|
||||
setRequestParams = requestParams => this.requestParams = requestParams;
|
||||
|
||||
@action
|
||||
setDefaultPersonDataSource = defaultPersonDataSource => this.defaultPersonDataSource = defaultPersonDataSource;
|
||||
|
|
@ -109,6 +109,13 @@ export class ProgrammeStore {
|
|||
let resultList = res.data.form.schemeDetailList;
|
||||
this.defaultPersonDataSource = resultList.filter(item => item.paymentScope == "个人")
|
||||
this.defaultCompanyDataSource = resultList.filter(item => item.paymentScope == "公司")
|
||||
let defaultRequest = {
|
||||
schemeName: "",
|
||||
remarks: "",
|
||||
paymentArea: "1"
|
||||
}
|
||||
|
||||
this.requestParams = {...defaultRequest, ...res.data.form.schemeBatch}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
@ -122,4 +129,22 @@ export class ProgrammeStore {
|
|||
})
|
||||
}
|
||||
|
||||
@action updateScheme = (params) => {
|
||||
API.updateScheme(params).then(res => {
|
||||
if(res.status) {
|
||||
message.success("更新成功");
|
||||
this.getTableDatas(this.selectedKey);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@action copyScheme = (params) => {
|
||||
API.copyScheme(params).then(res => {
|
||||
if(res.status) {
|
||||
message.success("复制成功")
|
||||
this.getTableDatas(this.selectedKey);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue