From b5047ca7e482e4a3a7875e3246cb0e0e368c8d02 Mon Sep 17 00:00:00 2001 From: Nelson <1475262689@qq.com> Date: Sun, 12 Jul 2026 15:51:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=81=A2=E5=A4=8D=E7=9F=A5=E8=AF=86?= =?UTF-8?q?=E5=BA=93=E5=BC=80=E5=85=B3=E5=B9=B6=E4=BF=AE=E5=A4=8D=E5=BC=B9?= =?UTF-8?q?=E5=B1=82=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/KnowledgeManagementView.vue | 25 +++++++++++++------ .../apps/admin-web/src/main.ts | 19 ++++++++++++++ 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/ai_knowledge_base_v2/apps/admin-web/src/components/KnowledgeManagementView.vue b/ai_knowledge_base_v2/apps/admin-web/src/components/KnowledgeManagementView.vue index 220b7e2..dbae91b 100644 --- a/ai_knowledge_base_v2/apps/admin-web/src/components/KnowledgeManagementView.vue +++ b/ai_knowledge_base_v2/apps/admin-web/src/components/KnowledgeManagementView.vue @@ -297,19 +297,24 @@ async function rollback(version: KnowledgeVersion) { } } -async function toggleOpen(item: KnowledgeItem) { +async function toggleOpen(item: KnowledgeItem): Promise { const next = item.status !== 1; if (!await confirmAction( next ? "开放后,该知识库将从用户下一条消息开始进入 Agent 动态知识目录。" : "关闭后,当前生成不受影响,从用户下一条消息开始无法检索该知识库。", next ? "开放知识库" : "关闭知识库", { confirmButtonText: next ? "确认开放" : "确认关闭", cancelButtonText: "取消", type: "warning" }, - )) return; + )) return false; + operatingId.value = item.id; try { await api.setKnowledgeOpen(item.id, next); ElMessage.success(next ? "知识库已开放" : "知识库已关闭"); - await load(); + if (detailOpen.value && detail.value?.knowledge.id === item.id) await refreshDetail(item.id); + return true; } catch (error) { ElMessage.error(errorMessage(error, next ? "知识库开放失败" : "知识库关闭失败")); + return false; + } finally { + operatingId.value = null; } } @@ -415,9 +420,9 @@ async function confirmAction( - + - + @@ -446,7 +451,7 @@ async function confirmAction( - + @@ -456,7 +461,7 @@ async function confirmAction( - + @@ -485,6 +490,12 @@ async function confirmAction( margin: 0; } +.knowledge-status-cell { + display: flex; + align-items: center; + gap: 10px; +} + .batch-edit-form { margin-top: 20px; } diff --git a/ai_knowledge_base_v2/apps/admin-web/src/main.ts b/ai_knowledge_base_v2/apps/admin-web/src/main.ts index 20c69a6..c70af7d 100644 --- a/ai_knowledge_base_v2/apps/admin-web/src/main.ts +++ b/ai_knowledge_base_v2/apps/admin-web/src/main.ts @@ -1,30 +1,40 @@ import { + ElAlert, ElButton, ElCollapse, ElCollapseItem, ElDatePicker, ElDivider, + ElDialog, ElDrawer, + ElDropdown, + ElDropdownItem, + ElDropdownMenu, ElEmpty, ElForm, ElFormItem, ElInput, ElInputNumber, ElOption, + ElProgress, ElSelect, ElSwitch, ElTabPane, ElTable, ElTableColumn, ElTabs, + ElTag, vLoading, } from "element-plus"; import "element-plus/theme-chalk/base.css"; +import "element-plus/theme-chalk/el-alert.css"; import "element-plus/theme-chalk/el-button.css"; import "element-plus/theme-chalk/el-collapse.css"; import "element-plus/theme-chalk/el-date-picker.css"; import "element-plus/theme-chalk/el-divider.css"; +import "element-plus/theme-chalk/el-dialog.css"; import "element-plus/theme-chalk/el-drawer.css"; +import "element-plus/theme-chalk/el-dropdown.css"; import "element-plus/theme-chalk/el-empty.css"; import "element-plus/theme-chalk/el-form.css"; import "element-plus/theme-chalk/el-input.css"; @@ -34,10 +44,12 @@ import "element-plus/theme-chalk/el-message.css"; import "element-plus/theme-chalk/el-message-box.css"; import "element-plus/theme-chalk/el-option.css"; import "element-plus/theme-chalk/el-overlay.css"; +import "element-plus/theme-chalk/el-progress.css"; import "element-plus/theme-chalk/el-select.css"; import "element-plus/theme-chalk/el-switch.css"; import "element-plus/theme-chalk/el-table.css"; import "element-plus/theme-chalk/el-tabs.css"; +import "element-plus/theme-chalk/el-tag.css"; import { createApp } from "vue"; import zhCn from "element-plus/es/locale/lang/zh-cn"; @@ -48,24 +60,31 @@ const app = createApp(App); app.config.globalProperties.$ELEMENT = { locale: zhCn }; [ + ElAlert, ElButton, ElCollapse, ElCollapseItem, ElDatePicker, ElDivider, + ElDialog, ElDrawer, + ElDropdown, + ElDropdownItem, + ElDropdownMenu, ElEmpty, ElForm, ElFormItem, ElInput, ElInputNumber, ElOption, + ElProgress, ElSelect, ElSwitch, ElTabPane, ElTable, ElTableColumn, ElTabs, + ElTag, ].forEach((component) => { app.use(component); });