fix: 修复网络超时loading提示不隐藏的问题

fix: 修复页面高度适配问题
This commit is contained in:
wangzhuo
2025-09-12 16:57:00 +08:00
parent 19fa062229
commit d36cadd06f
7 changed files with 155 additions and 153 deletions

View File

@@ -24,7 +24,7 @@
</view> </view>
<!-- 分页部分 top="68rpx" --> <!-- 分页部分 top="68rpx" -->
<mescroll-uni ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" <mescroll-uni ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback"
:up="upOption" :down="downOption" :fixed="false" textColor="#ffffff" bgColor="#ffffff" :up="upOption" :down="downOption" :fixed="false" textColor="#ffffff" bgColor="#ffffff"
class="scroll-h" :class="{'loading-scroll':cssFlag}" class="scroll-h" :class="{'loading-scroll':cssFlag}"
> >
@@ -149,44 +149,31 @@ const mescrollInit = (mescroll) => {
// 下拉刷新 // 下拉刷新
const downCallback = async (mescroll) => { const downCallback = async (mescroll) => {
try { uni.showLoading();
uni.showLoading(); cssFlag.value = true;
cssFlag.value = true; setTimeout(async () => {
setTimeout(async () => { // 重置页码为第一页
// 重置页码为第一页 const res = await getList(1, mescroll.size || upOption.page.size);
const res = await getList(1, mescroll.size || upOption.page.size); cssFlag.value = false;
list.value = res.list; list.value = res.list;
cssFlag.value = false; // 正确传递 total 参数
// 正确传递 total 参数 mescroll.endSuccess(res.list.length, res.total >= mescroll.size);
mescroll.endSuccess(res.list.length, res.total >= mescroll.size); }, 500);
uni.hideLoading();
}, 500);
} catch (error) {
console.log(error)
mescroll.endErr();
}
} }
// 上拉加载更多 // 上拉加载更多
const upCallback = async (mescroll) => { const upCallback = async (mescroll) => {
try { uni.showLoading();
uni.showLoading(); setTimeout(async () => {
setTimeout(async () => { // 使用 mescroll 提供的页码和大小参数
// 使用 mescroll 提供的页码和大小参数 const res = await getList(mescroll.num, mescroll.size);
const res = await getList(mescroll.num, mescroll.size); if (mescroll.num === 1) {
if (mescroll.num === 1) { list.value = res.list;
list.value = res.list; } else {
} else { list.value.push(...res.list);
list.value.push(...res.list); }
} // 正确判断是否还有更多数据
// 正确判断是否还有更多数据 mescroll.endSuccess(res.list.length, res.total >= mescroll.size);
mescroll.endSuccess(res.list.length, res.total >= mescroll.size); }, 500);
uni.hideLoading();
}, 500);
} catch (error) {
console.log(error)
mescroll.endErr();
}
} }
// 获取数据列表 // 获取数据列表
@@ -197,12 +184,17 @@ const getList = (pageIndex, pageSize) => {
pageSize, pageSize,
searchContent: searchValue.value searchContent: searchValue.value
} }
try {
let res = await SearchForAllPerson(param); let res = await SearchForAllPerson(param);
resolve({ resolve({
list: res.rows, list: res.rows,
total: res.total total: res.total
}); });
} catch (e) {
console.log(e, '数据获取失败');
} finally {
uni.hideLoading();
}
}); });
} }
@@ -306,16 +298,14 @@ let handleCopyInfo = (item) => {
<style lang="scss" scoped> <style lang="scss" scoped>
.all-body { .all-body {
/* #ifdef APP-PLUS */ /* #ifdef APP-PLUS */
top: 150rpx; top: 160rpx;
height: calc(100vh - 75px); height: calc(100vh - 160rpx);
/* #endif */ /* #endif */
/* #ifndef APP-PLUS */ /* #ifndef APP-PLUS */
top: 120rpx; top: 116rpx;
height: calc(100vh); height: calc(100vh - 116rpx);
/* #endif */ /* #endif */
} }
.search .btn-search { .search .btn-search {
border: none; border: none;
background: none; background: none;
@@ -331,15 +321,6 @@ let handleCopyInfo = (item) => {
display: none; display: none;
} }
.scroll-h {
/* #ifdef APP-PLUS */
height: calc(100vh - 120px);
/* #endif */
/* #ifndef APP-PLUS */
height: calc(100vh - 110px);
/* #endif */
}
.white-bg { .white-bg {
padding-bottom: 10rpx; padding-bottom: 10rpx;
@@ -348,10 +329,4 @@ let handleCopyInfo = (item) => {
} }
} }
.white-bg:hover {
//background-color: #f1f1f1;
background-color: #f1f1f1; /* Chrome, Safari, Opera */
box-shadow: 0px 0px 5rpx white;
//filter: rgba(237, 242, 250, 0.5);
}
</style> </style>

View File

@@ -134,7 +134,7 @@ const upOption = ref({
noMoreSize: 5, noMoreSize: 5,
empty: { empty: {
tip: '~ 空空如也 ~', tip: '~ 空空如也 ~',
icon: "../../static/images/mescroll-empty.png" icon: "../../../../static/images/mescroll-empty.png"
}, },
textLoading: '加载中...', textLoading: '加载中...',
textNoMore: '已经到底了' textNoMore: '已经到底了'
@@ -155,27 +155,27 @@ const mescrollInit = (mescroll) => {
// 下拉刷新 // 下拉刷新
const downCallback = async (mescroll) => { const downCallback = async (mescroll) => {
try { cssFlag.value = true;
cssFlag.value = true; uni.showLoading();
uni.showLoading(); setTimeout(async () => {
setTimeout(async () => { try {
// 重置页码为第一页 // 重置页码为第一页
const res = await getList(1, mescroll.size || upOption.page.size); const res = await getList(1, mescroll.size || upOption.page.size);
cssFlag.value = false;
list.value = res.list; list.value = res.list;
// 正确传递 total 参数 // 正确传递 total 参数
mescroll.endSuccess(res.list.length, res.total > (mescroll.size || upOption.page.size)); mescroll.endSuccess(res.list.length, res.total > (mescroll.size || upOption.page.size));
uni.hideLoading(); } catch (error) {
}, 500); mescroll.endErr();
} catch (error) { } finally {
console.log(error) cssFlag.value = false;
mescroll.endErr(); }
} }, 500);
} }
// 上拉加载更多 // 上拉加载更多
const upCallback = async (mescroll) => { const upCallback = async (mescroll) => {
try { setTimeout(async () => {
setTimeout(async () => { try {
// 使用 mescroll 提供的页码和大小参数 // 使用 mescroll 提供的页码和大小参数
const res = await getList(mescroll.num, mescroll.size); const res = await getList(mescroll.num, mescroll.size);
if (mescroll.num === 1) { if (mescroll.num === 1) {
@@ -186,11 +186,10 @@ const upCallback = async (mescroll) => {
// 正确判断是否还有更多数据 // 正确判断是否还有更多数据
mescroll.endBySize(res.list.length, res.total) mescroll.endBySize(res.list.length, res.total)
// mescroll.endSuccess(res.list.length, res.total > mescroll.num * mescroll.size); // mescroll.endSuccess(res.list.length, res.total > mescroll.num * mescroll.size);
}, 500); } catch (error) {
} catch (error) { mescroll.endErr();
console.log(error) }
mescroll.endErr(); }, 500);
}
} }
// 获取数据列表 // 获取数据列表
@@ -201,12 +200,18 @@ const getList = (pageIndex, pageSize) => {
pageSize, pageSize,
searchContent: searchValue.value searchContent: searchValue.value
} }
try {
let res = await SearchForAllCustomersSalesperson(param);
resolve({
list: res.rows,
total: res.total
});
} catch (e) {
console.log(e, "获取所有客户人员所属失败");
} finally {
uni.hideLoading();
}
let res = await SearchForAllCustomersSalesperson(param);
resolve({
list: res.rows,
total: res.total
});
}); });
} }
@@ -224,7 +229,7 @@ let handleDetail = (item) => {
res.eventChannel.emit('editCusData', {param: item, isAdd: false}) res.eventChannel.emit('editCusData', {param: item, isAdd: false})
} }
}) })
}else{ } else {
uni.showToast({ uni.showToast({
title: '已完成审核,不可修改', title: '已完成审核,不可修改',
icon: 'none' icon: 'none'
@@ -278,16 +283,15 @@ let handleDelete = async (item) => {
<style lang="scss" scoped> <style lang="scss" scoped>
.all-body { .all-body {
/* #ifdef APP-PLUS */ /* #ifdef APP-PLUS */
top: 150rpx; top: 160rpx;
height: calc(100vh - 75px); height: calc(100vh - 160rpx);
/* #endif */ /* #endif */
/* #ifndef APP-PLUS */ /* #ifndef APP-PLUS */
top: 120rpx; top: 116rpx;
height: calc(100vh); height: calc(100vh - 116rpx);
/* #endif */ /* #endif */
} }
.search .btn-search { .search .btn-search {
border: none; border: none;
background: none; background: none;

View File

@@ -81,8 +81,8 @@ const upOption = ref({
page: { num: 0, size: 10 }, page: { num: 0, size: 10 },
noMoreSize: 5, noMoreSize: 5,
empty: { empty: {
tip: '~ 空空如也 ~', tip: '~ 空空如也 ~',
icon: "../../static/images/mescroll-empty.png" icon: "../../../../static/images/mescroll-empty.png"
}, },
textLoading: '加载中...', textLoading: '加载中...',
textNoMore: '已经到底了' textNoMore: '已经到底了'
@@ -195,15 +195,14 @@ const radioChange = (e) => {
<style lang="scss" scoped> <style lang="scss" scoped>
.all-body { .all-body {
/* #ifdef APP-PLUS */ /* #ifdef APP-PLUS */
top: 150rpx; top: 160rpx;
height: calc(100vh - 75px); height: calc(100vh - 160rpx);
/* #endif */ /* #endif */
/* #ifndef APP-PLUS */ /* #ifndef APP-PLUS */
top: 120rpx; top: 116rpx;
height: calc(100vh); height: calc(100vh - 116rpx);
/* #endif */ /* #endif */
} }
.search .btn-search { .search .btn-search {
border: none; border: none;
background: none; background: none;

View File

@@ -31,9 +31,11 @@
> >
<view class="white-bg margin-bottom20" v-for="(item, index) in list" :key="index"> <view class="white-bg margin-bottom20" v-for="(item, index) in list" :key="index">
<view class="report-list" @click.stop="handleDetail(item)"> <view class="report-list" @click.stop="handleDetail(item)">
<view class="r-list title" > <view class="r-list title">
{{ item.cusName }} {{ item.cusName }}
<view class="r-right" :class="item.auditStatus ? '' : 'btn-pink' ">{{item.auditStatus?'':'待您审批'}}</view> <view class="r-right" :class="item.auditStatus ? '' : 'btn-pink' ">
{{ item.auditStatus ? '' : '待您审批' }}
</view>
</view> </view>
<view class="r-list"> <view class="r-list">
<view class="r-left">客户人员名称</view> <view class="r-left">客户人员名称</view>
@@ -113,7 +115,7 @@ let handleSearch = () => {
watch(searchValue, (newValue, oldValue) => { watch(searchValue, (newValue, oldValue) => {
handleSearch() handleSearch()
}) })
let clearSearchValue = ()=>{ let clearSearchValue = () => {
searchValue.value = ''; searchValue.value = '';
} }
// 查询列表 // 查询列表
@@ -122,7 +124,10 @@ let list = ref([]);
const upOption = ref({ const upOption = ref({
page: {num: 0, size: 10}, page: {num: 0, size: 10},
noMoreSize: 5, noMoreSize: 5,
empty: {tip: '~ 空空如也 ~'}, empty: {
tip: '~ 空空如也 ~',
icon: "../../../../../static/images/mescroll-empty.png"
},
textLoading: '加载中...', textLoading: '加载中...',
textNoMore: '已经到底了' textNoMore: '已经到底了'
}); });
@@ -142,28 +147,28 @@ const mescrollInit = (mescroll) => {
// 下拉刷新 // 下拉刷新
const downCallback = async (mescroll) => { const downCallback = async (mescroll) => {
try { cssFlag.value = true;
cssFlag.value = true; uni.showLoading();
uni.showLoading(); setTimeout(async () => {
setTimeout(async () => { try {
// 重置页码为第一页 // 重置页码为第一页
const res = await getList(1, mescroll.size || upOption.page.size); const res = await getList(1, mescroll.size || upOption.page.size);
list.value = res.list; list.value = res.list;
cssFlag.value = false;
// 正确传递 total 参数 // 正确传递 total 参数
mescroll.endSuccess(res.list.length, res.total > (mescroll.size || upOption.page.size)); mescroll.endSuccess(res.list.length, res.total > (mescroll.size || upOption.page.size));
uni.hideLoading(); } catch (error) {
}, 500); console.log(error)
} catch (error) { mescroll.endErr();
console.log(error) } finally {
mescroll.endErr(); cssFlag.value = false;
} }
}, 500);
} }
// 上拉加载更多 // 上拉加载更多
const upCallback = async (mescroll) => { const upCallback = async (mescroll) => {
try { setTimeout(async () => {
setTimeout(async () => { try {
// 使用 mescroll 提供的页码和大小参数 // 使用 mescroll 提供的页码和大小参数
const res = await getList(mescroll.num, mescroll.size); const res = await getList(mescroll.num, mescroll.size);
if (mescroll.num === 1) { if (mescroll.num === 1) {
@@ -173,11 +178,11 @@ const upCallback = async (mescroll) => {
} }
// 正确判断是否还有更多数据 // 正确判断是否还有更多数据
mescroll.endSuccess(res.list.length, res.total > mescroll.num * mescroll.size); mescroll.endSuccess(res.list.length, res.total > mescroll.num * mescroll.size);
}, 500); } catch (error) {
} catch (error) { console.log(error)
console.log(error) mescroll.endErr();
mescroll.endErr(); }
} }, 500);
} }
// 获取数据列表 // 获取数据列表
@@ -188,12 +193,16 @@ const getList = (pageIndex, pageSize) => {
pageSize, pageSize,
searchContent: searchValue.value searchContent: searchValue.value
} }
try {
let res = await personnelAwaitingReviewForChange(param); let res = await personnelAwaitingReviewForChange(param);
resolve({ resolve({
list: res.rows, list: res.rows,
total: res.total total: res.total
}); });
} catch (e) {
} finally {
uni.hideLoading();
}
}); });
} }
@@ -203,11 +212,11 @@ let handleDetail = (item) => {
uni.navigateTo({ uni.navigateTo({
url: "/pages/business/CRM/mainOwner/audit/confirmForm", url: "/pages/business/CRM/mainOwner/audit/confirmForm",
events: { events: {
refreshOwnerChangeList(){ refreshOwnerChangeList() {
handleSearch(); handleSearch();
} }
}, },
success(res){ success(res) {
res.eventChannel.emit('auditCusOwner', {data: {userId}, editable: false}) res.eventChannel.emit('auditCusOwner', {data: {userId}, editable: false})
} }
}) })
@@ -218,12 +227,12 @@ let handleDetail = (item) => {
<style scoped> <style scoped>
.all-body { .all-body {
/* #ifdef APP-PLUS */ /* #ifdef APP-PLUS */
top: 150rpx; top: 160rpx;
height: calc(100vh - 75px); height: calc(100vh - 160rpx);
/* #endif */ /* #endif */
/* #ifndef APP-PLUS */ /* #ifndef APP-PLUS */
top: 120rpx; top: 116rpx;
height: calc(100vh); height: calc(100vh - 116rpx);
/* #endif */ /* #endif */
} }
@@ -250,11 +259,6 @@ let handleDetail = (item) => {
width: 80%; width: 80%;
} }
.search .custom-search.uni-searchbar {
padding-right: 0 !important;
}
.scroll-h { .scroll-h {
/* #ifdef APP-PLUS */ /* #ifdef APP-PLUS */
height: calc(100vh - 120px); height: calc(100vh - 120px);
@@ -264,14 +268,20 @@ let handleDetail = (item) => {
/* #endif */ /* #endif */
} }
.search .custom-search.uni-searchbar {
padding-right: 0 !important;
}
.white-bg { .white-bg {
padding-bottom: 10rpx; padding-bottom: 10rpx;
.title{
.title {
align-items: flex-start; align-items: flex-start;
} }
} }
.btn-pink{ .btn-pink {
white-space: nowrap; white-space: nowrap;
} }
</style> </style>

View File

@@ -156,8 +156,8 @@ const upOption = ref({
page: { num: 0, size: 10 }, page: { num: 0, size: 10 },
noMoreSize: 5, noMoreSize: 5,
empty: { empty: {
tip: '~ 空空如也 ~', tip: '~ 空空如也 ~',
icon: "../../static/images/mescroll-empty.png" icon: "../../../../../static/images/mescroll-empty.png"
}, },
textLoading: '加载中...', textLoading: '加载中...',
textNoMore: '已经到底了' textNoMore: '已经到底了'
@@ -184,12 +184,12 @@ function showDetail(item) {
.all-body { .all-body {
/* #ifdef APP-PLUS */ /* #ifdef APP-PLUS */
top: 150rpx; top: 160rpx;
height: calc(100vh - 75px); height: calc(100vh - 160rpx);
/* #endif */ /* #endif */
/* #ifndef APP-PLUS */ /* #ifndef APP-PLUS */
top: 120rpx; top: 116rpx;
height: calc(100vh); height: calc(100vh - 116rpx);
/* #endif */ /* #endif */
} }

View File

@@ -138,6 +138,18 @@ function getCrmCusUserNewChangeOwnerList() {
/* min-height: 100vh; */ /* min-height: 100vh; */
} }
.all-body {
/* #ifdef APP-PLUS */
top: 160rpx;
height: calc(100vh - 160rpx);
/* #endif */
/* #ifndef APP-PLUS */
top: 116rpx;
height: calc(100vh - 116rpx);
/* #endif */
overflow-y: auto;
}
.white-bg { .white-bg {
padding-bottom: 10rpx; padding-bottom: 10rpx;
} }

View File

@@ -56,7 +56,9 @@
</view> </view>
<view class='bottom-spliter bg-gray'></view> <view class='bottom-spliter bg-gray'></view>
</block> </block>
<view v-else style="text-align: center; margin-top: 50%; color: white">
暂无数据
</view>
<!-- 底部加高度来避免tabbar遮挡 --> <!-- 底部加高度来避免tabbar遮挡 -->
<!-- <view class="bottom-height bg-gray"></view> --> <!-- <view class="bottom-height bg-gray"></view> -->
</view> </view>
@@ -282,7 +284,7 @@ function handleEdit(index) {
} }
.con-bg { .con-bg {
height: 445rpx; /*height: 445rpx;*/
} }
.nav-list { .nav-list {