radio.wxml 2.2 KB

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