diff --git a/pc4mobx/hrmSalary/apis/welfareScheme.js b/pc4mobx/hrmSalary/apis/welfareScheme.js
index b9f851d3..f4a017ef 100644
--- a/pc4mobx/hrmSalary/apis/welfareScheme.js
+++ b/pc4mobx/hrmSalary/apis/welfareScheme.js
@@ -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);
diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/copySchemaModal.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/copySchemaModal.js
new file mode 100644
index 00000000..c13969ad
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/copySchemaModal.js
@@ -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 (
+ this.props.onCancel()} visible={this.props.visible}>
+
+
+ 方案名称
+
+
+ {this.props.onChange(v)}} />
+
+
+
+ )
+ }
+}
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/index.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/index.js
index 79c82ed7..fa130d84 100644
--- a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/index.js
+++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/index.js
@@ -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 {this.onEdit(record)}}>编辑
+ default:
+ return
+ }
+ }
+ 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 ()
}
+ const handleCopyModalSave = () => {
+ const { programmeStore: {copyScheme}} = this.props;
+ const { copyId, copyModalValue } = this.state;
+ copyScheme({id:copyId, schemeName: copyModalValue})
+ this.setState({copyModalVisible : false})
+ }
+
return (
}
-
}
- content={( {
- this.setState({requestParams})
+ content={( {
+ setRequestParams(requestParams)
}}/>)}
onClose={() => this.setState({ slideVisiable: false })}
showMask={true}
closeMaskOnClick={() => this.setState({ slideVisiable: false })}
onAnimationEnd={() => console.log('onAnimationEnd')} />
+
+ {
+ this.state.copyModalVisible && this.setState({copyModalValue: value})}
+ onCancel={() => {this.setState({copyModalVisible: false})}}
+ footer={
+ }
+ />
+ }
)
}
diff --git a/pc4mobx/hrmSalary/stores/programme.js b/pc4mobx/hrmSalary/stores/programme.js
index de215f46..1cd1f86f 100644
--- a/pc4mobx/hrmSalary/stores/programme.js
+++ b/pc4mobx/hrmSalary/stores/programme.js
@@ -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);
+ }
+ })
+ }
+
}
\ No newline at end of file