tree-select.wxml 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <wxs module="_" src="../common/utils.wxs" />
  2. <wxs module="_this" src="./index.wxs" />
  3. <view class="{{classPrefix}} class" style="{{_._style(['height:' + _.addUnit(height) , style, customStyle])}}">
  4. <t-scroll-view
  5. class="{{_.cls(classPrefix + '__column', [_this.getTreeClass(leafLevel - level, treeOptions.length)])}} {{prefix}}-class"
  6. wx:for="{{treeOptions}}"
  7. wx:key="level"
  8. wx:for-index="level"
  9. scrollIntoView="{{scrollIntoView && scrollIntoView[level] ? '.scroll-into-view >>> #scroll-to-' + scrollIntoView[level] : '' }}"
  10. >
  11. <t-side-bar
  12. wx:if="{{level == 0}}"
  13. value="{{innerValue[level]}}"
  14. bind:change="onRootChange"
  15. t-class="{{classPrefix}}-column {{prefix}}-class-left-column"
  16. >
  17. <t-side-bar-item
  18. wx:for="{{treeOptions[level]}}"
  19. wx:key="index"
  20. label="{{item.label}}"
  21. value="{{item.value}}"
  22. tId="scroll-to-{{item.value}}"
  23. class="scroll-into-view"
  24. t-class="{{prefix}}-class-left-item"
  25. />
  26. </t-side-bar>
  27. <block wx:elif="{{level != leafLevel}}">
  28. <view
  29. wx:for="{{treeOptions[level]}}"
  30. wx:key="value"
  31. bind:tap="handleTreeClick"
  32. data-level="{{level}}"
  33. data-value="{{item.value}}"
  34. class="{{_.cls(classPrefix + '__item', [['active', item.value === innerValue[level]]])}} {{prefix}}-class-middle-item scroll-into-view"
  35. >
  36. <view id="scroll-to-{{item.value}}"> {{item.label}} </view>
  37. </view>
  38. </block>
  39. <t-radio-group
  40. wx:elif="{{!multiple}}"
  41. class="{{classPrefix}}__radio {{prefix}}-class-right-column"
  42. data-level="{{level}}"
  43. value="{{innerValue[level]}}"
  44. bind:change="handleRadioChange"
  45. >
  46. <t-radio
  47. wx:for="{{treeOptions[level]}}"
  48. wx:key="value"
  49. tId="scroll-to-{{item.value}}"
  50. class="scroll-into-view {{classPrefix}}__radio-item {{prefix}}-class-right-item"
  51. t-class-label="{{prefix}}-class-right-item-label"
  52. icon="line"
  53. value="{{item.value}}"
  54. maxLabelRow="{{1}}"
  55. borderless
  56. placement="right"
  57. >
  58. {{item.label}}
  59. </t-radio>
  60. </t-radio-group>
  61. <t-checkbox-group
  62. wx:else
  63. class="{{classPrefix}}__checkbox {{prefix}}-class-right-column"
  64. value="{{innerValue[level] || []}}"
  65. bind:change="handleRadioChange"
  66. data-level="{{level}}"
  67. >
  68. <t-checkbox
  69. wx:for="{{treeOptions[level]}}"
  70. wx:key="value"
  71. placement="right"
  72. icon="line"
  73. maxLabelRow="{{1}}"
  74. tId="scroll-to-{{item.value}}"
  75. class="scroll-into-view {{prefix}}-class-right-item"
  76. t-class-label="{{prefix}}-class-right-item-label"
  77. borderless
  78. value="{{item.value}}"
  79. >
  80. {{item.label}}
  81. </t-checkbox>
  82. </t-checkbox-group>
  83. </t-scroll-view>
  84. <slot name="content" />
  85. </view>