hookehuyr

fix(IdentityField): 确保身份证号验证前转换为字符串类型

避免当传入非字符串类型值时导致indexOf方法调用失败
......@@ -137,7 +137,9 @@ watch(
(v) => {
if (v) {
props.item.value = v;
if (v.indexOf('*') !== -1) { // 默认值是加密模式
// 确保v是字符串类型后再调用indexOf方法
const vStr = String(v);
if (vStr.indexOf('*') !== -1) { // 默认值是加密模式
props.item.component_props.readonly = true;
data_type.value = 'encrypt_mode';
}
......@@ -191,13 +193,15 @@ var checkCode = function (val) {
const idCard = {
verify: function (val) {
if (val.indexOf('*') !== -1 && data_type.value === 'encrypt_mode') { // 默认值是加密模式,跳过校验
// 确保val是字符串类型
const valStr = String(val || '');
if (valStr.indexOf('*') !== -1 && data_type.value === 'encrypt_mode') { // 默认值是加密模式,跳过校验
return true;
}
if (checkCode(val)) {
var date = val.substring(6,14);
if (checkCode(valStr)) {
var date = valStr.substring(6,14);
if (checkDate(date)) {
if (checkProv(val.substring(0,2))) {
if (checkProv(valStr.substring(0,2))) {
return true;
}
}
......