checkbox.wxml 2.4 KB

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