fix(lab-sample): 台账改聚合真实市场生产质检数据
去掉 Excel 演示独有行,源表字段优先于补充表;按协议样本与科研捐献接收关联已发生业务数据,并修复导出分页超限。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
77d45d0bc5
commit
5698a9dfc4
4 files changed
+197
-40
No files matched your search
@@ -275,15 +275,28 @@
|
||||
async function handleExport() {
|
||||
exporting.value = true
|
||||
try {
|
||||
const res = await fetchLabSampleList(props.dataset, {
|
||||
keyword: searchForm.keyword || undefined,
|
||||
dateFrom: dateRange.value?.[0],
|
||||
dateTo: dateRange.value?.[1],
|
||||
page: 1,
|
||||
pageSize: 5000
|
||||
})
|
||||
const cols = res?.fields?.length ? res.fields : fields.value
|
||||
const rows = res?.list || []
|
||||
// 列表接口 pageSize 上限为 200,导出需分页拉全量后再生成 xlsx
|
||||
const pageSize = 200
|
||||
let page = 1
|
||||
let total = Number.POSITIVE_INFINITY
|
||||
const rows: Record<string, any>[] = []
|
||||
let cols = fields.value
|
||||
while (rows.length < total) {
|
||||
const res = await fetchLabSampleList(props.dataset, {
|
||||
keyword: searchForm.keyword || undefined,
|
||||
dateFrom: dateRange.value?.[0],
|
||||
dateTo: dateRange.value?.[1],
|
||||
page,
|
||||
pageSize
|
||||
})
|
||||
if (res?.fields?.length) cols = res.fields
|
||||
total = Number(res?.total ?? 0)
|
||||
const batch = res?.list || []
|
||||
rows.push(...batch)
|
||||
if (!batch.length || batch.length < pageSize) break
|
||||
page += 1
|
||||
if (page > 500) break
|
||||
}
|
||||
const ExcelJS = (await import('exceljs')).default
|
||||
const workbook = new ExcelJS.Workbook()
|
||||
const sheet = workbook.addWorksheet(props.title || props.dataset)
|
||||
|
||||
Reference in new issue
Block a user