riku
2026-04-02 3282e95db0207ee133d1e98d9771dec9d83b0fc4
miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.wxml
@@ -1,96 +1 @@
<wxs module="this" src="./index.wxs" />
<wxs module="_" src="../common/utils.wxs" />
<view
  wx:if="{{wrapperVisible}}"
  class="{{classPrefix}} class {{prefix}}-class"
  style="{{_._style([this.getStyles(top, zIndex), style, customStyle])}}"
>
  <view
    class="{{ classPrefix }}__mask"
    hidden="{{!show}}"
    style="{{_._style(['height:' + maskHeight + 'px', style, customStyle])}}"
    bind:tap="handleMaskClick"
    catchtouchmove="closeDropdown"
  ></view>
  <t-popup
    visible="{{show}}"
    z-index="{{zIndex + 1}}"
    duration="{{duration}}"
    show-overlay="{{showOverlay}}"
    custom-style="position: absolute"
    overlay-props="{{ { style: 'position: absolute' } }}"
    bind:leaved="onLeaved"
    bind:visible-change="handleMaskClick"
    t-class="{{classPrefix}}__popup-host"
    t-class-content="{{classPrefix}}__content {{prefix}}-class-content"
  >
    <view class="{{classPrefix}}__body">
      <!-- 单选列表 -->
      <scroll-view wx:if="{{!multiple}}" class="{{classPrefix}}__scroll" scroll-y scroll-into-view="id_{{value}}">
        <t-radio-group
          class="{{classPrefix}}__radio {{prefix}}-class-column"
          t-class="{{classPrefix}}__radio-group"
          style="grid-template-columns: repeat({{optionsColumns}}, 1fr)"
          value="{{value}}"
          placement="right"
          bind:change="handleRadioChange"
        >
          <view wx:for="{{options}}" wx:key="index" id="id_{{item[valueAlias]}}">
            <t-radio
              tabindex="0"
              icon="line"
              class="{{classPrefix}}__radio-item {{prefix}}-class-column-item"
              t-class="radio"
              t-class-label="{{prefix}}-class-column-item-label"
              value="{{item[valueAlias]}}"
              label="{{item[labelAlias]}}"
              disabled="{{item.disabled}}"
            />
          </view>
        </t-radio-group>
      </scroll-view>
      <!-- 多选列表 -->
      <scroll-view wx:else class="{{classPrefix}}__scroll" scroll-y scroll-into-view="id_{{firstCheckedValue}}">
        <t-checkbox-group
          class="{{classPrefix}}__checkbox {{prefix}}-class-column"
          t-class="{{classPrefix}}__checkbox-group"
          style="grid-template-columns: repeat({{optionsColumns}}, 1fr)"
          value="{{value}}"
          bind:change="handleRadioChange"
        >
          <view wx:for="{{options}}" wx:key="index" id="id_{{item[valueAlias]}}">
            <t-checkbox
              tabindex="0"
              class="{{classPrefix}}__checkbox-item {{prefix}}-class-column-item"
              theme="tag"
              value="{{item[valueAlias]}}"
              label="{{item[labelAlias]}}"
              disabled="{{item.disabled}}"
            ></t-checkbox>
          </view>
        </t-checkbox-group>
      </scroll-view>
      <slot />
    </view>
    <view class="{{classPrefix}}__footer {{prefix}}-class-footer" wx:if="{{multiple}}">
      <t-button
        block
        class="{{classPrefix}}__footer-btn {{classPrefix}}__reset-btn"
        theme="light"
        disabled="{{value.length == 0}}"
        bindtap="handleReset"
        >重置</t-button
      >
      <t-button
        block
        class="{{classPrefix}}__footer-btn {{classPrefix}}__confirm-btn"
        theme="primary"
        disabled="{{value.length == 0}}"
        bindtap="handleConfirm"
        >确定</t-button
      >
    </view>
  </t-popup>
</view>
<wxs module="_this" src="./index.wxs"/><wxs module="_" src="../common/utils.wxs"/><view wx:if="{{wrapperVisible}}" class="{{classPrefix}} class {{prefix}}-class" style="{{_._style([_this.getStyles(top, zIndex), style, customStyle])}}"><view class="{{ classPrefix }}__mask" hidden="{{!show}}" style="{{_._style(['height:' + maskHeight + 'px', style, customStyle])}}" bind:tap="handleMaskClick" catchtouchmove="closeDropdown"></view><t-popup visible="{{show}}" z-index="{{zIndex + 1}}" duration="{{duration}}" show-overlay="{{showOverlay}}" custom-style="position: absolute" overlay-props="{{ { style: 'position: absolute' } }}" bind:leaved="onLeaved" bind:visible-change="handleMaskClick" t-class="{{classPrefix}}__popup-host" t-class-content="{{classPrefix}}__content {{prefix}}-class-content"><view class="{{classPrefix}}__body"><scroll-view wx:if="{{!multiple && options && options.length > 0}}" class="{{classPrefix}}__scroll" scroll-y scroll-into-view="id_{{value}}"><t-radio-group class="{{classPrefix}}__radio {{prefix}}-class-column" t-class="{{classPrefix}}__radio-group" style="grid-template-columns: repeat({{optionsColumns}}, 1fr)" value="{{value}}" bind:change="handleRadioChange"><view wx:for="{{options}}" wx:key="index" id="id_{{item[valueAlias]}}"><t-radio placement="{{placement}}" tabindex="0" icon="line" class="{{classPrefix}}__radio-item {{prefix}}-class-column-item" t-class="radio" t-class-label="{{prefix}}-class-column-item-label" value="{{item[valueAlias]}}" label="{{item[labelAlias]}}" disabled="{{item.disabled}}"/></view></t-radio-group></scroll-view><scroll-view wx:if="{{multiple && options && options.length > 0}}" class="{{classPrefix}}__scroll" scroll-y scroll-into-view="id_{{firstCheckedValue}}"><t-checkbox-group class="{{classPrefix}}__checkbox {{prefix}}-class-column" t-class="{{classPrefix}}__checkbox-group" style="grid-template-columns: repeat({{optionsColumns}}, 1fr)" value="{{value ? value : []}}" bind:change="handleRadioChange"><view wx:for="{{options}}" wx:key="index" id="id_{{item[valueAlias]}}"><t-checkbox tabindex="0" class="{{classPrefix}}__checkbox-item {{prefix}}-class-column-item" theme="tag" value="{{item[valueAlias]}}" label="{{item[labelAlias]}}" disabled="{{item.disabled}}"></t-checkbox></view></t-checkbox-group></scroll-view><slot/></view><view class="{{classPrefix}}__footer {{prefix}}-class-footer"><slot name="footer"/><block wx:if="{{multiple}}"><t-button block class="{{classPrefix}}__footer-btn {{classPrefix}}__reset-btn" theme="light" content="重置" disabled="{{value.length == 0}}" bindtap="handleReset"/><t-button block class="{{classPrefix}}__footer-btn {{classPrefix}}__confirm-btn" theme="primary" content="确定" disabled="{{value.length == 0}}" bindtap="handleConfirm"/></block></view></t-popup></view>