中航光电PDA端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
971 B

3 weeks ago
export default (form, rules) => {
return new Promise((resolve, reject) => {
if (form && rules) {
let pass = true
a: for (let key in rules) {
let rule = rules[key]
if (Array.isArray(rule)) {
for (let i = 0; i < rule.length; i++) {
const result = validate(rule[i], form[key])
if (!result) {
pass = false
break a
}
}
} else {
const result = validate(rule, form[key])
if (!result) {
pass = false
break a
}
}
}
if (pass) resolve()
else reject()
} else {
reject('需校验的对象为空')
}
})
}
const validate = (rule, value) => {
let pass = true
if (rule && rule.pattern && !rule.pattern.test(value)) {
uni.showToast({
title: rule.message || '校验失败',
icon: 'none'
})
pass = false
} else if (rule && rule.required && !value) {
uni.showToast({
title: rule.message || '校验失败',
icon: 'none'
})
pass = false
}
return pass
}