性别识别
This commit is contained in:
parent
cbff1eea80
commit
95e5ff73b8
@ -218,6 +218,26 @@ const formData = ref(getDefaultFormData())
|
||||
// 证件识别类型:idcard-身份证,passport-护照, household-户口本
|
||||
const ocrType = ref('idcard')
|
||||
|
||||
/**
|
||||
* 解析OCR返回的性别字段,统一转换为数字格式
|
||||
* 约定:0 = 男,1 = 女
|
||||
* 支持多种格式:男、男性、M、Male、m、male、女、女性、F、Female、f、female
|
||||
*/
|
||||
const parseOcrGender = (genderStr) => {
|
||||
if (!genderStr || typeof genderStr !== 'string') return '';
|
||||
const g = genderStr.trim().toLowerCase();
|
||||
// 匹配男性:男、男性、m、male
|
||||
if (g === '男' || g === '男性' || g === 'm' || g === 'male' || g === 'man' || g === 'men') {
|
||||
return 0;
|
||||
}
|
||||
// 匹配女性:女、女性、f、female、woman、women
|
||||
if (g === '女' || g === '女性' || g === 'f' || g === 'female' || g === 'woman' || g === 'women') {
|
||||
return 1;
|
||||
}
|
||||
// 无法识别,返回空字符串
|
||||
return '';
|
||||
};
|
||||
|
||||
const initParam = ref({
|
||||
personType: 1,
|
||||
refresh: true,
|
||||
@ -697,18 +717,18 @@ const handleAvatarSuccess = async (response,
|
||||
formData.value.idCardImageUrl = imageUrl;
|
||||
if (ocrType.value === 'household') {
|
||||
formData.value.name = data.name || '';
|
||||
formData.value.gender = data.gender === '男' ? 0 : 1;
|
||||
formData.value.gender = parseOcrGender(data.gender);
|
||||
formData.value.idCardNumber = data.idCardNumber || '';
|
||||
formData.value.birthDate = data.birthDate || '';
|
||||
} else if (ocrType.value === 'passport') {
|
||||
formData.value.name = data.name;
|
||||
formData.value.passportNumber = data.passportNumber;
|
||||
formData.value.gender = data.gender === 'Male' ? 0 : 1;
|
||||
formData.value.gender = parseOcrGender(data.gender);
|
||||
formData.value.birthDate = data.birthDateYmd;
|
||||
} else {
|
||||
formData.value.name = data.name;
|
||||
formData.value.idCardNumber = data.idCardNumber;
|
||||
formData.value.gender = data.gender === '男' ? 0 : 1;
|
||||
formData.value.gender = parseOcrGender(data.gender);
|
||||
formData.value.birthDate = data.birthDate || '';
|
||||
}
|
||||
} else {
|
||||
|
||||
@ -128,6 +128,26 @@ const formData = ref(getDefaultFormData())
|
||||
// 证件识别类型:idcard-身份证,passport-护照
|
||||
const ocrType = ref('idcard')
|
||||
|
||||
/**
|
||||
* 解析OCR返回的性别字段,统一转换为数字格式
|
||||
* 约定:0 = 男,1 = 女
|
||||
* 支持多种格式:男、男性、M、Male、m、male、女、女性、F、Female、f、female
|
||||
*/
|
||||
const parseOcrGender = (genderStr) => {
|
||||
if (!genderStr || typeof genderStr !== 'string') return 0;
|
||||
const g = genderStr.trim().toLowerCase();
|
||||
// 匹配男性:男、男性、m、male
|
||||
if (g === '男' || g === '男性' || g === 'm' || g === 'male' || g === 'man' || g === 'men') {
|
||||
return 0;
|
||||
}
|
||||
// 匹配女性:女、女性、f、female、woman、women
|
||||
if (g === '女' || g === '女性' || g === 'f' || g === 'female' || g === 'woman' || g === 'women') {
|
||||
return 1;
|
||||
}
|
||||
// 无法识别,返回默认0(男)
|
||||
return 0;
|
||||
};
|
||||
|
||||
const formRules = ref({
|
||||
name: [
|
||||
{ required: true, message: '请输入教练姓名', trigger: 'blur' }
|
||||
@ -211,13 +231,13 @@ const handleAvatarSuccess = async (response,
|
||||
if (ocrType.value === 'passport') {
|
||||
formData.value.name = res.data.name
|
||||
formData.value.idCardNumber = res.data.passportNumber
|
||||
formData.value.gender = res.data.gender == 'Male' ? 0 : 1
|
||||
formData.value.gender = parseOcrGender(res.data.gender)
|
||||
formData.value.idCardImageUrl = imageUrl
|
||||
formData.value.birthDate = res.data.issueDateYmd
|
||||
} else {
|
||||
formData.value.name = res.data.name
|
||||
formData.value.idCardNumber = res.data.idCardNumber
|
||||
formData.value.gender = res.data.gender == '男' ? 0 : 1
|
||||
formData.value.gender = parseOcrGender(res.data.gender)
|
||||
formData.value.idCardImageUrl = imageUrl
|
||||
formData.value.birthDate = res.data.birthDate
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user