From cc3607936ed7bf59ecd7be6815cc2b0ba96cfa46 Mon Sep 17 00:00:00 2001 From: wangdan-fit2cloud Date: Tue, 9 Dec 2025 19:09:34 +0800 Subject: [PATCH] perf: Fix some style bugs --- .../api/system-resource-management/folder.ts | 33 +++++++++++++++++++ ui/src/api/{ => workspace}/folder.ts | 0 .../folder-tree/CreateFolderDialog.vue | 4 +-- .../components/folder-tree/MoveToDialog.vue | 6 ++-- ui/src/components/folder-tree/index.vue | 2 +- .../application/index.vue | 8 ++--- .../knowledge-inner/index.vue | 6 ++-- .../knowledge/index.vue | 6 ++-- ui/src/stores/modules/folder.ts | 14 +++++--- ui/src/utils/dynamics-api/shared-api.ts | 5 ++- .../component/AddKnowledgeDialog.vue | 2 +- .../application/component/ToolDialog.vue | 2 +- ui/src/views/application/index.vue | 18 +++++----- ui/src/views/knowledge/index.vue | 16 +++++---- ui/src/views/tool/index.vue | 6 ++-- 15 files changed, 88 insertions(+), 40 deletions(-) create mode 100644 ui/src/api/system-resource-management/folder.ts rename ui/src/api/{ => workspace}/folder.ts (100%) diff --git a/ui/src/api/system-resource-management/folder.ts b/ui/src/api/system-resource-management/folder.ts new file mode 100644 index 000000000..fe903ef60 --- /dev/null +++ b/ui/src/api/system-resource-management/folder.ts @@ -0,0 +1,33 @@ +import { Result } from '@/request/Result' +import { get, post, del, put } from '@/request/index' +import { type Ref } from 'vue' + +import useStore from '@/stores' +const prefix: any = { _value: '/workspace/' } +Object.defineProperty(prefix, 'value', { + get: function () { + const { user } = useStore() + return this._value + user.getWorkspaceId() + }, +}) + +/** + * 获得文件夹列表 + * @params 参数 + * source : APPLICATION, KNOWLEDGE, TOOL + * data : {name: string} + */ +const getFolder: ( + source: string, + data?: any, + loading?: Ref, +) => Promise>> = (source, data, loading) => { + return get(`${prefix.value}/${source}/folder`, data, loading) +} + + + +export default { + getFolder, + +} diff --git a/ui/src/api/folder.ts b/ui/src/api/workspace/folder.ts similarity index 100% rename from ui/src/api/folder.ts rename to ui/src/api/workspace/folder.ts diff --git a/ui/src/components/folder-tree/CreateFolderDialog.vue b/ui/src/components/folder-tree/CreateFolderDialog.vue index e8f8bfe97..38440e7bc 100644 --- a/ui/src/components/folder-tree/CreateFolderDialog.vue +++ b/ui/src/components/folder-tree/CreateFolderDialog.vue @@ -50,7 +50,7 @@ - + diff --git a/ui/src/components/workflow-dropdown-menu/knowledge-inner/index.vue b/ui/src/components/workflow-dropdown-menu/knowledge-inner/index.vue index 969ed5959..440f867d3 100644 --- a/ui/src/components/workflow-dropdown-menu/knowledge-inner/index.vue +++ b/ui/src/components/workflow-dropdown-menu/knowledge-inner/index.vue @@ -210,7 +210,7 @@ const toolTreeData = ref([]) const toolList = ref([]) async function getToolFolder() { - const res: any = await folder.asyncGetFolder(SourceTypeEnum.TOOL, {}, loading) + const res: any = await folder.asyncGetFolder(SourceTypeEnum.TOOL, {}, apiType.value, loading) toolTreeData.value = res.data folder.setCurrentFolder(res.data?.[0] || {}) } @@ -237,7 +237,9 @@ function folderClickHandle(row: any) { async function handleClick(val: string) { if (['DATA_SOURCE_TOOL', 'CUSTOM_TOOL'].includes(val)) { - await getToolFolder() + if (!route.path.includes('shared')) { + await getToolFolder() + } getToolList() } } diff --git a/ui/src/components/workflow-dropdown-menu/knowledge/index.vue b/ui/src/components/workflow-dropdown-menu/knowledge/index.vue index 26735f38e..2dcf5a4df 100644 --- a/ui/src/components/workflow-dropdown-menu/knowledge/index.vue +++ b/ui/src/components/workflow-dropdown-menu/knowledge/index.vue @@ -230,7 +230,7 @@ const toolTreeData = ref([]) const toolList = ref([]) async function getToolFolder() { - const res: any = await folder.asyncGetFolder(SourceTypeEnum.TOOL, {}, loading) + const res: any = await folder.asyncGetFolder(SourceTypeEnum.TOOL, {}, apiType.value, loading) toolTreeData.value = res.data folder.setCurrentFolder(res.data?.[0] || {}) } @@ -257,7 +257,9 @@ function folderClickHandle(row: any) { async function handleClick(val: string) { if (['DATA_SOURCE_TOOL', 'CUSTOM_TOOL'].includes(val)) { - await getToolFolder() + if (!route.path.includes('shared')) { + await getToolFolder() + } getToolList() } } diff --git a/ui/src/stores/modules/folder.ts b/ui/src/stores/modules/folder.ts index 2b3d7a87e..ded573e4d 100644 --- a/ui/src/stores/modules/folder.ts +++ b/ui/src/stores/modules/folder.ts @@ -1,6 +1,6 @@ import { defineStore } from 'pinia' import { type Ref } from 'vue' -import folderApi from '@/api/folder' +import { loadSharedApi } from '@/utils/dynamics-api/shared-api' const useFolderStore = defineStore('folder', { state: () => ({ @@ -10,14 +10,18 @@ const useFolderStore = defineStore('folder', { setCurrentFolder(folder: any) { this.currentFolder = folder }, - async asyncGetFolder(source: string, data: any, loading?: Ref) { + async asyncGetFolder(source: string, data: any, systemType: any, loading?: Ref) { return new Promise((resolve, reject) => { - folderApi + loadSharedApi({ + type: 'folder', + isShared: this.currentFolder?.id === 'share', + systemType, + }) .getFolder(source, data, loading) - .then((res) => { + .then((res: any) => { resolve(res) }) - .catch((error) => { + .catch((error: any) => { reject(error) }) }) diff --git a/ui/src/utils/dynamics-api/shared-api.ts b/ui/src/utils/dynamics-api/shared-api.ts index 32af58aad..3372a19b3 100644 --- a/ui/src/utils/dynamics-api/shared-api.ts +++ b/ui/src/utils/dynamics-api/shared-api.ts @@ -19,6 +19,7 @@ import paragraphSystemShareApi from '@/api/system-shared/paragraph' import problemSystemShareApi from '@/api/system-shared/problem' import chatUserSystemShareApi from '@/api/system-shared/chat-user' import workspaceApi from '@/api/workspace/workspace' +import folderWorkspaceApi from '@/api/workspace/folder' import systemUserApi from '@/api/user/user' import ToolResourceApi from '@/api/system-resource-management/tool' import knowledgeResourceApi from '@/api/system-resource-management/knowledge' @@ -32,7 +33,7 @@ import applicationKeyResourceApi from '@/api/system-resource-management/applicat import workflowVersionResourceApi from '@/api/system-resource-management/workflow-version' import chatLogResourceApi from '@/api/system-resource-management/chat-log' import resourceAuthorizationResourceApi from '@/api/system-resource-management/resource-authorization' - +import folderResourceApi from '@/api/system-resource-management/folder' // 普通 API const workspaceApiMap = { knowledge: knowledgeWorkspaceApi, @@ -48,6 +49,7 @@ const workspaceApiMap = { workflowVersion: workflowVersionWorkspaceApi, chatLog: chatLogWorkspaceApi, resourceAuthorization: resourceAuthorizationWorkspaceApi, + folder: folderWorkspaceApi, } as any // 系统分享 API @@ -76,6 +78,7 @@ const systemManageApiMap = { workflowVersion: workflowVersionResourceApi, chatLog: chatLogResourceApi, resourceAuthorization: resourceAuthorizationResourceApi, + folder: folderResourceApi, } as any const data = { diff --git a/ui/src/views/application/component/AddKnowledgeDialog.vue b/ui/src/views/application/component/AddKnowledgeDialog.vue index e508327e9..f9356986c 100644 --- a/ui/src/views/application/component/AddKnowledgeDialog.vue +++ b/ui/src/views/application/component/AddKnowledgeDialog.vue @@ -212,7 +212,7 @@ function folderClickHandle(row: any) { function getFolder() { const params = {} - folder.asyncGetFolder('KNOWLEDGE', params, folderLoading).then((res: any) => { + folder.asyncGetFolder('KNOWLEDGE', params,apiType.value, folderLoading).then((res: any) => { folderList.value = res.data currentFolder.value = res.data?.[0] || {} getList() diff --git a/ui/src/views/application/component/ToolDialog.vue b/ui/src/views/application/component/ToolDialog.vue index b3f86ab1b..01070016a 100644 --- a/ui/src/views/application/component/ToolDialog.vue +++ b/ui/src/views/application/component/ToolDialog.vue @@ -183,7 +183,7 @@ function folderClickHandle(row: any) { function getFolder() { const params = {} - folder.asyncGetFolder('TOOL', params, folderLoading).then((res: any) => { + folder.asyncGetFolder('TOOL', params, apiType.value, folderLoading).then((res: any) => { folderList.value = res.data currentFolder.value = res.data?.[0] || {} getList() diff --git a/ui/src/views/application/index.vue b/ui/src/views/application/index.vue index 32a051f01..0c5d513a2 100644 --- a/ui/src/views/application/index.vue +++ b/ui/src/views/application/index.vue @@ -646,14 +646,16 @@ function openCreateFolder() { function getFolder(bool?: boolean) { const params = {} - folder.asyncGetFolder(SourceTypeEnum.APPLICATION, params, loading).then((res: any) => { - folderList.value = res.data - if (bool) { - // 初始化刷新 - folder.setCurrentFolder(res.data?.[0] || {}) - } - getList() - }) + folder + .asyncGetFolder(SourceTypeEnum.APPLICATION, params, apiType.value, loading) + .then((res: any) => { + folderList.value = res.data + if (bool) { + // 初始化刷新 + folder.setCurrentFolder(res.data?.[0] || {}) + } + getList() + }) } function clickFolder(item: any) { diff --git a/ui/src/views/knowledge/index.vue b/ui/src/views/knowledge/index.vue index 292cea7a0..d8913fb8a 100644 --- a/ui/src/views/knowledge/index.vue +++ b/ui/src/views/knowledge/index.vue @@ -52,13 +52,15 @@ const folderList = ref([]) function getFolder(bool?: boolean) { const params = {} - folder.asyncGetFolder(SourceTypeEnum.KNOWLEDGE, params, loading).then((res: any) => { - folderList.value = res.data - if (bool) { - // 初始化刷新 - folder.setCurrentFolder(res.data?.[0] || {}) - } - }) + folder + .asyncGetFolder(SourceTypeEnum.KNOWLEDGE, params, apiType.value, loading) + .then((res: any) => { + folderList.value = res.data + if (bool) { + // 初始化刷新 + folder.setCurrentFolder(res.data?.[0] || {}) + } + }) } function folderClickHandle(row: any) { diff --git a/ui/src/views/tool/index.vue b/ui/src/views/tool/index.vue index da808895a..5e93f32e0 100644 --- a/ui/src/views/tool/index.vue +++ b/ui/src/views/tool/index.vue @@ -26,7 +26,9 @@ {{ $t('common.status.all') }} {{ $t('views.tool.title') }} MCP - {{ $t('views.tool.dataSource.title') }} + {{ + $t('views.tool.dataSource.title') + }} @@ -65,7 +67,7 @@ const folderList = ref([]) function getFolder(bool?: boolean) { const params = {} - folder.asyncGetFolder(SourceTypeEnum.TOOL, params, loading).then((res: any) => { + folder.asyncGetFolder(SourceTypeEnum.TOOL, params, apiType.value, loading).then((res: any) => { folderList.value = res.data if (bool) { // 初始化刷新