Skip to content

Commit 4b27725

Browse files
committed
feat: knowledge setting route
1 parent 842a376 commit 4b27725

6 files changed

Lines changed: 45 additions & 43 deletions

File tree

‎ui/src/views/VIEW_README.md‎

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,6 @@ src/views/knowledge/
191191
│ ├── KnowledgeCard.vue
192192
│ └── action-dropdown/
193193
│ ├── index.ts
194-
│ ├── SettingKnowledgeAction.vue # 跳转知识库设置
195194
│ ├── EmbeddingKnowledgeAction.vue # 提交知识库向量化任务
196195
│ ├── GenerateQuestionsAction.vue # 知识库生成关联问题
197196
│ ├── sync-knowledge-action/ # Web 知识库同步入口与方式选择弹窗
@@ -216,7 +215,7 @@ src/views/knowledge/
216215
`KnowledgeCard` 只负责展示、选择状态和 `action-dropdown` 插槽;页面传入完整 Knowledge API,
217216
组合单项转移、删除 Action,并管理批量选择、全选、批量转移与批量删除。工作空间共享知识库保持只读,
218217
不传操作插槽并传入 `disabled`;System 共享知识库页传入 `shared`、不传 `disabled`,保留共享标识,
219-
并组合同步、向量化、生成问题、分词索引、MCP 配置、关联资源、导出及删除等菜单操作。
218+
并组合同步、向量化、生成问题、设置、分词索引、MCP 配置、关联资源、导出及删除等菜单操作。
220219
`GenerateQuestionsAction` 在非共享知识库菜单提供“生成问题”,复用公共
221220
`GenerateQuestionsDialog`,打开时固定知识库 ID,提交知识库生成接口;共用页面 loading,
222221
成功提示并关闭,失败保留表单。不新增权限判断。
@@ -228,10 +227,12 @@ src/views/knowledge/
228227
更新已变更文档的分段,其他方式展示数据覆盖提示;调用
229228
`putSyncWebKnowledge`,成功提示“同步任务发送成功”并关闭。复用页面操作 loading,
230229
提交期间禁止重复提交和关闭,失败保留弹窗与当前选择。
231-
`SettingKnowledgeAction` 暂不增加权限判断,点击后携带当前
232-
`workspaceId`、知识库 ID 和 `KNOWLEDGE_TYPE_MAP[knowledge.type]`,通用类型跳转
233-
`workspace-knowledge-setting`,其他类型直接跳转 `workspace-knowledge-base-setting`;
234-
阻止事件冒泡,避免同时触发卡片详情跳转。
230+
设置菜单由 Workspace、System 资源管理和 System 共享知识库列表各自使用 `MkDropdownItem` 渲染,
231+
通过页面的 `handleOpenKnowledgeSetting` 跳转,不单独封装 Action,也不新增权限判断。
232+
通用类型进入各自的 `workspace-knowledge-setting`、`system-resource-knowledge-setting`、
233+
`system-shared-knowledge-setting`,其他类型进入对应前缀的 `knowledge-base-setting`。
234+
三个入口均传入知识库 ID 和 `KNOWLEDGE_TYPE_MAP[knowledge.type]`;仅 Workspace 传入当前
235+
`workspaceId`。点击阻止事件冒泡,避免同时进入卡片详情;Workspace 共享知识库仍不展示操作菜单。
235236
“设置”之后依次组合 `KeywordIndexKnowledgeAction` 和 `McpConfigKnowledgeAction`,接收完整
236237
Knowledge API 并复用页面操作 loading。分词索引不增加确认弹窗,调用成功后只提示“操作成功”;
237238
MCP 配置沿用工具的只读文本与悬浮复制交互,专属弹窗按需挂载、关闭后卸载。
@@ -412,8 +413,8 @@ src/views/system/shared-resources/
412413
携带知识库 ID 和由 `KNOWLEDGE_TYPE_MAP` 转换的类型。资源管理知识库表格在向量化按钮旁组合
413414
`icon_admin_outlined` 详情按钮,进入 `system-resource-knowledge-detail`。两个入口不携带 Workspace ID。
414415
创建、模板创建和导入均使用 System 共享接口;Web 同步、向量化、关联问题、分词索引、
415-
MCP 配置、关联资源、导出与删除通过复用 Action 组合,授权工作空间暂保留 TODO,不组合工作空间专用的设置、
416-
文件夹移动或批量操作。
416+
MCP 配置、关联资源、导出与删除通过复用 Action 组合,设置菜单由页面直接跳转到 System 共享设置页。
417+
授权工作空间暂保留 TODO,不组合工作空间专用的文件夹移动或批量操作。
417418

418419
System 用户页面按业务流程归拢操作入口和专属 Dialog。入口组件管理弹窗 Ref、打开动作并转发
419420
`refresh`;列表页负责查询、批量选择和刷新策略,创建与编辑共用的 `UserFromDrawer` 仍由页面管理。

‎ui/src/views/knowledge/index.vue‎

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import {
2424
McpConfigKnowledgeAction,
2525
MoveKnowledgeAction,
2626
RelatedResourcesKnowledgeAction,
27-
SettingKnowledgeAction,
2827
SyncKnowledgeAction,
2928
} from './knowledge-card/action-dropdown'
3029
import MoveToDialog from '@/components/business/folder-tree/MoveToDialog.vue'
@@ -41,6 +40,13 @@ function handleOpenKnowledge(knowledge: KnowledgeItem) {
4140
})
4241
}
4342
43+
function handleOpenKnowledgeSetting(knowledge: KnowledgeItem) {
44+
void router.push({
45+
name: knowledge.type === KNOWLEDGE_TYPE.BASE ? 'workspace-knowledge-setting' : 'workspace-knowledge-base-setting',
46+
params: { workspaceId: route.params.workspaceId, knowledgeId: knowledge.id, type: KNOWLEDGE_TYPE_MAP[knowledge.type] },
47+
})
48+
}
49+
4450
/* 当前文件夹 */
4551
const allKnowledgeFolder = FOLDER_ENTRIES[RESOURCE_TYPE.KNOWLEDGE].all
4652
const currentFolderId = ref<string>(FOLDER_ENTRY_ID.ALL)
@@ -268,7 +274,10 @@ function handleBatchDelete() {
268274
<GenerateQuestionsAction v-model:loading="knowledgeOperationLoading" label="生成问题" :api="KnowledgeApi" :knowledge="knowledge" />
269275

270276
<!-- 设置 -->
271-
<SettingKnowledgeAction label="设置" :knowledge="knowledge" />
277+
<MkDropdownItem @click.stop="handleOpenKnowledgeSetting(knowledge)">
278+
<template #icon><MkIcon name="icon_setting" /></template>
279+
设置
280+
</MkDropdownItem>
272281
<!-- 分词索引 -->
273282
<KeywordIndexKnowledgeAction
274283
v-model:loading="knowledgeOperationLoading"

‎ui/src/views/knowledge/knowledge-card/action-dropdown/SettingKnowledgeAction.vue‎

Lines changed: 0 additions & 28 deletions
This file was deleted.

‎ui/src/views/knowledge/knowledge-card/action-dropdown/index.ts‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ export { default as EmbeddingKnowledgeAction } from './EmbeddingKnowledgeAction.
55
export { default as KeywordIndexKnowledgeAction } from './KeywordIndexKnowledgeAction.vue'
66
export { default as McpConfigKnowledgeAction } from './mcp-config-action/McpConfigKnowledgeAction.vue'
77
export { default as ExportKnowledgeAction } from './ExportKnowledgeAction.vue'
8-
export { default as SettingKnowledgeAction } from './SettingKnowledgeAction.vue'
98
export { default as MoveKnowledgeAction } from './MoveKnowledgeAction.vue'
109
export { default as DeleteKnowledgeAction } from './DeleteKnowledgeAction.vue'
1110
export { default as AuthorizeKnowledgeAction } from './AuthorizeKnowledgeAction.vue'

‎ui/src/views/system/resource-management/knowledge/index.vue‎

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import {
2020
KeywordIndexKnowledgeAction,
2121
McpConfigKnowledgeAction,
2222
RelatedResourcesKnowledgeAction,
23-
SettingKnowledgeAction,
2423
SyncKnowledgeAction,
2524
} from '@/views/knowledge/knowledge-card/action-dropdown/index.ts'
2625
@@ -35,6 +34,13 @@ function handleOpenKnowledge(knowledge: KnowledgeItem) {
3534
})
3635
}
3736
37+
function handleOpenKnowledgeSetting(knowledge: KnowledgeItem) {
38+
void router.push({
39+
name: knowledge.type === KNOWLEDGE_TYPE.BASE ? 'system-resource-knowledge-setting' : 'system-resource-knowledge-base-setting',
40+
params: { knowledgeId: knowledge.id, type: KNOWLEDGE_TYPE_MAP[knowledge.type] },
41+
})
42+
}
43+
3844
/* 工具分页与筛选 */
3945
const loading = ref(false)
4046
const knowledgeOperationLoading = ref(false)
@@ -157,6 +163,8 @@ onMounted(() => {
157163
<el-table-column label="操作" width="150" fixed="right">
158164
<template #default="{ row }">
159165
<div class="flex-align-center">
166+
<!-- 进入知识库详情 -->
167+
<MkAction display="button" label="管理" icon="icon_admin_outlined" @click="handleOpenKnowledge(row)" />
160168
<!-- 向量化 -->
161169
<EmbeddingKnowledgeAction
162170
v-model:loading="knowledgeOperationLoading"
@@ -165,8 +173,6 @@ onMounted(() => {
165173
:api="SystemResourceKnowledgeApi"
166174
:knowledge="row"
167175
/>
168-
<!-- 进入知识库详情 -->
169-
<MkAction display="button" label="知识库详情" icon="icon_admin_outlined" @click="handleOpenKnowledge(row)" />
170176
<MkTableMoreDropdown>
171177
<!-- 同步 Web 知识库 -->
172178
<SyncKnowledgeAction
@@ -184,7 +190,10 @@ onMounted(() => {
184190
:knowledge="row"
185191
/>
186192
<!-- 设置 -->
187-
<SettingKnowledgeAction label="设置" :knowledge="row" />
193+
<MkDropdownItem @click.stop="handleOpenKnowledgeSetting(row)">
194+
<template #icon><MkIcon name="icon_setting" /></template>
195+
设置
196+
</MkDropdownItem>
188197
<!-- 分词索引 -->
189198
<KeywordIndexKnowledgeAction
190199
v-model:loading="knowledgeOperationLoading"

‎ui/src/views/system/shared-resources/knowledge/index.vue‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,13 @@ function handleOpenKnowledge(knowledge: KnowledgeItem) {
3131
})
3232
}
3333
34+
function handleOpenKnowledgeSetting(knowledge: KnowledgeItem) {
35+
void router.push({
36+
name: knowledge.type === KNOWLEDGE_TYPE.BASE ? 'system-shared-knowledge-setting' : 'system-shared-knowledge-base-setting',
37+
params: { knowledgeId: knowledge.id, type: KNOWLEDGE_TYPE_MAP[knowledge.type] },
38+
})
39+
}
40+
3441
/* 共享知识库查询 */
3542
const knowledgeData = ref<KnowledgeItem[]>([])
3643
const knowledgeQuery = ref<Dict<unknown>>()
@@ -114,6 +121,11 @@ function handleSearchChange(query?: Dict<unknown>) {
114121
:api="SystemSharedKnowledgeApi"
115122
:knowledge="knowledge"
116123
/>
124+
<!-- 设置 -->
125+
<MkDropdownItem @click.stop="handleOpenKnowledgeSetting(knowledge)">
126+
<template #icon><MkIcon name="icon_setting" /></template>
127+
设置
128+
</MkDropdownItem>
117129
<!-- 分词索引 -->
118130
<KeywordIndexKnowledgeAction
119131
v-model:loading="knowledgeOperationLoading"

0 commit comments

Comments
 (0)