fix: document

This commit is contained in:
wangdan-fit2cloud 2025-06-19 18:39:52 +08:00
parent a6b8cc4a31
commit 37c9ef3087
12 changed files with 91 additions and 81 deletions

View File

@ -165,7 +165,7 @@ function changeMenu(id: string) {
function getKnowledge() {
loading.value = true
knowledge
.asyncGetRootKnowledge()
.asyncGetFolderKnowledge()
.then((res: any) => {
list.value = res.data
common.saveBreadcrumb(list.value)

View File

@ -31,7 +31,7 @@ const useKnowledgeStore = defineStore('knowled', {
saveDocumentsFile(file: UploadUserFile[]) {
this.documentsFiles = file
},
async asyncGetRootKnowledge(loading?: Ref<boolean>) {
async asyncGetFolderKnowledge(loading?: Ref<boolean>) {
return new Promise((resolve, reject) => {
const params = {
folder_id: localStorage.getItem('workspace_id'),

View File

@ -31,7 +31,7 @@ const useKnowledgeStore = defineStore('knowledg', {
saveDocumentsFile(file: UploadUserFile[]) {
this.documentsFiles = file
},
async asyncGetRootKnowledge(loading?: Ref<boolean>) {
async asyncGetFolderKnowledge(loading?: Ref<boolean>) {
return new Promise((resolve, reject) => {
const params = {
folder_id: 'default',

View File

@ -32,10 +32,10 @@ const useKnowledgeStore = defineStore('knowledge', {
saveDocumentsFile(file: UploadUserFile[]) {
this.documentsFiles = file
},
async asyncGetRootKnowledge(loading?: Ref<boolean>) {
async asyncGetFolderKnowledge(folder_id?: string, loading?: Ref<boolean>) {
return new Promise((resolve, reject) => {
const params = {
folder_id: localStorage.getItem('workspace_id'),
folder_id: folder_id || localStorage.getItem('workspace_id'),
}
knowledgeApi
.getKnowledgeList(params, loading)
@ -47,46 +47,46 @@ const useKnowledgeStore = defineStore('knowledge', {
})
})
},
async asyncGetTreeRootKnowledge(loading?: Ref<boolean>) {
const folder = useFolderStore()
return Promise.all([
folder.asyncGetFolder('KNOWLEDGE', {}, loading),
this.asyncGetRootKnowledge(loading),
])
.then((res: any) => {
const folderList = res[0].data
const knowledgeList = res[1].data
const arrMap: any = {}
function buildIdMap(arr: any) {
arr.forEach((item: any) => {
arrMap[item.id] = item
// 递归处理子节点
if (item.children && item.children.length > 0) {
buildIdMap(item.children)
}
})
}
buildIdMap(folderList)
knowledgeList
.filter((v: any) => v.resource_type !== 'folder')
.forEach((item: any) => {
const targetFolder = arrMap[item.folder_id]
if (targetFolder) {
// 检查是否已有相同ID的子节点避免重复插入
const existingChild = targetFolder.children.find(
(child: any) => child.id === item.id,
)
if (!existingChild) {
targetFolder.children.push(item)
}
}
})
return Promise.resolve(folderList)
})
.catch((error) => {
return Promise.reject(error)
})
},
// async asyncGetTreeRootKnowledge(loading?: Ref<boolean>) {
// const folder = useFolderStore()
// return Promise.all([
// folder.asyncGetFolder('KNOWLEDGE', {}, loading),
// this.asyncGetFolderKnowledge(loading),
// ])
// .then((res: any) => {
// const folderList = res[0].data
// const knowledgeList = res[1].data
// const arrMap: any = {}
// function buildIdMap(arr: any) {
// arr.forEach((item: any) => {
// arrMap[item.id] = item
// // 递归处理子节点
// if (item.children && item.children.length > 0) {
// buildIdMap(item.children)
// }
// })
// }
// buildIdMap(folderList)
// knowledgeList
// .filter((v: any) => v.resource_type !== 'folder')
// .forEach((item: any) => {
// const targetFolder = arrMap[item.folder_id]
// if (targetFolder) {
// // 检查是否已有相同ID的子节点避免重复插入
// const existingChild = targetFolder.children.find(
// (child: any) => child.id === item.id,
// )
// if (!existingChild) {
// targetFolder.children.push(item)
// }
// }
// })
// return Promise.resolve(folderList)
// })
// .catch((error) => {
// return Promise.reject(error)
// })
// },
async asyncGetKnowledgeDetail(knowledge_id: string, loading?: Ref<boolean>) {
return new Promise((resolve, reject) => {
knowledgeApi

View File

@ -633,7 +633,7 @@ function getDetail() {
}
function getKnowledge() {
knowledge.asyncGetRootKnowledge(knowledgeLoading).then((res: any) => {
knowledge.asyncGetFolderKnowledge(knowledgeLoading).then((res: any) => {
knowledgeList.value = res.data
})
}

View File

@ -49,13 +49,17 @@
<el-scrollbar>
<div class="max-height layout-bg p-16-24">
<el-row :gutter="12" v-loading="loading">
<el-col :span="12" v-for="(item, index) in filterData" :key="index" class="mb-16">
<el-col
:span="12"
v-for="(item, index) in filterData.filter((v:any) => v.resource_type !== 'folder')"
:key="index"
class="mb-16"
>
<CardCheckbox
value-field="id"
:data="item"
v-model="checkList"
@change="changeHandle"
v-if="item.resource_type !== 'folder'"
>
<span class="ellipsis cursor ml-12" :title="item.name"> {{ item.name }}</span>
</CardCheckbox>
@ -100,7 +104,7 @@ const props = defineProps({
})
const emit = defineEmits(['addData', 'refresh'])
const { folder, user } = useStore()
const { folder, user,knowledge } = useStore()
const dialogVisible = ref<boolean>(false)
const checkList = ref([])
@ -191,7 +195,7 @@ function getList() {
const params = {
folder_id: currentFolder.value?.id || user.getWorkspaceId(),
}
KnowledgeApi.getKnowledgeList(params, loading).then((res) => {
knowledge.asyncGetFolderKnowledge(params, loading).then((res) => {
searchDate.value = res.data
})
}

View File

@ -11,23 +11,28 @@
<h4 :id="titleId" :class="titleClass">{{ '文档迁移到' }}</h4>
</template>
<el-form
class="p-24"
ref="FormRef"
:model="form"
label-position="top"
require-asterisk-position="right"
v-loading="loading"
>
<el-form-item :label="$t('views.chatLog.selectKnowledge')" required>
<el-tree-select
v-model="form.selectKnowledge"
:data="knowledgeList"
:props="defaultProps"
node-key="id"
:default-expanded-keys="['default']"
lazy
:load="loadTree"
>
<template #default="{ data }">
<div class="flex align-center">
<KnowledgeIcon class="mr-12" :size="20" v-if="data.resource_type" :type="data.type" />
<KnowledgeIcon
class="mr-12"
:size="20"
v-if="data.resource_type !== 'folder'"
:type="data.type"
/>
<el-avatar v-else class="mr-12" shape="square" :size="20" style="background: none">
<img
src="@/assets/knowledge/icon_file-folder_colorful.svg"
@ -80,9 +85,9 @@ const documentList = ref<any>([])
const defaultProps = {
children: 'children',
label: 'name',
isLeaf: (data: any) => data.resource_type && data.resource_type !== 'folder',
disabled: (data: any, node: any) => {
console.log(data, node)
return data.id === id || (node?.isLeaf && !data.resource_type)
return data.id === id
},
}
@ -100,9 +105,17 @@ watch(dialogVisible, (bool) => {
const open = (list: any) => {
documentList.value = list
getKnowledge()
dialogVisible.value = true
}
const loadTree = (node: any, resolve: any) => {
console.log(node)
if (node.isLeaf) return resolve([])
const folder_id = node.level === 0 ? '' : node.data.id
knowledge.asyncGetFolderKnowledge(folder_id, loading).then((res: any) => {
resolve(res.data)
})
}
const submitHandle = () => {
documentApi
.putMigrateMulDocument(id, form.value.selectKnowledge, documentList.value, loading)
@ -112,26 +125,19 @@ const submitHandle = () => {
})
}
function getKnowledge() {
knowledge.asyncGetTreeRootKnowledge(loading).then((res: any) => {
knowledgeList.value = res || []
console.log(knowledgeList.value)
})
}
defineExpose({ open })
</script>
<style lang="scss">
.select-knowledge-dialog {
padding: 0;
.el-dialog__header {
padding: 24px 24px 0 24px;
}
.el-dialog__body {
padding: 8px !important;
}
.el-dialog__footer {
padding: 0 24px 24px;
}
}
// .select-knowledge-dialog {
// padding: 0;
// .el-dialog__header {
// padding: 24px 24px 0 24px;
// }
// .el-dialog__body {
// padding: 8px !important;
// }
// .el-dialog__footer {
// padding: 0 24px 24px;
// }
// }
</style>

View File

@ -121,7 +121,7 @@ function getDocument(id: string) {
}
function getDataset() {
knowledge.asyncGetRootKnowledge(loading).then((res: any) => {
knowledge.asyncGetFolderKnowledge(loading).then((res: any) => {
datasetList.value = res.data
})
}

View File

@ -92,7 +92,7 @@ const submitHandle = () => {
}
function getKnowledge() {
knowledge.asyncGetRootKnowledge(loading).then((res: any) => {
knowledge.asyncGetFolderKnowledge(loading).then((res: any) => {
knowledgeList.value = res.data?.filter((v: any) => v.id !== id)
})
}

View File

@ -121,7 +121,7 @@ function getDocument(id: string) {
}
function getDataset() {
knowledge.asyncGetRootKnowledge(loading).then((res: any) => {
knowledge.asyncGetFolderKnowledge(loading).then((res: any) => {
datasetList.value = res.data
})
}

View File

@ -144,7 +144,7 @@ function getDocument(id: string) {
}
function getknowledge() {
knowledge.asyncGetRootKnowledge(loading).then((res: any) => {
knowledge.asyncGetFolderKnowledge(loading).then((res: any) => {
knowledgeList.value = res.data
})
}

View File

@ -190,7 +190,7 @@ function getknowledge() {
// knowledgeList.value = res.data
// })
// } else {
knowledge.asyncGetRootKnowledge(knowledgeLoading).then((res: any) => {
knowledge.asyncGetFolderKnowledge(knowledgeLoading).then((res: any) => {
knowledgeList.value = res.data?.filter((v: any) => v.user_id === user.userInfo?.id)
})
// }