rate.wxml 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <wxs src="../common/utils.wxs" module="_" />
  2. <wxs src="./rate.wxs" module="utils" />
  3. <view class="{{classPrefix}} class" style="{{_._style([style, customStyle])}}">
  4. <view
  5. class="{{classPrefix}}__wrapper {{prefix}}-class"
  6. style="font-size:{{ utils.regSize(size) }}"
  7. catch:touchstart="onTouchStart"
  8. catch:touchmove="{{ !disabled ? 'onTouchMove' : '' }}"
  9. catch:tap="{{ !disabled ? 'onTap' : '' }}"
  10. catch:touchend="{{ !disabled ? 'onTouchEnd' : ''}}"
  11. catch:touchcancel="{{ !disabled ? 'onTouchEnd' : ''}}"
  12. >
  13. <t-icon
  14. wx:for="{{ count }}"
  15. wx:key="*this"
  16. class="{{classPrefix }}__icon {{utils.getIconClass(classPrefix + '__icon', defaultValue, value, index, allowHalf, disabled, scaleIndex)}}"
  17. t-class="{{prefix}}-class-icon"
  18. name="{{utils.getIconName(defaultValue, value, index, icon)}}"
  19. size="{{ size }}"
  20. style="margin-right:{{ count - index > 1 ? gap : 0 }}px; {{utils.getColor(color)}}"
  21. />
  22. </view>
  23. <text wx:if="{{showText}}" class="{{_.cls(classPrefix + '__text', [['active', value > 0]])}} {{prefix}}-class-text"
  24. >{{utils.getText(texts,value,defaultTexts)}}</text
  25. >
  26. <view wx:if="{{tipsVisible}}" class="{{classPrefix}}__tips" style="left: {{tipsLeft}}px">
  27. <block wx:if="{{actionType == 'tap'}}">
  28. <view
  29. wx:if="{{allowHalf}}"
  30. class="{{_.cls(classPrefix + '__tips-item', [['active', utils.ceil(value) - 0.5 == value]])}}"
  31. bind:tap="onSelect"
  32. data-value="{{utils.ceil(value) - 0.5}}"
  33. >
  34. <t-icon
  35. class="{{classPrefix }}__icon {{classPrefix }}__icon--selected-half"
  36. name="{{utils.getIconName(defaultValue, value, index, icon)}}"
  37. size="{{ size }}"
  38. style="{{utils.getColor(color)}}"
  39. />
  40. <view class="{{classPrefix}}__tips-text">{{utils.ceil(value) - 0.5}}</view>
  41. </view>
  42. <view
  43. class="{{_.cls(classPrefix + '__tips-item', [['active', utils.ceil(value) == value]])}}"
  44. bind:tap="onSelect"
  45. data-value="{{utils.ceil(value)}}"
  46. >
  47. <t-icon
  48. class="{{_.cls(classPrefix + '__icon', ['selected'])}}"
  49. name="{{utils.getIconName(defaultValue, 0, 0, icon)}}"
  50. size="{{ size }}"
  51. style="{{utils.getColor(color)}}"
  52. />
  53. <view class="{{classPrefix}}__tips-text">{{utils.ceil(value)}}</view>
  54. </view>
  55. </block>
  56. <view
  57. wx:else
  58. class="{{_.cls(classPrefix + '__tips-item', [['active', utils.ceil(value) == value && actionType == 'tap']])}}"
  59. bind:tap="onSelect"
  60. data-value="{{utils.ceil(value)}}"
  61. >
  62. <t-icon
  63. class="{{_.cls(classPrefix + '__icon', [['selected', utils.ceil(value) == value], ['selected-half', utils.ceil(value) != value]]) }}"
  64. name="{{utils.getIconName(defaultValue, 0, 0, icon)}}"
  65. size="{{ size }}"
  66. style="{{utils.getColor(color)}}; font-size: {{size}};"
  67. />
  68. <view class="{{classPrefix}}__tips-text">{{value}}</view>
  69. </view>
  70. </view>
  71. </view>