fix(FormItem): 解决required属性无法校验的bug

This commit is contained in:
Eager 2018-09-16 00:34:58 +08:00
parent 634c34e9a0
commit 16f8b759bc

View file

@ -150,15 +150,19 @@
methods: { methods: {
setRules() { setRules() {
let rules = this.getRules(); let rules = this.getRules();
if (rules.length) { if (rules.length&&this.required) {
return;
}else if (rules.length) {
rules.every((rule) => { rules.every((rule) => {
this.isRequired = rule.required; this.isRequired = rule.required;
}); });
}else if (this.required){
this.isRequired = this.required;
}
this.$off('on-form-blur', this.onFieldBlur); this.$off('on-form-blur', this.onFieldBlur);
this.$off('on-form-change', this.onFieldChange); this.$off('on-form-change', this.onFieldChange);
this.$on('on-form-blur', this.onFieldBlur); this.$on('on-form-blur', this.onFieldBlur);
this.$on('on-form-change', this.onFieldChange); this.$on('on-form-change', this.onFieldChange);
}
}, },
getRules () { getRules () {
let formRules = this.form.rules; let formRules = this.form.rules;
@ -174,10 +178,14 @@
return rules.filter(rule => !rule.trigger || rule.trigger.indexOf(trigger) !== -1); return rules.filter(rule => !rule.trigger || rule.trigger.indexOf(trigger) !== -1);
}, },
validate(trigger, callback = function () {}) { validate(trigger, callback = function () {}) {
const rules = this.getFilteredRule(trigger); let rules = this.getFilteredRule(trigger);
if (!rules || rules.length === 0) { if (!rules || rules.length === 0) {
if (!this.required) {
callback(); callback();
return true; return true;
}else {
rules = [{required: true}];
}
} }
this.validateState = 'validating'; this.validateState = 'validating';