| | |
| | | <el-row :gutter="30"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="岗位:" prop="postJob"> |
| | | <el-input v-model="form.postJob" placeholder="请输入" clearable/> |
| | | <el-select v-model="form.postJob" filterable placeholder="请选择岗位" :loading="positionLoading" clearable> |
| | | <el-option v-for="p in positionOptions" :key="p.id" :label="p.name || p.label" :value="p.id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import {ref} from "vue"; |
| | | import {ref, reactive, toRefs, getCurrentInstance, onMounted} from "vue"; |
| | | import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js"; |
| | | const { proxy } = getCurrentInstance() |
| | | import {deptPositionListPage} from "@/api/lavorissce/issue"; |
| | | |
| | | const {proxy} = getCurrentInstance() |
| | | const emit = defineEmits(['close']) |
| | | |
| | | const dialogFormVisible = ref(false); |
| | | const operationType = ref('') |
| | | const positionOptions = ref([]) |
| | | const positionLoading = ref(false) |
| | | |
| | | const data = reactive({ |
| | | form: { |
| | | staffNo: "", |
| | |
| | | staffState: "", |
| | | }, |
| | | rules: { |
| | | staffNo: [{ required: true, message: "请输入", trigger: "blur" },], |
| | | staffName: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | sex: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | nativePlace: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | postJob: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | adress: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | firstStudy: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | profession: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | age: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | phone: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | emergencyContact: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | emergencyContactPhone: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | contractTerm: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | contractStartTime: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | contractEndTime: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | staffNo: [{required: true, message: "请输入", trigger: "blur"},], |
| | | staffName: [{required: true, message: "请输入", trigger: "blur"}], |
| | | sex: [{required: true, message: "请输入", trigger: "blur"}], |
| | | nativePlace: [{required: true, message: "请输入", trigger: "blur"}], |
| | | postJob: [{required: true, message: "请输入", trigger: "blur"}], |
| | | adress: [{required: true, message: "请输入", trigger: "blur"}], |
| | | firstStudy: [{required: true, message: "请输入", trigger: "blur"}], |
| | | profession: [{required: true, message: "请输入", trigger: "blur"}], |
| | | age: [{required: true, message: "请输入", trigger: "blur"}], |
| | | phone: [{required: true, message: "请输入", trigger: "blur"}], |
| | | emergencyContact: [{required: true, message: "请输入", trigger: "blur"}], |
| | | emergencyContactPhone: [{required: true, message: "请输入", trigger: "blur"}], |
| | | contractTerm: [{required: true, message: "请输入", trigger: "blur"}], |
| | | contractStartTime: [{required: true, message: "请输入", trigger: "blur"}], |
| | | contractEndTime: [{required: true, message: "请输入", trigger: "blur"}], |
| | | }, |
| | | }); |
| | | const { form, rules } = toRefs(data); |
| | | const {form, rules} = toRefs(data); |
| | | |
| | | async function loadPositions() { |
| | | try { |
| | | positionLoading.value = true |
| | | const res = await deptPositionListPage({pageNum: 1, pageSize: 9999}) |
| | | positionOptions.value = res?.data?.records || res?.data || [] |
| | | } finally { |
| | | positionLoading.value = false |
| | | } |
| | | } |
| | | |
| | | // 打开弹框 |
| | | const openDialog = (type, row) => { |
| | | operationType.value = type; |
| | | dialogFormVisible.value = true; |
| | | loadPositions() |
| | | if (operationType.value === 'edit') { |
| | | getStaffJoinInfo(row.id).then(res => { |
| | | form.value = {...res.data} |
| | | // 编辑时也计算一次合同年限 |
| | | calculateContractTerm(); |
| | | }) |
| | | } else { |
| | | form.value.id = '' |
| | | } |
| | | } |
| | | |
| | | // 提交产品表单 |
| | | const submitForm = () => { |
| | | proxy.$refs.formRef.validate(valid => { |