yuan
22 小时以前 b439d99d55f594cd56cf06463a9f328812e25df4
feat: 添加加班时长和加班工资功能,支持手动输入并重新计算应发工资
已修改1个文件
37 ■■■■■ 文件已修改
src/views/personnelManagement/monthlyStatistics/components/formDia.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/monthlyStatistics/components/formDia.vue
@@ -163,6 +163,25 @@
                        @input="row.hourlySalary = parseNum(row.hourlySalary)" />
            </template>
          </el-table-column>
          <el-table-column label="加班时长"
                           minWidth="110">
            <template #default="{ row }">
              <el-input :model-value="formatHours(row.overtimeHours)"
                        placeholder="0.00"
                        size="small"
                        disabled />
            </template>
          </el-table-column>
          <el-table-column label="加班工资"
                           minWidth="110">
            <template #default="{ row }">
              <el-input v-model.number="row.overtimePay"
                        type="number"
                        placeholder="0"
                        size="small"
                        @input="handleOvertimePayInput(row)" />
            </template>
          </el-table-column>
          <el-table-column label="其他收入"
                           minWidth="110">
            <template #default="{ row }">
@@ -455,6 +474,11 @@
    return isNaN(n) ? 0 : n;
  }
  // 加班时长按小时展示,固定两位小数
  function formatHours(v) {
    return parseNum(v).toFixed(2);
  }
  function parseNullableNum(v) {
    if (v === "" || v == null) return null;
    const n = Number(v);
@@ -470,6 +494,8 @@
    basicSalary: 0,
    pieceSalary: 0,
    hourlySalary: 0,
    overtimeHours: 0,
    overtimePay: 0,
    otherIncome: 0,
    socialPersonal: 0,
    fundPersonal: 0,
@@ -499,6 +525,8 @@
    basicSalary: parseNum(source?.basicSalary ?? fallback.basicSalary),
    pieceSalary: parseNum(source?.pieceSalary ?? fallback.pieceSalary),
    hourlySalary: parseNum(source?.hourlySalary ?? fallback.hourlySalary),
    overtimeHours: parseNum(source?.overtimeHours ?? fallback.overtimeHours),
    overtimePay: parseNum(source?.overtimePay ?? fallback.overtimePay),
    otherIncome: parseNum(source?.otherIncome ?? fallback.otherIncome),
    socialPersonal: parseNum(source?.socialPersonal ?? fallback.socialPersonal),
    fundPersonal: parseNum(source?.fundPersonal ?? fallback.fundPersonal),
@@ -550,6 +578,7 @@
      basicSalary: parseNum(row.basicSalary),
      pieceSalary: parseNum(row.pieceSalary),
      hourlySalary: parseNum(row.hourlySalary),
      overtimePay: parseNum(row.overtimePay),
      otherIncome: parseNum(row.otherIncome),
      otherDeduct: parseNum(row.otherDeduct),
      socialSupplementAmount: parseNullableNum(row.socialSupplementAmount),
@@ -572,6 +601,12 @@
  const handleSalaryInput = row => {
    row.basicSalary = parseNum(row.basicSalary);
    row.otherIncome = parseNum(row.otherIncome);
    requestEmployeeRecalculate(row);
  };
  // 加班工资(手填):重新计算应发工资、个税和实发工资
  const handleOvertimePayInput = row => {
    row.overtimePay = parseNum(row.overtimePay);
    requestEmployeeRecalculate(row);
  };
@@ -896,6 +931,8 @@
        basicSalary: parseNum(e.basicSalary),
        pieceSalary: parseNum(e.pieceSalary),
        hourlySalary: parseNum(e.hourlySalary),
        overtimeHours: parseNum(e.overtimeHours),
        overtimePay: parseNum(e.overtimePay),
        otherIncome: parseNum(e.otherIncome),
        socialPersonal: parseNum(e.socialPersonal),
        fundPersonal: parseNum(e.fundPersonal),