审查视图

miniprogram_npm/@vant/weapp/checkbox/index.js 2.0 KB
倪静楠 authored
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var component_1 = require('../common/component');
function emit(target, value) {
  target.$emit('input', value);
  target.$emit('change', value);
}
component_1.VantComponent({
  field: true,
  relation: {
    name: 'checkbox-group',
    type: 'ancestor',
    current: 'checkbox',
  },
  classes: ['icon-class', 'label-class'],
  props: {
    value: Boolean,
    disabled: Boolean,
    useIconSlot: Boolean,
    checkedColor: String,
    labelPosition: String,
    labelDisabled: Boolean,
    shape: {
      type: String,
      value: 'round',
    },
    iconSize: {
      type: null,
      value: 20,
    },
  },
  data: {
    parentDisabled: false,
  },
  methods: {
    emitChange: function (value) {
      if (this.parent) {
        this.setParentValue(this.parent, value);
      } else {
        emit(this, value);
      }
    },
    toggle: function () {
      var _a = this.data,
        parentDisabled = _a.parentDisabled,
        disabled = _a.disabled,
        value = _a.value;
      if (!disabled && !parentDisabled) {
        this.emitChange(!value);
      }
    },
    onClickLabel: function () {
      var _a = this.data,
        labelDisabled = _a.labelDisabled,
        parentDisabled = _a.parentDisabled,
        disabled = _a.disabled,
        value = _a.value;
      if (!disabled && !labelDisabled && !parentDisabled) {
        this.emitChange(!value);
      }
    },
    setParentValue: function (parent, value) {
      var parentValue = parent.data.value.slice();
      var name = this.data.name;
      var max = parent.data.max;
      if (value) {
        if (max && parentValue.length >= max) {
          return;
        }
        if (parentValue.indexOf(name) === -1) {
          parentValue.push(name);
          emit(parent, parentValue);
        }
      } else {
        var index = parentValue.indexOf(name);
        if (index !== -1) {
          parentValue.splice(index, 1);
          emit(parent, parentValue);
        }
      }
    },
  },
});