gaoluyang
6 小时以前 076bb96b437258f0e8cdbe184040e1e302b60d4b
src/views/personnelManagement/payrollManagement/components/formDia.vue
@@ -27,128 +27,15 @@
                     <el-select v-model="form.staffId" placeholder="请选择人员" style="width: 100%" @change="handleSelect" :disabled="operationType === 'edit'">
                        <el-option
                           v-for="item in personList"
                           :key="item.id"
                           :label="item.staffName"
                           :value="item.id"
                           :key="item.userId"
                           :label="item.nickName"
                           :value="item.userId"
                        />
                     </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="应出勤天数:" prop="shouldAttendedNum">
                     <el-input v-model="form.shouldAttendedNum" placeholder="请输入" clearable type="number"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="实际出勤天数:" prop="actualAttendedNum">
              <el-input v-model="form.actualAttendedNum" placeholder="请输入" clearable type="number"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="基本工资:" prop="basicSalary">
              <el-input v-model="form.basicSalary" placeholder="请输入" clearable type="number"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="岗位工资:" prop="postSalary">
              <el-input v-model="form.postSalary" placeholder="请输入" clearable type="number"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="入离职缺勤扣款:" prop="deductionAbsenteeism">
              <el-input v-model="form.deductionAbsenteeism" placeholder="请输入" clearable type="number"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="病假扣款:" prop="sickLeaveDeductions">
              <el-input v-model="form.sickLeaveDeductions" placeholder="请输入" clearable type="number"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="事假扣款:" prop="deductionPersonalLeave">
              <el-input v-model="form.deductionPersonalLeave" placeholder="请输入" clearable type="number"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="忘记打卡扣款:" prop="forgetClockDeduct">
              <el-input v-model="form.forgetClockDeduct" style="width: 100%" type="number"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="绩效得分:" prop="performanceScore">
              <el-input v-model="form.performanceScore" placeholder="请输入" clearable type="number"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="绩效工资:" prop="performancePay">
              <el-input v-model="form.performancePay" placeholder="请输入" clearable type="number"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="应发合计:" prop="payableWages">
              <el-input v-model="form.payableWages" placeholder="请输入" clearable type="number"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="社保个人:" prop="socialSecurityIndividuals">
              <el-input v-model="form.socialSecurityIndividuals" :precision="0" :step="1" style="width: 100%" type="number"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="社保公司:" prop="socialSecurityCompanies">
                     <el-input v-model="form.socialSecurityCompanies" :precision="0" :step="1" style="width: 100%" type="number"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="社保合计:" prop="socialSecurityTotal">
                     <el-input v-model="form.socialSecurityTotal" :precision="0" :step="1" style="width: 100%" type="number"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="公积金个人:" prop="providentFundIndividuals">
                     <el-input v-model="form.providentFundIndividuals" :precision="0" :step="1" style="width: 100%" type="number"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="公积金公司:" prop="providentFundCompany">
                     <el-input v-model="form.providentFundCompany" :precision="0" :step="1" style="width: 100%" type="number"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="公积金合计:" prop="providentFundTotal">
                     <el-input v-model="form.providentFundTotal" :precision="0" :step="1" style="width: 100%" type="number"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="应税工资:" prop="taxableWaget">
                     <el-input v-model="form.taxableWaget" :precision="0" :step="1" style="width: 100%" type="number"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="个人所得税:" prop="personalIncomeTax">
                     <el-input v-model="form.personalIncomeTax" :step="0.1" style="width: 100%" type="number"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="实发工资:" prop="actualWages">
                     <el-input v-model="form.actualWages" style="width: 100%" type="number"/>
@@ -170,6 +57,7 @@
import {ref} from "vue";
import {getStaffJoinInfo, getStaffOnJob, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js";
import {compensationAdd, compensationUpdate} from "@/api/personnelManagement/payrollManagement.js";
import {listUser} from "@/api/system/user.js";
const { proxy } = getCurrentInstance()
const emit = defineEmits(['close'])
@@ -180,50 +68,11 @@
      payDate: "",
    staffId: "",
      name: "",
      shouldAttendedNum: "",
      actualAttendedNum: "",
      basicSalary: "",
      postSalary: "",
      deductionAbsenteeism: "",
      sickLeaveDeductions: "",
      deductionPersonalLeave: "",
      forgetClockDeduct: "",
      performanceScore: "",
      performancePay: "",
      payableWages: "",
      socialSecurityIndividuals: "",
      socialSecurityCompanies: "",
      socialSecurityTotal: "",
      providentFundIndividuals: "",
      providentFundCompany: "",
      providentFundTotal: "",
      taxableWaget: "",
      personalIncomeTax: "",
      actualWages: "",
  },
  rules: {
      payDate: [{ required: true, message: "请选择", trigger: "change" },],
      staffId: [{ required: true, message: "请选择", trigger: "change" },],
    staffName: [{ required: true, message: "请输入", trigger: "blur" }],
      shouldAttendedNum: [{ required: true, message: "请输入", trigger: "blur" }],
      actualAttendedNum: [{ required: true, message: "请输入", trigger: "blur" }],
      basicSalary: [{ required: true, message: "请输入", trigger: "blur" }],
      postSalary: [{ required: true, message: "请输入", trigger: "blur" }],
      deductionAbsenteeism: [{ required: true, message: "请输入", trigger: "blur" }],
      sickLeaveDeductions: [{ required: true, message: "请输入", trigger: "blur" }],
      deductionPersonalLeave: [{ required: true, message: "请输入", trigger: "blur" }],
      forgetClockDeduct: [{ required: true, message: "请输入", trigger: "blur" }],
      performanceScore: [{ required: true, message: "请输入", trigger: "blur" }],
      performancePay: [{ required: true, message: "请输入", trigger: "blur" }],
      payableWages: [{ required: true, message: "请输入", trigger: "blur" }],
      socialSecurityIndividuals: [{ required: true, message: "请输入", trigger: "blur" }],
      socialSecurityCompanies: [{ required: true, message: "请输入", trigger: "blur" }],
      socialSecurityTotal: [{ required: true, message: "请输入", trigger: "blur" }],
      providentFundIndividuals: [{ required: true, message: "请输入", trigger: "blur" }],
      providentFundCompany: [{ required: true, message: "请输入", trigger: "blur" }],
      providentFundTotal: [{ required: true, message: "请输入", trigger: "blur" }],
      taxableWaget: [{ required: true, message: "请输入", trigger: "blur" }],
      personalIncomeTax: [{ required: true, message: "请输入", trigger: "blur" }],
      actualWages: [{ required: true, message: "请输入", trigger: "blur" }],
  },
});
@@ -234,8 +83,8 @@
const openDialog = (type, row) => {
  operationType.value = type;
  dialogFormVisible.value = true;
   getStaffOnJob().then(res => {
      personList.value = res.data
   listUser().then(res => {
      personList.value = res.rows
   })
   form.value = {}
  if (operationType.value === 'edit') {
@@ -246,10 +95,9 @@
  }
}
const handleSelect = (value) => {
   console.log('value', value)
   const index = personList.value.findIndex(row => row.id === value)
   const index = personList.value.findIndex(row => row.userId === value)
   if (index > -1) {
      form.value.name = personList.value[index].staffName
      form.value.name = personList.value[index].nickName
   }
}
// 提交产品表单