薪资项目管理页面重构
This commit is contained in:
parent
f61c4bfbb0
commit
7578c4b09e
|
|
@ -1,7 +1,4 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { Col, Row, Switch } from "antd";
|
|
||||||
import { WeaHelpfulTip, WeaInput, WeaSelect, WeaTextarea } from "ecCom";
|
|
||||||
import { dataTypeOptions, patternOptions, roundingModeOptions } from "./options";
|
|
||||||
import FormalFormModal from "./formalFormModal";
|
import FormalFormModal from "./formalFormModal";
|
||||||
import SalaryItemForm from "./salaryItemForm";
|
import SalaryItemForm from "./salaryItemForm";
|
||||||
import "./index.less";
|
import "./index.less";
|
||||||
|
|
@ -15,21 +12,21 @@ export default class CustomSalaryItemSlide extends React.Component {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
handleChange(params) {
|
handleChange = (params) => {
|
||||||
let request = { ...this.props.request, ...params };
|
let request = { ...this.props.request, ...params };
|
||||||
this.props.onChange(request);
|
this.props.onChange(request);
|
||||||
}
|
};
|
||||||
|
|
||||||
handleShowFormal() {
|
handleShowFormal = () => {
|
||||||
this.setState({
|
this.setState({
|
||||||
formalModalVisible: true
|
formalModalVisible: true
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
// 保存公式成功回调
|
// 保存公式成功回调
|
||||||
handleSaveFormal(data) {
|
handleSaveFormal = (data) => {
|
||||||
this.handleChange({ formulaId: data.id, formulaContent: data.formula });
|
this.handleChange({ formulaId: data.id, formulaContent: data.formula });
|
||||||
}
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { editable, request, isAdd, userStatusList, taxAgentAdminOption } = this.props;
|
const { editable, request, isAdd, userStatusList, taxAgentAdminOption } = this.props;
|
||||||
|
|
@ -51,7 +48,7 @@ export default class CustomSalaryItemSlide extends React.Component {
|
||||||
const { formalModalVisible } = this.state;
|
const { formalModalVisible } = this.state;
|
||||||
return (
|
return (
|
||||||
<div className="customSalaryItemSlide">
|
<div className="customSalaryItemSlide">
|
||||||
<SalaryItemForm {...this.props}/>
|
<SalaryItemForm {...this.props} onChangeFieldsItem={this.handleChange}/>
|
||||||
{/*<div>*/}
|
{/*<div>*/}
|
||||||
{/* <Row className="formItem">*/}
|
{/* <Row className="formItem">*/}
|
||||||
{/* <Col span={4}>名称</Col>*/}
|
{/* <Col span={4}>名称</Col>*/}
|
||||||
|
|
|
||||||
|
|
@ -291,6 +291,14 @@ export default class SalaryItem extends React.Component {
|
||||||
// 新建和修改保存的回调
|
// 新建和修改保存的回调
|
||||||
const handleSlideSave = (continueFlag) => {
|
const handleSlideSave = (continueFlag) => {
|
||||||
const { salaryItemStore: { saveItem, request, getTableDatas } } = this.props;
|
const { salaryItemStore: { saveItem, request, getTableDatas } } = this.props;
|
||||||
|
const { name, sharedType, taxAgentIds } = request;
|
||||||
|
if (!name || (sharedType === "1" && !taxAgentIds)) {
|
||||||
|
Modal.warning({
|
||||||
|
title: "信息确认",
|
||||||
|
content: "必要信息不完整,红色*为必填项!"
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
saveItem(request, continueFlag).then(() => {
|
saveItem(request, continueFlag).then(() => {
|
||||||
getTableDatas({ ...this.state.searchParams }).then(res => {
|
getTableDatas({ ...this.state.searchParams }).then(res => {
|
||||||
this.setState({
|
this.setState({
|
||||||
|
|
|
||||||
|
|
@ -18,27 +18,60 @@ class SalaryItemForm extends Component {
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
const { salaryItemFieldsList } = this.state;
|
const { salaryItemFieldsList } = this.state;
|
||||||
const { request, isAdd } = this.props;
|
const { request, editable, record, isAdd, taxAgentAdminOption } = this.props;
|
||||||
const { systemType, sharedType, valueType } = request;
|
const { systemType, sharedType, valueType } = request;
|
||||||
console.log(this.state.salaryItemFieldsList, this.props);
|
|
||||||
this.setState({
|
this.setState({
|
||||||
salaryItemFieldsList: _.map(salaryItemFieldsList, item => {
|
salaryItemFieldsList: _.map(salaryItemFieldsList, item => {
|
||||||
const { key } = item;
|
const { key } = item;
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case "sharedType":
|
case "sharedType":
|
||||||
return { ...item, display: systemType.toString() === "0" || isAdd };
|
return {
|
||||||
|
...item,
|
||||||
|
viewAttr: (editable && record.canEdit) || isAdd ? 2 : 1,
|
||||||
|
display: systemType.toString() === "0" || isAdd
|
||||||
|
};
|
||||||
case "taxAgentIds":
|
case "taxAgentIds":
|
||||||
return { ...item, display: sharedType === "1" };
|
console.log('123',sharedType, !_.isNil(sharedType) && sharedType.toString() === "1");
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
viewAttr: (editable && record.canEdit) || isAdd ? 3 : 1,
|
||||||
|
display: !_.isNil(sharedType) && sharedType.toString() === "1",
|
||||||
|
options: [{ key: "", showname: "" }, ...taxAgentAdminOption]
|
||||||
|
};
|
||||||
case "formulaContent":
|
case "formulaContent":
|
||||||
return { ...item, display: valueType === "2" || valueType === "3" };
|
return {
|
||||||
|
...item,
|
||||||
|
display: valueType === "2" || valueType === "3",
|
||||||
|
viewAttr: (editable && record.canEdit) || isAdd ? 2 : 1
|
||||||
|
};
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return { ...item };
|
return {
|
||||||
|
...item,
|
||||||
|
viewAttr: (key === "name" && ((editable && record.canEdit) || isAdd)) ? 3 : (key !== "name" && ((editable && record.canEdit) || isAdd)) ? 2 : 1
|
||||||
|
};
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handleChangeSalaryFiledItems = (key, v) => {
|
||||||
|
const { onChangeFieldsItem } = this.props;
|
||||||
|
const { salaryItemFieldsList } = this.state;
|
||||||
|
this.setState({
|
||||||
|
salaryItemFieldsList: _.map(salaryItemFieldsList, item => {
|
||||||
|
if (key === "sharedType" && item.key === "taxAgentIds") {
|
||||||
|
return { ...item, display: v === "1", viewAttr: 3 };
|
||||||
|
} else if (key === "valueType" && item.key === "formulaContent") {
|
||||||
|
return { ...item, display: v === "2" || v === "3" };
|
||||||
|
}
|
||||||
|
return { ...item };
|
||||||
|
})
|
||||||
|
}, () => {
|
||||||
|
onChangeFieldsItem({ [key]: (key === "useDefault" || key === "useInEmployeeSalary") ? Number(v) : v });
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { userStatusList, request } = this.props;
|
const { userStatusList, request } = this.props;
|
||||||
const { salaryItemFieldsList } = this.state;
|
const { salaryItemFieldsList } = this.state;
|
||||||
|
|
@ -47,28 +80,32 @@ class SalaryItemForm extends Component {
|
||||||
{
|
{
|
||||||
_.map(salaryItemFieldsList, item => {
|
_.map(salaryItemFieldsList, item => {
|
||||||
const { key, label, type, viewAttr, tip, options, display = true } = item;
|
const { key, label, type, viewAttr, tip, options, display = true } = item;
|
||||||
const value = request[key] ? request[key].toString() : "";
|
const value = !_.isNil(request[key]) ? request[key].toString() : "";
|
||||||
return <React.Fragment>
|
return <React.Fragment>
|
||||||
{
|
{
|
||||||
(type === "INPUT" && display) ?
|
(type === "INPUT" && display) ?
|
||||||
<WeaFormItem label={label} labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}>
|
<WeaFormItem label={label} labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}>
|
||||||
<WeaInput viewAttr={viewAttr} value={value}/></WeaFormItem> :
|
<WeaInput viewAttr={viewAttr} value={value}
|
||||||
|
onChange={v => this.handleChangeSalaryFiledItems(key, v)}/></WeaFormItem> :
|
||||||
(type === "SWITCH" && display) ?
|
(type === "SWITCH" && display) ?
|
||||||
<WeaFormItem label={label} labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}>
|
<WeaFormItem label={label} labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}>
|
||||||
<WeaCheckbox value={value} helpfulTip={tip} display="switch" viewAttr={viewAttr}/>
|
<WeaCheckbox value={value} helpfulTip={tip} display="switch" viewAttr={viewAttr}
|
||||||
|
onChange={v => this.handleChangeSalaryFiledItems(key, v)}/>
|
||||||
</WeaFormItem> :
|
</WeaFormItem> :
|
||||||
(type === "SELECT" && display) ?
|
(type === "SELECT" && display) ?
|
||||||
<WeaFormItem label={label} labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}>
|
<WeaFormItem label={label} labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}>
|
||||||
<WeaSelect value={value} options={key !== "sharedType" ? options : userStatusList}
|
<WeaSelect value={value} options={key !== "sharedType" ? options : userStatusList}
|
||||||
viewAttr={viewAttr}/>
|
viewAttr={viewAttr} onChange={v => this.handleChangeSalaryFiledItems(key, v)}/>
|
||||||
</WeaFormItem> :
|
</WeaFormItem> :
|
||||||
(type === "RADIO" && display) ?
|
(type === "RADIO" && display) ?
|
||||||
<WeaFormItem label={label} labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}>
|
<WeaFormItem label={label} labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}>
|
||||||
<WeaSelect value={value} options={valTakeOptions} detailtype={3} viewAttr={viewAttr}/>
|
<WeaSelect value={value} options={valTakeOptions} detailtype={3} viewAttr={viewAttr}
|
||||||
|
onChange={v => this.handleChangeSalaryFiledItems(key, v)}/>
|
||||||
</WeaFormItem> :
|
</WeaFormItem> :
|
||||||
(type === "TEXTAREA" && display) ?
|
(type === "TEXTAREA" && display) ?
|
||||||
<WeaFormItem label={label} labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}><WeaTextarea
|
<WeaFormItem label={label} labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}>
|
||||||
value={value} viewAttr={viewAttr} minRows={3}/>
|
<WeaTextarea value={value} viewAttr={viewAttr} minRows={3}
|
||||||
|
onChange={v => this.handleChangeSalaryFiledItems(key, v)}/>
|
||||||
</WeaFormItem> : null
|
</WeaFormItem> : null
|
||||||
}
|
}
|
||||||
</React.Fragment>;
|
</React.Fragment>;
|
||||||
|
|
|
||||||
|
|
@ -90,10 +90,7 @@ export class salaryFileStore {
|
||||||
type === "archive" ? this.archiveStatusList = [{
|
type === "archive" ? this.archiveStatusList = [{
|
||||||
key: "",
|
key: "",
|
||||||
showname: ""
|
showname: ""
|
||||||
}, ...data] : this.userStatusList = [{
|
}, ...data] : this.userStatusList = [...data];
|
||||||
key: "",
|
|
||||||
showname: ""
|
|
||||||
}, ...data];
|
|
||||||
} else {
|
} else {
|
||||||
message.error(res.errormsg || "获取失败");
|
message.error(res.errormsg || "获取失败");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ export class SalaryItemStore {
|
||||||
valueType: 1,
|
valueType: 1,
|
||||||
dataType: "number",
|
dataType: "number",
|
||||||
description: "",
|
description: "",
|
||||||
sharedType: "",
|
sharedType: "0",
|
||||||
taxAgentIds: ""
|
taxAgentIds: ""
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -70,7 +70,7 @@ export class SalaryItemStore {
|
||||||
valueType: "1",
|
valueType: "1",
|
||||||
dataType: "number",
|
dataType: "number",
|
||||||
description: "",
|
description: "",
|
||||||
sharedType: "",
|
sharedType: "0",
|
||||||
taxAgentIds: ""
|
taxAgentIds: ""
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -167,7 +167,7 @@ export class SalaryItemStore {
|
||||||
if (res.status) {
|
if (res.status) {
|
||||||
let data = res.data;
|
let data = res.data;
|
||||||
Object.keys(data).map(key => {
|
Object.keys(data).map(key => {
|
||||||
if (data[key]) {
|
if (!_.isNil(data[key])) {
|
||||||
data[key] = data[key].toString();
|
data[key] = data[key].toString();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue