From 02a86cdb3d3c91b4bfb6d4adf484388ba5cdcbcf Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Wed, 2 Jul 2025 14:55:02 +0800 Subject: [PATCH 1/2] =?UTF-8?q?release/2.19.1.2501.01-=E4=B8=AA=E7=A8=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataAcquisition/otherDeduct/columns.js | 82 +++++++++++++++++-- .../otherDeduct/detailSettingsDialog.js | 42 +++++++--- pc4mobx/hrmSalary/style/index.less | 1 + 3 files changed, 107 insertions(+), 18 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/columns.js b/pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/columns.js index cb6a387b..ef7f4489 100644 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/columns.js +++ b/pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/columns.js @@ -149,6 +149,17 @@ export const dataCollectCondition = [ export const taxDetailSettingsConditions = { freeIncome: [{ items: [ + { + conditionType: "SELECT", + domkey: ["incomeCategory"], + fieldcol: 14, + label: "所得项目", + lanId: 111, + labelcol: 8, + value: "", + rules: "required|string", + viewAttr: 3 + }, { conditionType: "INPUT", domkey: ["freeItem"], @@ -190,6 +201,17 @@ export const taxDetailSettingsConditions = { }], healthInsurance: [{ items: [ + { + conditionType: "SELECT", + domkey: ["incomeCategory"], + fieldcol: 14, + label: "所得项目", + lanId: 111, + labelcol: 8, + value: "", + rules: "required|string", + viewAttr: 3 + }, { conditionType: "INPUT", domkey: ["identificationNumber"], @@ -265,6 +287,17 @@ export const taxDetailSettingsConditions = { }], endowmentInsurance: [{ items: [ + { + conditionType: "SELECT", + domkey: ["incomeCategory"], + fieldcol: 14, + label: "所得项目", + lanId: 111, + labelcol: 8, + value: "", + rules: "required|string", + viewAttr: 3 + }, { conditionType: "MONTHPICKER", domkey: ["deductionMonth"], @@ -347,6 +380,17 @@ export const taxDetailSettingsConditions = { }], grantDonation: [{ items: [ + { + conditionType: "SELECT", + domkey: ["incomeCategory"], + fieldcol: 14, + label: "所得项目", + lanId: 111, + labelcol: 8, + value: "", + rules: "required|string", + viewAttr: 3 + }, { conditionType: "INPUT", domkey: ["recipientName"], @@ -446,6 +490,17 @@ export const taxDetailSettingsConditions = { }], derateDeduction: [{ items: [ + { + conditionType: "SELECT", + domkey: ["incomeCategory"], + fieldcol: 14, + label: "所得项目", + lanId: 111, + labelcol: 8, + value: "", + rules: "required|string", + viewAttr: 3 + }, { conditionType: "INPUT", domkey: ["derateItem"], @@ -487,6 +542,17 @@ export const taxDetailSettingsConditions = { }], otherDerateDeduction: [{ items: [ + { + conditionType: "SELECT", + domkey: ["incomeCategory"], + fieldcol: 14, + label: "所得项目", + lanId: 111, + labelcol: 8, + value: "", + rules: "required|string", + viewAttr: 3 + }, { conditionType: "INPUTNUMBER", domkey: ["otherDeduction"], @@ -519,6 +585,17 @@ export const taxDetailSettingsConditions = { }], personalPension: [{ items: [ + { + conditionType: "SELECT", + domkey: ["incomeCategory"], + fieldcol: 14, + label: "所得项目", + lanId: 111, + labelcol: 8, + value: "", + rules: "required|string", + viewAttr: 3 + }, { conditionType: "SELECT", domkey: ["voucherTypeName"], @@ -559,8 +636,3 @@ export const taxDetailSettingsConditions = { col: 1 }] }; - - - - - diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/detailSettingsDialog.js b/pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/detailSettingsDialog.js index 417597ec..bdcf7f53 100644 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/detailSettingsDialog.js +++ b/pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/detailSettingsDialog.js @@ -16,6 +16,8 @@ import { taxDetailSettingsConditions } from "./columns"; import { Button, message } from "antd"; import { getDomkes, toDecimal_n } from "../../../util"; import { postFetch } from "../../../util/request"; +import { getIncomeCategoryList } from "../../../apis/ledger"; //获取薪资类型 +import cs from "classnames"; const getKey = WeaTools.getKey; const getLabel = WeaLocaleProvider.getLabel; @@ -30,13 +32,24 @@ class DetailSettingsDialog extends Component { }; } - componentWillReceiveProps(nextProps, nextContext) { + async componentWillReceiveProps(nextProps, nextContext) { if (nextProps.visible !== this.props.visible && nextProps.visible) { + const { data } = await getIncomeCategoryList(); this.setState({ conditions: _.map(taxDetailSettingsConditions[nextProps.dataType], item => ({ ...item, items: _.map(item.items, o => ({ ...o, options: getKey(o) === "voucherTypeName" ? - [{ key: "MONTH", showname: "月度" }, { key: "YEAR", showname: "年度" }] : [] + [{ key: "MONTH", showname: "月度" }, { key: "YEAR", showname: "年度" }] : + getKey(o) === "incomeCategory" ? _.map(data, it => ({ + key: it.value.toString(), + showname:
+ {it.defaultLabel} + + {it.reportTypeName} + +
+ })) : [] })) })) }, () => { @@ -54,19 +67,21 @@ class DetailSettingsDialog extends Component { const { otherDeductStore: { settingsForm }, mainId, id, dataType } = this.props; settingsForm.validateForm().then(f => { if (f.isValid) { - let { deductionMonth, ...payload } = settingsForm.getFormParams(); + let { deductionMonth, incomeCategory, ...payload } = settingsForm.getFormParams(); deductionMonth && (payload = { ...payload, deductionMonth: deductionMonth + "-01" }); this.setState({ loading: true }); - postFetch(`/api/bs/hrmsalary/otherDeduction/save${_.upperFirst(dataType)}`, { ...payload, mainId, id }) - .then(({ status, errormsg }) => { - this.setState({ loading: false }); - if (status) { - message.success(getLabel(111, "操作成功!")); - this.props.onCancel(this.props.onSuccess); - } else { - message.error(errormsg); - } - }); + postFetch(`/api/bs/hrmsalary/otherDeduction/save${_.upperFirst(dataType)}`, { + ...payload, mainId, id, + incomeCategory: Number(incomeCategory) + }).then(({ status, errormsg }) => { + this.setState({ loading: false }); + if (status) { + message.success(getLabel(111, "操作成功!")); + this.props.onCancel(this.props.onSuccess); + } else { + message.error(errormsg); + } + }); } else { f.showErrors(); } @@ -146,6 +161,7 @@ class DetailSettingsDialog extends Component { onBlur={(v) => v && form.updateFields({ payAmount: { value: toDecimal_n(v, 2) } })}/>); } }; + if (_.reduce(conditions, (pre, cur) => (pre += cur.items.length), 0) * 47 + 33 === 33) return null; return ( Date: Wed, 2 Jul 2025 18:31:51 +0800 Subject: [PATCH 2/2] =?UTF-8?q?release/2.19.1.2501.01-=E4=B8=AA=E7=A8=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/dataAcquisition/otherDeduct/detailSettingsDialog.js | 2 +- .../pages/dataAcquisition/otherDeduct/taxSetDialog.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/detailSettingsDialog.js b/pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/detailSettingsDialog.js index bdcf7f53..3fd2e1e4 100644 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/detailSettingsDialog.js +++ b/pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/detailSettingsDialog.js @@ -55,7 +55,7 @@ class DetailSettingsDialog extends Component { }, () => { this.props.otherDeductStore.settingsForm.initFormFields(this.state.conditions); if (nextProps.id) _.map(getDomkes(this.state.conditions), domkey => { - this.props.otherDeductStore.settingsForm.updateFields({ [domkey]: { value: nextProps.record[domkey] } }); + this.props.otherDeductStore.settingsForm.updateFields({ [domkey]: { value: nextProps.record[domkey].toString() } }); }); }); } else if (nextProps.visible !== this.props.visible && !nextProps.visible) { diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/taxSetDialog.js b/pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/taxSetDialog.js index 97fbb38c..1848f4a9 100644 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/taxSetDialog.js +++ b/pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/taxSetDialog.js @@ -66,12 +66,12 @@ class TaxSetDialog extends Component { }); }; handleDelete = (ids = []) => { - const { selectedRowKeys } = this.state, { dataType } = this.props; + const { selectedRowKeys } = this.state, { dataType, id: mainId } = this.props; Modal.confirm({ title: getLabel(131329, "信息确认"), content: getLabel(388758, "确认要删除吗?"), onOk: () => { - postFetch(`/api/bs/hrmsalary/otherDeduction/delete${_.upperFirst(dataType)}`, { ids }) + postFetch(`/api/bs/hrmsalary/otherDeduction/delete${_.upperFirst(dataType)}`, { ids, mainId }) .then(({ status, errormsg }) => { if (status) { message.success(getLabel(502230, "删除成功!"));