zhangwencui
2026-06-08 7e6de5f6c65f4268cb33d172a0d46b34efc65334
工资管理添加社保补缴字段
已修改2个文件
214 ■■■■■ 文件已修改
src/views/personnelManagement/monthlyStatistics/components/Show.vue 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/monthlyStatistics/components/formDia.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/monthlyStatistics/components/Show.vue
@@ -5,7 +5,9 @@
             append-to-body>
    <div class="detail-container">
      <!-- 主表信息 -->
      <el-descriptions title="基础信息" :column="4" border>
      <el-descriptions title="基础信息"
                       :column="4"
                       border>
        <el-descriptions-item label="工资主题">{{ mainInfo.salaryTitle }}</el-descriptions-item>
        <el-descriptions-item label="工资月份">{{ mainInfo.salaryMonth }}</el-descriptions-item>
        <el-descriptions-item label="工资总额">
@@ -19,41 +21,95 @@
        <el-descriptions-item label="创建时间">{{ mainInfo.createTime }}</el-descriptions-item>
        <el-descriptions-item label="备注">{{ mainInfo.remark || '-' }}</el-descriptions-item>
      </el-descriptions>
      <!-- 明细列表 -->
      <div class="detail-table-wrap">
        <div class="table-title">工资明细</div>
        <el-table :data="detailList" border stripe max-height="500">
          <el-table-column label="部门" prop="deptName" minWidth="120" />
          <el-table-column label="员工姓名" prop="staffName" minWidth="100" />
          <el-table-column label="民族" prop="nation" width="80" align="center" />
          <el-table-column label="基本工资" prop="basicSalary" minWidth="100" align="right" />
          <el-table-column label="白班天数" prop="dayDays" width="90" align="center" />
          <el-table-column label="夜班天数" prop="nightDays" width="90" align="center" />
          <el-table-column label="餐补" prop="mealAmount" minWidth="100" align="right" />
          <el-table-column label="夜班补助" prop="nightAmount" minWidth="100" align="right" />
          <el-table-column label="其他收入" prop="otherIncome" minWidth="100" align="right" />
          <el-table-column label="社保个人" prop="socialPersonal" minWidth="100" align="right" />
          <el-table-column label="公积金个人" prop="fundPersonal" minWidth="110" align="right" />
          <el-table-column label="其他支出" prop="otherDeduct" minWidth="100" align="right" />
          <el-table-column label="社保补缴" prop="socialSecurityRetroactive" minWidth="100" align="right" />
          <el-table-column label="工资个税" prop="salaryTax" minWidth="100" align="right" />
          <el-table-column label="应发工资" prop="grossSalary" minWidth="110" align="right">
        <el-table :data="detailList"
                  border
                  stripe
                  max-height="500">
          <el-table-column label="部门"
                           prop="deptName"
                           minWidth="120" />
          <el-table-column label="员工姓名"
                           prop="staffName"
                           minWidth="100" />
          <el-table-column label="民族"
                           prop="nation"
                           width="80"
                           align="center" />
          <el-table-column label="基本工资"
                           prop="basicSalary"
                           minWidth="100"
                           align="right" />
          <el-table-column label="白班天数"
                           prop="dayDays"
                           width="90"
                           align="center" />
          <el-table-column label="夜班天数"
                           prop="nightDays"
                           width="90"
                           align="center" />
          <el-table-column label="餐补"
                           prop="mealAmount"
                           minWidth="100"
                           align="right" />
          <el-table-column label="夜班补助"
                           prop="nightAmount"
                           minWidth="100"
                           align="right" />
          <el-table-column label="其他收入"
                           prop="otherIncome"
                           minWidth="100"
                           align="right" />
          <el-table-column label="社保个人"
                           prop="socialPersonal"
                           minWidth="100"
                           align="right" />
          <el-table-column label="公积金个人"
                           prop="fundPersonal"
                           minWidth="110"
                           align="right" />
          <el-table-column label="其他支出"
                           prop="otherDeduct"
                           minWidth="100"
                           align="right" />
          <el-table-column label="社保补缴"
                           prop="socialSupplementAmount"
                           minWidth="100"
                           align="right" />
          <el-table-column label="工资个税"
                           prop="salaryTax"
                           minWidth="100"
                           align="right" />
          <el-table-column label="应发工资"
                           prop="grossSalary"
                           minWidth="110"
                           align="right">
            <template #default="{ row }">
              <span class="text-bold">{{ row.grossSalary }}</span>
            </template>
          </el-table-column>
          <el-table-column label="应扣工资" prop="deductSalary" minWidth="110" align="right">
          <el-table-column label="应扣工资"
                           prop="deductSalary"
                           minWidth="110"
                           align="right">
            <template #default="{ row }">
              <span class="text-danger">{{ row.deductSalary }}</span>
            </template>
          </el-table-column>
          <el-table-column label="实发工资" prop="netSalary" minWidth="110" align="right">
          <el-table-column label="实发工资"
                           prop="netSalary"
                           minWidth="110"
                           align="right">
            <template #default="{ row }">
              <span class="text-success text-bold">{{ row.netSalary }}</span>
            </template>
          </el-table-column>
          <el-table-column label="备注" prop="remark" minWidth="120" show-overflow-tooltip />
          <el-table-column label="备注"
                           prop="remark"
                           minWidth="120"
                           show-overflow-tooltip />
        </el-table>
      </div>
    </div>
@@ -64,64 +120,64 @@
</template>
<script setup>
import { ref } from 'vue';
  import { ref } from "vue";
const visible = ref(false);
const mainInfo = ref({});
const detailList = ref([]);
  const visible = ref(false);
  const mainInfo = ref({});
  const detailList = ref([]);
const openDialog = (row) => {
  mainInfo.value = row || {};
  detailList.value = row.staffSalaryDetailList || [];
  visible.value = true;
};
const getStatusType = (status) => {
  const map = {
    1: 'info',    // 草稿
    2: 'warning', // 待支付
    3: 'primary', // 待审核
    4: 'success', // 已发放
    5: 'danger'   // 已驳回
  const openDialog = row => {
    mainInfo.value = row || {};
    detailList.value = row.staffSalaryDetailList || [];
    visible.value = true;
  };
  return map[status] || 'info';
};
const getStatusLabel = (status) => {
  const map = {
    1: '草稿',
    2: '待支付',
    3: '待审核',
    4: '已发放',
    5: '已驳回'
  const getStatusType = status => {
    const map = {
      1: "info", // 草稿
      2: "warning", // 待支付
      3: "primary", // 待审核
      4: "success", // 已发放
      5: "danger", // 已驳回
    };
    return map[status] || "info";
  };
  return map[status] || '未知';
};
defineExpose({ openDialog });
  const getStatusLabel = status => {
    const map = {
      1: "草稿",
      2: "待支付",
      3: "待审核",
      4: "已发放",
      5: "已驳回",
    };
    return map[status] || "未知";
  };
  defineExpose({ openDialog });
</script>
<style scoped lang="scss">
.detail-container {
  padding: 10px;
}
.detail-table-wrap {
  margin-top: 20px;
}
.table-title {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 15px;
  padding-left: 10px;
  border-left: 4px solid #409eff;
}
.text-danger {
  color: #f56c6c;
}
.text-success {
  color: #67c23a;
}
.text-bold {
  font-weight: bold;
}
  .detail-container {
    padding: 10px;
  }
  .detail-table-wrap {
    margin-top: 20px;
  }
  .table-title {
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 15px;
    padding-left: 10px;
    border-left: 4px solid #409eff;
  }
  .text-danger {
    color: #f56c6c;
  }
  .text-success {
    color: #67c23a;
  }
  .text-bold {
    font-weight: bold;
  }
</style>
src/views/personnelManagement/monthlyStatistics/components/formDia.vue
@@ -227,7 +227,7 @@
          <el-table-column label="社保补缴"
                           minWidth="110">
            <template #default="{ row }">
              <el-input v-model.number="row.socialSecurityRetroactive"
              <el-input v-model.number="row.socialSupplementAmount"
                        type="number"
                        placeholder="0"
                        size="small"
@@ -423,7 +423,7 @@
    row.socialPersonal = parseNum(row.socialPersonal);
    row.fundPersonal = parseNum(row.fundPersonal);
    row.otherDeduct = parseNum(row.otherDeduct);
    row.socialSecurityRetroactive = parseNum(row.socialSecurityRetroactive);
    row.socialSupplementAmount = parseNum(row.socialSupplementAmount);
    row.salaryTax = parseNum(row.salaryTax);
    // 1. 计算夜班补贴:夜班天数 * 标准
@@ -446,7 +446,7 @@
      row.socialPersonal +
      row.fundPersonal +
      row.otherDeduct +
      row.socialSecurityRetroactive +
      row.socialSupplementAmount +
      row.salaryTax;
    // 5. 计算实发工资 = 应发工资 - 应扣工资
@@ -626,7 +626,7 @@
            socialPersonal: parseNum(e.socialPersonal),
            fundPersonal: parseNum(e.fundPersonal),
            otherDeduct: parseNum(e.otherDeduct),
            socialSecurityRetroactive: parseNum(e.socialSecurityRetroactive),
            socialSupplementAmount: parseNum(e.socialSupplementAmount),
            salaryTax: parseNum(e.salaryTax),
            grossSalary: parseNum(e.grossSalary),
            deductSalary: parseNum(e.deductSalary),
@@ -677,7 +677,7 @@
        socialPersonal: 0,
        fundPersonal: 0,
        otherDeduct: 0,
        socialSecurityRetroactive: 0,
        socialSupplementAmount: 0,
        salaryTax: 0,
        grossSalary: 0,
        deductSalary: 0,
@@ -744,7 +744,7 @@
        socialPersonal: parseNum(e.socialPersonal),
        fundPersonal: parseNum(e.fundPersonal),
        otherDeduct: parseNum(e.otherDeduct),
        socialSecurityRetroactive: parseNum(e.socialSecurityRetroactive),
        socialSupplementAmount: parseNum(e.socialSupplementAmount),
        salaryTax: parseNum(e.salaryTax),
        grossSalary: parseNum(e.grossSalary),
        deductSalary: parseNum(e.deductSalary),
@@ -808,7 +808,7 @@
        socialPersonal: parseNum(e.socialPersonal),
        fundPersonal: parseNum(e.fundPersonal),
        otherDeduct: parseNum(e.otherDeduct),
        socialSecurityRetroactive: parseNum(e.socialSecurityRetroactive),
        socialSupplementAmount: parseNum(e.socialSupplementAmount),
        salaryTax: parseNum(e.salaryTax),
        grossSalary: parseNum(e.grossSalary),
        deductSalary: parseNum(e.deductSalary),