radio.wxml 2.1 KB

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