43 lines
1.6 KiB
Plaintext
43 lines
1.6 KiB
Plaintext
<!-- 自定义 TabBar:由 globalData.tabBar 动态渲染;支持 iconUrl 图片覆盖 SVG;highlight=中间浮钮 -->
|
||
<view class="tab-bar">
|
||
<view class="tab-bar-line"></view>
|
||
<view class="tab-bar-inner tab-bar-count-{{items.length}}">
|
||
<block wx:for="{{items}}" wx:key="pagePath" wx:for-item="it">
|
||
<!-- 中间浮钮(highlight=true) -->
|
||
<view wx:if="{{it.highlight}}" class="tab-slot-middle">
|
||
<view
|
||
class="middle-fab {{selected === index ? 'active' : ''}}"
|
||
data-index="{{index}}"
|
||
bindtap="switchTab"
|
||
>
|
||
<view class="center-circle">
|
||
<image wx:if="{{it.iconUrl}}" class="center-img" src="{{it.iconUrl}}" mode="aspectFit" />
|
||
<view wx:else class="center-svg center-svg--{{it.iconKey || 'camera'}}"></view>
|
||
</view>
|
||
<text class="tab-text tab-text-fab">{{it.text}}</text>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 普通 Tab item -->
|
||
<view
|
||
wx:else
|
||
class="tab-item {{selected === index ? 'active' : ''}} tab-item--{{it.iconKey || 'home'}}"
|
||
data-index="{{index}}"
|
||
bindtap="switchTab"
|
||
>
|
||
<image
|
||
wx:if="{{it.iconUrl}}"
|
||
class="tab-icon-img {{selected === index ? 'tab-icon-img--active' : ''}}"
|
||
src="{{it.iconUrl}}"
|
||
mode="aspectFit"
|
||
/>
|
||
<view
|
||
wx:else
|
||
class="tab-icon tab-icon--{{it.iconKey || 'home'}} {{selected === index ? 'tab-icon--active' : ''}}"
|
||
></view>
|
||
<text class="tab-text">{{it.text}}</text>
|
||
</view>
|
||
</block>
|
||
</view>
|
||
</view>
|