| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | 
							- import { useParent } from '../common/relation';
 
- import { VantComponent } from '../common/component';
 
- function emit(target, value) {
 
-     target.$emit('input', value);
 
-     target.$emit('change', value);
 
- }
 
- VantComponent({
 
-     field: true,
 
-     relation: useParent('checkbox-group'),
 
-     classes: ['icon-class', 'label-class'],
 
-     props: {
 
-         value: Boolean,
 
-         disabled: Boolean,
 
-         useIconSlot: Boolean,
 
-         checkedColor: String,
 
-         labelPosition: {
 
-             type: String,
 
-             value: 'right',
 
-         },
 
-         labelDisabled: Boolean,
 
-         shape: {
 
-             type: String,
 
-             value: 'round',
 
-         },
 
-         iconSize: {
 
-             type: null,
 
-             value: 20,
 
-         },
 
-     },
 
-     data: {
 
-         parentDisabled: false,
 
-         direction: 'vertical',
 
-     },
 
-     methods: {
 
-         emitChange(value) {
 
-             if (this.parent) {
 
-                 this.setParentValue(this.parent, value);
 
-             }
 
-             else {
 
-                 emit(this, value);
 
-             }
 
-         },
 
-         toggle() {
 
-             const { parentDisabled, disabled, value } = this.data;
 
-             if (!disabled && !parentDisabled) {
 
-                 this.emitChange(!value);
 
-             }
 
-         },
 
-         onClickLabel() {
 
-             const { labelDisabled, parentDisabled, disabled, value } = this.data;
 
-             if (!disabled && !labelDisabled && !parentDisabled) {
 
-                 this.emitChange(!value);
 
-             }
 
-         },
 
-         setParentValue(parent, value) {
 
-             const parentValue = parent.data.value.slice();
 
-             const { name } = this.data;
 
-             const { max } = parent.data;
 
-             if (value) {
 
-                 if (max && parentValue.length >= max) {
 
-                     return;
 
-                 }
 
-                 if (parentValue.indexOf(name) === -1) {
 
-                     parentValue.push(name);
 
-                     emit(parent, parentValue);
 
-                 }
 
-             }
 
-             else {
 
-                 const index = parentValue.indexOf(name);
 
-                 if (index !== -1) {
 
-                     parentValue.splice(index, 1);
 
-                     emit(parent, parentValue);
 
-                 }
 
-             }
 
-         },
 
-     },
 
- });
 
 
  |