| | |
| | | <view class="unread-dot" v-if="message.isRead === '0'"></view> |
| | | </view> |
| | | <view class="message-content">{{ message.messageContent }}</view> |
| | | <view class="message-time">{{ message.createTime }}</view> |
| | | <view class="message-time">{{ formatMessageTime(message.createTime) }}</view> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | |
| | | <script> |
| | | import { getMyMessages, markAsRead } from '@/api/message' |
| | | import { formatDateTime } from '@/utils/common' |
| | | |
| | | export default { |
| | | data() { |
| | |
| | | sortedMessages() { |
| | | return [...this.messages].sort((a, b) => { |
| | | if (a.isRead === b.isRead) { |
| | | // 相同状态按时间倒序 |
| | | return new Date(b.createTime) - new Date(a.createTime); |
| | | // 相同状态按时间倒序 - 使用兼容iOS的日期格式 |
| | | const timeA = a.createTime ? new Date(a.createTime.replace(/-/g, '/')) : new Date(0) |
| | | const timeB = b.createTime ? new Date(b.createTime.replace(/-/g, '/')) : new Date(0) |
| | | return timeB - timeA |
| | | } |
| | | // 未读的排在前面 |
| | | return a.isRead === '0' ? -1 : 1; |
| | | }); |
| | | return a.isRead === '0' ? -1 : 1 |
| | | }) |
| | | } |
| | | }, |
| | | onLoad() { |
| | |
| | | index: 3 |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | // 格式化消息时间显示 |
| | | formatMessageTime(dateTime) { |
| | | if (!dateTime) return '' |
| | | return formatDateTime(dateTime, 'MM-DD HH:mm') |
| | | } |
| | | } |
| | | } |