checkbox.wxml 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <wxs src="../common/utils.wxs" module="_" />
  2. <view
  3. style="{{_._style([style, customStyle])}}"
  4. class="{{_.cls(classPrefix, [align, theme, ['checked', checked], ['block', block]])}} {{prefix}}-class"
  5. aria-role="checkbox"
  6. aria-checked="{{checked ? (indeterminate ? 'mixed' : true) : false}}"
  7. aria-disabled="{{disabled ? true : false}}"
  8. bind:tap="onChange"
  9. tabindex="{{tabindex}}"
  10. >
  11. <view
  12. wx:if="{{theme == 'default'}}"
  13. class="{{_.cls(classPrefix + '__icon', [align, ['checked', checked], ['disabled', disabled]])}} {{prefix}}-class-icon"
  14. >
  15. <view wx:if="{{_.isArray(icon)}}" class="{{classPrefix}}__icon">
  16. <image src="{{checked ? icon[0] : icon[1]}}" class="{{classPrefix}}__icon-image" webp />
  17. </view>
  18. <block wx:else>
  19. <t-icon
  20. wx:if="{{checked && (icon == 'circle' || icon == 'rectangle')}}"
  21. name="{{indeterminate ? ('minus-' + icon + '-filled') : ('check-' + icon + '-filled')}}"
  22. class="{{_.cls(classPrefix + '__icon-wrapper', [])}}"
  23. />
  24. <t-icon
  25. wx:if="{{checked && icon == 'line'}}"
  26. name="{{indeterminate ? ('minus-' + icon + '-filled') : 'check'}}"
  27. class="{{_.cls(classPrefix + '__icon-wrapper', [])}}"
  28. />
  29. <view
  30. wx:elif="{{!checked && (icon == 'circle' || icon == 'rectangle')}}"
  31. class="{{_.cls(classPrefix + '__icon-' + icon, [['disabled', disabled]])}}"
  32. />
  33. <view wx:if="{{!checked && icon == 'line'}}" class="placeholder"></view>
  34. </block>
  35. </view>
  36. <view class="{{classPrefix}}__content" data-target="text" catch:tap="onChange">
  37. <view
  38. class="{{_.cls(classPrefix + '__title', [['disabled', disabled], ['checked', checked]])}} {{prefix}}-class-label"
  39. style="-webkit-line-clamp:{{maxLabelRow}}"
  40. >
  41. {{label}}
  42. <slot />
  43. <slot name="label" />
  44. </view>
  45. <view
  46. class="{{_.cls(classPrefix + '__description', [['disabled', disabled]])}} {{prefix}}-class-content "
  47. style="-webkit-line-clamp:{{maxContentRow}}"
  48. >{{content}}<slot name="content"
  49. /></view>
  50. </view>
  51. <view
  52. wx:if="{{theme == 'default' && !borderless}}"
  53. class="{{_.cls(classPrefix + '__border', [align])}} {{prefix}}-class-border"
  54. />
  55. </view>