将 web-admin 从子模块改为仓库内普通目录,便于单仓克隆与维护。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
2e9d020d50
commit
c87732fcd5
515 files changed
+74372
-1
No files matched your search
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* 分页循环请求直至拿全数据(接口需返回 { list, total })。
|
||||
* 用于分类、单位、用户等列表接口,避免只取第一页导致下拉选项不全。
|
||||
*/
|
||||
export async function fetchAllPagedRecords<T>(
|
||||
fetchPage: (page: number, pageSize: number) => Promise<{ list?: T[]; total?: number }>,
|
||||
options?: { pageSize?: number; maxPages?: number }
|
||||
): Promise<T[]> {
|
||||
const pageSize = options?.pageSize ?? 100
|
||||
const maxPages = options?.maxPages ?? 50
|
||||
let page = 1
|
||||
const all: T[] = []
|
||||
let total = 0
|
||||
|
||||
while (page <= maxPages) {
|
||||
const res = await fetchPage(page, pageSize)
|
||||
total = res.total ?? 0
|
||||
const list = res.list ?? []
|
||||
all.push(...list)
|
||||
if (list.length === 0 || all.length >= total || list.length < pageSize) break
|
||||
page += 1
|
||||
}
|
||||
|
||||
return all
|
||||
}
|
||||
Reference in new issue
Block a user