index.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <template>
  2. <uni-shadow-root class="vant-checkbox-index"><view class="van-checkbox custom-class">
  3. <view class="van-checkbox__icon-wrap" @click="toggle">
  4. <slot v-if="useIconSlot" name="icon"></slot>
  5. <van-icon v-else name="success" :class="utils.bem('checkbox__icon', [shape, { disabled, checked: value }])" :style="checkedColor && value && !disabled ? 'border-color:' + checkedColor + '; background-color:' + checkedColor : ''" custom-class="icon-class" custom-style="line-height: 20px;"></van-icon>
  6. </view>
  7. <view :class="'label-class '+(utils.bem('checkbox__label', [labelPosition, { disabled }]))" @click="onClickLabel">
  8. <slot></slot>
  9. </view>
  10. </view></uni-shadow-root>
  11. </template>
  12. <wxs src="../wxs/utils.wxs" module="utils"></wxs>
  13. <script>
  14. import VanIcon from '../icon/index.vue'
  15. global['__wxVueOptions'] = {components:{'van-icon': VanIcon}}
  16. global['__wxRoute'] = 'vant/checkbox/index'
  17. "use strict";
  18. Object.defineProperty(exports, "__esModule", { value: true });
  19. var component_1 = require('./../common/component.js');
  20. function emit(target, value) {
  21. target.$emit('input', value);
  22. target.$emit('change', value);
  23. }
  24. component_1.VantComponent({
  25. field: true,
  26. relation: {
  27. name: 'checkbox-group',
  28. type: 'ancestor',
  29. linked: function linked(target) {
  30. this.parent = target;
  31. },
  32. unlinked: function unlinked() {
  33. this.parent = null;
  34. }
  35. },
  36. classes: ['icon-class', 'label-class'],
  37. props: {
  38. value: Boolean,
  39. disabled: Boolean,
  40. useIconSlot: Boolean,
  41. checkedColor: String,
  42. labelPosition: String,
  43. labelDisabled: Boolean,
  44. shape: {
  45. type: String,
  46. value: 'round'
  47. }
  48. },
  49. methods: {
  50. emitChange: function emitChange(value) {
  51. if (this.parent) {
  52. this.setParentValue(this.parent, value);
  53. } else {
  54. emit(this, value);
  55. }
  56. },
  57. toggle: function toggle() {
  58. var _a = this.data,
  59. disabled = _a.disabled,
  60. value = _a.value;
  61. if (!disabled) {
  62. this.emitChange(!value);
  63. }
  64. },
  65. onClickLabel: function onClickLabel() {
  66. var _a = this.data,
  67. labelDisabled = _a.labelDisabled,
  68. disabled = _a.disabled,
  69. value = _a.value;
  70. if (!disabled && !labelDisabled) {
  71. this.emitChange(!value);
  72. }
  73. },
  74. setParentValue: function setParentValue(parent, value) {
  75. var parentValue = parent.data.value.slice();
  76. var name = this.data.name;
  77. var max = parent.data.max;
  78. if (value) {
  79. if (max && parentValue.length >= max) {
  80. return;
  81. }
  82. if (parentValue.indexOf(name) === -1) {
  83. parentValue.push(name);
  84. emit(parent, parentValue);
  85. }
  86. } else {
  87. var index = parentValue.indexOf(name);
  88. if (index !== -1) {
  89. parentValue.splice(index, 1);
  90. emit(parent, parentValue);
  91. }
  92. }
  93. }
  94. }
  95. });
  96. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIk9iamVjdCIsInZhbHVlIiwiY29tcG9uZW50XzEiLCJyZXF1aXJlIiwidGFyZ2V0IiwiZmllbGQiLCJyZWxhdGlvbiIsIm5hbWUiLCJ0eXBlIiwibGlua2VkIiwidW5saW5rZWQiLCJjbGFzc2VzIiwicHJvcHMiLCJkaXNhYmxlZCIsInVzZUljb25TbG90IiwiY2hlY2tlZENvbG9yIiwibGFiZWxQb3NpdGlvbiIsImxhYmVsRGlzYWJsZWQiLCJzaGFwZSIsIm1ldGhvZHMiLCJlbWl0Q2hhbmdlIiwiZW1pdCIsInRvZ2dsZSIsIl9hIiwib25DbGlja0xhYmVsIiwic2V0UGFyZW50VmFsdWUiLCJwYXJlbnRWYWx1ZSIsInBhcmVudCIsIm1heCIsImluZGV4Il0sIm1hcHBpbmdzIjoiOztBQUNBQSxPQUFBQSxjQUFBQSxDQUFBQSxPQUFBQSxFQUFBQSxZQUFBQSxFQUE2QyxFQUFFQyxPQUEvQ0QsSUFBNkMsRUFBN0NBO0FBQ0EsSUFBSUUsY0FBY0MsUUFBbEIsMEJBQWtCQSxDQUFsQjtBQUNBLFNBQUEsSUFBQSxDQUFBLE1BQUEsRUFBQSxLQUFBLEVBQTZCO0FBQ3pCQyxXQUFBQSxLQUFBQSxDQUFBQSxPQUFBQSxFQUFBQSxLQUFBQTtBQUNBQSxXQUFBQSxLQUFBQSxDQUFBQSxRQUFBQSxFQUFBQSxLQUFBQTtBQUNIO0FBQ0RGLFlBQUFBLGFBQUFBLENBQTBCO0FBQ3RCRyxXQURzQixJQUFBO0FBRXRCQyxjQUFVO0FBQ05DLGNBRE0sZ0JBQUE7QUFFTkMsY0FGTSxVQUFBO0FBR05DLGdCQUFRLFNBQUEsTUFBQSxDQUFBLE1BQUEsRUFBa0I7QUFDdEIsaUJBQUEsTUFBQSxHQUFBLE1BQUE7QUFKRSxTQUFBO0FBTU5DLGtCQUFVLFNBQUEsUUFBQSxHQUFZO0FBQ2xCLGlCQUFBLE1BQUEsR0FBQSxJQUFBO0FBQ0g7QUFSSyxLQUZZO0FBWXRCQyxhQUFTLENBQUEsWUFBQSxFQVphLGFBWWIsQ0FaYTtBQWF0QkMsV0FBTztBQUNIWCxlQURHLE9BQUE7QUFFSFksa0JBRkcsT0FBQTtBQUdIQyxxQkFIRyxPQUFBO0FBSUhDLHNCQUpHLE1BQUE7QUFLSEMsdUJBTEcsTUFBQTtBQU1IQyx1QkFORyxPQUFBO0FBT0hDLGVBQU87QUFDSFYsa0JBREcsTUFBQTtBQUVIUCxtQkFBTztBQUZKO0FBUEosS0FiZTtBQXlCdEJrQixhQUFTO0FBQ0xDLG9CQUFZLFNBQUEsVUFBQSxDQUFBLEtBQUEsRUFBaUI7QUFDekIsZ0JBQUksS0FBSixNQUFBLEVBQWlCO0FBQ2IscUJBQUEsY0FBQSxDQUFvQixLQUFwQixNQUFBLEVBQUEsS0FBQTtBQURKLGFBQUEsTUFHSztBQUNEQyxxQkFBQUEsSUFBQUEsRUFBQUEsS0FBQUE7QUFDSDtBQVBBLFNBQUE7QUFTTEMsZ0JBQVEsU0FBQSxNQUFBLEdBQVk7QUFDaEIsZ0JBQUlDLEtBQUssS0FBVCxJQUFBO0FBQUEsZ0JBQW9CVixXQUFXVSxHQUEvQixRQUFBO0FBQUEsZ0JBQTRDdEIsUUFBUXNCLEdBQXBELEtBQUE7QUFDQSxnQkFBSSxDQUFKLFFBQUEsRUFBZTtBQUNYLHFCQUFBLFVBQUEsQ0FBZ0IsQ0FBaEIsS0FBQTtBQUNIO0FBYkEsU0FBQTtBQWVMQyxzQkFBYyxTQUFBLFlBQUEsR0FBWTtBQUN0QixnQkFBSUQsS0FBSyxLQUFULElBQUE7QUFBQSxnQkFBb0JOLGdCQUFnQk0sR0FBcEMsYUFBQTtBQUFBLGdCQUFzRFYsV0FBV1UsR0FBakUsUUFBQTtBQUFBLGdCQUE4RXRCLFFBQVFzQixHQUF0RixLQUFBO0FBQ0EsZ0JBQUksQ0FBQSxRQUFBLElBQWEsQ0FBakIsYUFBQSxFQUFpQztBQUM3QixxQkFBQSxVQUFBLENBQWdCLENBQWhCLEtBQUE7QUFDSDtBQW5CQSxTQUFBO0FBcUJMRSx3QkFBZ0IsU0FBQSxjQUFBLENBQUEsTUFBQSxFQUFBLEtBQUEsRUFBeUI7QUFDckMsZ0JBQUlDLGNBQWNDLE9BQUFBLElBQUFBLENBQUFBLEtBQUFBLENBQWxCLEtBQWtCQSxFQUFsQjtBQUNBLGdCQUFJcEIsT0FBTyxLQUFBLElBQUEsQ0FBWCxJQUFBO0FBQ0EsZ0JBQUlxQixNQUFNRCxPQUFBQSxJQUFBQSxDQUFWLEdBQUE7QUFDQSxnQkFBQSxLQUFBLEVBQVc7QUFDUCxvQkFBSUMsT0FBT0YsWUFBQUEsTUFBQUEsSUFBWCxHQUFBLEVBQXNDO0FBQ2xDO0FBQ0g7QUFDRCxvQkFBSUEsWUFBQUEsT0FBQUEsQ0FBQUEsSUFBQUEsTUFBOEIsQ0FBbEMsQ0FBQSxFQUFzQztBQUNsQ0EsZ0NBQUFBLElBQUFBLENBQUFBLElBQUFBO0FBQ0FMLHlCQUFBQSxNQUFBQSxFQUFBQSxXQUFBQTtBQUNIO0FBUEwsYUFBQSxNQVNLO0FBQ0Qsb0JBQUlRLFFBQVFILFlBQUFBLE9BQUFBLENBQVosSUFBWUEsQ0FBWjtBQUNBLG9CQUFJRyxVQUFVLENBQWQsQ0FBQSxFQUFrQjtBQUNkSCxnQ0FBQUEsTUFBQUEsQ0FBQUEsS0FBQUEsRUFBQUEsQ0FBQUE7QUFDQUwseUJBQUFBLE1BQUFBLEVBQUFBLFdBQUFBO0FBQ0g7QUFDSjtBQUNKO0FBekNJO0FBekJhLENBQTFCbkIiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBjb21wb25lbnRfMSA9IHJlcXVpcmUoXCIuLi9jb21tb24vY29tcG9uZW50XCIpO1xuZnVuY3Rpb24gZW1pdCh0YXJnZXQsIHZhbHVlKSB7XG4gICAgdGFyZ2V0LiRlbWl0KCdpbnB1dCcsIHZhbHVlKTtcbiAgICB0YXJnZXQuJGVtaXQoJ2NoYW5nZScsIHZhbHVlKTtcbn1cbmNvbXBvbmVudF8xLlZhbnRDb21wb25lbnQoe1xuICAgIGZpZWxkOiB0cnVlLFxuICAgIHJlbGF0aW9uOiB7XG4gICAgICAgIG5hbWU6ICdjaGVja2JveC1ncm91cCcsXG4gICAgICAgIHR5cGU6ICdhbmNlc3RvcicsXG4gICAgICAgIGxpbmtlZDogZnVuY3Rpb24gKHRhcmdldCkge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnQgPSB0YXJnZXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHVubGlua2VkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGNsYXNzZXM6IFsnaWNvbi1jbGFzcycsICdsYWJlbC1jbGFzcyddLFxuICAgIHByb3BzOiB7XG4gICAgICAgIHZhbHVlOiBCb29sZWFuLFxuICAgICAgICBkaXNhYmxlZDogQm9vbGVhbixcbiAgICAgICAgdXNlSWNvblNsb3Q6IEJvb2xlYW4sXG4gICAgICAgIGNoZWNrZWRDb2xvcjogU3RyaW5nLFxuICAgICAgICBsYWJlbFBvc2l0aW9uOiBTdHJpbmcsXG4gICAgICAgIGxhYmVsRGlzYWJsZWQ6IEJvb2xlYW4sXG4gICAgICAgIHNoYXBlOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICB2YWx1ZTogJ3JvdW5kJ1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICAgIGVtaXRDaGFuZ2U6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQYXJlbnRWYWx1ZSh0aGlzLnBhcmVudCwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZW1pdCh0aGlzLCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHRvZ2dsZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIF9hID0gdGhpcy5kYXRhLCBkaXNhYmxlZCA9IF9hLmRpc2FibGVkLCB2YWx1ZSA9IF9hLnZhbHVlO1xuICAgICAgICAgICAgaWYgKCFkaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdENoYW5nZSghdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvbkNsaWNrTGFiZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBfYSA9IHRoaXMuZGF0YSwgbGFiZWxEaXNhYmxlZCA9IF9hLmxhYmVsRGlzYWJsZWQsIGRpc2FibGVkID0gX2EuZGlzYWJsZWQsIHZhbHVlID0gX2EudmFsdWU7XG4gICAgICAgICAgICBpZiAoIWRpc2FibGVkICYmICFsYWJlbERpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCF2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHNldFBhcmVudFZhbHVlOiBmdW5jdGlvbiAocGFyZW50LCB2YWx1ZSkge1xuICAgICAgICAgICAgdmFyIHBhcmVudFZhbHVlID0gcGFyZW50LmRhdGEudmFsdWUuc2xpY2UoKTtcbiAgICAgICAgICAgIHZhciBuYW1lID0gdGhpcy5kYXRhLm5hbWU7XG4gICAgICAgICAgICB2YXIgbWF4ID0gcGFyZW50LmRhdGEubWF4O1xuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1heCAmJiBwYXJlbnRWYWx1ZS5sZW5ndGggPj0gbWF4KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHBhcmVudFZhbHVlLmluZGV4T2YobmFtZSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudFZhbHVlLnB1c2gobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGVtaXQocGFyZW50LCBwYXJlbnRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gcGFyZW50VmFsdWUuaW5kZXhPZihuYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudFZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgICAgIGVtaXQocGFyZW50LCBwYXJlbnRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSk7XG4iXSwiZmlsZSI6ImluZGV4LmpzIn0=
  97. export default global['__wxComponents']['vant/checkbox/index']
  98. </script>
  99. <style platform="mp-weixin">
  100. @import '../common/index.css';.van-checkbox{display:-webkit-flex;display:flex;overflow:hidden;-webkit-user-select:none;user-select:none}.van-checkbox__icon-wrap,.van-checkbox__label{line-height:20px}.van-checkbox__icon-wrap{-webkit-flex:none;flex:none}.van-checkbox__icon{display:block;width:20px;height:20px;font-size:14px;color:transparent;text-align:center;border:1px solid #e5e5e5;box-sizing:border-box;transition:.2s}.van-checkbox__icon--round{border-radius:100%}.van-checkbox__icon--checked{color:#fff;background-color:#1989fa;border-color:#1989fa}.van-checkbox__icon--disabled{background-color:#eee;border-color:#c9c9c9}.van-checkbox__icon--disabled.van-checkbox__icon--checked{color:#c9c9c9}.van-checkbox__label{margin-left:10px;color:#333;word-break:break-all}.van-checkbox__label--left{float:left;margin:0 10px 0 0}.van-checkbox__label--disabled{color:#c9c9c9}.van-checkbox__label:empty{margin:0}
  101. </style>