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();