性别识别
This commit is contained in:
parent
cbff1eea80
commit
95e5ff73b8
@ -218,6 +218,26 @@ const formData = ref(getDefaultFormData())
|
|||||||
// 证件识别类型:idcard-身份证,passport-护照, household-户口本
|
// 证件识别类型:idcard-身份证,passport-护照, household-户口本
|
||||||
const ocrType = ref('idcard')
|
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({
|
const initParam = ref({
|
||||||
personType: 1,
|
personType: 1,
|
||||||
refresh: true,
|
refresh: true,
|
||||||
@ -697,18 +717,18 @@ const handleAvatarSuccess = async (response,
|
|||||||
formData.value.idCardImageUrl = imageUrl;
|
formData.value.idCardImageUrl = imageUrl;
|
||||||
if (ocrType.value === 'household') {
|
if (ocrType.value === 'household') {
|
||||||
formData.value.name = data.name || '';
|
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.idCardNumber = data.idCardNumber || '';
|
||||||
formData.value.birthDate = data.birthDate || '';
|
formData.value.birthDate = data.birthDate || '';
|
||||||
} else if (ocrType.value === 'passport') {
|
} else if (ocrType.value === 'passport') {
|
||||||
formData.value.name = data.name;
|
formData.value.name = data.name;
|
||||||
formData.value.passportNumber = data.passportNumber;
|
formData.value.passportNumber = data.passportNumber;
|
||||||
formData.value.gender = data.gender === 'Male' ? 0 : 1;
|
formData.value.gender = parseOcrGender(data.gender);
|
||||||
formData.value.birthDate = data.birthDateYmd;
|
formData.value.birthDate = data.birthDateYmd;
|
||||||
} else {
|
} else {
|
||||||
formData.value.name = data.name;
|
formData.value.name = data.name;
|
||||||
formData.value.idCardNumber = data.idCardNumber;
|
formData.value.idCardNumber = data.idCardNumber;
|
||||||
formData.value.gender = data.gender === '男' ? 0 : 1;
|
formData.value.gender = parseOcrGender(data.gender);
|
||||||
formData.value.birthDate = data.birthDate || '';
|
formData.value.birthDate = data.birthDate || '';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -128,6 +128,26 @@ const formData = ref(getDefaultFormData())
|
|||||||
// 证件识别类型:idcard-身份证,passport-护照
|
// 证件识别类型:idcard-身份证,passport-护照
|
||||||
const ocrType = ref('idcard')
|
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({
|
const formRules = ref({
|
||||||
name: [
|
name: [
|
||||||
{ required: true, message: '请输入教练姓名', trigger: 'blur' }
|
{ required: true, message: '请输入教练姓名', trigger: 'blur' }
|
||||||
@ -211,13 +231,13 @@ const handleAvatarSuccess = async (response,
|
|||||||
if (ocrType.value === 'passport') {
|
if (ocrType.value === 'passport') {
|
||||||
formData.value.name = res.data.name
|
formData.value.name = res.data.name
|
||||||
formData.value.idCardNumber = res.data.passportNumber
|
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.idCardImageUrl = imageUrl
|
||||||
formData.value.birthDate = res.data.issueDateYmd
|
formData.value.birthDate = res.data.issueDateYmd
|
||||||
} else {
|
} else {
|
||||||
formData.value.name = res.data.name
|
formData.value.name = res.data.name
|
||||||
formData.value.idCardNumber = res.data.idCardNumber
|
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.idCardImageUrl = imageUrl
|
||||||
formData.value.birthDate = res.data.birthDate
|
formData.value.birthDate = res.data.birthDate
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user