代码格式化
This commit is contained in:
parent
f4e5481108
commit
04e2fd29bc
|
|
@ -10,130 +10,124 @@ import { ref, computed } from 'vue'
|
||||||
* @returns {Object} 分页相关的状态和方法
|
* @returns {Object} 分页相关的状态和方法
|
||||||
*/
|
*/
|
||||||
export function usePagination(options = {}) {
|
export function usePagination(options = {}) {
|
||||||
const {
|
const { fetchData, defaultParams = {}, mode = 'loadMore', pageSize = 10 } = options
|
||||||
fetchData,
|
|
||||||
defaultParams = {},
|
|
||||||
mode = 'loadMore',
|
|
||||||
pageSize = 10
|
|
||||||
} = options
|
|
||||||
|
|
||||||
// 基础状态
|
// 基础状态
|
||||||
const list = ref([])
|
const list = ref([])
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
const error = ref(null)
|
const error = ref(null)
|
||||||
|
|
||||||
// 分页参数
|
// 分页参数
|
||||||
const queryParams = ref({
|
const queryParams = ref({
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize,
|
pageSize,
|
||||||
...defaultParams
|
...defaultParams,
|
||||||
})
|
})
|
||||||
|
|
||||||
// 分页信息
|
// 分页信息
|
||||||
const pagination = ref({
|
const pagination = ref({
|
||||||
total: 0,
|
total: 0,
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
pageSize,
|
pageSize,
|
||||||
totalPages: 0
|
totalPages: 0,
|
||||||
})
|
})
|
||||||
|
|
||||||
// 上拉加载相关
|
// 上拉加载相关
|
||||||
const noMore = ref(false)
|
const noMore = ref(false)
|
||||||
|
|
||||||
// 计算属性
|
// 计算属性
|
||||||
const hasData = computed(() => list.value.length > 0)
|
const hasData = computed(() => list.value.length > 0)
|
||||||
const isEmpty = computed(() => !loading.value && list.value.length === 0)
|
const isEmpty = computed(() => !loading.value && list.value.length === 0)
|
||||||
const canLoadMore = computed(() => mode === 'loadMore' && !noMore.value && !loading.value)
|
const canLoadMore = computed(() => mode === 'loadMore' && !noMore.value && !loading.value)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取数据列表
|
* 获取数据列表
|
||||||
* @param {boolean} isRefresh - 是否为刷新操作
|
* @param {boolean} isRefresh - 是否为刷新操作
|
||||||
*/
|
*/
|
||||||
const getList = async (isRefresh = false) => {
|
const getList = async (isRefresh = false) => {
|
||||||
if (loading.value) return
|
if (loading.value) return
|
||||||
|
|
||||||
try {
|
try {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
error.value = null
|
error.value = null
|
||||||
|
|
||||||
// 如果是刷新,重置页码
|
// 如果是刷新,重置页码
|
||||||
if (isRefresh) {
|
if (isRefresh) {
|
||||||
queryParams.value.pageNum = 1
|
queryParams.value.pageNum = 1
|
||||||
noMore.value = false
|
noMore.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
const res = await fetchData(queryParams.value)
|
const res = await fetchData(queryParams.value)
|
||||||
|
|
||||||
// 处理响应数据
|
// 处理响应数据
|
||||||
const newData = res?.rows || []
|
const newData = res?.rows || []
|
||||||
const total = res?.total || 0
|
const total = res?.total || 0
|
||||||
|
|
||||||
// 更新分页信息
|
// 更新分页信息
|
||||||
pagination.value = {
|
pagination.value = {
|
||||||
total,
|
total,
|
||||||
currentPage: queryParams.value.pageNum,
|
currentPage: queryParams.value.pageNum,
|
||||||
pageSize,
|
pageSize,
|
||||||
totalPages: Math.ceil(total / pageSize)
|
totalPages: Math.ceil(total / pageSize),
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新数据列表
|
// 更新数据列表
|
||||||
if (isRefresh || queryParams.value.pageNum === 1) {
|
if (isRefresh || queryParams.value.pageNum === 1) {
|
||||||
list.value = newData
|
list.value = newData
|
||||||
} else {
|
} else {
|
||||||
list.value = [...list.value, ...newData]
|
list.value = [...list.value, ...newData]
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查是否还有更多数据
|
// 检查是否还有更多数据
|
||||||
if (mode === 'loadMore') {
|
if (mode === 'loadMore') {
|
||||||
noMore.value = queryParams.value.pageNum * pageSize >= total
|
noMore.value = queryParams.value.pageNum * pageSize >= total
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(`获取数据成功: 第${queryParams.value.pageNum}页,共${newData.length}条`)
|
console.log(`获取数据成功: 第${queryParams.value.pageNum}页,共${newData.length}条`)
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('获取数据失败:', err)
|
console.error('获取数据失败:', err)
|
||||||
error.value = err
|
error.value = err
|
||||||
|
|
||||||
// 显示错误提示
|
// 显示错误提示
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '数据加载失败',
|
title: '数据加载失败',
|
||||||
icon: 'none'
|
icon: 'none',
|
||||||
})
|
})
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 刷新数据
|
* 刷新数据
|
||||||
*/
|
*/
|
||||||
const refresh = () => {
|
const refresh = () => {
|
||||||
getList(true)
|
getList(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 加载下一页(上拉加载模式)
|
* 加载下一页(上拉加载模式)
|
||||||
*/
|
*/
|
||||||
const loadMore = () => {
|
const loadMore = () => {
|
||||||
if (!canLoadMore.value) return
|
if (!canLoadMore.value) return
|
||||||
|
|
||||||
queryParams.value.pageNum++
|
queryParams.value.pageNum++
|
||||||
getList()
|
getList()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 跳转到指定页(分页器模式)
|
* 跳转到指定页(分页器模式)
|
||||||
* @param {number} page - 目标页码
|
* @param {number} page - 目标页码
|
||||||
*/
|
*/
|
||||||
const goToPage = (page) => {
|
const goToPage = page => {
|
||||||
if (page < 1 || page > pagination.value.totalPages || page === queryParams.value.pageNum) {
|
if (page < 1 || page > pagination.value.totalPages || page === queryParams.value.pageNum) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
queryParams.value.pageNum = page
|
queryParams.value.pageNum = page
|
||||||
getList(true)
|
getList(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 重置分页状态
|
* 重置分页状态
|
||||||
*/
|
*/
|
||||||
|
|
@ -147,24 +141,24 @@ export function usePagination(options = {}) {
|
||||||
total: 0,
|
total: 0,
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
pageSize,
|
pageSize,
|
||||||
totalPages: 0
|
totalPages: 0,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新查询参数
|
* 更新查询参数
|
||||||
* @param {Object} newParams - 新的查询参数
|
* @param {Object} newParams - 新的查询参数
|
||||||
*/
|
*/
|
||||||
const updateParams = (newParams) => {
|
const updateParams = newParams => {
|
||||||
queryParams.value = {
|
queryParams.value = {
|
||||||
...queryParams.value,
|
...queryParams.value,
|
||||||
...newParams,
|
...newParams,
|
||||||
pageNum: 1 // 重置页码
|
pageNum: 1, // 重置页码
|
||||||
}
|
}
|
||||||
reset()
|
reset()
|
||||||
getList()
|
getList()
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
// 状态
|
// 状态
|
||||||
list,
|
list,
|
||||||
|
|
@ -173,18 +167,18 @@ export function usePagination(options = {}) {
|
||||||
noMore,
|
noMore,
|
||||||
pagination,
|
pagination,
|
||||||
queryParams,
|
queryParams,
|
||||||
|
|
||||||
// 计算属性
|
// 计算属性
|
||||||
hasData,
|
hasData,
|
||||||
isEmpty,
|
isEmpty,
|
||||||
canLoadMore,
|
canLoadMore,
|
||||||
|
|
||||||
// 方法
|
// 方法
|
||||||
getList,
|
getList,
|
||||||
refresh,
|
refresh,
|
||||||
loadMore,
|
loadMore,
|
||||||
goToPage,
|
goToPage,
|
||||||
reset,
|
reset,
|
||||||
updateParams
|
updateParams,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
export const DEV_CONFIG = {
|
export const DEV_CONFIG = {
|
||||||
// 临时token,用于开发测试
|
// 临时token,用于开发测试
|
||||||
TEMP_TOKEN:
|
TEMP_TOKEN:
|
||||||
'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjAwMjdjYTRkLTMwOTktNDA4OC04ZTI2LTUzOTQwNGJkZDg0MyJ9.4zQ96QGHIvWy3cJciCPF0e8XWHY2NC9e9svrc9rqNKarnHhiqrAXZ2ZqMfN2AGbSVYVEs6OhUkkrEedupOXYGQ',
|
'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjM2YzUxYWQxLTVmZWMtNDI3Yy1iYjFkLThkYTFmZWE4OWM4MyJ9.Z8ZAPBw-pol_fsLudrWr4tHUn7b-zoMzWxIHnZItI4pW7VH7UsM8dzFwB6aWIzCBnmvnm8T1iTDCEvQT13ihEw',
|
||||||
|
|
||||||
// 是否使用临时token
|
// 是否使用临时token
|
||||||
USE_TEMP_TOKEN: true,
|
USE_TEMP_TOKEN: true,
|
||||||
|
|
|
||||||
|
|
@ -56,40 +56,34 @@
|
||||||
|
|
||||||
<!-- 分页组件 -->
|
<!-- 分页组件 -->
|
||||||
<pagination
|
<pagination
|
||||||
:mode="'loadMore'"
|
:current-page="pagination.currentPage"
|
||||||
:list="list"
|
:list="list"
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
|
:mode="'loadMore'"
|
||||||
:no-more="noMore"
|
:no-more="noMore"
|
||||||
:total="pagination.total"
|
|
||||||
:current-page="pagination.currentPage"
|
|
||||||
:page-size="pagination.pageSize"
|
:page-size="pagination.pageSize"
|
||||||
|
:total="pagination.total"
|
||||||
@page-change="handlePageChange"
|
@page-change="handlePageChange"
|
||||||
/>
|
/>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { onMounted, onReachBottom } from '@dcloudio/uni-app'
|
import { onMounted } from 'vue'
|
||||||
|
import { onReachBottom } from '@dcloudio/uni-app'
|
||||||
import { usePagination } from '@/composables/usePagination.js'
|
import { usePagination } from '@/composables/usePagination.js'
|
||||||
import { getMyOrder } from '@/api/order/myOrder.js'
|
import { getMyOrder } from '@/api/order/myOrder.js'
|
||||||
import Pagination from '@/components/pagination/pagination.vue'
|
import Pagination from '@/components/pagination/pagination.vue'
|
||||||
|
|
||||||
// 使用分页组合式函数
|
// 使用分页组合式函数
|
||||||
const {
|
const { list, loading, noMore, pagination, getList, loadMore } = usePagination({
|
||||||
list,
|
|
||||||
loading,
|
|
||||||
noMore,
|
|
||||||
pagination,
|
|
||||||
getList,
|
|
||||||
loadMore
|
|
||||||
} = usePagination({
|
|
||||||
fetchData: getMyOrder,
|
fetchData: getMyOrder,
|
||||||
defaultParams: {
|
defaultParams: {
|
||||||
orderByColumn: 'createTime',
|
orderByColumn: 'createTime',
|
||||||
isAsc: 'descending'
|
isAsc: 'descending',
|
||||||
},
|
},
|
||||||
mode: 'loadMore',
|
mode: 'loadMore',
|
||||||
pageSize: 6
|
pageSize: 6,
|
||||||
})
|
})
|
||||||
|
|
||||||
// 页面加载时获取数据
|
// 页面加载时获取数据
|
||||||
|
|
@ -103,7 +97,7 @@ onReachBottom(() => {
|
||||||
})
|
})
|
||||||
|
|
||||||
// 处理页码变化
|
// 处理页码变化
|
||||||
const handlePageChange = (page) => {
|
const handlePageChange = page => {
|
||||||
console.log('页码变化:', page)
|
console.log('页码变化:', page)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user