40 lines
1.7 KiB
Plaintext
40 lines
1.7 KiB
Plaintext
<!--pages/message/index.wxml-->
|
|
<wxs src="./index.wxs" module="_index" />
|
|
<view class="message-page">
|
|
<!-- 顶部标题行:用 flex 保证标题与清除按钮垂直居中对齐 -->
|
|
<view class="message-header">
|
|
<!-- 未读数已在下方「全部」tab 的角标展示,此处不再重复显示 -->
|
|
<text class="site-message-title">站内消息</text>
|
|
<t-icon class="message-clear" name="clear" size="40rpx" bindtap="onClearUnreadTap" />
|
|
</view>
|
|
|
|
<!-- 消息类型分类 -->
|
|
<t-tabs value="{{currentTabIndex}}" bind:change="onTabsChange" swipeable="{{false}}" t-class="message-tabs">
|
|
<t-tab-panel
|
|
wx:for="{{tabs}}"
|
|
wx:key="key"
|
|
label="{{item.label}}"
|
|
value="{{index}}"
|
|
badge-props="{{ { count: item.key === '' ? totalUnread : unreadMap[item.key] } }}"
|
|
/>
|
|
</t-tabs>
|
|
|
|
<view class="message-list">
|
|
<view class="message-item" wx:for="{{list}}" wx:for-item="item" wx:key="id">
|
|
<t-cell hover bordered bind:tap="onMessageTap" data-id="{{item.id}}">
|
|
<t-avatar class="avatar-example" slot="image" image="{{item.image}}" badge-props="{{ {dot: !item.is_read, offset: [0, 4] } }}" />
|
|
<view slot="title" class="msg-title">
|
|
<text class="msg-title-text">{{item.title}}</text>
|
|
<t-tag size="small" variant="light" theme="{{_index.tagTheme(item.message_type)}}" class="msg-type-tag">{{item.message_type_text}}</t-tag>
|
|
</view>
|
|
<view slot="description">{{_index.ellipsis(item.content, 22)}}</view>
|
|
<text slot="note">{{item.createtime_text}}</text>
|
|
</t-cell>
|
|
</view>
|
|
</view>
|
|
<view class="empty-container" wx:if="{{list.length <= 0}}">
|
|
<t-empty icon="chat-bubble-error" description="暂无消息" />
|
|
</view>
|
|
<view class="safe-bottom" />
|
|
</view>
|