From 012273d1c72a3a1ab1cdcf8ad3902af9525b6277 Mon Sep 17 00:00:00 2001 From: orangebabu <2409692770@qq.com> Date: Wed, 11 Jun 2025 15:16:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jinbooks-ui/src/utils/DistData.ts | 20 +++++- .../hr/salary-voucher-rules/template.vue | 71 ++++++++++++++----- .../enums/SalaryVoucherTemplateEnum.java | 11 +-- .../EmployeeSalarySummaryServiceImpl.java | 3 +- 4 files changed, 82 insertions(+), 23 deletions(-) diff --git a/jinbooks-ui/src/utils/DistData.ts b/jinbooks-ui/src/utils/DistData.ts index a4c2ab7..49d7b29 100644 --- a/jinbooks-ui/src/utils/DistData.ts +++ b/jinbooks-ui/src/utils/DistData.ts @@ -2213,9 +2213,13 @@ const distData: DistData = { value: "companyCosts" }, { - label: "实发工资", + label: "应发工资", value: "salaryPayable" }, + { + label: "实发工资", + value: "actualSalary" + }, { label: "个人所得税", value: "personalIncomeTax" @@ -2237,6 +2241,20 @@ const distData: DistData = { value: "providentFundPaidByEnterprises" } ], + "labor_fee_values": [ + { + label: "劳务费总额", + value: "companyCosts" + }, + { + label: "实发劳务费", + value: "actualSalary" + }, + { + label: "代扣个人所得税", + value: "personalIncomeTax" + } + ], "salary_directions": [ { label: "借", diff --git a/jinbooks-ui/src/views/hr/salary-voucher-rules/template.vue b/jinbooks-ui/src/views/hr/salary-voucher-rules/template.vue index 799903c..8a17e3c 100644 --- a/jinbooks-ui/src/views/hr/salary-voucher-rules/template.vue +++ b/jinbooks-ui/src/views/hr/salary-voucher-rules/template.vue @@ -8,7 +8,7 @@
- + @@ -47,7 +47,7 @@ :show-overflow-tooltip="true"> @@ -89,10 +89,17 @@ import modal from "@/plugins/modal"; const {t} = useI18n() const {proxy} = getCurrentInstance()!; -const {salary_values, salary_directions} - = proxy?.useDict( "salary_values", "salary_directions"); +const {salary_values, salary_directions, labor_fee_values} + = proxy?.useDict( "salary_values", "salary_directions", "labor_fee_values"); const emit: any = defineEmits(['dialogOfClosedMethods']) const formRef = ref | null>(null); +interface SalaryValueItem { + label: string + value: string | number +} + +const salaryValuesList = ref([]) + const props: any = defineProps({ title: { type: String, @@ -185,35 +192,67 @@ function reset(): any { form.value = { voucherType: 0, wordHead: '记' - }; + } - const summaryTemplate = typeTextMap[form.value.voucherType] || ""; + // 先根据 voucherType 给 salaryValuesList 赋值 + if (form.value.voucherType === 0 || form.value.voucherType === 1) { + salaryValuesList.value = salary_values.value + } else { + salaryValuesList.value = labor_fee_values.value + } - dataList.value = [{ - id: null, - summary: summaryTemplate, - direction: "1", - subjectCode: props.deptOptions?.[0]?.code || null, - selectedValue: salary_values.value[0].value, - }] + // 取第一个值 + const selectedValue = salaryValuesList.value.length > 0 ? salaryValuesList.value[0].value : null - formRef?.value?.resetFields(); + // 设置 dataList + const summaryTemplate = typeTextMap[form.value.voucherType] || "" + + dataList.value = [ + { + id: null, + summary: summaryTemplate, + direction: "1", + subjectCode: props.deptOptions?.[0]?.code || null, + selectedValue: selectedValue, + } + ] + + formRef?.value?.resetFields() } -function addRecord() { +function addRecord() { const summaryTemplate = typeTextMap[form.value.voucherType] || ""; + // 根据 voucherType 先切换数据源 + if (form.value.voucherType === 0 || form.value.voucherType === 1) { + salaryValuesList.value = salary_values.value; + } else { + salaryValuesList.value = labor_fee_values.value; + } + + // 如果 salaryValuesList 为空,安全处理(防止访问 undefined) + const selectedValue = salaryValuesList.value.length > 0 ? salaryValuesList.value[0].value : null; + + // 新增一条记录 dataList.value.push({ id: null, summary: summaryTemplate, direction: "1", subjectCode: props.deptOptions?.[0]?.code || null, - selectedValue: salary_values.value[0].value, + selectedValue: selectedValue, }); } +function handleChangeType() { + // 根据 voucherType 先切换数据源 + if (form.value.voucherType === 0 || form.value.voucherType === 1) { + salaryValuesList.value = salary_values.value; + } else { + salaryValuesList.value = labor_fee_values.value; + } +} function dialogOfClosedMethods(val: any): any { dialogStatus.value = false; diff --git a/jinbooks/jinbooks-core/src/main/java/com/jinbooks/enums/SalaryVoucherTemplateEnum.java b/jinbooks/jinbooks-core/src/main/java/com/jinbooks/enums/SalaryVoucherTemplateEnum.java index 32d37af..93d749a 100644 --- a/jinbooks/jinbooks-core/src/main/java/com/jinbooks/enums/SalaryVoucherTemplateEnum.java +++ b/jinbooks/jinbooks-core/src/main/java/com/jinbooks/enums/SalaryVoucherTemplateEnum.java @@ -1,12 +1,12 @@ /* * Copyright [2025] [JinBooks of copyright http://www.jinbooks.com] - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -14,7 +14,7 @@ * limitations under the License. * */ - + package com.jinbooks.enums; @@ -29,7 +29,8 @@ import lombok.Getter; @Getter public enum SalaryVoucherTemplateEnum { COMPANY_COSTS("companyCosts", "公司成本"), - SALARY_PAYABLE("salaryPayable", "实发工资"), + SALARY_PAYABLE("salaryPayable", "应发工资"), + ACTUAL_SALARY("actualSalary", "实发工资"), PERSONAL_INCOME_TAX("personalIncomeTax", "个人所得税"), PERSONAL_WITHHOLDING_SOCIAL_SECURITY("personalWithholdingOfSocialSecurity", "个人代扣社保"), PERSONAL_WITHHOLDING_PROVIDENT_FUND("personalWithholdingOfProvidentFund", "个人代扣公积金"), diff --git a/jinbooks/jinbooks-persistence/src/main/java/com/jinbooks/persistence/service/impl/EmployeeSalarySummaryServiceImpl.java b/jinbooks/jinbooks-persistence/src/main/java/com/jinbooks/persistence/service/impl/EmployeeSalarySummaryServiceImpl.java index bd1f78b..1b40b20 100644 --- a/jinbooks/jinbooks-persistence/src/main/java/com/jinbooks/persistence/service/impl/EmployeeSalarySummaryServiceImpl.java +++ b/jinbooks/jinbooks-persistence/src/main/java/com/jinbooks/persistence/service/impl/EmployeeSalarySummaryServiceImpl.java @@ -173,7 +173,8 @@ public class EmployeeSalarySummaryServiceImpl extends ServiceImpl summary.getBusinessExpenditureCosts(); - case SALARY_PAYABLE -> summary.getTotalAmount(); + case SALARY_PAYABLE -> summary.getTotalAmount().add(summary.getTotalSocialInsurance()).add(summary.getProvidentFund()).add(summary.getPersonalTax()); + case ACTUAL_SALARY -> summary.getTotalAmount(); case PERSONAL_INCOME_TAX -> summary.getPersonalTax(); case PERSONAL_WITHHOLDING_SOCIAL_SECURITY -> summary.getTotalSocialInsurance(); case PERSONAL_WITHHOLDING_PROVIDENT_FUND -> summary.getProvidentFund();