Commit f203b14f9fe4ea37c16f343c69222605ca85a99d
1 parent
b50e59f5
form-item watch rules change change rules
Showing
1 changed file
with
16 additions
and
12 deletions
Show diff stats
src/components/form/form-item.vue
| @@ -90,6 +90,9 @@ | @@ -90,6 +90,9 @@ | ||
| 90 | }, | 90 | }, |
| 91 | validateStatus (val) { | 91 | validateStatus (val) { |
| 92 | this.validateState = val; | 92 | this.validateState = val; |
| 93 | + }, | ||
| 94 | + rules (val){ | ||
| 95 | + this.setRules(); | ||
| 93 | } | 96 | } |
| 94 | }, | 97 | }, |
| 95 | inject: ['form'], | 98 | inject: ['form'], |
| @@ -143,6 +146,18 @@ | @@ -143,6 +146,18 @@ | ||
| 143 | } | 146 | } |
| 144 | }, | 147 | }, |
| 145 | methods: { | 148 | methods: { |
| 149 | + setRules() { | ||
| 150 | + let rules = this.getRules(); | ||
| 151 | + if (rules.length) { | ||
| 152 | + rules.every((rule) => { | ||
| 153 | + this.isRequired = rule.required; | ||
| 154 | + }); | ||
| 155 | + this.$off('on-form-blur', this.onFieldBlur); | ||
| 156 | + this.$off('on-form-change', this.onFieldChange); | ||
| 157 | + this.$on('on-form-blur', this.onFieldBlur); | ||
| 158 | + this.$on('on-form-change', this.onFieldChange); | ||
| 159 | + } | ||
| 160 | + }, | ||
| 146 | getRules () { | 161 | getRules () { |
| 147 | let formRules = this.form.rules; | 162 | let formRules = this.form.rules; |
| 148 | const selfRules = this.rules; | 163 | const selfRules = this.rules; |
| @@ -229,18 +244,7 @@ | @@ -229,18 +244,7 @@ | ||
| 229 | value: this.fieldValue | 244 | value: this.fieldValue |
| 230 | }); | 245 | }); |
| 231 | 246 | ||
| 232 | - let rules = this.getRules(); | ||
| 233 | - | ||
| 234 | - if (rules.length) { | ||
| 235 | - rules.every(rule => { | ||
| 236 | - if (rule.required) { | ||
| 237 | - this.isRequired = true; | ||
| 238 | - return false; | ||
| 239 | - } | ||
| 240 | - }); | ||
| 241 | - this.$on('on-form-blur', this.onFieldBlur); | ||
| 242 | - this.$on('on-form-change', this.onFieldChange); | ||
| 243 | - } | 247 | + this.setRules(); |
| 244 | } | 248 | } |
| 245 | }, | 249 | }, |
| 246 | beforeDestroy () { | 250 | beforeDestroy () { |