Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
resolve({
result: false,
errMsg: `不存在验证规则${keys[i]}`
});
}
// 创建验证规则实例进行验证
let dxRules;
if (rules[keys[i]] instanceof Object) {
dxRules = _cloneDeep(rules[keys[i]]);
dxRules.value = ncformUtils.smartAnalyzeVal(rules[keys[i]].value, {
idxChain,
data: { rootData: formData, constData: globalConfig.constants }
});
} else {
dxRules = ncformUtils.smartAnalyzeVal(rules[keys[i]], {
idxChain,
data: { rootData: formData, constData: globalConfig.constants }
});
}
// rule中存在options.delay时,延迟执行(避免高频验证)
if (
rules[keys[i]] instanceof Object &&
_get(rules[keys[i]], "options.delay", 0) > 0
) {
const delay = _get(rules[keys[i]], "options.delay", 0);
const delayMsg = _get(
rules[keys[i]],
"options.delayMsg",
"异步验证中.."
);
return new Promise(resolve => {
if (keys.length === 0) {
// 不存在验证规则则直接通过
resolve({
result: true,
errMst: ""
});
} else if (
(keys.indexOf("required") === -1 ||
ncformUtils.smartAnalyzeVal(rules.required, {
idxChain,
data: { rootData: formData, constData: globalConfig.constants }
}) === false ||
ncformUtils.smartAnalyzeVal(
_get(rules, "required.value"), {
idxChain,
data: { rootData: formData, constData: globalConfig.constants }
}) === false
) &&
!ncformUtils.notEmptyVal(value)
) {
// 如果不存在required验证条件,且value为空时,直接验证通过
resolve({
result: true,
errMsg: ""
});
}
}
// 判断是否注册了验证规则
if (!this.allRules[keys[i]]) {
resolve({
result: false,
errMsg: `不存在验证规则${keys[i]}`
});
}
// 创建验证规则实例进行验证
let dxRules;
if (rules[keys[i]] instanceof Object) {
dxRules = _cloneDeep(rules[keys[i]]);
dxRules.value = ncformUtils.smartAnalyzeVal(rules[keys[i]].value, {
idxChain,
data: { rootData: formData, constData: globalConfig.constants }
});
} else {
dxRules = ncformUtils.smartAnalyzeVal(rules[keys[i]], {
idxChain,
data: { rootData: formData, constData: globalConfig.constants }
});
}
// rule中存在options.delay时,延迟执行(避免高频验证)
if (
rules[keys[i]] instanceof Object &&
_get(rules[keys[i]], "options.delay", 0) > 0
) {
const delay = _get(rules[keys[i]], "options.delay", 0);
return new Promise(resolve => {
if (keys.length === 0) {
// 不存在验证规则则直接通过
resolve({
result: true,
errMst: ""
});
} else if (
(keys.indexOf("required") === -1 ||
ncformUtils.smartAnalyzeVal(rules.required, {
idxChain,
data: { rootData: formData, constData: globalConfig.constants }
}) === false ||
ncformUtils.smartAnalyzeVal(
_get(rules, "required.value"), {
idxChain,
data: { rootData: formData, constData: globalConfig.constants }
}) === false
) &&
!ncformUtils.notEmptyVal(value)
) {
// 如果不存在required验证条件,且value为空时,直接验证通过
resolve({
result: true,
errMsg: ""
});
} else {
// 逐一验证
resolve(nextValidate(0));
}
customRule.forEach(item => {
if (
!ncformUtils.smartAnalyzeVal(item.script, {
idxChain,
data: { rootData: formData, constData: globalConfig.constants }
})
) {
resolve({
result: false,
errMsg: item.errMsg
});
}
});