fix: folder
This commit is contained in:
parent
1d35700d2a
commit
e61e4eb937
@ -17,14 +17,6 @@ const getUserProfile: (loading?: Ref<boolean>) => Promise<Result<User>> = (loadi
|
|||||||
const getProfile: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
|
const getProfile: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
|
||||||
return get('/profile', undefined, loading)
|
return get('/profile', undefined, loading)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取版本profile
|
|
||||||
*/
|
|
||||||
// const getProfile: (loading?: Ref<boolean>) => Promise<Result<any>> = (loading) => {
|
|
||||||
// return get('/profile', undefined, loading)
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取全部用户
|
* 获取全部用户
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -97,6 +97,7 @@ watch(dialogVisible, (bool) => {
|
|||||||
parent_id: '',
|
parent_id: '',
|
||||||
}
|
}
|
||||||
isEdit.value = false
|
isEdit.value = false
|
||||||
|
FolderFormRef.value.resetFields()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="folder-tree">
|
<div class="folder-tree">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="filterText"
|
v-model.trim="filterText"
|
||||||
:placeholder="$t('common.search')"
|
:placeholder="$t('common.search')"
|
||||||
prefix-icon="Search"
|
prefix-icon="Search"
|
||||||
clearable
|
clearable
|
||||||
@ -161,6 +161,11 @@ const loading = ref(false)
|
|||||||
watch(filterText, (val) => {
|
watch(filterText, (val) => {
|
||||||
treeRef.value!.filter(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
|
let time: any
|
||||||
|
|
||||||
function handleMouseEnter(data: Tree) {
|
function handleMouseEnter(data: Tree) {
|
||||||
@ -173,10 +178,6 @@ function handleMouseleave() {
|
|||||||
document.body.click()
|
document.body.click()
|
||||||
}, 300)
|
}, 300)
|
||||||
}
|
}
|
||||||
const filterNode = (value: string, data: Tree) => {
|
|
||||||
if (!value) return true
|
|
||||||
return data.name.includes(value)
|
|
||||||
}
|
|
||||||
|
|
||||||
const handleNodeClick = (data: Tree) => {
|
const handleNodeClick = (data: Tree) => {
|
||||||
emit('handleNodeClick', data)
|
emit('handleNodeClick', data)
|
||||||
|
|||||||
@ -16,7 +16,6 @@
|
|||||||
:load="loadTree"
|
:load="loadTree"
|
||||||
:placeholder="$t('views.chatLog.selectKnowledgePlaceholder')"
|
:placeholder="$t('views.chatLog.selectKnowledgePlaceholder')"
|
||||||
@change="changeKnowledge"
|
@change="changeKnowledge"
|
||||||
:loading="optionLoading"
|
|
||||||
>
|
>
|
||||||
<template #default="{ data }">
|
<template #default="{ data }">
|
||||||
<div class="flex align-center">
|
<div class="flex align-center">
|
||||||
@ -92,12 +91,15 @@ const defaultProps = {
|
|||||||
label: 'name',
|
label: 'name',
|
||||||
isLeaf: (data: any) =>
|
isLeaf: (data: any) =>
|
||||||
data.resource_type ? data.resource_type !== 'folder' : data.workspace_id === 'None',
|
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([])
|
if (node.isLeaf) return resolve([])
|
||||||
const folder_id = node.level === 0 ? user.getWorkspaceId() : node.data.id
|
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)
|
.getKnowledgeList({ folder_id: folder_id }, optionLoading)
|
||||||
.then((res: any) => {
|
.then((res: any) => {
|
||||||
resolve(res.data)
|
resolve(res.data)
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
<el-divider class="ml-8 mr-8" direction="vertical" />
|
<el-divider class="ml-8 mr-8" direction="vertical" />
|
||||||
<el-button link @click="router.push({ path: '/' })">
|
<el-button link @click="router.push({ path: '/' })">
|
||||||
<AppIcon class="mr-8" iconName="app-workspace" style="font-size: 16px"></AppIcon>
|
<AppIcon class="mr-8" iconName="app-workspace" style="font-size: 16px"></AppIcon>
|
||||||
{{ '返回工作空间' }}</el-button
|
{{ $t('views.workspace.toWorkspace') }}</el-button
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -44,6 +44,7 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import useStore from '@/stores'
|
import useStore from '@/stores'
|
||||||
const { theme } = useStore()
|
const { theme } = useStore()
|
||||||
|
|
||||||
function toUrl(url: string) {
|
function toUrl(url: string) {
|
||||||
window.open(url, '_blank')
|
window.open(url, '_blank')
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,14 +2,17 @@ export default {
|
|||||||
title: 'Workspace',
|
title: 'Workspace',
|
||||||
list: 'Workspace list',
|
list: 'Workspace list',
|
||||||
name: 'Workspace name',
|
name: 'Workspace name',
|
||||||
|
toWorkspace: 'Return to workspace',
|
||||||
delete: {
|
delete: {
|
||||||
confirmTitle: 'Confirm to delete workspace:',
|
confirmTitle: 'Confirm to delete workspace:',
|
||||||
confirmContent: 'After deletion, all members in this space will be removed. Please proceed with caution.',
|
confirmContent:
|
||||||
confirmContentNotDelete: 'This workspace contains knowledge base resources and application resources, and cannot be deleted.',
|
'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: {
|
member: {
|
||||||
delete: {
|
delete: {
|
||||||
confirmTitle: 'Confirm to remove member:',
|
confirmTitle: 'Confirm to remove member:',
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
};
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@ export default {
|
|||||||
title: '工作空间',
|
title: '工作空间',
|
||||||
list: '工作空间列表',
|
list: '工作空间列表',
|
||||||
name: '工作空间名称',
|
name: '工作空间名称',
|
||||||
|
toWorkspace: '返回工作空间',
|
||||||
delete: {
|
delete: {
|
||||||
confirmTitle: '是否删除工作空间:',
|
confirmTitle: '是否删除工作空间:',
|
||||||
confirmContent: '删除后,该空间下的成员都会被移除,请谨慎操作。',
|
confirmContent: '删除后,该空间下的成员都会被移除,请谨慎操作。',
|
||||||
|
|||||||
@ -2,6 +2,7 @@ export default {
|
|||||||
title: '工作空間',
|
title: '工作空間',
|
||||||
list: '工作空間列表',
|
list: '工作空間列表',
|
||||||
name: '工作空間名稱',
|
name: '工作空間名稱',
|
||||||
|
toWorkspace: '返回工作空間',
|
||||||
delete: {
|
delete: {
|
||||||
confirmTitle: '是否刪除工作空間:',
|
confirmTitle: '是否刪除工作空間:',
|
||||||
confirmContent: '刪除後,該空間下的成員都會被移除,請謹慎操作。',
|
confirmContent: '刪除後,該空間下的成員都會被移除,請謹慎操作。',
|
||||||
@ -10,6 +11,6 @@ export default {
|
|||||||
member: {
|
member: {
|
||||||
delete: {
|
delete: {
|
||||||
confirmTitle: '是否移除成員:',
|
confirmTitle: '是否移除成員:',
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
};
|
}
|
||||||
|
|||||||
@ -3,14 +3,11 @@ import { type Ref } from 'vue'
|
|||||||
import type { User } from '@/api/type/user'
|
import type { User } from '@/api/type/user'
|
||||||
import UserApi from '@/api/user/user'
|
import UserApi from '@/api/user/user'
|
||||||
import LoginApi from '@/api/user/login'
|
import LoginApi from '@/api/user/login'
|
||||||
import { cloneDeep } from 'lodash'
|
|
||||||
import { useLocalStorage } from '@vueuse/core'
|
import { useLocalStorage } from '@vueuse/core'
|
||||||
// import { defaultPlatformSetting } from '@/utils/theme'
|
|
||||||
|
|
||||||
import { localeConfigKey, getBrowserLang } from '@/locales/index'
|
import { localeConfigKey, getBrowserLang } from '@/locales/index'
|
||||||
import useThemeStore from './theme'
|
import useThemeStore from './theme'
|
||||||
import { useElementPlusTheme } from 'use-element-plus-theme'
|
import { defaultPlatformSetting } from '@/utils/theme'
|
||||||
import { defaultPlatformSetting } from '@/utils/theme.ts'
|
|
||||||
import useLoginStore from './login'
|
import useLoginStore from './login'
|
||||||
|
|
||||||
export interface userStateTypes {
|
export interface userStateTypes {
|
||||||
@ -137,10 +134,10 @@ const useUserStore = defineStore('user', {
|
|||||||
if (this.isEE() || this.isPE()) {
|
if (this.isEE() || this.isPE()) {
|
||||||
await theme.theme()
|
await theme.theme()
|
||||||
} else {
|
} else {
|
||||||
|
theme.setTheme()
|
||||||
theme.themeInfo = {
|
theme.themeInfo = {
|
||||||
...defaultPlatformSetting,
|
...defaultPlatformSetting,
|
||||||
}
|
}
|
||||||
theme.setTheme()
|
|
||||||
}
|
}
|
||||||
resolve(ok)
|
resolve(ok)
|
||||||
})
|
})
|
||||||
|
|||||||
@ -2,7 +2,6 @@
|
|||||||
.complex-search {
|
.complex-search {
|
||||||
border: 1px solid var(--el-border-color);
|
border: 1px solid var(--el-border-color);
|
||||||
border-radius: var(--el-border-radius-base);
|
border-radius: var(--el-border-radius-base);
|
||||||
width: 350px;
|
|
||||||
.el-select__wrapper {
|
.el-select__wrapper {
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
border-radius: var(--el-border-radius-base) 0 0 var(--el-border-radius-base);
|
border-radius: var(--el-border-radius-base) 0 0 var(--el-border-radius-base);
|
||||||
|
|||||||
@ -16,7 +16,6 @@
|
|||||||
lazy
|
lazy
|
||||||
:load="loadTree"
|
:load="loadTree"
|
||||||
:placeholder="$t('views.chatLog.selectKnowledgePlaceholder')"
|
:placeholder="$t('views.chatLog.selectKnowledgePlaceholder')"
|
||||||
:loading="loading"
|
|
||||||
>
|
>
|
||||||
<template #default="{ data }">
|
<template #default="{ data }">
|
||||||
<div class="flex align-center">
|
<div class="flex align-center">
|
||||||
@ -93,14 +92,14 @@ const defaultProps = {
|
|||||||
isLeaf: (data: any) =>
|
isLeaf: (data: any) =>
|
||||||
data.resource_type ? data.resource_type !== 'folder' : data.workspace_id === 'None',
|
data.resource_type ? data.resource_type !== 'folder' : data.workspace_id === 'None',
|
||||||
disabled: (data: any, node: any) => {
|
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([])
|
if (node.isLeaf) return resolve([])
|
||||||
const folder_id = node.level === 0 ? user.getWorkspaceId() : node.data.id
|
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)
|
.getKnowledgeList({ folder_id: folder_id }, loading)
|
||||||
.then((res: any) => {
|
.then((res: any) => {
|
||||||
resolve(res.data)
|
resolve(res.data)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user