in src/types/MSetType.ts [11:36]
function validateCandidate(a:Assembly, schema:MFieldSchemaAnonymity, value:any, path:string): MValidationResult {
let fs = MUtil.option(schema);
const openOption = _.clone(schema.openOption ?? schema.setOpen)
for(let v of value){
let vIsOk = false;
for(let f of fs){
if(MUtil.isEquals(f.value, v, schema.tolerate)){
vIsOk = true;
break; // v校验ok
}
}
if(!vIsOk) {
if(openOption) {
openOption.required = true; // 既然勾上了开放选项,就必须填
const vr = assembly.validate(openOption, v, path);
if(vr) { // 开放值无效
return vr;
}
} else {
return {message:"请重新选择", path};
}
}
}
return undefined;
}