shinnosuke
2026-08-19 c920c574d9587ef798d0c7f82d574e3e30bfde3a
talent-card-admin/src/views/TalentCreateView.vue
@@ -45,7 +45,7 @@
    { 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()
@@ -108,7 +108,8 @@
  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')
@@ -127,7 +128,7 @@
<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"
@@ -166,8 +167,8 @@
          <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="选择">
@@ -181,7 +182,7 @@
    <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">
@@ -198,7 +199,7 @@
    <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