<import src="../common/template/image.wxml" />
|
<import src="../common/template/icon.wxml" />
|
<wxs module="util">
|
module.exports.getImageSize = function(column) { if (column >= 5) return 'small'; if (column == 4) return 'middle';
|
return 'large'; }
|
</wxs>
|
<wxs module="_" src="../common/utils.wxs" />
|
|
<view
|
class="{{_.cls(classPrefix, [['auto-size', column == 0]])}} class {{prefix}}-class"
|
style="{{_._style([gridItemStyle, style, customStyle])}}"
|
hover-class="{{hover ? classPrefix + '--hover':''}}"
|
hover-stay-time="{{200}}"
|
bindtap="onClick"
|
aria-role="{{ariaRole || 'button'}}"
|
aria-label="{{ariaLabel}}"
|
aria-describedby="{{describedbyID}}"
|
>
|
<view class="{{_.cls(classPrefix + '__wrapper', [layout])}}" style="{{gridItemWrapperStyle}}">
|
<view
|
class="{{_.cls(classPrefix + '__content', [align, layout])}} {{prefix}}-class-content"
|
style="{{gridItemContentStyle}}"
|
>
|
<slot />
|
<t-badge
|
wx:if="{{image || icon}}"
|
color="{{badgeProps.color || ''}}"
|
content="{{badgeProps.content || ''}}"
|
count="{{badgeProps.count || 0}}"
|
dot="{{badgeProps.dot || false}}"
|
max-count="{{badgeProps.maxCount || 99}}"
|
offset="{{badgeProps.offset || []}}"
|
shape="{{badgeProps.shape || 'circle'}}"
|
show-zero="{{badgeProps.showZero || false}}"
|
size="{{badgeProps.size || 'medium'}}"
|
t-class="{{badgeProps.tClass}}"
|
t-class-content="{{badgeProps.tClassContent}}"
|
t-class-count="{{badgeProps.tClassCount}}"
|
>
|
<view
|
class="{{_.cls(classPrefix + '__image', [util.getImageSize(column), ['icon', icon]])}} {{prefix}}-class-image"
|
>
|
<block wx:if="{{image && image != 'slot'}}">
|
<template
|
is="image"
|
data="{{ src: image, shape: 'round', mode: 'widthFix', tClass: _.cls(classPrefix + '__image', [util.getImageSize(column)]) + ' ' + prefix + '-class-image', ...imageProps }}"
|
/>
|
</block>
|
<slot name="image" />
|
<template
|
wx:if="{{iconName || _.isNoEmptyObj(iconData)}}"
|
is="icon"
|
data="{{class: classPrefix + '__icon', name: iconName, ...iconData}}"
|
/>
|
</view>
|
</t-badge>
|
<view
|
class="{{_.cls(classPrefix + '__words', [layout])}}"
|
id="{{describedbyID}}"
|
aria-label="{{ ariaLabel || (badgeProps.dot || badgeProps.count ? text + ',' + description + ',' + _.getBadgeAriaLabel({ ...badgeProps }) : '') }}"
|
>
|
<view
|
wx:if="{{text}}"
|
class="{{_.cls(classPrefix + '__text', [util.getImageSize(column), layout])}} {{prefix}}-class-text"
|
>
|
{{text}}
|
</view>
|
<slot name="text" />
|
<view
|
wx:if="{{description}}"
|
class="{{_.cls(classPrefix + '__description', [util.getImageSize(column), layout])}} {{prefix}}-class-description"
|
>
|
{{description}}
|
</view>
|
<slot name="description" />
|
</view>
|
</view>
|
</view>
|
</view>
|