Compare commits

..

No commits in common. "e5ea9577acc935a7eaad92f1c2289f1fbe5a52ba" and "57f70d1010f51e229828dc11e9e6c9628c8cd5c0" have entirely different histories.

1 changed files with 6 additions and 74 deletions

View File

@ -6,23 +6,19 @@
:scroll-y="true" :scroll-y="true"
class="message-list" class="message-list"
:refresher-enabled="true" :refresher-enabled="true"
:scroll-anchoring="true"
refresher-background="#f5f5f5" refresher-background="#f5f5f5"
:refresher-triggered="refreshing" :refresher-triggered="refreshing"
:scroll-into-view="scrollId"
:scroll-with-animation="false"
@refresherrefresh="onRefresh" @refresherrefresh="onRefresh"
> >
<view <view
v-for="(item, index) in messageList" v-for="(item, index) in messageList"
:key="index" :key="index"
:id="`item${item.id}`"
@click="gotoDevice(item)" @click="gotoDevice(item)"
class="message-item" class="message-item"
> >
<!-- 时间标签如果是第一条或者与上一条时间不同才显示 --> <!-- 时间标签 -->
<view class="time-label" v-if="index === 0 || !isSameMinute(item.time, messageList[index - 1].time)"> <view class="time-label">{{ formatTime(item.time) }}</view>
{{ formatTime(item.time) }}
</view>
<!-- &lt;!&ndash; 点赞消息卡片 &ndash;&gt; <!-- &lt;!&ndash; 点赞消息卡片 &ndash;&gt;
<view class="like-card" v-if="item.type === 'like'"> <view class="like-card" v-if="item.type === 'like'">
@ -37,7 +33,7 @@
<view class="champion-card"> <view class="champion-card">
<view class="sender-info"> <view class="sender-info">
<image class="avatar" :src="item.avatar" mode="aspectFill"></image> <image class="avatar" :src="item.avatar" mode="aspectFill"></image>
<text class="sender-text">{{ "item "+index+" " +item.id }}</text> <text class="sender-text">{{ item.showTips }}</text>
</view> </view>
</view> </view>
</view> </view>
@ -51,15 +47,12 @@
</template> </template>
<script> <script>
import Uuid from "@/tuniao-ui/libs/function/uuid";
export default { export default {
data() { data() {
return { return {
refreshing: false, // refreshing: false, //
messageList: [ messageList: [
{ {
id: 'msg1',
time: '2026-03-26 22:19:00', time: '2026-03-26 22:19:00',
type: 'champion', type: 'champion',
avatar: 'https://picsum.photos/id/237/60/60', avatar: 'https://picsum.photos/id/237/60/60',
@ -67,94 +60,40 @@ export default {
showTips: '03月26日排行榜冠军恭喜你' showTips: '03月26日排行榜冠军恭喜你'
}, },
{ {
id: 'msg2',
time: '2026-03-25 22:19:00', time: '2026-03-25 22:19:00',
showTips: '03月25日排行榜冠军恭喜你' showTips: '03月25日排行榜冠军恭喜你'
}, },
{ {
id: 'msg3',
time: '2026-03-16 22:19:00', time: '2026-03-16 22:19:00',
showTips: '03月25日排行榜冠军恭喜你' showTips: '03月25日排行榜冠军恭喜你'
}, },
{ {
id: 'msg4',
time: '2026-03-26 05:36:00', time: '2026-03-26 05:36:00',
type: 'like', type: 'like',
avatar: 'https://picsum.photos/id/1005/60/60', avatar: 'https://picsum.photos/id/1005/60/60',
sender: 'JFather' sender: 'JFather'
}, },
{ {
id: 'msg5',
time: '2026-03-24 22:19:00', time: '2026-03-24 22:19:00',
type: 'step', type: 'step',
rank: 160, rank: 160,
steps: 1838 steps: 1838
}, },
{ {
id: 'msg6',
time: '2026-03-27 05:36:00', time: '2026-03-27 05:36:00',
type: 'champion', type: 'champion',
avatar: 'https://picsum.photos/id/1012/60/60', avatar: 'https://picsum.photos/id/1012/60/60',
sender: 'T薛策恒', sender: 'T薛策恒',
date: '03月24' date: '03月24'
},
{
id: 'msg7',
time: '2026-03-28 05:36:00',
type: 'like',
avatar: 'https://picsum.photos/id/1013/60/60',
sender: 'User7'
},
{
id: 'msg8',
time: '2026-03-29 05:36:00',
type: 'champion',
avatar: 'https://picsum.photos/id/1014/60/60',
sender: 'User8'
},
{
id: 'msg9',
time: '2026-03-30 05:36:00',
type: 'step',
rank: 200,
steps: 2000
},
{
id: 'msg10',
time: '2026-03-31 05:36:00',
type: 'like',
avatar: 'https://picsum.photos/id/1015/60/60',
sender: 'User10'
},
{
id: 'msg11',
time: '2026-04-01 05:36:00',
type: 'champion',
avatar: 'https://picsum.photos/id/1016/60/60',
sender: 'User11'
} }
], ],
isHaveOldData: true, isHaveOldData: true
scrollId: null
} }
}, },
onShow() { onShow() {
this.getSortDate(); this.getSortDate();
}, },
methods: { methods: {
goTo(id) {
this.scrollId = id;
},
//
isSameMinute(time1, time2) {
const date1 = new Date(time1);
const date2 = new Date(time2);
return date1.getFullYear() === date2.getFullYear() &&
date1.getMonth() === date2.getMonth() &&
date1.getDate() === date2.getDate() &&
date1.getHours() === date2.getHours() &&
date1.getMinutes() === date2.getMinutes();
},
formatTime(timeStr) { formatTime(timeStr) {
const now = new Date(); const now = new Date();
const target = new Date(timeStr); const target = new Date(timeStr);
@ -207,7 +146,6 @@ export default {
setTimeout(() => { setTimeout(() => {
// 10 // 10
const newData = Array.from({ length: 10 }, (_, i) => ({ const newData = Array.from({ length: 10 }, (_, i) => ({
id: Uuid(16),
time: '2026-03-27 12:00:00', time: '2026-03-27 12:00:00',
type: 'champion', type: 'champion',
avatar: 'https://picsum.photos/id/999/60/60', avatar: 'https://picsum.photos/id/999/60/60',
@ -216,12 +154,6 @@ export default {
})); }));
// //
this.messageList = [...newData, ...this.messageList]; this.messageList = [...newData, ...this.messageList];
// scrollId
this.$nextTick(() => {
this.scrollId = "item"+this.messageList[10].id;
});
// //
this.refreshing = false; this.refreshing = false;
}, 800); }, 800);