使用z-paging插件实现,文档地址z-paging文档
<z-paging ref="paging" v-model="dataList" default-page-size="5" @query="queryList">
<view style="display: flex;margin-top: 10px">
<u-button type="primary" size="medium" style="width: 49%;" :disabled="showExamine"
@click="goToAdd">新增</u-button>
<u-button type="success" size="medium" style="width: 49%;" @click="showSearch = true">查询</u-button>
</view>
<uni-card v-for="(item,index) in dataList" :key="index">
<view class="title">
<text class="uni-body">申请人:</text>
<text>{{item.proposer}}</text>
</view>
<view class="title">
<text class="uni-body">用餐金额:</text>
<text>{{item.meal_amount}}</text>
</view>
</uni-card>
</z-paging>
queryList(pageNum, pageSize) {
if (this.roles.includes('/sys')||this.roles.includes('/nq')) {
delete this.form.state
} else{
delete this.form.diningStateList
}
//这里的pageNo和pageSize会自动计算好,直接传给服务器即可
//这里的请求只是演示,请替换成自己的项目的网络请求,并在网络请求回调中通过this.$refs.paging.complete(请求回来的数组)将请求结果传给z-paging
getSelectCaseDining({
pageNum,
pageSize
}, {
...this.form
}).then(res => {
//请勿在网络请求回调中给dataList赋值!!只需要调用complete就可以了
this.$refs.paging.complete(res.data.rows);
// console.log(res.data.rows)
}).catch(res => {
//如果请求失败写this.$refs.paging.complete(false),会自动展示错误页面
//注意,每次都需要在catch中写这句话很麻烦,z-paging提供了方案可以全局统一处理
//在底层的网络请求抛出异常时,写uni.$emit('z-paging-error-emit');即可
this.$refs.paging.complete(false);
})
},
需要下载组件,在HBuilder插件市场下载,或者看上面提供的文档安装【z-paging下拉刷新、上拉加载】高性能,全平台兼容。支持虚拟列表,分页全自动处理 - DCloud 插件市场