| | |
| | | { pattern: /^[0-9A-Z]{18}$/, message: '身份证号须为18位数字或大写英文字母', trigger: 'blur' }, |
| | | ], |
| | | contactAddress: [{ required: true, message: '请输入联系地址', trigger: 'blur' }], |
| | | workAddress: [{ required: true, message: '请输入工作地址', trigger: 'blur' }], |
| | | workUnit: [{ required: true, message: '请输入工作单位', trigger: 'blur' }], |
| | | gender: [{ required: true, message: '请选择性别', trigger: 'change' }], |
| | | talentCardNo: [{ |
| | | validator: (_rule, value, callback) => talentLevelConfirmed.value && String(value || '').trim() |
| | |
| | | |
| | | saving.value = true |
| | | try { |
| | | const talent = await createTalent(form) |
| | | // 后端仍保留 workAddress 历史字段;新建时同步写入,保证新旧端均可回显。 |
| | | const talent = await createTalent({ ...form, workAddress: form.workUnit }) |
| | | await updateTalentServiceStaff(talent.id, serviceStaff.value) |
| | | ElMessage.success('持卡人已保存') |
| | | router.push('/talents') |
| | |
| | | <template> |
| | | <div class="talent-detail-page talent-create-page"> |
| | | <el-form ref="formRef" :model="form" :rules="rules" label-width="104px"> |
| | | <section class="detail-block create-mobile-summary"> |
| | | <section class="detail-block user-summary create-mobile-summary"> |
| | | <el-form-item label="手机号码:" prop="mobile" required> |
| | | <el-input |
| | | v-model="form.mobile" |
| | |
| | | <el-form-item label="联系地址:" prop="contactAddress" required> |
| | | <el-input v-model="form.contactAddress" placeholder="请输入" /> |
| | | </el-form-item> |
| | | <el-form-item label="工作地址:" prop="workAddress" required> |
| | | <el-input v-model="form.workAddress" placeholder="请输入" /> |
| | | <el-form-item label="工作单位:" prop="workUnit" required> |
| | | <el-input v-model="form.workUnit" placeholder="请输入工作单位" /> |
| | | </el-form-item> |
| | | <el-form-item label="性别:" prop="gender" required> |
| | | <el-select v-model="form.gender" placeholder="选择"> |
| | |
| | | |
| | | <section class="detail-block"> |
| | | <h3>人才卡管理</h3> |
| | | <el-form-item label="人才等级/卡号" prop="talentCardNo" required> |
| | | <el-form-item prop="talentCardNo" required class="create-card-form-item" label-width="0"> |
| | | <div class="card-manage-panel"> |
| | | <div class="talent-card-stack"> |
| | | <button type="button" class="talent-card-preview create-card-preview" @click="openCardDialog"> |
| | |
| | | |
| | | <section class="detail-block"> |
| | | <h3>专属服务人员</h3> |
| | | <el-form-item label="专属服务人员" prop="serviceStaff" class="service-staff-form-item" required> |
| | | <el-form-item prop="serviceStaff" class="service-staff-form-item" required label-width="0"> |
| | | <div class="service-staff-panel"> |
| | | <el-select v-model="serviceStaff" clearable placeholder="请选择专属服务人员" @change="formRef?.validateField('serviceStaff')"> |
| | | <el-option |