diff --git a/pc4mobx/hrmSalary/apis/welfareRecord.js b/pc4mobx/hrmSalary/apis/welfareRecord.js deleted file mode 100644 index 48f5d330..00000000 --- a/pc4mobx/hrmSalary/apis/welfareRecord.js +++ /dev/null @@ -1,56 +0,0 @@ -import { WeaTools } from 'ecCom'; - -//台账 -export const getRecordList = params => { - return WeaTools.callApi('/api/bs/hrmsalary/siaccount/batch/list', 'get', params); -}; -export const getCalcForm = params => { - return WeaTools.callApi('/api/bs/hrmsalary/siaccount/accountForm', 'get', params); -}; -export const save = params => { - return WeaTools.callApi('/api/bs/hrmsalary/siaccount/save', 'post', params); -}; -export const doArchive = params => { - return WeaTools.callApi('/api/bs/hrmsalary/siaccount/file', 'post', params); -}; -export const deleteRecord = params => { - return WeaTools.callApi('/api/bs/hrmsalary/siaccount/delete', 'post', params); -}; - -//核算 -export const getCalcTabs = params => { - return WeaTools.callApi('/api/bs/hrmsalary/siaccount/tabList', 'get', params); -}; -export const getNormalForm = params => { - return WeaTools.callApi('/api/bs/hrmsalary/siaccount/commonForm', 'get', params); -}; -export const saveNormalForm = params => { - return WeaTools.callApi('/api/bs/hrmsalary/siaccount/common/save', 'post', params); -}; -export const deleteNormal = params => { - return WeaTools.callApi('/api/bs/hrmsalary/siaccount/common/delete', 'post', params); -}; -export const getSupplementaryForm = params => { - return WeaTools.callApi('/api/bs/hrmsalary/siaccount/querySupplementaryForm', 'get', params); -}; -export const saveSupplementaryForm = params => { - return WeaTools.callApi('/api/bs/hrmsalary/siaccount/supplementary/save', 'post', params); -}; -export const deleteSupplementary = params => { - return WeaTools.callApi('/api/bs/hrmsalary/siaccount/supplementary/delete', 'post', params); -}; - -// 导出正常缴纳核算 -export const exportNormalPaymentAccount = params => { - return WeaTools.callApi('/api/bs/hrmsalary/common/export', 'post', params); -}; - -// 导出总览 -export const exportOverView = params => { - return WeaTools.callApi('/api/bs/hrmsalary/overview/export', 'post', params); -}; - -// 导出补缴核算 -export const exportSupplementaryAccount = params => { - return WeaTools.callApi('/api/bs/hrmsalary/supplementary/export', 'post', params); -}; \ No newline at end of file diff --git a/pc4mobx/hrmSalary/index.js b/pc4mobx/hrmSalary/index.js index 9134b08a..c122b6e1 100644 --- a/pc4mobx/hrmSalary/index.js +++ b/pc4mobx/hrmSalary/index.js @@ -5,10 +5,12 @@ import HistoricalPayroll from "./pages/historicalPayroll"; import SalaryAdjustmentRecords from "./pages/salaryAdjustmentRecords"; import MySalaryMobile from "./pages/mySalaryMobile"; import MySalary from "./pages/mySalaryBenefits"; -import Programme from "./pages/socialSecurityBenefits/programme"; +import Programme from "./pages/socialSecurityBenefits/welfarePlan"; +import Programme_old from "./pages/socialSecurityBenefits/programme"; // import Archivess from "./pages/socialSecurityBenefits/archives"; import Archives from "./pages/socialSecurityBenefits/welfareArchive"; //社保福利档案重构页面 -import StandingBook from "./pages/socialSecurityBenefits/standingBook"; +import StandingBookDemo from "./pages/socialSecurityBenefits/standingBook"; +import StandingBook from "./pages/socialSecurityBenefits/standingBook/standingBook";//社保福利台账重构页面 import StandingBookDetail from "./pages/socialSecurityBenefits/standingBookDetail"; import StandingBookOfflineComparison from "./pages/socialSecurityBenefits/standingBookOfflineComparison"; import SalaryItem from "./pages/salaryItem"; @@ -140,8 +142,10 @@ const Routes = ( path="socialSecurityBenefits" component={SocialSecurityBenefits}> + {/**/} + ; const { salaryTemplate, salaryGroups, employeeInformation, - sendTime, confirmStatus + sendTime, confirmStatus, showAck, showFeedback } = toJS(this.props.mySalaryStore.mySalaryBill); const salaryProps = { theme: salaryTemplate.theme, tip: salaryTemplate.textContent, sendTime, @@ -215,13 +215,11 @@ export default class MobilePayroll extends React.Component { - { - (_.isNil(confirmStatus) || confirmStatus === "0") && - - } + : @@ -229,13 +227,11 @@ export default class MobilePayroll extends React.Component { store={this.props.mySalaryStore}>
- { - (_.isNil(confirmStatus) || confirmStatus === "0") && - - } +
diff --git a/pc4mobx/hrmSalary/pages/mySalary/mySalaryView.js b/pc4mobx/hrmSalary/pages/mySalary/mySalaryView.js index 0ddd835d..5fa76f93 100644 --- a/pc4mobx/hrmSalary/pages/mySalary/mySalaryView.js +++ b/pc4mobx/hrmSalary/pages/mySalary/mySalaryView.js @@ -96,13 +96,11 @@ class MySalaryView extends Component { store={this.props.mySalaryStore}>
- { - (_.isNil(mySalaryStore.confirmStatus) || mySalaryStore.confirmStatus === "0") && - - } +
@@ -120,7 +118,13 @@ export default MySalaryView; export const ConfirmBtns = (props) => { return
- - + { + props.showAck === "1" && + + } + { + props.showFeedback === "1" && + + }
; }; diff --git a/pc4mobx/hrmSalary/pages/payroll/templateBaseSettings.js b/pc4mobx/hrmSalary/pages/payroll/templateBaseSettings.js index f64ad003..d8a1eeb2 100644 --- a/pc4mobx/hrmSalary/pages/payroll/templateBaseSettings.js +++ b/pc4mobx/hrmSalary/pages/payroll/templateBaseSettings.js @@ -34,6 +34,7 @@ class TemplateBaseSettings extends Component { }, ackFeedbackSetting: { ackStatus: "0", + feedbackStatus: "0", autoAckDays: 7, feedBackUrl: "", mobileFeedbackUrl: "" @@ -97,7 +98,7 @@ class TemplateBaseSettings extends Component { render() { const { watermarkStatus, watermark, watermarkSet, ackFeedbackSetting, salaryBillViewingLimitSetting } = this.state; - const { ackStatus, autoAckDays, feedBackUrl, mobileFeedbackUrl } = ackFeedbackSetting; + const { ackStatus, feedbackStatus, autoAckDays, feedBackUrl, mobileFeedbackUrl } = ackFeedbackSetting; const { limitMonth = 0 } = salaryBillViewingLimitSetting; return ( @@ -156,9 +157,22 @@ class TemplateBaseSettings extends Component { })}/> + + } + + this.setState({ + ackFeedbackSetting: { + ...ackFeedbackSetting, feedbackStatus + } + })}/> + + { + feedbackStatus === "1" && + this.setState({ adjLogRecordDialog: { - adjLogRecordDialog, visible: false, title: "", salaryArchiveId: "" + ...adjLogRecordDialog, visible: false, title: "", salaryArchiveId: "" } })} /> diff --git a/pc4mobx/hrmSalary/pages/payrollRelease/components/conditions.js b/pc4mobx/hrmSalary/pages/payrollRelease/components/conditions.js index dc8797e1..1bbae152 100644 --- a/pc4mobx/hrmSalary/pages/payrollRelease/components/conditions.js +++ b/pc4mobx/hrmSalary/pages/payrollRelease/components/conditions.js @@ -202,6 +202,17 @@ export const tempBaseSetFbConditions = [ hide: false, rules: "required" }, + { + colSpan: 1, + conditionType: "SWITCH", + domkey: ["feedbackStatus"], + fieldcol: 2, + label: "启用工资单反馈", + lanId: 111, + labelcol: 6, + value: "1", + viewAttr: 2 + }, { colSpan: 1, conditionType: "INPUT", diff --git a/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTempBaseSet/index.js b/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTempBaseSet/index.js index 770c1665..904d9ca4 100644 --- a/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTempBaseSet/index.js +++ b/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTempBaseSet/index.js @@ -132,7 +132,7 @@ class Index extends Component { } else if (getKey(o) === "feedbackUrl" || getKey(o) === "mobileFeedbackUrl") { return { ...o, - hide: _.isNil(fieldsEchoData["ackFeedbackStatus"]) ? o.hide : !fieldsEchoData["ackFeedbackStatus"] + hide: _.isNil(fieldsEchoData["feedbackStatus"]) ? o.hide : !fieldsEchoData["feedbackStatus"] }; } return { ...o }; @@ -171,7 +171,7 @@ class Index extends Component { } }); _.map(tempBaseSetFbDomkeys, it => { - if (it === "ackFeedbackStatus") { + if (it === "ackFeedbackStatus" || it === "feedbackStatus") { payrollTempFeedbackForm.updateFields({ [it]: fieldsEchoData[it] ? "1" : "0" }); } else { payrollTempFeedbackForm.updateFields({ [it]: !_.isNil(fieldsEchoData[it]) ? fieldsEchoData[it].toString() : "/" }); @@ -292,18 +292,23 @@ class Index extends Component { handleFbChange = (params) => { const { payrollStore: { payrollTempFeedbackForm, setHasBeenModify } } = this.props; const key = _.keys(params)[0]; - if (key === "ackFeedbackStatus") { + if (key === "ackFeedbackStatus" || key === "feedbackStatus") { this.setState({ fbConditions: _.map(this.state.fbConditions, it => { if (it.title === getLabel(544092, "工资单确认反馈设置")) { return { ...it, items: _.map(it.items, o => { - if (getKey(o) === "autoAckDays" || getKey(o) === "feedbackUrl" || getKey(o) === "mobileFeedbackUrl") { + if (getKey(o) === "autoAckDays" && key === "ackFeedbackStatus") { return { - ...o, hide: params[key].value === "0" + ...o, hide: params["ackFeedbackStatus"].value === "0" }; + } else if (key === "feedbackStatus" && (getKey(o) === "feedbackUrl" || getKey(o) === "mobileFeedbackUrl")) { + return { + ...o, hide: params["feedbackStatus"].value === "0" + }; + } else { + return { ...o }; } - return { ...o }; }) }; } @@ -312,8 +317,11 @@ class Index extends Component { }, () => { payrollTempFeedbackForm.initFormFields(this.state.fbConditions); const ackFeedbackStatus = payrollTempFeedbackForm.getFormParams().ackFeedbackStatus; + const feedbackStatus = payrollTempFeedbackForm.getFormParams().feedbackStatus; if (ackFeedbackStatus === "0") payrollTempFeedbackForm.updateFields({ - autoAckDays: "7", + autoAckDays: "7" + }); + if (feedbackStatus === "0") payrollTempFeedbackForm.updateFields({ feedbackUrl: "/", mobileFeedbackUrl: "/" }); diff --git a/pc4mobx/hrmSalary/pages/payrollRelease/components/updatePayrollTemplateSlide/index.js b/pc4mobx/hrmSalary/pages/payrollRelease/components/updatePayrollTemplateSlide/index.js index ac2cb87c..9b0a1c53 100644 --- a/pc4mobx/hrmSalary/pages/payrollRelease/components/updatePayrollTemplateSlide/index.js +++ b/pc4mobx/hrmSalary/pages/payrollRelease/components/updatePayrollTemplateSlide/index.js @@ -46,11 +46,12 @@ class Index extends Component { const { replenishRule, autoSendStatus, emailStatus, msgStatus, smsStatus, ...extraBs } = payrollTempForm.getFormParams(), - { ackFeedbackStatus, autoAckDays, ...extraFb } = payrollTempFeedbackForm.getFormParams(), + { ackFeedbackStatus, feedbackStatus, autoAckDays, ...extraFb } = payrollTempFeedbackForm.getFormParams(), { formData, smsSettingDialog } = this.tmpBaseSetRef.state; const payload = { ...toJS(tmplDataSource), ...extraFb, ...formData, ...extraBs, ackFeedbackStatus: ackFeedbackStatus === "1", + feedbackStatus: feedbackStatus === "1", autoSendStatus: autoSendStatus === "1", emailStatus: emailStatus === "1", msgStatus: msgStatus === "1", diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/paymentPeriodModal.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/paymentPeriodModal.js index 6621acd5..a78983d5 100644 --- a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/paymentPeriodModal.js +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/paymentPeriodModal.js @@ -61,7 +61,9 @@ class PaymentPeriodModal extends Component { const { monthList, allSelect } = this.state; const buttons = [ , - + ]; const options = [ { label: "一月", value: "1" }, diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/columns.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/columns.js index ea3a33dc..bc9c1816 100644 --- a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/columns.js +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/columns.js @@ -41,3 +41,23 @@ export const socialAccountConditions = [ title: "" } ]; +export const welfareRQConditions = [ + { + items: [ + { + colSpan: 1, + conditionType: "SELECT", + domkey: ["taxAgents"], + fieldcol: 8, + label: "个税扣缴义务人", + lanId: 537996, + labelcol: 6, + options: [], + viewAttr: 2, + multiple: true + } + ], + defaultshow: true, + title: "" + } +]; diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/components/welfareRecordList.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/components/welfareRecordList.js new file mode 100644 index 00000000..c5d90a68 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/components/welfareRecordList.js @@ -0,0 +1,163 @@ +/* + * Author: 黎永顺 + * name:社保福利台账重构-列表 + * Description: + * Date: 2024/1/23 + */ +import React, { Component } from "react"; +import { inject, observer } from "mobx-react"; +import { message, Modal, Spin } from "antd"; +import { WeaLocaleProvider } from "ecCom"; +import { getIframeParentHeight } from "../../../../util"; +import * as API from "../../../../apis/standingBook"; +import { convertToUrlString } from "../../../../util/url"; + +const getLabel = WeaLocaleProvider.getLabel; + +@inject("taxAgentStore") +@observer +class WelfareRecordList extends Component { + constructor(props) { + super(props); + this.state = { + loading: false, dataSource: [], columns: [], + pageInfo: { current: 0, pageSize: 10, total: 0 } + }; + } + + componentDidMount() { + window.addEventListener("message", this.handleReceive, false); + } + + componentWillUnmount() { + window.removeEventListener("message", this.handleReceive, false); + } + + handleReceive = ({ data }) => { + const { pageInfo } = this.state; + const { type, payload: { id, params } = {} } = data; + if (type === "init") { + this.getWelfareRecordList(); + } else if (type === "turn") { + const module = { + billMonth: params.billMonth, + paymentOrganization: params.paymentOrganizationId + }; + switch (id) { + case "PAGEINFO": + this.setState({ pageInfo: { ...pageInfo, ...params } }, () => this.getWelfareRecordList()); + break; + case "CALC": + case "VIEW": + const payload = { + billMonth: params.billMonth, + paymentOrganization: params.paymentOrganizationId, + creator: params.creator, + type: id === "VIEW" ? "detail" : "" + }; + window.open(`/spa/hrmSalary/static/index.html#/main/hrmSalary/socialSecurityBenefits/standingBookDetail?${convertToUrlString(payload)}`); + break; + case "DELRC": + Modal.confirm({ + title: getLabel(111, "确认信息"), content: getLabel(388758, "确认要删除吗?"), + onOk: () => { + API.siaccountDelete(module).then(({ status, errormsg }) => { + if (status) { + message.success(getLabel(502230, "删除成功")); + this.getWelfareRecordList(); + } else { + message.error(errormsg); + } + }); + } + }); + break; + case "RECALC": + Modal.confirm({ + title: getLabel(111, "确认信息"), + content: getLabel(111, "重新核算后,此条台账数据将可以删除且可以进行此月份的核算,是否确认取消归档?"), + onOk: () => { + API.socialSecurityBenefitsRecalculate({ id: params.id }) + .then(({ status, errormsg }) => { + if (status) { + message.success(getLabel(30700, "操作成功!")); + this.getWelfareRecordList(); + } else { + message.error(errormsg); + } + }); + } + }); + break; + case "FILE": + Modal.confirm({ + title: getLabel(111, "确认信息"), + content: getLabel(111, "归档后,此条台账数据无法删除且不可以再进行此月份的核算,是否确认归档?"), + onOk: () => { + API.siaccountFile(module).then(({ status, errormsg }) => { + if (status) { + message.success(getLabel(30700, "操作成功!")); + this.getWelfareRecordList(); + } else { + message.error(errormsg); + } + }); + } + }); + break; + default: + break; + } + } + }; + postMessageToChild = (payload = {}) => { + const i18n = { + "共": getLabel(18609, "共"), "条": getLabel(18256, "条"), + "总计": getLabel(523, "总计"), "已归档": getLabel(18800, "已归档"), + "未归档": getLabel(17999, "已归档"), "操作": getLabel(30585, "操作"), + "核算": getLabel(538780, "核算"), "归档": getLabel(251, "归档"), + "查看": getLabel(33564, "查看"), "重新核算": getLabel(542637, "重新核算"), + "删除": getLabel(535052, "删除") + }; + const childFrameObj = document.getElementById("unitTable"); + childFrameObj && childFrameObj.contentWindow.postMessage(JSON.stringify({ ...payload, i18n }), "*"); + }; + getWelfareRecordList = () => { + const { queryForm, taxAgentStore: { showOperateBtn } } = this.props; + const { pageInfo } = this.state; + const payload = { ...pageInfo, ...queryForm, taxAgents: queryForm.taxAgents ? queryForm.taxAgents.split(",") : [] }; + this.setState({ loading: true }); + API.getCommonList(payload).then(({ status, data }) => { + this.setState({ loading: false }); + if (status) { + const { pageInfo: result } = data; + const { columns, list: dataSource, pageNum: current, pageSize, total } = result; + this.setState({ + pageInfo: { ...pageInfo, current, pageSize, total }, + dataSource, columns + }, () => this.postMessageToChild({ + scrollHeight: 108, dataSource, columns, pageInfo: this.state.pageInfo, showOperateBtn + })); + } + }).catch(() => this.setState({ loading: false })); + }; + + render() { + const { loading, dataSource } = this.state; + return ( +
+ +