-
Data Governance Dev authored
把单次同步 runQuery 替换成分页 + 并发 worker 模式: DataQualityView.vue 重写查询逻辑: onQuery() 1) POST /start → COUNT + 编译规则 + 拿 session_id + total_pages 2) PAGE_CONCURRENCY=3 个 worker 并发抢 queue([1..total_pages]), 每个 worker /page 拉到 → appendPage() 按页号升序拼进 rows 3) 收尾聚合 lastResult + toast onCancel() - /cancel 摘 session(best-effort) - AbortController.abort() 让在飞的 fetch 立即 reject - resetQueryStatus() 清空 sessionId / rows / lastResult / queryError 进度展示:task-info-bar 顶部「查询中 N/M 页 · 命中 K 条」 onBeforeUnmount:cancel + abort,避免组件销毁后 fetch 还在飞 ResultTable.vue 新增 appendMode prop: watch(() => props.rows.length, () => { if (!props.appendMode) currentPage.value = 1 }) 默认 false 保持原行为(rows 替换 → 回第 1 页); append 模式下 rows 增量追加不重置页码 ResultTable 新增 row-key 模式:父组件传 rowKey 函数, 用后端注入的 __row_index 做稳定 key(append 模式下保证 Vue DOM 复用正确) PAGE_SIZE = 500(与后端默认对齐) 无单测(前端无测试基础设施,手动 e2e 验证见 work-logs/2026-08-21.md)8e389145