From 16f8b759bc8439d89cc1131253286074466f8277 Mon Sep 17 00:00:00 2001 From: Eager <1226393396@qq.com> Date: Sun, 16 Sep 2018 00:34:58 +0800 Subject: [PATCH] fix(FormItem): 解决required属性无法校验的bug --- src/components/form/form-item.vue | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/components/form/form-item.vue b/src/components/form/form-item.vue index 2a68768..e9c5feb 100644 --- a/src/components/form/form-item.vue +++ b/src/components/form/form-item.vue @@ -150,15 +150,19 @@ methods: { setRules() { let rules = this.getRules(); - if (rules.length) { + if (rules.length&&this.required) { + return; + }else if (rules.length) { rules.every((rule) => { this.isRequired = rule.required; }); - this.$off('on-form-blur', this.onFieldBlur); - this.$off('on-form-change', this.onFieldChange); - this.$on('on-form-blur', this.onFieldBlur); - this.$on('on-form-change', this.onFieldChange); + }else if (this.required){ + this.isRequired = this.required; } + this.$off('on-form-blur', this.onFieldBlur); + this.$off('on-form-change', this.onFieldChange); + this.$on('on-form-blur', this.onFieldBlur); + this.$on('on-form-change', this.onFieldChange); }, getRules () { let formRules = this.form.rules; @@ -174,10 +178,14 @@ return rules.filter(rule => !rule.trigger || rule.trigger.indexOf(trigger) !== -1); }, validate(trigger, callback = function () {}) { - const rules = this.getFilteredRule(trigger); + let rules = this.getFilteredRule(trigger); if (!rules || rules.length === 0) { - callback(); - return true; + if (!this.required) { + callback(); + return true; + }else { + rules = [{required: true}]; + } } this.validateState = 'validating'; -- libgit2 0.21.4