uni-z-paging
uni-z-paging copied to clipboard
开启了聊天记录模式use-chat-record-mode,往上拉加载新数据时,页面也会跳到最顶部,而不是从加载的第一条开始看。比方说 顶部 是 数据 19,加载更多后直接就跳到了最顶部29的数据,而不是还在20/19位置。我这还有个问题就是空视图不显示。
编译平台 HbuilderX 最新版
VUE版本 vue3
运行平台 微信小程序、h5
z-paging版本 2.6.9
问题描述 <z-paging ref="paging" v-model="items" @query="queryList" use-chat-record-mode>
<template #top>
<view class="headter">我是头</view>
</template>
<view class="item" v-for="(item, index) in items" :key="index">
{{ item }}
</view>
<template #bottom>
<input :adjust-position="dont" class="input" confirm-type="send" type="text" placeholder="请输入内容" @confirm="doSend" />
</template>
</z-paging>
return {
title: 'Hello',
name: '我是',
items: [],
dont: keyyy,
bottom: 0,
isFocused: false,
viewHeight: 0
};
},
methods: {
scrollToBootom() {
this.$refs.paging.scrollToBottom();
},
queryList(pageNo, pageSize) {
//组件加载时会自动触发此方法,因此默认页面加载时会自动触发,无需手动调用
//这里的pageNo和pageSize会自动计算好,直接传给服务器即可
//模拟请求服务器获取分页数据,请替换成自己的网络请求
const params = {
pageNo: pageNo,
pageSize: pageSize
};
this.getdata().then((res) => {
this.$refs.paging.setLocalPaging(res.totalList, res.noMore);
});
},
getdata() {
const ppp = new Promise((resolve, reject) => {
let arr = [];
for (var i = 0; i < 50; i++) {
arr.push(i);
}
setTimeout(() => {
resolve({
totalList: arr,
noMore: true
});
}, 300);
});
return ppp;
},
doSend() {
uni.showLoading({
title: '发送中...'
});
const valut = this.items.length + 1;
console.log('va', valut);
setTimeout(() => {
uni.hideLoading();
this.$refs.paging.addChatRecordData(valut);
this.isFocused = false;
}, 500);
}
}
};
.text-area { display: flex; justify-content: center; }
.title { font-size: 36rpx; color: #8f8f94; } .input { padding: 20rpx; line-height: 1; margin: 0 20rpx; margin-bottom: 60rpx; border-radius: 20rpx; border: 1px solid #8f8f94; } `