This commit is contained in:
guochunsi
2026-01-22 10:43:49 +08:00
parent 790b22a7fc
commit 109ae6ddd2

View File

@@ -39,7 +39,7 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="证件类型" prop="idCardType"> <el-form-item label="证件类型" prop="idCardType">
<el-radio-group v-model="dataForm.idCardType" :disabled="!isEdit"> <el-radio-group v-model="dataForm.idCardType" :disabled="!isEdit" @change="handleIdCardTypeChange">
<el-radio v-for="item in idCardTypeList" :key="item.value" :label="item.value">{{ item.label }}</el-radio> <el-radio v-for="item in idCardTypeList" :key="item.value" :label="item.value">{{ item.label }}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
@@ -55,7 +55,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="性别" prop="gender"> <el-form-item label="性别" prop="gender" :required="isGenderRequired">
<el-select v-model="dataForm.gender" class="w-full" :disabled="!isEdit || dataForm.idCardType=='0'" > <el-select v-model="dataForm.gender" class="w-full" :disabled="!isEdit || dataForm.idCardType=='0'" >
<el-option <el-option
v-for="item in sexy" v-for="item in sexy"
@@ -698,6 +698,8 @@ const imgList = ref<string[]>([])
const type = ref<number | null>(null) const type = ref<number | null>(null)
const isShow = ref(false) const isShow = ref(false)
const isEdit = ref(false) const isEdit = ref(false)
// 性别是否必填(证件类型不是身份证时必填)
const isGenderRequired = computed(() => dataForm.idCardType !== '0')
// 户口性质 // 户口性质
const residenceTypeList = ref<any[]>([]) const residenceTypeList = ref<any[]>([])
const schoolCodeList = ref<any[]>([]) const schoolCodeList = ref<any[]>([])
@@ -808,7 +810,19 @@ const dataRule = {
{required: true, message: '姓名不能为空', trigger: 'change'} {required: true, message: '姓名不能为空', trigger: 'change'}
], ],
gender: [ gender: [
{required: true, message: '性别不能为空', trigger: 'change'} {
validator: (rule: any, value: any, callback: any) => {
// 如果证件类型是身份证,性别可以不填(后台会根据身份证号自动获取)
if (dataForm.idCardType === '0') {
callback()
} else if (!value) {
callback(new Error('性别不能为空'))
} else {
callback()
}
},
trigger: 'change'
}
], ],
nationality: [ nationality: [
{required: true, message: '民族不能为空', trigger: 'change'} {required: true, message: '民族不能为空', trigger: 'change'}
@@ -1068,6 +1082,14 @@ const init = (id: string | null, typeParam: number) => {
}) })
} }
// 证件类型变化处理
const handleIdCardTypeChange = () => {
// 如果选择身份证,清空性别字段(后台会根据身份证号自动获取)
if (dataForm.idCardType === '0') {
dataForm.gender = ''
}
}
const changeEducation = () => { const changeEducation = () => {
// 清空拟报专业 录取专业 学费和代办费 // 清空拟报专业 录取专业 学费和代办费
dataForm.wishMajorOne = "" dataForm.wishMajorOne = ""