From 924150c4d2a874d87173ce3e3d67caf345b323c9 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 23 七月 2026 09:25:59 +0800
Subject: [PATCH] 修改工资

---
 src/views/personnelManagement/monthlyStatistics/components/formDia.vue |   84 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 78 insertions(+), 6 deletions(-)

diff --git a/src/views/personnelManagement/monthlyStatistics/components/formDia.vue b/src/views/personnelManagement/monthlyStatistics/components/formDia.vue
index 46515ed..981fefe 100644
--- a/src/views/personnelManagement/monthlyStatistics/components/formDia.vue
+++ b/src/views/personnelManagement/monthlyStatistics/components/formDia.vue
@@ -141,6 +141,46 @@
                         @input="handleSalaryInput(row)" />
             </template>
           </el-table-column>
+          <el-table-column label="鍏ㄥ嫟濂�"
+                           minWidth="110">
+            <template #default="{ row }">
+              <el-input v-model.number="row.attendanceBonus"
+                        type="number"
+                        placeholder="100"
+                        size="small"
+                        disabled />
+            </template>
+          </el-table-column>
+          <el-table-column label="鏈堟椂闂村悎璁�"
+                           minWidth="110">
+            <template #default="{ row }">
+              <el-input v-model.number="row.monthTimeTotal"
+                        type="number"
+                        placeholder="0"
+                        size="small"
+                        disabled />
+            </template>
+          </el-table-column>
+          <el-table-column label="鏈堟爣鍑嗗伐鏃�"
+                           minWidth="110">
+            <template #default="{ row }">
+              <el-input v-model.number="row.standardHours"
+                        type="number"
+                        placeholder="0"
+                        size="small"
+                        disabled />
+            </template>
+          </el-table-column>
+          <el-table-column label="鎶樺悎鍊嶆暟"
+                           minWidth="100">
+            <template #default="{ row }">
+              <el-input v-model.number="row.conversionRatio"
+                        type="number"
+                        placeholder="0"
+                        size="small"
+                        disabled />
+            </template>
+          </el-table-column>
           <el-table-column label="璁′欢宸ヨ祫"
                            minWidth="110">
             <template #default="{ row }">
@@ -148,7 +188,6 @@
                         type="number"
                         placeholder="0"
                         size="small"
-                        disabled
                         @input="row.pieceSalary = parseNum(row.pieceSalary)" />
             </template>
           </el-table-column>
@@ -159,7 +198,6 @@
                         type="number"
                         placeholder="0"
                         size="small"
-                        disabled
                         @input="row.hourlySalary = parseNum(row.hourlySalary)" />
             </template>
           </el-table-column>
@@ -202,8 +240,7 @@
                         type="number"
                         placeholder="0"
                         size="small"
-                        disabled
-                        @input="row.otherDeduct = parseNum(row.otherDeduct)" />
+                        @input="handleSalaryInput(row)" />
             </template>
           </el-table-column>
           <el-table-column label="绀句繚琛ョ即"
@@ -418,8 +455,16 @@
     postName: "",
     deptName: "",
     basicSalary: 0,
+    attendanceBonus: 100,
     pieceSalary: 0,
     hourlySalary: 0,
+    actualOutput: 0,
+    standardQuantity: 0,
+    conversionFactor: 1,
+    convertedWorkHours: 0,
+    monthTimeTotal: 0,
+    standardHours: 0,
+    conversionRatio: 0,
     otherIncome: 0,
     socialPersonal: 0,
     fundPersonal: 0,
@@ -442,8 +487,16 @@
     postName: source?.postName ?? fallback.postName ?? "",
     deptName: source?.deptName ?? fallback.deptName ?? "",
     basicSalary: parseNum(source?.basicSalary ?? fallback.basicSalary),
+    attendanceBonus: parseNum(source?.attendanceBonus ?? fallback.attendanceBonus ?? 100) || 100,
     pieceSalary: parseNum(source?.pieceSalary ?? fallback.pieceSalary),
     hourlySalary: parseNum(source?.hourlySalary ?? fallback.hourlySalary),
+    actualOutput: parseNum(source?.actualOutput ?? fallback.actualOutput),
+    standardQuantity: parseNum(source?.standardQuantity ?? fallback.standardQuantity),
+    conversionFactor: parseNum(source?.conversionFactor ?? fallback.conversionFactor) || 1,
+    convertedWorkHours: parseNum(source?.convertedWorkHours ?? fallback.convertedWorkHours),
+    monthTimeTotal: parseNum(source?.monthTimeTotal ?? fallback.monthTimeTotal),
+    standardHours: parseNum(source?.standardHours ?? fallback.standardHours),
+    conversionRatio: parseNum(source?.conversionRatio ?? fallback.conversionRatio),
     otherIncome: parseNum(source?.otherIncome ?? fallback.otherIncome),
     socialPersonal: parseNum(source?.socialPersonal ?? fallback.socialPersonal),
     fundPersonal: parseNum(source?.fundPersonal ?? fallback.fundPersonal),
@@ -481,15 +534,23 @@
     const version = (recalcVersions.get(key) || 0) + 1;
     recalcVersions.set(key, version);
     clearTimeout(recalcTimers.get(key));
-    const payload = {
+      const payload = {
       staffOnJobId: row.staffOnJobId ?? row.id,
       salaryMonth: form.value.salaryMonth,
       staffName: row.staffName ?? "",
       postName: row.postName ?? "",
       deptName: row.deptName ?? "",
       basicSalary: parseNum(row.basicSalary),
+      attendanceBonus: parseNum(row.attendanceBonus),
       pieceSalary: parseNum(row.pieceSalary),
       hourlySalary: parseNum(row.hourlySalary),
+      actualOutput: parseNum(row.actualOutput),
+      standardQuantity: parseNum(row.standardQuantity),
+      conversionFactor: parseNum(row.conversionFactor) || 1,
+      convertedWorkHours: parseNum(row.convertedWorkHours),
+      monthTimeTotal: parseNum(row.monthTimeTotal),
+      standardHours: parseNum(row.standardHours),
+      conversionRatio: parseNum(row.conversionRatio),
       otherIncome: parseNum(row.otherIncome),
       otherDeduct: parseNum(row.otherDeduct),
       socialSupplementAmount: parseNullableNum(row.socialSupplementAmount),
@@ -509,6 +570,9 @@
   const handleSalaryInput = row => {
     row.basicSalary = parseNum(row.basicSalary);
     row.otherIncome = parseNum(row.otherIncome);
+    row.actualOutput = parseNum(row.actualOutput);
+    row.standardQuantity = parseNum(row.standardQuantity);
+    row.conversionFactor = parseNum(row.conversionFactor) || 1;
     requestEmployeeRecalculate(row);
   };
 
@@ -672,7 +736,6 @@
         form.value.remark = row.remark ?? "";
         form.value.payBank = row.payBank ?? "";
         form.value.auditUserId = row.auditUserId ?? undefined;
-
         // 濡傛灉鏈夊憳宸ユ槑缁嗘暟鎹紝鐩存帴鍙嶆樉
         if (row.staffSalaryDetailList && row.staffSalaryDetailList.length > 0) {
           employeeList.value = row.staffSalaryDetailList.map(e => normalizeEmployeeRow(e));
@@ -725,6 +788,7 @@
         deptName: node.deptName ?? "",
         remark: "",
         socialSupplementAmount: null,
+        attendanceBonus: node.attendanceBonus,
       });
       employeeList.value.push(newRow);
       requestEmployeeRecalculate(newRow);
@@ -825,8 +889,16 @@
         postName: e.postName ?? "",
         deptName: e.deptName ?? "",
         basicSalary: parseNum(e.basicSalary),
+        attendanceBonus: parseNum(e.attendanceBonus),
         pieceSalary: parseNum(e.pieceSalary),
         hourlySalary: parseNum(e.hourlySalary),
+        actualOutput: parseNum(e.actualOutput),
+        standardQuantity: parseNum(e.standardQuantity),
+        conversionFactor: parseNum(e.conversionFactor) || 1,
+        convertedWorkHours: parseNum(e.convertedWorkHours),
+        monthTimeTotal: parseNum(e.monthTimeTotal),
+        standardHours: parseNum(e.standardHours),
+        conversionRatio: parseNum(e.conversionRatio),
         otherIncome: parseNum(e.otherIncome),
         socialPersonal: parseNum(e.socialPersonal),
         fundPersonal: parseNum(e.fundPersonal),

--
Gitblit v1.9.3