feat: 知识库文档列表标题增加「清空」按钮——一键清空全部文档(分块与检索索引级联删除),清空前弹窗警告确认
This commit is contained in:
@@ -526,6 +526,8 @@ export const api = {
|
||||
) => invoke<KbImportResult[]>("kb_import_documents", { kbId, files }),
|
||||
removeKbDocument: (documentId: string) =>
|
||||
invoke<void>("remove_kb_document", { documentId }),
|
||||
kbClearDocuments: (kbId: string) =>
|
||||
invoke<number>("kb_clear_documents", { kbId }),
|
||||
kbRechunkDocument: (documentId: string) =>
|
||||
invoke<number>("kb_rechunk_document", { documentId }),
|
||||
kbSearch: (kbId: string | null, query: string, page?: number, pageSize?: number) =>
|
||||
|
||||
@@ -253,6 +253,25 @@ export default function KnowledgeBasePage() {
|
||||
}
|
||||
}
|
||||
|
||||
async function handleClearDocs() {
|
||||
if (!selected) return;
|
||||
if (
|
||||
!confirm(
|
||||
`确定清空知识库「${selected.name}」的全部 ${docTotal} 个文档吗?\n\n此操作不可恢复,所有文档、分块与检索索引将一并删除。`,
|
||||
)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const n = await api.kbClearDocuments(selected.id);
|
||||
setMsg(`已清空 ${n} 个文档`);
|
||||
await loadDocPage(selected.id, 1);
|
||||
await refreshKbs();
|
||||
} catch (e) {
|
||||
setMsg(`清空失败:${String(e)}`);
|
||||
}
|
||||
}
|
||||
|
||||
async function handleSearch(page = 1) {
|
||||
if (!query.trim()) return;
|
||||
setSearching(true);
|
||||
@@ -553,8 +572,18 @@ export default function KnowledgeBasePage() {
|
||||
|
||||
{/* 文档列表 */}
|
||||
<section className="mb-6">
|
||||
<div className="mb-2 text-xs uppercase text-slate-500">
|
||||
文档(共 {docTotal} 个)
|
||||
<div className="mb-2 flex items-center justify-between">
|
||||
<div className="text-xs uppercase text-slate-500">
|
||||
文档(共 {docTotal} 个)
|
||||
</div>
|
||||
{docTotal > 0 ? (
|
||||
<button
|
||||
className="rounded-lg border border-border bg-panel-2 px-2.5 py-1 text-xs text-slate-400 hover:text-red-400"
|
||||
onClick={handleClearDocs}
|
||||
>
|
||||
清空
|
||||
</button>
|
||||
) : null}
|
||||
</div>
|
||||
{docs.length === 0 ? (
|
||||
<div className="rounded-xl border border-dashed border-border bg-panel/50 px-4 py-10 text-center text-sm text-slate-500">
|
||||
|
||||
Reference in New Issue
Block a user