通用分类分页加载器的完善3.0
This commit is contained in:
parent
8df43ff8d4
commit
44d3469bc1
|
|
@ -58,33 +58,17 @@ export function usePagination(options = {}) {
|
|||
|
||||
try {
|
||||
const response = await fetchData(queryParams.value)
|
||||
|
||||
|
||||
if (!response || response.code !== 200) {
|
||||
throw new Error(response?.message || '获取数据失败')
|
||||
}
|
||||
|
||||
const { rows = [], total = 0 } = response
|
||||
|
||||
// 数据转换:将API返回的用户数据转换为页面需要的格式
|
||||
const transformedData = rows.map(user => ({
|
||||
...user,
|
||||
isExpanded: false, // 默认收起
|
||||
// 将orders转换为devices格式
|
||||
devices: user.orders
|
||||
? user.orders.map(order => ({
|
||||
type: order.typeName || '未知设备',
|
||||
amount: order.amount || 0,
|
||||
rentDate: formatDate(order.leaseTime),
|
||||
period: order.suitName || '未知周期',
|
||||
expiryDate: formatDate(order.expirationTime),
|
||||
}))
|
||||
: [],
|
||||
}))
|
||||
|
||||
if (reset) {
|
||||
list.value = transformedData
|
||||
list.value = rows
|
||||
} else {
|
||||
list.value.push(...transformedData)
|
||||
list.value.push(...rows)
|
||||
}
|
||||
|
||||
// 更新分页信息
|
||||
|
|
@ -98,10 +82,12 @@ export function usePagination(options = {}) {
|
|||
// 检查是否还有更多数据
|
||||
if (mode === 'loadMore') {
|
||||
noMore.value = queryParams.value.pageNum * pageSize >= total
|
||||
console.log(`noMore状态: ${noMore.value}, 当前页: ${queryParams.value.pageNum}, 每页: ${pageSize}, 总数: ${total}`)
|
||||
console.log(
|
||||
`noMore状态: ${noMore.value}, 当前页: ${queryParams.value.pageNum}, 每页: ${pageSize}, 总数: ${total}`
|
||||
)
|
||||
}
|
||||
|
||||
console.log(`获取数据成功: 第${queryParams.value.pageNum}页,共${transformedData.length}条`)
|
||||
console.log(`获取数据成功: 第${queryParams.value.pageNum}页,共${rows.length}条`)
|
||||
} catch (err) {
|
||||
console.error('获取数据失败:', err)
|
||||
error.value = err
|
||||
|
|
@ -182,7 +168,7 @@ export function usePagination(options = {}) {
|
|||
* @param {string} dateString - 日期字符串
|
||||
* @returns {string} 格式化后的日期
|
||||
*/
|
||||
const formatDate = (dateString) => {
|
||||
const formatDate = dateString => {
|
||||
if (!dateString) return '未知'
|
||||
const date = new Date(dateString)
|
||||
return `${date.getFullYear()}.${String(date.getMonth() + 1).padStart(2, '0')}.${String(date.getDate()).padStart(2, '0')}`
|
||||
|
|
|
|||
|
|
@ -105,7 +105,6 @@
|
|||
<script setup>
|
||||
import { ref, reactive, onMounted } from 'vue'
|
||||
import { onReachBottom } from '@dcloudio/uni-app'
|
||||
import { commonEnum } from '@/enum/commonEnum.js'
|
||||
import { getUserList } from '@/api/user/user.js'
|
||||
import UniIcons from '../../uni_modules/uni-icons/components/uni-icons/uni-icons.vue'
|
||||
import { usePagination } from '@/composables/usePagination.js'
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user