| | |
| | | <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"/> |
| | |
| | | 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']) |
| | | |
| | |
| | | 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" }], |
| | | }, |
| | | }); |
| | |
| | | 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') { |
| | |
| | | } |
| | | } |
| | | 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 |
| | | } |
| | | } |
| | | // 提交产品表单 |