import { default as React } from 'react'; /** * 知识库文档列表相关的类型定义 * 2025-12-19 新增: 根据UI设计图定义知识库文档列表的数据结构 */ /** * 知识库文档分类项 * 用于展示按目录分类的文档列表 */ export interface KnowledgeBaseCategory { /** 分类唯一标识 */ id: string | number; /** 分类名称,例如:"信贷制度"、"风控规范"等 */ name: string; /** 该分类下的文档数量 */ documentCount: number; /** 分类图标URL或图标组件标识(可选,默认使用黄色文件夹图标) */ icon?: string | React.ReactNode; /** 分类描述(可选) */ description?: string; /** 分类路径或路由(可选,用于点击跳转) */ path?: string; /** 后端提供的 fetchUrl(可选,目录/文件均可能存在) */ fetchUrl?: string; /** 后端提供的 folderId(可选,目录场景常用) */ folderId?: string | number | null; /** 后端提供的 filePath(可选,文件场景常用) */ filePath?: string | null; /** 来源知识库索引(可选,用于从 knowledgeBases 中定位) */ kbIndex?: number; /** 来源知识库名称(可选) */ kbName?: string; /** 原始条目(可选,便于宿主自定义处理) */ raw?: any; /** 是否显示(可选,用于控制某些分类的显示/隐藏) */ visible?: boolean; /** 项目类型:'dir' 表示目录,'file' 表示文件 */ itemType?: 'dir' | 'file'; /** 文件类型(仅当 itemType 为 'file' 时有效),例如:'docx', 'pdf', 'xlsx' */ fileType?: string; } /** * 知识库文档列表数据 * 包含标题、分类列表和总文档数等信息 */ export interface KnowledgeBaseDocumentList { /** 列表标题,例如:"知识库文档列表" */ title: string; /** 副标题文本,例如:"按目录分类" */ subtitle?: string; /** 总文档数量 */ totalCount: number; /** 分类列表 */ categories: KnowledgeBaseCategory[]; /** 是否显示"查看全部"链接 */ showViewAll?: boolean; /** "查看全部"链接的文本,默认为"查看全部>>" */ viewAllText?: string; /** "查看全部"链接的路径或回调函数 */ viewAllPath?: string | (() => void); } /** * 知识库文档列表组件的Props * 用于渲染知识库文档列表UI组件 */ export interface KnowledgeBaseDocumentListProps { /** 文档列表数据 */ data: KnowledgeBaseDocumentList; /** 主题样式 */ styles?: { theme?: any; mode?: 'light' | 'dark'; [key: string]: any; }; /** 分类项点击回调 */ onCategoryClick?: (category: KnowledgeBaseCategory) => void; /** "查看全部"点击回调 */ onViewAllClick?: () => void; /** 自定义样式类名 */ className?: string; /** 自定义样式对象 */ style?: React.CSSProperties; /** 是否显示分类图标 */ showCategoryIcon?: boolean; /** 自定义分类图标渲染函数 */ renderCategoryIcon?: (category: KnowledgeBaseCategory) => React.ReactNode; }