diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/welfareArchive/components/welfareEditArchiveSlide/index.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/welfareArchive/components/welfareEditArchiveSlide/index.js index ffeb9a2d..ac440549 100644 --- a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/welfareArchive/components/welfareEditArchiveSlide/index.js +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/welfareArchive/components/welfareEditArchiveSlide/index.js @@ -29,29 +29,43 @@ class Index extends Component { componentWillReceiveProps(nextProps, nextContext) { if (nextProps.visible !== this.props.visible && nextProps.visible) { document.querySelector(".salary-welfare-archive").classList.add("zIndex0-welfare-archive"); - this.getBaseForm(nextProps); + const promise = this.getBaseForm(nextProps); } else if (nextProps.visible !== this.props.visible && !nextProps.visible) { const { archivesStore: { initWelfareProfileForm, setHasBeenModify } } = nextProps; document.querySelector(".salary-welfare-archive").classList.remove("zIndex0-welfare-archive"); initWelfareProfileForm(); } + console.log(38, nextProps); } getBaseForm = async (props) => { const { data: taxAgentList } = await getTaxAgentSelectList(); const { - archivesStore: { welfareProfileForm }, socialBase, fundBase, othersBase, + archivesStore: { welfareProfileForm }, socialBase, fundBase, otherBase, employeeId, paymentOrganization, socialBaseData, fundBaseData, othersBaseData } = props; const payload = { employeeId, paymentOrganization, welfareTypeEnum: "" }; - console.log(props); + const conditions = _.reduce(welfareConditions, (pre, cur) => { + if (cur.title === "social") { + return [...pre, cur, ...socialBase.items]; + } else if (cur.title === "fund") { + return [...pre, cur, ...fundBase.items]; + } else if (cur.title === "others") { + return [...pre, cur, ...otherBase.items]; + } + return [...pre, cur]; + }, []); + console.log(conditions, props); API.getBaseForm(payload).then(({ status, data }) => { if (status) { const { data: result } = data; - const formData = { ...result, ...socialBaseData, ...fundBaseData, ...othersBaseData }; + const formData = { + ...result, ...socialBaseData, ...fundBaseData, ...othersBaseData, + ...socialBase.data, ...fundBase.data, ...otherBase.data + }; this.setState({ formData, - conditions: _.map(welfareConditions, o => { + conditions: _.map(conditions, o => { if (o.title === "basic") { return { ...o, title: getLabel(542699, "员工基本信息"), @@ -112,10 +126,16 @@ class Index extends Component { }); }; handleFormChange = (val) => { - const changeKey = _.keys(val)[0]; - const { archivesStore: { setHasBeenModify } } = this.props; + const changeKey = _.keys(val)[0], changeVal = val[changeKey].value; + const { archivesStore: { setHasBeenModify }, onChangeProgramme, employeeId, paymentOrganization } = this.props; console.log(val, changeKey); setHasBeenModify(true); + if (changeKey === "socialSchemeId" || changeKey === "fundSchemeId" || changeKey === "otherSchemeId") { + onChangeProgramme(changeKey.slice(0, changeKey.indexOf("SchemeId")), changeVal, { + employeeId, + paymentOrganization + }); + } }; renderTitle = () => { const { loading } = this.state; diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/welfareArchive/components/welfareTableList/index.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/welfareArchive/components/welfareTableList/index.js index 42ccdf73..c09bf6ed 100644 --- a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/welfareArchive/components/welfareTableList/index.js +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/welfareArchive/components/welfareTableList/index.js @@ -85,7 +85,7 @@ class Index extends Component { const [socialItems, fundItems, othersItems] = await Promise.all([ this.getProfileTypeForm({ ...payload, welfareTypeEnum: welfareTypeEnum["social"] }), this.getProfileTypeForm({ ...payload, welfareTypeEnum: welfareTypeEnum["fund"] }), - this.getProfileTypeForm({ ...payload, welfareTypeEnum: welfareTypeEnum["others"] }) + this.getProfileTypeForm({ ...payload, welfareTypeEnum: welfareTypeEnum["other"] }) ]); this.setState({ welfareEditSlide: { @@ -106,15 +106,15 @@ class Index extends Component { const { SOCIAL_SECURITY: { socialSchemeId } } = socialBaseData, { ACCUMULATION_FUND: { fundSchemeId } } = fundBaseData, { OTHER: { otherSchemeId } } = othersBaseData; - const [socialBase, fundBase, othersBase] = await Promise.all([ + const [socialBase, fundBase, otherBase] = await Promise.all([ this.getPaymentForm({ ...payload, welfareTypeEnum: welfareTypeEnum["social"], schemeId: socialSchemeId }), this.getPaymentForm({ ...payload, welfareTypeEnum: welfareTypeEnum["fund"], schemeId: fundSchemeId }), - this.getPaymentForm({ ...payload, welfareTypeEnum: welfareTypeEnum["others"], schemeId: otherSchemeId }) + this.getPaymentForm({ ...payload, welfareTypeEnum: welfareTypeEnum["other"], schemeId: otherSchemeId }) ]); this.setState({ welfareEditSlide: { ...this.state.welfareEditSlide, visible: true, - socialBase: socialBase.data, fundBase: fundBase.data, othersBase: othersBase.data + socialBase: socialBase.data, fundBase: fundBase.data, otherBase: otherBase.data } }); }); @@ -146,9 +146,7 @@ class Index extends Component { return API.getBaseForm(payload); }; getPaymentForm = async (props) => { - const { employeeId, paymentOrganization, welfareTypeEnum } = props; - const payload = { employeeId, paymentOrganization, welfareTypeEnum }; - return API.getPaymentForm(payload); + return API.getPaymentForm({ ...props }); }; getWelfareList = (props) => { const { pageInfo } = this.state; @@ -235,6 +233,16 @@ class Index extends Component { const childFrameObj = document.getElementById("atdTable"); childFrameObj.contentWindow.postMessage(JSON.stringify({ ...payload, i18n }), "*"); }; + handleChangeProgramme = (type, schemeId, payload) => { + this.getPaymentForm({ ...payload, welfareTypeEnum: welfareTypeEnum[type], schemeId }) + .then(({ status, data }) => { + if (status) { + this.setState({ + welfareEditSlide: { ...this.state.welfareEditSlide, [`${type}Base`]: data } + }); + } + }); + }; render() { const { loading, dataSource, welfareEditSlide } = this.state; @@ -257,7 +265,9 @@ class Index extends Component { this.setState({ welfareEditSlide: { ...welfareEditSlide, visible: false } - })}/> + })} + onChangeProgramme={this.handleChangeProgramme} + /> ); } diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/welfareArchive/config.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/welfareArchive/config.js index 7e991801..eb4469e3 100644 --- a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/welfareArchive/config.js +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/welfareArchive/config.js @@ -11,7 +11,7 @@ const getLabel = WeaLocaleProvider.getLabel; export const welfareTypeEnum = { social: "SOCIAL_SECURITY", fund: "ACCUMULATION_FUND", - others: "OTHER" + other: "OTHER" }; export const optTypeEnum = [ //批量增员 @@ -672,11 +672,11 @@ export const getWelfareSearchsForm = (form, condition, onChange = () => void (0) hide: fields.hide }); }); - group.push( + !_.isEmpty(items) && group.push( : } - className={c.col === 3 ? "basic-welfare-info-wrapper" : c.col === 2 ? "twoColumns-welfare-info-wrapper" : ""} + className={c.col === 3 ? "basic-welfare-info-wrapper" : (c.col === 2 || c.items.length > 1) ? "twoColumns-welfare-info-wrapper" : ""} />); }); return group;