• Data Governance Dev's avatar
    feat(web3): 分页查询 orchestrator + 中断按钮 + 进度 + appendMode 行追加 · 8e389145
    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
DataQualityView.vue 12.8 KB