|
|
|
|
@ -108,33 +108,63 @@ const queryParams = ref({
|
|
|
|
|
pageSize: 5,
|
|
|
|
|
})
|
|
|
|
|
// 获列表数据
|
|
|
|
|
// const getTableList = async (isTap = false) => {
|
|
|
|
|
// console.log(queryParams.value)
|
|
|
|
|
// try {
|
|
|
|
|
// const { data: res } = await getPurchaseList(queryParams.value)
|
|
|
|
|
// console.log('res列表数据', res)
|
|
|
|
|
// // 更新总数
|
|
|
|
|
// total.value = res.total
|
|
|
|
|
// // 处理数据
|
|
|
|
|
// if (isTap) {
|
|
|
|
|
// // 点击搜索时,直接替换数据
|
|
|
|
|
// tableList.value = res.rows || []
|
|
|
|
|
// // 重置页码
|
|
|
|
|
// queryParams.value.pageNum = 1
|
|
|
|
|
// } else {
|
|
|
|
|
// // 下拉加载时,追加数据
|
|
|
|
|
// if (res.rows && res.rows.length > 0) {
|
|
|
|
|
// tableList.value = [...tableList.value, ...res.rows]
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// } catch (error) {
|
|
|
|
|
// console.error('获取列表数据失败:', error)
|
|
|
|
|
// // 发生错误时重置数据
|
|
|
|
|
// if (isTap) {
|
|
|
|
|
// tableList.value = []
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
const getTableList = async (isTap = false) => {
|
|
|
|
|
console.log(queryParams.value)
|
|
|
|
|
try {
|
|
|
|
|
const { data: res } = await getPurchaseList(queryParams.value)
|
|
|
|
|
console.log('res列表数据', res)
|
|
|
|
|
// 更新总数
|
|
|
|
|
total.value = res.total
|
|
|
|
|
// 处理数据
|
|
|
|
|
|
|
|
|
|
if (isTap) {
|
|
|
|
|
// 点击搜索时,直接替换数据
|
|
|
|
|
tableList.value = res.rows || []
|
|
|
|
|
// 重置页码
|
|
|
|
|
queryParams.value.pageNum = 1
|
|
|
|
|
} else {
|
|
|
|
|
// 下拉加载时,追加数据
|
|
|
|
|
if (res.rows && res.rows.length > 0) {
|
|
|
|
|
if (res.rows?.length) {
|
|
|
|
|
tableList.value = [...tableList.value, ...res.rows]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return res // 返回数据,供后续使用
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error('获取列表数据失败:', error)
|
|
|
|
|
// 发生错误时重置数据
|
|
|
|
|
if (isTap) {
|
|
|
|
|
tableList.value = []
|
|
|
|
|
}
|
|
|
|
|
if (isTap) tableList.value = []
|
|
|
|
|
throw error // 抛出错误,让外层捕获
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 滚动到指定位置
|
|
|
|
|
const scrollToPosition = (position) => {
|
|
|
|
|
const savedScrollTop = uni.getStorageSync('scrollTop') || 0
|
|
|
|
|
console.log('🚀 ~ scrollToPosition ~ savedScrollTop:', savedScrollTop)
|
|
|
|
|
scrollTop.value = 0
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
scrollTop.value = savedScrollTop
|
|
|
|
|
}, 1000)
|
|
|
|
|
}
|
|
|
|
|
// 滚动触底事件
|
|
|
|
|
const onScrollTolower = debounce(() => {
|
|
|
|
|
console.log('触底事件')
|
|
|
|
|
@ -192,24 +222,36 @@ const handleItem = (item) => {
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
uni.redirectTo({
|
|
|
|
|
url: `/pages/new-purchase/accept/acceptDetails?id=${item.id}&taskId=${item.taskId}&isFinished=${isFinished}`,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const scrollTop = ref(0)
|
|
|
|
|
onShow((options) => {
|
|
|
|
|
getTableList(true)
|
|
|
|
|
const savedScrollTop = uni.getStorageSync('scrollTop') || 0
|
|
|
|
|
scrollTop.value = 0
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
scrollTop.value = savedScrollTop
|
|
|
|
|
}, 500)
|
|
|
|
|
|
|
|
|
|
// 页面加载完毕时触发
|
|
|
|
|
onShow(async (options) => {
|
|
|
|
|
const currentPage = uni.getStorageSync('currentPage')
|
|
|
|
|
if (currentPage && currentPage > 1) {
|
|
|
|
|
const promises = []
|
|
|
|
|
for (let i = 1; i <= currentPage; i++) {
|
|
|
|
|
queryParams.value.pageNum = i
|
|
|
|
|
promises.push(getTableList(true)) // 静默加载(isTap=true 替换数据)
|
|
|
|
|
}
|
|
|
|
|
Promise.all(promises).then(() => {
|
|
|
|
|
scrollToPosition()
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
getTableList(true)
|
|
|
|
|
scrollToPosition()
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// scroll容器滚动时事件
|
|
|
|
|
const onScrollChange = (e) => {
|
|
|
|
|
console.log('🚀 ~ onScrollChange ~ e:', e)
|
|
|
|
|
uni.setStorageSync('scrollTop', e.detail.scrollTop)
|
|
|
|
|
uni.setStorageSync('currentPage', queryParams.value.pageNum)
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
@ -368,7 +410,7 @@ const onScrollChange = (e) => {
|
|
|
|
|
|
|
|
|
|
.scroll-container {
|
|
|
|
|
padding: 0 2rpx;
|
|
|
|
|
|
|
|
|
|
// height: 60vh;
|
|
|
|
|
.table-list-item {
|
|
|
|
|
margin: 24rpx 0;
|
|
|
|
|
padding: 32rpx;
|
|
|
|
|
|