From 419ad623db22db5fa34e88ab771d2161fe12e920 Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期二, 01 八月 2023 16:08:25 +0800 Subject: [PATCH] 提交上拉加载 --- pages/tabBar/information/information.vue | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 51 insertions(+), 6 deletions(-) diff --git a/pages/tabBar/information/information.vue b/pages/tabBar/information/information.vue index 89f5e68..b8b43a7 100644 --- a/pages/tabBar/information/information.vue +++ b/pages/tabBar/information/information.vue @@ -9,6 +9,9 @@ <view class="barText">信息发布</view> </view> </view> + <div v-if="loading" style='display: flex;justify-content: center;position: absolute;width:100%;top: 40%;left: 0'> + <u-loading-icon></u-loading-icon> + </div> <!-- 页面内容 --> <view class="contentList"> <view class="examineList"> @@ -18,7 +21,9 @@ </u-checkbox-group> </view> - <view class="listContent" v-if="informationList.length > 0"> +<!-- <view class="listContent" v-if="informationList.length > 0">--> + <scroll-view :scroll-top="scrollTop" scroll-y="true" class="listContent" @scrolltoupper="upper" v-if="informationList.length > 0" + @scrolltolower="lower" @scroll="scroll" lower-threshold="50"> <view v-for="(item, index) in informationList" :key="index" class="itemContent"> <view class="content" @click="toDetail(item)"> <view class="textContent"> @@ -37,9 +42,9 @@ </u-button> </view> </view> - </view> - </view> + </scroll-view> +<!-- </view>--> <view v-else> <u-empty margin-top="40%" text="数据为空" mode="data"></u-empty> </view> @@ -60,11 +65,14 @@ return { data: { pageIndex: 1, - pageSize: 10000000, + pageSize: 10, searchParams: { reviewStatus: null//2:已审核,null:全部 } }, + total: 0, + scrollTop: 0, + loading: false, checked: false, isReadOnly: false, statusBarHeight: 0, @@ -78,14 +86,22 @@ uni.hideTabBar(); }, onShow() { + this.data.pageIndex = 1 this.getInformationList(); }, methods: { getInformationList() { + this.loading = true this.data.searchParams.reviewStatus = this.isReadOnly ? 2 : null; getInfo(this.data).then(res => { if (res.code == 100){ - this.informationList = res.data ? res.data : []; + let list = res.data?res.data: []; + if (res.pageIndex != 1) { + this.informationList = this.informationList.concat(list) + } else { + this.informationList = list; + } + this.total = res.total if(this.informationList.length > 0) { this.informationList.forEach((item, index) => { this.informationList[index].colorContent = item.warningLevel == 1 ? '红色预警': item.warningLevel == 2 ? '橙色预警': item.warningLevel == 3 ? '黄色预警':'蓝色预警'; @@ -94,11 +110,15 @@ this.informationList[index].warningLevel = item.warningLevel; }) } - } + }else{ + uni.$u.toast(res.msg) + } + this.loading = false }) }, chooseRead(e) { this.isReadOnly = e; + this.data.pageIndex = 1 this.getInformationList(); }, toDetail(item) { @@ -115,6 +135,25 @@ this.getInformationList(); }, 1000); }, + + + upper: function(e) { + // console.log(e) + }, + lower: function(e) { + if (this.data.pageIndex * this.data.pageSize >= this.total){ + uni.$u.toast('已加载全部数据') + return + } + //并且让页码+1,调用获取数据的方法获取第二页数据 + this.data.pageIndex++ + //此处调用自己获取数据列表的方法 + this.getInformationList() + }, + scroll: function(e) { + // console.log(e) + }, + clickSwitch(e) { this.getInformationList(); } @@ -162,6 +201,7 @@ flex-direction: column; padding-bottom: 65px; } + .buttonGroup{ margin: 18px 12px; display: flex; @@ -216,6 +256,7 @@ } .listHead{ padding: 12px; + height: 26px; display: flex; align-items: center; justify-content: space-between; @@ -223,11 +264,15 @@ .listContent{ display: flex; flex-direction: column; + width: calc(100% - 24px); margin: 0 12px; background: #fff; border-radius: 5px; box-shadow: 0 3px 12px rgba(0,0,0,0.05); + height: calc(100vh - 162px); } + + .itemContent{ font-size: 16px; color: #333; -- Gitblit v1.9.2