liu
2026-09-18 a5856cbf2da9bd13068c66ed4429c992992b71e4
feat(薪酬核算): 全勤奖列支持行内编辑并实时重算

- 全勤奖输入框放开编辑,改动后防抖调用单行重算接口,联动应发/应扣/实发
- 修复回显时 0 值被 || 100 强制改写为 100 的问题

Co-Authored-By: Claude <noreply@anthropic.com>
已修改1个文件
10 ■■■■■ 文件已修改
src/views/personnelManagement/monthlyStatistics/components/formDia.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/monthlyStatistics/components/formDia.vue
@@ -159,7 +159,7 @@
                        type="number"
                        placeholder="100"
                        size="small"
                        disabled />
                        @input="handleAttendanceBonusInput(row)" />
            </template>
          </el-table-column>
          <el-table-column label="日计工资"
@@ -543,7 +543,7 @@
    postName: source?.postName ?? fallback.postName ?? "",
    deptName: source?.deptName ?? fallback.deptName ?? "",
    basicSalary: parseNum(source?.basicSalary ?? fallback.basicSalary),
    attendanceBonus: parseNum(source?.attendanceBonus ?? fallback.attendanceBonus ?? 100) || 100,
    attendanceBonus: parseNum(source?.attendanceBonus ?? fallback.attendanceBonus ?? 100),
    entryDate: source?.entryDate ?? source?.contractStartTime ?? fallback.entryDate ?? "",
    workDays: parseNum(source?.workDays ?? fallback.workDays),
    dailySalary: parseNum(source?.dailySalary ?? fallback.dailySalary),
@@ -677,6 +677,12 @@
    requestEmployeeRecalculate(row, { preserveConversionRatio: true });
  };
  const handleAttendanceBonusInput = row => {
    // 全勤奖允许行内调整(默认 100),最小 0,改动后实时重算应发合计
    row.attendanceBonus = Math.max(0, parseNum(row.attendanceBonus));
    requestEmployeeRecalculate(row, { preserveConversionRatio: true });
  };
  const handlePieceSalaryInput = row => {
    row.monthTimeTotal = parseNum(row.monthTimeTotal);
    requestEmployeeRecalculate(row);