This commit is contained in:
ltx 2026-08-07 14:04:31 +08:00
commit 30ffe843bf

View File

@ -3,6 +3,26 @@ const { ROLE, getProfileRole } = require('../../../utils/role');
const PHONE_RE = /^1[3456789]\d{9}$/;
/**
* 解析OCR返回的性别字段,统一转换为索引格式
* 约定:0 = 男,1 = 女
* 支持多种格式:男、男性、M、Male、m、male、女、女性、F、Female、f、female
*/
function parseOcrGender(genderStr) {
if (genderStr == null || genderStr === '') return 0;
const g = String(genderStr).trim().toLowerCase();
// 匹配女性:女、女性、f、female、woman、women、1
if (g === '女' || g === '女性' || g === 'f' || g === 'female' || g === 'woman' || g === 'women' || g === '1') {
return 1;
}
// 匹配男性:男、男性、m、male、man、men、0
if (g === '男' || g === '男性' || g === 'm' || g === 'male' || g === 'man' || g === 'men' || g === '0') {
return 0;
}
// 无法识别,返回默认0(男)
return 0;
}
function normalizeAuthStatus(v) {
if (v == null || v === '') return 0;
const n = Number(v);
@ -210,7 +230,7 @@ Page({
wx.showToast({ title: ocr.message || '身份证识别失败', icon: 'none' });
return;
}
const genderIndex = (ocr && (ocr.gender === '女' || ocr.gender === 'F' || ocr.gender === '1')) ? 1 : 0;
const genderIndex = parseOcrGender(ocr && ocr.gender);
this.setData({
name: (ocr && ocr.name) || '',
idCardNumber: (ocr && ocr.idCardNumber) || '',
@ -225,7 +245,7 @@ Page({
wx.showToast({ title: ocr.message || '护照识别失败', icon: 'none' });
return;
}
const genderIndex = (ocr && (ocr.gender === '女' || ocr.gender === 'F' || ocr.gender === '1')) ? 1 : 0;
const genderIndex = parseOcrGender(ocr && ocr.gender);
this.setData({
name: (ocr && ocr.name) || '',
passportNumber: (ocr && ocr.passportNumber) || '',
@ -243,7 +263,7 @@ Page({
wx.showToast({ title: ocr.message || '户口本识别失败', icon: 'none' });
return;
}
const genderIndex = (ocr && (ocr.gender === '女' || ocr.gender === 'F' || ocr.gender === '1')) ? 1 : 0;
const genderIndex = parseOcrGender(ocr && ocr.gender);
this.setData({
name: (ocr && ocr.name) || '',
idCardNumber: (ocr && ocr.idCardNumber) || '',