template.wxml 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <wxs src="./calendar.wxs" module="_this" />
  2. <wxs src="../common/utils.wxs" module="_" />
  3. <import src="../common/template/button.wxml" />
  4. <import src="./calendar-header.wxml" />
  5. <view
  6. class="{{_.cls(classPrefix, [['popup', usePopup]])}} {{classPrefix}}-switch-mode--{{switchMode}} class {{prefix}}-class"
  7. style="{{_._style([style, customStyle])}}"
  8. >
  9. <view class="{{classPrefix}}__title" tabindex="0">
  10. <slot name="title" />
  11. <text wx:if="{{title || realLocalText.title}}">{{ title || realLocalText.title }}</text>
  12. </view>
  13. <t-icon
  14. wx:if="{{usePopup}}"
  15. name="close"
  16. class="{{classPrefix}}__close-btn"
  17. size="48rpx"
  18. aria-role="button"
  19. aria-label="关闭"
  20. bind:tap="handleClose"
  21. />
  22. <template
  23. wx:if="{{switchMode !== 'none'}}"
  24. is="calendar-header"
  25. data="{{ classPrefix: classPrefix + '-header', switchMode, ...actionButtons, title: _this.getMonthTitle(currentMonth[0].year, realLocalText.months[currentMonth[0].month], realLocalText.monthTitle)}}"
  26. />
  27. <view aria-hidden class="{{classPrefix}}__days">
  28. <view wx:for="{{days}}" wx:key="index" class="{{classPrefix}}__days-item">{{ item }}</view>
  29. </view>
  30. <scroll-view
  31. class="{{classPrefix}}__months"
  32. scroll-into-view="{{scrollIntoView}}"
  33. scroll-y
  34. enhanced
  35. show-scrollbar="{{false}}"
  36. bindscroll="onScroll"
  37. >
  38. <block wx:for="{{ switchMode === 'none' ? months : currentMonth}}" wx:key="index">
  39. <template
  40. wx:if="{{switchMode === 'none'}}"
  41. is="calendar-header"
  42. data="{{class: classPrefix + '__month', classPrefix: classPrefix + '-header', tId: 'year_' + item.year + '_month_' + item.month, switchMode, ...actionButtons, title: _this.getMonthTitle(item.year, realLocalText.months[item.month], realLocalText.monthTitle) }}"
  43. />
  44. <view class="{{classPrefix}}__dates">
  45. <view wx:for="{{(item.weekdayOfFirstDay - firstDayOfWeek + 7) % 7}}" wx:key="index" />
  46. <block wx:for="{{item.months}}" wx:for-index="dateIndex" wx:for-item="dateItem" wx:key="dateIndex">
  47. <view
  48. class="{{classPrefix}}__dates-item {{dateItem.className}} {{classPrefix}}__dates-item--{{dateItem.type}}"
  49. data-year="{{item.year}}"
  50. data-month="{{item.month}}"
  51. data-date="{{dateItem}}"
  52. aria-role="button"
  53. aria-label="{{_this.getDateLabel(item, dateItem)}}"
  54. aria-disabled="{{dateItem.type === 'disabled'}}"
  55. bind:tap="handleSelect"
  56. >
  57. <view wx:if="{{dateItem.prefix}}" class="{{classPrefix}}__dates-item-prefix">{{ dateItem.prefix }}</view>
  58. {{ dateItem.day }}
  59. <view
  60. wx:if="{{dateItem.suffix}}"
  61. class="{{classPrefix}}__dates-item-suffix {{classPrefix}}__dates-item-suffix--{{dateItem.type}}"
  62. >
  63. {{ dateItem.suffix }}
  64. </view>
  65. </view>
  66. </block>
  67. </view>
  68. </block>
  69. </scroll-view>
  70. <view wx:if="{{innerConfirmBtn != null && usePopup}}" class="{{classPrefix}}__footer">
  71. <slot wx:if="{{innerConfirmBtn === 'slot'}}" name="confirm-btn" />
  72. <block wx:elif="{{innerConfirmBtn}}">
  73. <template
  74. is="button"
  75. data="{{ block: true, theme: 'primary', rootClass: 't-calendar__confirm-btn', content: realLocalText.confirm, ...innerConfirmBtn }}"
  76. />
  77. </block>
  78. </view>
  79. </view>