index.js 1006 B

12345678910111213141516171819202122232425262728293031323334
  1. import { VantComponent } from '../common/component';
  2. VantComponent({
  3. field: true,
  4. relation: {
  5. name: 'checkbox',
  6. type: 'descendant',
  7. linked(target) {
  8. const { value, disabled } = this.data;
  9. target.set({
  10. value: value.indexOf(target.data.name) !== -1,
  11. disabled: disabled || target.data.disabled
  12. });
  13. }
  14. },
  15. props: {
  16. max: Number,
  17. value: Array,
  18. disabled: Boolean
  19. },
  20. watch: {
  21. value(value) {
  22. const children = this.getRelationNodes('../checkbox/index');
  23. children.forEach(child => {
  24. child.set({ value: value.indexOf(child.data.name) !== -1 });
  25. });
  26. },
  27. disabled(disabled) {
  28. const children = this.getRelationNodes('../checkbox/index');
  29. children.forEach(child => {
  30. child.set({ disabled: disabled || child.data.disabled });
  31. });
  32. }
  33. }
  34. });