组件 · 数据录入
Imports 导入
Imports 公开入口。 外层已有 Provider 时直接渲染;否则用 props 自建 Provider。
引入
import {
ImportContextProvider,
Imports,
formatDate,
handleImportError,
isImportResultLike,
isTerminalImportResult,
// …共 13 个导出
} from '@selrux/ui/imports';代码演示
完整模拟
下载模板、上传导入、导入记录与失败明细均可点通;新导入会插入记录列表顶部。
可先下载模板,再选文件导入;或点「导入记录」查看历史。
基础用法
注入上传与进度查询;点击「导入」走四步流程。
自定义进度区
importProgressStepRender 完全替换默认 Spin 文案。
同步导入
上传后 onImport 一次返回终态,不轮询。
自定义上传步
renderUploadStep 可组合 defaultNode 或完全替换。
Context 共享配置
Provider 注入历史查询,子树 Imports 可少传 props。
API
属性覆盖:示例用到 9 / 29 个自有属性(31%)
由 scripts/demo-coverage.mjs 统计,不含 className / style / 原生透传属性与纯转发事件。
ImportContextProvider
提供导入配置;子树内 Imports / 历史详情可读。
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
value * | - | ImportContextValue | - |
另有 1 项原生属性与事件继承自 ,原样透传。
Imports
Imports 公开入口。 外层已有 Provider 时直接渲染;否则用 props 自建 Provider。
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
primaryText | 主按钮文案;默认取语言包「导入」。 | string | - |
secondaryText | 次按钮文案;默认取语言包「导入记录」。 | string | - |
primaryButtonProps | - | Omit<ButtonProps, "children" | "onClick"> | - |
secondaryButtonProps | - | Omit<ButtonProps, "children" | "onClick"> | - |
dialogProps | 主流程 Dialog 透传。 | ImportsDialogProps | - |
mode | 同步 / 异步模式;默认 auto。 auto:有 queryProgress → async,否则 → sync。 | "auto" | "sync" | "async" | auto |
onImport | 上传后创建任务(异步)或一次出终态(同步)。 | OnImport | - |
queryProgress | - | QueryImportProgress | - |
cancelImport | - | CancelImport | - |
confirmImport | waiting_confirm 时继续。 | ConfirmImport | - |
cancelUpload | - | CancelUpload | - |
onDialogClose | 主 Dialog 关闭回调。 | (() => void) | - |
taskKey | 上传结果中的任务 ID 字段名,默认 id。 | string | id |
importProgressStepRender 已弃用 | - | ImportProgressStepRender | - |
renderUploadStep | 上传步整段替换。 | RenderUploadStep | - |
renderUploadingStep | 上传中整段替换。 | RenderUploadingStep | - |
renderImportingStep | 导入中整段替换(优先于 importProgressStepRender)。 | RenderImportingStep | - |
renderResultStep | 结果步整段替换。 | RenderResultStep | - |
onDownloadTemplate | - | (() => Promise<void> | void) | - |
onFileSelect | - | ((file: File, config?: UploadConfig) => Promise<UploadResult> | UploadResult) | - |
onDownloadFailure | 结果步下载失败文件(宿主实现)。 | ((result: ImportResult) => Promise<void> | void) | - |
tips | - | string[] | - |
uploadStepConfig | - | UploadStepConfig | - |
pollInterval | 进度轮询间隔(毫秒),默认 2000。 | number | 2000 |
queryImportRecords | - | QueryImportRecords | - |
importRecordColumns | - | TableColumnType<ImportRecord>[] | - |
importRecordTableProps | - | Record<string, unknown> | - |
queryImportErrors | - | QueryImportErrors | - |
importErrorColumns | - | TableColumnType<ImportErrorItem>[] | - |
importErrorTableProps | - | Record<string, unknown> | - |
importDetailContentRender | - | ImportDetailContentRender | - |
className | 根节点 className。 | string | - |
另有 1 项原生属性与事件继承自 ,原样透传。
导出类型:CancelImport、CancelUpload、ConfirmImport、ImportContextProviderProps、ImportContextValue、ImportDetailContentRender、ImportErrorItem、ImportMode、ImportProgress、ImportProgressStepItem、ImportProgressStepRender、ImportRecord、ImportResult、ImportsDialogProps、ImportsProps、ImportStatus、ImportStep、OnImport、QueryImportErrors、QueryImportProgress、QueryImportRecords、RenderImportingStep、RenderResultStep、RenderUploadingStep、RenderUploadStep、UploadConfig、UploadProgressEvent、UploadResult、UploadStepConfig
函数与常量
| 名称 | 说明 | 签名 / 类型 |
|---|---|---|
formatDate | 简易日期格式化(YYYY / MM / DD / HH / mm / ss)。 | (date: Date | number, format?: string) => string |
handleImportError | 统一提取导入错误文案。 | (error: unknown, defaultMessage: string) => string |
isImportResultLike | 判断回调返回值是否已是 ImportResult 形态(含计数字段)。 | (value: unknown) => value is ImportResult |
isTerminalImportResult | ImportResult 是否可视为已结束(无 status 时按同步终态处理)。 | (result: ImportResult) => boolean |
isTerminalImportStatus | 是否为导入终态(离开 importing / 可进 result)。 | (status: ImportStatus | undefined) => boolean |
normalizeImportResult | 规范化结果 status: - 显式 cancelled / partial / failed 保留 - completed / 缺省 / processing 按计数推导 partial / completed / failed | (result: ImportResult) => ImportResult |
resolveImportMode | 解析 ImportMode;auto 时有 queryProgress 为 async,否则 sync。 | (mode: ImportMode | undefined, queryProgress: QueryImportProgress | undefined) => "sync" | "async" |
toImportResult | 将类结果对象转为 ImportResult。 | (value: ImportResult | Record<string, unknown>, fallbackId: string) => ImportResult |
useImportContext | 读取 ImportContext;不在 Provider 内时抛错。 | () => ImportContextValue |
useImportContextOptional | 可选读取 ImportContext;无 Provider 时返回 null。 | () => ImportContextValue | null |
validateUploadResult | 校验上传结果是否包含 taskKey 字段。 | (result: Record<string, unknown>, taskKey: string) => boolean |