fix: folder

This commit is contained in:
wangdan-fit2cloud 2025-07-03 17:28:35 +08:00
parent 1d35700d2a
commit e61e4eb937
12 changed files with 33 additions and 36 deletions

View File

@ -17,14 +17,6 @@ const getUserProfile: (loading?: Ref<boolean>) => Promise<Result<User>> = (loadi
const getProfile: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
return get('/profile', undefined, loading)
}
/**
* profile
*/
// const getProfile: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
// return get('/profile', undefined, loading)
// }
/**
*
*/

View File

@ -97,6 +97,7 @@ watch(dialogVisible, (bool) => {
parent_id: '',
}
isEdit.value = false
FolderFormRef.value.resetFields()
}
})

View File

@ -1,7 +1,7 @@
<template>
<div class="folder-tree">
<el-input
v-model="filterText"
v-model.trim="filterText"
:placeholder="$t('common.search')"
prefix-icon="Search"
clearable
@ -161,6 +161,11 @@ const loading = ref(false)
watch(filterText, (val) => {
treeRef.value!.filter(val)
})
const filterNode = (value: string, data: Tree) => {
if (!value) return true
return data.name.toLowerCase().includes(value.toLowerCase())
}
let time: any
function handleMouseEnter(data: Tree) {
@ -173,10 +178,6 @@ function handleMouseleave() {
document.body.click()
}, 300)
}
const filterNode = (value: string, data: Tree) => {
if (!value) return true
return data.name.includes(value)
}
const handleNodeClick = (data: Tree) => {
emit('handleNodeClick', data)

View File

@ -16,7 +16,6 @@
:load="loadTree"
:placeholder="$t('views.chatLog.selectKnowledgePlaceholder')"
@change="changeKnowledge"
:loading="optionLoading"
>
<template #default="{ data }">
<div class="flex align-center">
@ -92,12 +91,15 @@ const defaultProps = {
label: 'name',
isLeaf: (data: any) =>
data.resource_type ? data.resource_type !== 'folder' : data.workspace_id === 'None',
disabled: (data: any, node: any) => {
return data.resource_type === 'folder' && node?.isLeaf
},
}
const loadTree = (node: any, resolve: any) => {
const loadTree = async (node: any, resolve: any) => {
if (node.isLeaf) return resolve([])
const folder_id = node.level === 0 ? user.getWorkspaceId() : node.data.id
loadSharedApi({ type: 'knowledge', systemType: props.apiType })
await loadSharedApi({ type: 'knowledge', systemType: props.apiType })
.getKnowledgeList({ folder_id: folder_id }, optionLoading)
.then((res: any) => {
resolve(res.data)

View File

@ -12,7 +12,7 @@
<el-divider class="ml-8 mr-8" direction="vertical" />
<el-button link @click="router.push({ path: '/' })">
<AppIcon class="mr-8" iconName="app-workspace" style="font-size: 16px"></AppIcon>
{{ '返回工作空间' }}</el-button
{{ $t('views.workspace.toWorkspace') }}</el-button
>
</div>
</div>

View File

@ -44,6 +44,7 @@
<script setup lang="ts">
import useStore from '@/stores'
const { theme } = useStore()
function toUrl(url: string) {
window.open(url, '_blank')
}

View File

@ -2,14 +2,17 @@ export default {
title: 'Workspace',
list: 'Workspace list',
name: 'Workspace name',
toWorkspace: 'Return to workspace',
delete: {
confirmTitle: 'Confirm to delete workspace:',
confirmContent: 'After deletion, all members in this space will be removed. Please proceed with caution.',
confirmContentNotDelete: 'This workspace contains knowledge base resources and application resources, and cannot be deleted.',
confirmContent:
'After deletion, all members in this space will be removed. Please proceed with caution.',
confirmContentNotDelete:
'This workspace contains knowledge base resources and application resources, and cannot be deleted.',
},
member: {
delete: {
confirmTitle: 'Confirm to remove member:',
}
}
};
},
},
}

View File

@ -2,6 +2,7 @@ export default {
title: '工作空间',
list: '工作空间列表',
name: '工作空间名称',
toWorkspace: '返回工作空间',
delete: {
confirmTitle: '是否删除工作空间:',
confirmContent: '删除后,该空间下的成员都会被移除,请谨慎操作。',
@ -12,4 +13,4 @@ export default {
confirmTitle: '是否移除成员:',
}
}
}
}

View File

@ -2,6 +2,7 @@ export default {
title: '工作空間',
list: '工作空間列表',
name: '工作空間名稱',
toWorkspace: '返回工作空間',
delete: {
confirmTitle: '是否刪除工作空間:',
confirmContent: '刪除後,該空間下的成員都會被移除,請謹慎操作。',
@ -10,6 +11,6 @@ export default {
member: {
delete: {
confirmTitle: '是否移除成員:',
}
}
};
},
},
}

View File

@ -3,14 +3,11 @@ import { type Ref } from 'vue'
import type { User } from '@/api/type/user'
import UserApi from '@/api/user/user'
import LoginApi from '@/api/user/login'
import { cloneDeep } from 'lodash'
import { useLocalStorage } from '@vueuse/core'
// import { defaultPlatformSetting } from '@/utils/theme'
import { localeConfigKey, getBrowserLang } from '@/locales/index'
import useThemeStore from './theme'
import { useElementPlusTheme } from 'use-element-plus-theme'
import { defaultPlatformSetting } from '@/utils/theme.ts'
import { defaultPlatformSetting } from '@/utils/theme'
import useLoginStore from './login'
export interface userStateTypes {
@ -137,10 +134,10 @@ const useUserStore = defineStore('user', {
if (this.isEE() || this.isPE()) {
await theme.theme()
} else {
theme.setTheme()
theme.themeInfo = {
...defaultPlatformSetting,
}
theme.setTheme()
}
resolve(ok)
})

View File

@ -2,7 +2,6 @@
.complex-search {
border: 1px solid var(--el-border-color);
border-radius: var(--el-border-radius-base);
width: 350px;
.el-select__wrapper {
box-shadow: none !important;
border-radius: var(--el-border-radius-base) 0 0 var(--el-border-radius-base);

View File

@ -16,7 +16,6 @@
lazy
:load="loadTree"
:placeholder="$t('views.chatLog.selectKnowledgePlaceholder')"
:loading="loading"
>
<template #default="{ data }">
<div class="flex align-center">
@ -93,14 +92,14 @@ const defaultProps = {
isLeaf: (data: any) =>
data.resource_type ? data.resource_type !== 'folder' : data.workspace_id === 'None',
disabled: (data: any, node: any) => {
return data.id === id
return data.id === id || (data.resource_type === 'folder' && node?.isLeaf)
},
}
const loadTree = (node: any, resolve: any) => {
const loadTree = async (node: any, resolve: any) => {
if (node.isLeaf) return resolve([])
const folder_id = node.level === 0 ? user.getWorkspaceId() : node.data.id
loadSharedApi({ type: 'knowledge', systemType: apiType.value })
await loadSharedApi({ type: 'knowledge', systemType: apiType.value })
.getKnowledgeList({ folder_id: folder_id }, loading)
.then((res: any) => {
resolve(res.data)