From 3726999abe9196ac13d072d8e9e46803d9cd936e Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期三, 27 五月 2026 17:12:03 +0800
Subject: [PATCH] 工资表应发工资和实发工资的计算

---
 src/views/personnelManagement/monthlyStatistics/components/formDia.vue |   56 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 38 insertions(+), 18 deletions(-)

diff --git a/src/views/personnelManagement/monthlyStatistics/components/formDia.vue b/src/views/personnelManagement/monthlyStatistics/components/formDia.vue
index 35ae756..6caa386 100644
--- a/src/views/personnelManagement/monthlyStatistics/components/formDia.vue
+++ b/src/views/personnelManagement/monthlyStatistics/components/formDia.vue
@@ -141,7 +141,7 @@
                         type="number"
                         placeholder="0"
                         size="small"
-                        @input="row.basicSalary = parseNum(row.basicSalary)" />
+                        @input="calculateRow(row)" />
             </template>
           </el-table-column>
           <el-table-column label="鐧界彮澶╂暟"
@@ -151,7 +151,7 @@
                         type="number"
                         placeholder="0"
                         size="small"
-                        @input="handleDaysChange(row)" />
+                        @input="calculateRow(row)" />
             </template>
           </el-table-column>
           <el-table-column label="澶滅彮澶╂暟"
@@ -161,7 +161,7 @@
                         type="number"
                         placeholder="0"
                         size="small"
-                        @input="handleDaysChange(row)" />
+                        @input="calculateRow(row)" />
             </template>
           </el-table-column>
           <el-table-column label="椁愯ˉ"
@@ -191,7 +191,7 @@
                         type="number"
                         placeholder="0"
                         size="small"
-                        @input="row.otherIncome = parseNum(row.otherIncome)" />
+                        @input="calculateRow(row)" />
             </template>
           </el-table-column>
           <el-table-column label="绀句繚涓汉"
@@ -201,7 +201,7 @@
                         type="number"
                         placeholder="0"
                         size="small"
-                        @input="row.socialPersonal = parseNum(row.socialPersonal)" />
+                        @input="calculateRow(row)" />
             </template>
           </el-table-column>
           <el-table-column label="鍏Н閲戜釜浜�"
@@ -211,7 +211,7 @@
                         type="number"
                         placeholder="0"
                         size="small"
-                        @input="row.fundPersonal = parseNum(row.fundPersonal)" />
+                        @input="calculateRow(row)" />
             </template>
           </el-table-column>
           <el-table-column label="鍏朵粬鏀嚭"
@@ -221,7 +221,7 @@
                         type="number"
                         placeholder="0"
                         size="small"
-                        @input="row.otherDeduct = parseNum(row.otherDeduct)" />
+                        @input="calculateRow(row)" />
             </template>
           </el-table-column>
           <el-table-column label="绀句繚琛ョ即"
@@ -231,7 +231,7 @@
                         type="number"
                         placeholder="0"
                         size="small"
-                        @input="row.socialSecurityRetroactive = parseNum(row.socialSecurityRetroactive)" />
+                        @input="calculateRow(row)" />
             </template>
           </el-table-column>
           <el-table-column label="宸ヨ祫涓◣"
@@ -241,7 +241,7 @@
                         type="number"
                         placeholder="0"
                         size="small"
-                        @input="row.salaryTax = parseNum(row.salaryTax)" />
+                        @input="calculateRow(row)" />
             </template>
           </el-table-column>
           <el-table-column label="搴斿彂宸ヨ祫"
@@ -251,7 +251,7 @@
                         type="number"
                         placeholder="0"
                         size="small"
-                        @input="row.grossSalary = parseNum(row.grossSalary)" />
+                        disabled />
             </template>
           </el-table-column>
           <el-table-column label="搴旀墸宸ヨ祫"
@@ -261,7 +261,7 @@
                         type="number"
                         placeholder="0"
                         size="small"
-                        @input="row.deductSalary = parseNum(row.deductSalary)" />
+                        disabled />
             </template>
           </el-table-column>
           <el-table-column label="瀹炲彂宸ヨ祫"
@@ -271,7 +271,7 @@
                         type="number"
                         placeholder="0"
                         size="small"
-                        @input="row.netSalary = parseNum(row.netSalary)" />
+                        disabled />
             </template>
           </el-table-column>
           <el-table-column label="澶囨敞"
@@ -414,23 +414,43 @@
     });
   };
 
-  const handleDaysChange = row => {
+  const calculateRow = row => {
+    // 纭繚鎵�鏈夋暟鍊煎瓧娈典负鏁板瓧
+    row.basicSalary = parseNum(row.basicSalary);
     row.dayDays = parseNum(row.dayDays);
     row.nightDays = parseNum(row.nightDays);
+    row.otherIncome = parseNum(row.otherIncome);
+    row.socialPersonal = parseNum(row.socialPersonal);
+    row.fundPersonal = parseNum(row.fundPersonal);
+    row.otherDeduct = parseNum(row.otherDeduct);
+    row.socialSecurityRetroactive = parseNum(row.socialSecurityRetroactive);
+    row.salaryTax = parseNum(row.salaryTax);
 
-    // 澶滅彮琛ヨ创璁$畻锛氬鐝ぉ鏁� * 鏍囧噯
+    // 1. 璁$畻澶滅彮琛ヨ创锛氬鐝ぉ鏁� * 鏍囧噯
     row.nightAmount = row.nightDays * subsidyStandard.value.nightAmount;
 
-    // 椁愯ˉ璁$畻锛氫粎闄愬洖鏃忥紝(鐧界彮 + 澶滅彮) * 鏍囧噯
-    // 娉ㄦ剰锛歯ation 鍙兘鏄瓧鍏稿�硷紝杩欓噷鍋囪 "鍥炴棌" 鏄洿鎺ュ瓨鍌ㄧ殑瀛楃涓叉垨闇�瑕佹牴鎹瓧鍏稿垽鏂�
-    // 涔嬪墠鐨� BasicInfoSection.vue 涓皯鏃忔槸涓嬫媺妗嗭紝閫氬父瀛樺偍鐨勬槸瀛楀吀鐨� value 鎴� label
-    // 杩欓噷鍏堢畝鍗曞垽鏂寘鍚� "鍥�" 瀛楋紝鎴栬�呮偍鍙互鏍规嵁鍏蜂綋瀛楀吀鍊艰皟鏁�
+    // 2. 璁$畻椁愯ˉ锛氫粎闄愬洖鏃忥紝(鐧界彮 + 澶滅彮) * 鏍囧噯
     if (row.nation && (row.nation === "鍥炴棌" || row.nation.includes("鍥�"))) {
       row.mealAmount =
         (row.dayDays + row.nightDays) * subsidyStandard.value.mealAmount;
     } else {
       row.mealAmount = 0;
     }
+
+    // 3. 璁$畻搴斿彂宸ヨ祫 = 鍩烘湰宸ヨ祫 + 椁愯ˉ + 澶滅彮琛ュ姪 + 鍏朵粬鏀跺叆
+    row.grossSalary =
+      row.basicSalary + row.mealAmount + row.nightAmount + row.otherIncome;
+
+    // 4. 璁$畻搴旀墸宸ヨ祫 = 绀句繚涓汉 + 鍏Н閲戜釜浜� + 鍏朵粬鏀嚭 + 绀句繚琛ョ即 + 宸ヨ祫涓◣
+    row.deductSalary =
+      row.socialPersonal +
+      row.fundPersonal +
+      row.otherDeduct +
+      row.socialSecurityRetroactive +
+      row.salaryTax;
+
+    // 5. 璁$畻瀹炲彂宸ヨ祫 = 搴斿彂宸ヨ祫 - 搴旀墸宸ヨ祫
+    row.netSalary = row.grossSalary - row.deductSalary;
   };
   const taxTableData = ref([
     { level: 1, range: "涓嶈秴杩�36000鍏�", rate: 3, quickDeduction: 0 },

--
Gitblit v1.9.3