Commit f65e9be5658e3d61b6ae0e7276e90140814898f2
1 parent
578ca325
update checkboxGroup
update checkboxGroup
Showing
3 changed files
with
32 additions
and
1 deletions
Show diff stats
src/components/checkbox/checkbox-group.vue
src/components/checkbox/checkbox.vue
| @@ -94,6 +94,7 @@ | @@ -94,6 +94,7 @@ | ||
| 94 | this.$parent.change(this.model); | 94 | this.$parent.change(this.model); |
| 95 | } else { | 95 | } else { |
| 96 | this.$emit('on-change', this.checked); | 96 | this.$emit('on-change', this.checked); |
| 97 | + this.$dispatch('on-form-change', this.checked); | ||
| 97 | } | 98 | } |
| 98 | }, | 99 | }, |
| 99 | updateModel () { | 100 | updateModel () { |
test/routers/form.vue
| @@ -30,6 +30,26 @@ | @@ -30,6 +30,26 @@ | ||
| 30 | </Radio> | 30 | </Radio> |
| 31 | </Radio-group> | 31 | </Radio-group> |
| 32 | </form-item> | 32 | </form-item> |
| 33 | + <form-item label="checkbox-g" prop="checkboxgroup"> | ||
| 34 | + <Checkbox-group :model.sync="form.checkboxgroup"> | ||
| 35 | + <Checkbox value="twitter"> | ||
| 36 | + <Icon type="social-twitter"></Icon> | ||
| 37 | + <span>Twitter</span> | ||
| 38 | + </Checkbox> | ||
| 39 | + <Checkbox value="facebook"> | ||
| 40 | + <Icon type="social-facebook"></Icon> | ||
| 41 | + <span>Facebook</span> | ||
| 42 | + </Checkbox> | ||
| 43 | + <Checkbox value="github"> | ||
| 44 | + <Icon type="social-github"></Icon> | ||
| 45 | + <span>Github</span> | ||
| 46 | + </Checkbox> | ||
| 47 | + <Checkbox value="snapchat"> | ||
| 48 | + <Icon type="social-snapchat"></Icon> | ||
| 49 | + <span>Snapchat</span> | ||
| 50 | + </Checkbox> | ||
| 51 | + </Checkbox-group> | ||
| 52 | + </form-item> | ||
| 33 | <form-item> | 53 | <form-item> |
| 34 | <i-button type="primary" @click="onSubmit('form')">提交</i-button> | 54 | <i-button type="primary" @click="onSubmit('form')">提交</i-button> |
| 35 | </form-item> | 55 | </form-item> |
| @@ -45,7 +65,8 @@ | @@ -45,7 +65,8 @@ | ||
| 45 | mail: '', | 65 | mail: '', |
| 46 | passwd: '', | 66 | passwd: '', |
| 47 | single: false, | 67 | single: false, |
| 48 | - group: '' | 68 | + group: '', |
| 69 | + checkboxgroup: [] | ||
| 49 | }, | 70 | }, |
| 50 | rules: { | 71 | rules: { |
| 51 | mail: [ | 72 | mail: [ |
| @@ -68,6 +89,14 @@ | @@ -68,6 +89,14 @@ | ||
| 68 | { | 89 | { |
| 69 | required: true, message: '请单选组' | 90 | required: true, message: '请单选组' |
| 70 | } | 91 | } |
| 92 | + ], | ||
| 93 | + checkboxgroup: [ | ||
| 94 | + { | ||
| 95 | + required: true, message: '至少选择2个', min: 2, type: 'array', | ||
| 96 | + }, | ||
| 97 | + { | ||
| 98 | + required: true, message: '至多选择3个', max: 3, type: 'array' | ||
| 99 | + } | ||
| 71 | ] | 100 | ] |
| 72 | } | 101 | } |
| 73 | } | 102 | } |