zhangwencui
4 天以前 3726999abe9196ac13d072d8e9e46803d9cd936e
工资表应发工资和实发工资的计算
已修改1个文件
56 ■■■■■ 文件已修改
src/views/personnelManagement/monthlyStatistics/components/formDia.vue 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    // 餐补计算:仅限回族,(白班 + 夜班) * 标准
    // 注意:nation 可能是字典值,这里假设 "回族" 是直接存储的字符串或需要根据字典判断
    // 之前的 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 },