Workspace - 工作空间

Workspace 是一个功能强大的工作空间组件,提供了标签页式的内容管理界面。支持多种内容类型的展示,包括实时跟随、任务管理、文件预览、浏览器内容等,为用户提供统一的工作环境。

✨ 功能特点

  • 🔄 实时跟随: 支持 shell、markdown、html 等内容的实时更新显示,也支持完全自定义渲染
  • 📋 任务管理: 内置任务列表和任务状态管理功能
  • 📁 文件预览: 支持多种文件格式的预览和下载(含可选的 docx / xlsx / pptx Office 三件套,见 OfficeViewer)
  • 🌐 浏览器集成: 可嵌入浏览器内容和网页预览
  • 🎛️ 自定义内容: 支持自定义组件和内容渲染(通过 customContent 或 Workspace.Custom)
  • 📱 响应式设计: 适配不同屏幕尺寸,提供良好的用户体验

性能与布局

实时内容、HTML 代码视图和文本文件预览默认使用轻量只读 Markdown,不创建 Slate 编辑器。需要 Slate 文档行为时,可设置对应的 markdownEditorProps={{ renderMode: 'slate' }};实时面板显式设置 readonly: false 仍使用可编辑视图。

Workspace 按实际标题和标签栏高度分配内容空间。嵌入固定高度面板时,为父容器设置高度;窄屏标签在标签栏内横向滚动。流式内容仅在用户处于跟随状态时自动滚动,向上浏览历史内容会暂停跟随。

文件列表默认渐进展示 50 项,查看更多时追加 100 项。更新文件数据时尽量复用未变节点引用;使用 id 标识文件,更新远程文件版本时同步更新 lastModified。切换文件会取消旧预览请求并释放其临时资源。

代码演示

已废弃事件保留向下兼容:onToggleGroup → onGroupToggle、loading → isLoading,详见各 API 表里带删除线 + version 标记的行。

基础用法

从交付概览进入任务、参考资料和文件,按需重播流式生成过程

文件管理

浏览本地生成的交付文件,支持内容预览、下载与刷新加载状态

演示约 120 个文件的分页展示效果,支持分组与扁平两种视图,每组默认展示 50 条,点击查看更多每次追加 100 条

演示不分组文件分享功能(列表 + 预览页分享按钮)

演示自定义预览流程(onPreview 拦截并替换内容)

演示通过 actionRef 在外部控制预览页打开/返回

演示文件名搜索过滤

树形展示文件,展开目录时通过 onLoadChildren 懒加载子节点

fileTreeSwitch 分段切换;树模式与平铺共用搜索框,树筛选仅作用于已展开分支

演示文件与网页结果的定位回调(onLocate)

演示通过 renderName / renderDetails / renderActions 自定义文件卡片

实时跟随

展示实时内容更新和跟随功能

浏览器

展示浏览器搜索结果

任务管理

查看任务状态与执行说明,体验任务推进和重置

空状态

演示空状态功能

自定义内容

展示如何添加自定义组件和内容

高级用法

展示复杂场景下的工作空间配置和使用

Header 右侧自定义

展示如何自定义 header 右侧区域,添加自定义按钮或操作

API

Workspace

属性说明类型默认值版本
activeTabKey当前激活的标签页 key(受控);未传则为非受控。非法 key 时界面回退到有效项string--
defaultActiveTabKey非受控模式下的初始激活标签 keystring--
onTabChange切换标签页的回调;受控模式下应同步更新 activeTabKey(tabKey: string) => void--
notifyOnInvalidActiveTabKey受控且 activeTabKey 无效时,是否调用 onTabChange 建议有效 keybooleantrue-
preserveFilePreviewOnTabChange为 true 时,离开文件类标签再返回不重置 File / FileTree 预览booleanfalse-
style自定义样式React.CSSProperties--
className自定义 CSS 类名string--
title工作空间标题;未传时取 i18n key workspace.title,再回退到 'Workspace'ReactNode--
onClose关闭工作空间的回调函数() => void--
headerExtra自定义 header 右侧区域内容ReactNode--
emptyContent无有效子面板时的占位内容ReactNode--
pure纯净模式,关闭阴影和边框booleanfalse-

子面板识别

内置子组件带有面板类型标记,支持 React.memo(Workspace.File) 等常见包裹(通过 type 链解析)。自定义 HOC 若无法识别,可在子组件上传入 panelType(如 panelType="file"),或使用 markWorkspacePanel(YourPanel, 'file') 标记组件。

各子面板的 tab 配置见 TabConfiguration;BaseChildProps.panelType 仅用于无法自动识别时显式声明类型。

受控标签与文件预览

  • 受控:传入 activeTabKey 时,在 onTabChange 中更新 state。非法 key 时界面回退到有效项;notifyOnInvalidActiveTabKey={false} 可仅静默回退、不触发回调。
  • 非受控:使用 defaultActiveTabKey 指定初始标签,未传则激活第一项。
  • 预览:默认在离开文件类标签(file / fileTree)时重置预览;设置 preserveFilePreviewOnTabChange 可在切 Tab 后保留预览态。

Workspace.Realtime

实时跟随组件,用于展示实时更新的内容(支持 shell、markdown/md、html,也支持通过 customContent 完全自定义渲染)。

属性说明类型默认值版本
data实时跟随数据RealtimeFollowData--
tab标签页配置TabConfiguration--

RealtimeFollowData

属性说明类型默认值版本
type内容类型;shell 走 markdown 渲染引擎,仅头部图标不同'shell' | 'html' | 'markdown' | 'md' | 'default'--
content展示内容string | DiffContent--
customContent自定义渲染内容,传入后将直接渲染该内容,忽略其他渲染逻辑React.ReactNode | () => React.ReactNode--
markdownEditorPropsMarkdown 编辑器配置(md/shell 与 html 的 code 视图生效)Partial<MarkdownEditorProps>--
title自定义主标题string--
subTitle自定义副标题string--
icon自定义图标组件React.ComponentType--
streaming流式输出模式;同时传入时优先于 typewriterboolean--
typewriter已废弃:请使用 streamingboolean--
rightContent自定义右侧内容(优先级高于下方的 segmentedItems/默认视图切换)React.ReactNode--
errorRender自定义异常渲染React.ReactNode | () => React.ReactNode--
className额外类名string--
style内联样式React.CSSProperties--
status渲染状态(仅覆盖层处理,html 由 HtmlPreview 内部处理)'loading' | 'done' | 'error'--
loadingRender自定义加载渲染,非必传React.ReactNode | () => React.ReactNode--
emptyRender自定义空状态渲染(内容为空时优先显示)React.ReactNode | () => React.ReactNode--
onBack返回回调() => void--
viewModehtml 受控视图模式'preview' | 'code'--
defaultViewModehtml 非受控默认视图模式'preview' | 'code''preview'-
onViewModeChange视图模式变更回调(html)(mode: 'preview' | 'code') => void--
iframePropsiframe 属性(html 预览模式)React.IframeHTMLAttributes<HTMLIFrameElement>--
labels视图切换文案(html){ preview?: string; code?: string }--
segmentedItems自定义右上角 Segmented 选项(html,若提供则替换默认 预览/代码 切换)Array<{ label: React.ReactNode; value: string }>--
segmentedExtraSegmented 右侧额外内容(当存在 segmentedItems 或默认 Segmented 时附加在其右侧)React.ReactNode--

DiffContent

属性说明类型默认值版本
original原始内容string--
modified修改后内容string--

Workspace.Task

任务组件,用于展示任务列表。

属性说明类型默认值版本
data任务数据TaskItemInput--
tab标签页配置TabConfiguration--
onItemClick点击任务项时的回调(item: TaskItem) => void--

TaskItemInput

属性说明类型默认值版本
items任务列表数据TaskItem[]--

TaskItem

属性说明类型默认值版本
key任务唯一标识string--
title任务标题React.ReactNode--
content任务内容React.ReactNode | React.ReactNode[]--
status任务状态'success' | 'pending' | 'loading' | 'error'--

Workspace.File

文件组件,用于展示文件列表和文件操作。

属性说明类型默认值版本
nodes文件/分组节点数据(GroupNode | FileNode)[]--
onGroupDownload组下载回调(files: FileNode[], groupType: FileType) => void--
onDownload单文件下载回调(file: FileNode) => void--
onFileClick文件点击回调(file: FileNode) => void--
onGroupToggleGroup 子组件切换事件(符合命名规范)(groupType: FileType, collapsed: boolean) => void--
onToggleGroup已废弃,请使用 onGroupToggle(groupType: FileType, collapsed: boolean) => void-2.29.0
onPreview文件预览回调(返回替换预览内容或异步返回)(file: FileNode) => void | false | FileNode | ReactNode | Promise<void | false | FileNode | ReactNode>--
onBack预览页返回回调(返回 false 阻止默认返回)(file: FileNode) => void | boolean | Promise<void | boolean>--
onShare分享回调(列表与预览页均会触发)(file: FileNode, ctx?: { anchorEl?: HTMLElement; origin: 'list' | 'preview' }) => void--
onLocate定位回调(列表与预览页均会触发,需配合文件 canLocate 开启)(file: FileNode) => void--
markdownEditorPropsMarkdown 编辑器配置(覆盖默认预览配置,内部会忽略 editorRef / initValue / readonly 字段)Partial<Omit<MarkdownEditorProps, 'editorRef' | 'initValue' | 'readonly'>>--
customActions自定义预览页右侧操作区域(可整块替换"分享 / 定位 / 下载"按钮组)React.ReactNode | (file: FileNode) => React.ReactNode--
actionRef对外操作引用(打开预览/返回/更新预览标题)React.MutableRefObject<FileActionRef | null>--
loading已废弃,请使用 isLoadingboolean-2.29.0
isLoading是否显示加载状态boolean--
loadingRender自定义加载渲染函数,非必传() => React.ReactNode--
emptyRender自定义空状态渲染(列表为空且非 loading 时优先显示)React.ReactNode | () => React.ReactNode--
fileTreeSwitch平铺/文件树图标分段切换(view / onViewChange);listLabel/treeLabel 为 title 与无障碍名称,默认取 i18nFileTreeSwitchConfig--
keyword搜索关键字(受控)string--
onChange搜索关键字变化回调(外部自行过滤)(keyword: string) => void--
showSearch是否显示搜索框;与 fileTreeSwitch 并存时树模式仍显示,树内筛选仅匹配已展开分支booleanfalse-
searchPlaceholder平铺列表时搜索框占位符;无 fileTreeSwitch 时两种视图均用此项string--
searchPlaceholderTree文件树视图时搜索框占位符;未传时依次用 workspace.fileTreeSearchPlaceholder、searchPlaceholderstring--
bindDomId是否在每个文件项的根元素上绑定 id 属性booleanfalse-
tab标签页配置TabConfiguration--

DOM id 绑定策略

  • 当 bindDomId 为 false(默认):不会在文件项根元素写入 id 属性,更推荐通过选择器如 [data-testid] 或 className 进行自动化选择。
  • 当 bindDomId 为 true:组件会在文件项根元素绑定 id。来源遵循:
    • 若传入的 FileNode.id 存在,则使用该值;
    • 否则使用组件内部生成的稳定 id(基于节点内容生成并缓存)。

FileTreeSwitchConfig

Workspace.File.fileTreeSwitch 的配置;传入后在搜索框旁展示「平铺 / 文件树」段控件。treeProps 与独立使用 Workspace.FileTree 时一致——tab / resetKey / filterKeyword 以及预览/下载/分享/定位/点击等回调由 Workspace.File 注入,不需在此重复传。

属性说明类型默认值版本
treeProps树视图配置(与 Workspace.FileTree 同 props,但 omit 由父注入的字段)Omit<FileTreeProps, 'tab' | 'resetKey' | 'filterKeyword' | 'onDownload' | 'onPreview' | 'onShare' | 'onLocate' | 'onFileClick'>--
defaultView非受控时的初始视图'list' | 'tree''list'-
view受控当前视图'list' | 'tree'--
onViewChange视图变化回调(view: 'list' | 'tree') => void--
listLabel平铺视图的无障碍名称与浏览器 title(段控件为图标时使用)React.ReactNodei18n-
treeLabel文件树视图的无障碍名称与浏览器 title(段控件为图标时使用)React.ReactNodei18n-

Workspace.FileTree

树形文件列表,目录节点在首次展开时通过 onLoadChildren 拉取子节点(懒加载)。叶子节点可挂 file 字段以展示预览/下载等操作(与 onPreview / onDownload 等配合);与 Workspace.File 的 fileTreeSwitch 联用时由 Workspace.File 注入关键字与预览/下载回调。filterKeyword 仅匹配已展开目录下的已加载子树;无匹配时按是否已展开展示不同文案(workspace.treeFilterNoMatchVisibleRoots / workspace.treeFilterNoMatchInExpanded)。

属性说明类型默认值版本
blockNode是否整行可点选(antd blockNode)booleantrue-
className自定义类名string--
emptyRender无数据时自定义空状态ReactNode | () => ReactNode--
filterKeyword名称筛选;无匹配时未展开与已展开分支使用不同提示(见 i18n)string--
onDownload下载回调;未传时对具备下载源的叶子仍可用内置下载(file: FileNode) => void--
onFileClick叶子带 file 时点击行优先触发;未传且存在 onPreview 时走预览(file: FileNode) => void--
onLoadChildren展开无子项的目录时拉取子节点(可异步)(node: FileTreeNode) => FileTreeNode[] | Promise<FileTreeNode[]>--
onLocate定位回调,需叶子 file.canLocate 为 true 时展示按钮(file: FileNode) => void--
onPreview预览回调,语义同 Workspace.File 的 onPreview同 Workspace.File 的 onPreview--
onSelect选中节点(点击标题)时回调(node: FileTreeNode) => void--
onShare分享回调,语义同 Workspace.File 的 onShare同 Workspace.File 的 onShare--
showLine是否显示连接线,透传 antd Treebooleantrue-
style自定义样式React.CSSProperties--
tab标签页配置TabConfiguration--
treeData根级树数据,目录懒加载时 isLeaf: false 且子级先为空或省略FileTreeNode[]--

FileTreeNode

属性说明类型默认值版本
children已加载子节点;空目录在 onLoadChildren 返回 [] 后仍为目录FileTreeNode[]--
disabled是否禁用boolean--
file叶子关联的 FileNode,传入后展示预览/下载等操作(与 onPreview 等配合)FileNode--
icon节点图标(可选)ReactNode--
id业务 id(可选)string--
isLeaf文件为 true;懒加载目录必须 false。未传且无子项时按文件处理boolean--
key树节点 key(与 antd Tree 一致,建议稳定且可作为接口路径/参数)string--
name展示名称string--

FileActionRef

方法说明类型默认值版本
openPreview外部打开文件预览页(file: FileNode) => void--
backToList从预览页返回到文件列表() => void--
updatePreviewHeader更新预览标题区域展示(仅影响头部展示)(partial: Partial<FileNode>) => void--

FileNode

属性说明类型默认值版本
id唯一标识(可选)string--
name文件名string | ReactNode--
icon自定义图标(可选)ReactNode--
displayType展示在文件标题下方的类型(如类型/大小/更新时间等)string--
type文件类型FileType--
size文件大小string | number--
lastModified最后修改时间string | number | Date--
url文件下载地址(或预览地址)string--
file文件二进制内容(浏览器环境)File | Blob--
previewUrl预览地址(优先用于图片类预览)string--
content文本内容(如 md/html 等,优先用于内置预览)string--
metadata额外元数据Record<string, unknown>--
canPreview是否允许预览(用户自定义开关,默认由系统推断是否可预览)boolean--
canDownload是否在文件列表页面展示下载图标(用户自定义开关,默认展示)boolean--
canShare是否在文件列表/预览页展示分享按钮(默认隐藏)boolean--
canLocate是否在文件列表/预览页展示“定位”按钮(默认隐藏)boolean--
loading文件是否处于加载中状态boolean--
disabled是否禁用文件卡片(禁用后不可点击,操作按钮隐藏)boolean--
renderName自定义渲染文件名区域(ctx: FileRenderContext) => ReactNode--
renderDetails自定义渲染详情行区域(类型、大小、时间等)(ctx: FileRenderContext) => ReactNode--
renderActions自定义渲染操作按钮区域(预览、下载、分享等)(ctx: FileRenderContext) => ReactNode--

预览内容来源优先级:Workspace.File / Workspace.FileTree 的 onPreview 自定义返回值 → customContent(PreviewComponent) → loading 占位 → content(文本/Markdown/HTML 内联) → previewUrl(图片优先) → url(其他文件)。canPreview === false 会跳过以上分支并直接展示 UnsupportedFileCard。

FileRenderContext

自定义渲染函数的参数类型:

属性说明类型默认值版本
file当前文件节点FileNode--
prefixCls样式前缀string--
hashId样式 hashstring--
disabled是否禁用boolean--
actions内置操作按钮,可在 renderActions 中复用FileBuiltinActions--

FileBuiltinActions

内置操作按钮类型,用于在 renderActions 中复用:

属性说明类型默认值版本
preview预览按钮ReactNode--
locate定位按钮ReactNode--
share分享按钮ReactNode--
download下载按钮ReactNode--

GroupNode

属性说明类型默认值版本
id唯一标识(可选)string--
name分组名string | ReactNode--
icon自定义图标(可选)ReactNode--
collapsed是否折叠(可选)boolean--
children子文件列表FileNode[]--
type分组文件类型(同组同类型)FileType--
canDownload是否在分组标题展示下载按钮(用户自定义开关,默认展示)boolean--

FileType

文件类型键值,内置常见文本/图片/视频/音频/办公文档/压缩包/代码等类型(如 plainText、markdown、image、video、audio、pdf、word、excel、csv、powerpoint、archive、javascript、typescript、react、python、java、cpp、c、csharp、go、rust、php、ruby、shell、powershell、sql、lua、perl、scala、config)。

FileCategory

文件分类枚举,用于对文件类型进行分组:

值说明
Text文本文件
Code代码文件
Image图片文件
Video视频文件
Audio音频文件
PDFPDF 文档
WordWord 文档
ExcelExcel 表格
Presentation演示文稿(PPT)
Archive压缩文件
Other其他类型

Workspace.Browser

浏览器组件,用于展示浏览器搜索建议和搜索结果列表,适合承接「联网搜索 / WebSearch」等智能体工具输出。

属性说明类型默认值版本
suggestions必填。搜索建议列表(左侧展示的查询列表)BrowserSuggestion[]--
request必填。根据选中的搜索建议获取对应结果列表,支持返回加载状态(suggestion: BrowserSuggestion) => { items: BrowserItem[]; loading?: boolean }--
suggestionIcon搜索建议左侧图标React.ReactNode--
countFormatter结果数量展示文案格式化函数(count: number) => string--
emptyText结果列表为空时的展示文案string国际化文案-
loadingText结果加载中时的展示文案string国际化文案-
onLocate点击结果项的"定位"按钮回调(需配合 BrowserItem.canLocate)(item: BrowserItem) => void--
onOpen点击结果链接时的回调;提供后会拦截默认的新标签页打开行为(item: BrowserItem) => void--
tab标签页配置TabConfiguration--

BrowserSuggestion

属性说明类型默认值版本
id唯一标识string--
label建议展示文案string--
count该查询下结果数number--

BrowserItem

属性说明类型默认值版本
id唯一标识string--
title结果标题string--
site站点展示文案(如域名)string--
url结果链接string--
icon站点图标地址(可选)string--
description结果摘要(当前 UI 未直接使用,可用于自定义扩展)string--
canLocate是否展示“定位”按钮(展示后会触发 onLocate)boolean--

Workspace.Custom

自定义组件,用于展示自定义内容。与 Workspace.Realtime/Workspace.Task 等通过 data prop 传内容的子组件不同,Workspace.Custom 直接以 children 接收 React 节点;适合内容形态完全无法被内置子面板覆盖的场景。

属性说明类型默认值版本
children自定义内容ReactNode--
tab标签页配置TabConfiguration--

TabItem(内部结构)

Workspace 解析子组件后得到的标签项,供内部分栏与内容渲染使用;其中 componentType 为内置子面板类型(realtime | browser | task | file | fileTree | custom),用于在首个「实时跟随」后插入视觉分割线。

TabConfiguration

标签页配置项,适用于所有子组件(不传则使用组件内置默认:图标与标题)。

属性说明类型默认值版本
key标签页唯一标识string--
icon标签页图标ReactNode--
title标签页标题ReactNode--
count标签页标题右侧数字(变化时按位渐变动画,无最大值上限)number--

所有 Workspace.* 子组件另支持 BaseChildProps.panelType(WorkspacePanelType),用于 HOC 无法自动识别时显式声明面板类型。

使用场景

1. 开发工作空间

适用于开发环境中的多标签页工作空间,可以同时查看代码、日志、文档等。

2. 数据分析工作台

用于数据分析场景,可以同时展示数据文件、分析结果、可视化图表等。

3. 文档管理系统

用于文档的预览、编辑、版本对比等功能。

4. 实时监控面板

用于展示实时数据、日志流、系统状态等信息。

5. 任务管理界面

用于展示任务进度、执行状态、结果输出等。

最佳实践

  1. 合理使用标签页数量:建议单个工作空间内的标签页数量不超过 8 个,避免界面过于拥挤。

  2. 标签页命名:使用简洁明了的标签页标题,便于用户快速识别。

  3. 文件类型支持:充分利用内置的文件类型支持,为不同类型的文件提供合适的预览方式。

  4. 自定义预览:对于特殊文件类型,可以通过 onPreview 回调实现自定义预览逻辑。

  5. 自定义内容渲染:

    • 对于需要完全自定义的内容,优先使用 Workspace.Realtime 的 customContent 属性
    • customContent 优先级最高,传入后会忽略其他渲染逻辑
    • 也可以使用 Workspace.Custom 实现独立的自定义标签页,区别是前者会自带分割线
  6. 响应式设计:考虑在不同屏幕尺寸下的显示效果,合理设置工作空间的高度和宽度。

  7. 性能优化:对于大量文件或复杂内容,考虑使用虚拟滚动或分页加载。

  8. 错误处理:为文件预览、下载等操作添加适当的错误处理和用户提示。

  9. 无障碍支持:确保工作空间组件具有良好的键盘导航和屏幕阅读器支持。

  10. 子组件识别:优先使用 Workspace.* 内置子组件;memo 一般可直接使用,自定义 HOC 用 panelType 或 markWorkspacePanel(见 子面板识别)。

  11. 受控标签:activeTabKey + onTabChange 成对使用;非法 key 可用 notifyOnInvalidActiveTabKey={false} 避免多余回调。

  12. 文件预览:需要跨 Tab 保留预览时设置 preserveFilePreviewOnTabChange。

扩展 API

HtmlPreviewProps

HTML 预览组件的属性接口,用于 HTML 内容的预览和代码查看。

属性说明类型默认值版本
htmlHTML 内容字符串string--
status内容状态'generating' | 'loading' | 'done' | 'error'--
viewMode当前视图模式(受控模式)'preview' | 'code'--
defaultViewMode默认视图模式'preview' | 'code''preview'-
onViewModeChange视图模式变化回调(mode: 'preview' | 'code') => void--
markdownEditorPropsMarkdown 编辑器配置Partial<MarkdownEditorProps>--
iframePropsiframe 属性React.IframeHTMLAttributes<HTMLIFrameElement>--
labels自定义标签文本{ preview?: string; code?: string }--
loadingRender自定义加载渲染React.ReactNode | (() => React.ReactNode)--
errorRender自定义错误渲染React.ReactNode | (() => React.ReactNode)--
emptyRender自定义空状态渲染React.ReactNode | (() => React.ReactNode)--
className自定义 CSS 类名string--
style自定义样式React.CSSProperties--
showSegmented是否显示分段控制器booleantrue-
segmentedItems自定义分段选项Array<{ label: React.ReactNode; value: string }>--

PreviewComponentProps

文件预览组件的属性接口,用于文件内容的预览显示。

属性说明类型默认值版本
file文件节点数据FileNode--
customContent提供自定义内容以替换预览区域React.ReactNode--
customHeader自定义头部(完全替换默认头部)React.ReactNode--
customActions自定义右侧操作区域React.ReactNode--
onBack返回回调() => void--
onDownload下载回调(file: FileNode) => void--
onShare分享回调(file: FileNode, options?: { anchorEl?: HTMLElement; origin?: string }) => void--
onLocate定位回调(file: FileNode) => void--
markdownEditorPropsMarkdown 编辑器配置Partial<Omit<MarkdownEditorProps, 'editorRef' | 'initValue' | 'readonly'>>--
headerFileOverride仅用于覆盖默认头部区域展示的文件信息Partial<FileNode>--

工具函数

getFileType

根据文件名推断文件类型。

getFileType(filename: string): FileType

参数:

  • filename - 文件名(包含扩展名)

返回值:

  • 推断出的文件类型,如果无法识别则返回 'plainText'

getMimeType

根据文件类型获取对应的 MIME 类型。

getMimeType(fileType: FileType): string

参数:

  • fileType - 文件类型

返回值:

  • 对应的 MIME 类型字符串

getFileCategory

根据文件类型获取文件分类。

getFileCategory(fileType: FileType): FileCategory

参数:

  • fileType - 文件类型

返回值:

  • 对应的文件分类枚举值