| | |
| | | <el-table-column prop="name" label="文件名称" fixed="left" show-overflow-tooltip align="left" /> |
| | | <el-table-column prop="type" width="120" label="文件类型" show-overflow-tooltip align="center" /> |
| | | <el-table-column prop="time" label="上传时间" show-overflow-tooltip width="280" align="center"></el-table-column> |
| | | <el-table-column label="操作" width="80" fixed="right" show-overflow-tooltip align="center"> |
| | | <el-table-column label="操作" width="120" fixed="right" show-overflow-tooltip align="center"> |
| | | <template #default="scope"> |
| | | <el-tooltip effect="dark" content="删除" placement="top"> |
| | | <i |
| | | class="ywifont ywicon-shanchu !text-[17px] text-red-400 cursor-pointer" |
| | | @click="deleteKnowledgeFileData(scope.row)" |
| | | ></i> |
| | | </el-tooltip> |
| | | <div class="space-x-2.5"> |
| | | <el-tooltip effect="dark" content="文本" placement="top"> |
| | | <i |
| | | class="ywifont ywicon-wendang !text-[17px] cursor-pointer text-blue-400" |
| | | @click="openOperateDemoPage(scope.row)" |
| | | ></i> |
| | | </el-tooltip> |
| | | <el-tooltip effect="dark" content="分块" placement="top"> |
| | | <i |
| | | class="ywifont ywicon-01wenjianfenkuai !text-[17px] cursor-pointer text-blue-400" |
| | | @click="handleViewKnowledgeFile(scope.row)" |
| | | ></i> |
| | | </el-tooltip> |
| | | <el-tooltip effect="dark" content="删除" placement="top"> |
| | | <i |
| | | class="ywifont ywicon-shanchu !text-[17px] text-red-400 cursor-pointer" |
| | | @click="deleteKnowledgeFileData(scope.row)" |
| | | ></i> |
| | | </el-tooltip> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | :treedata="state.knowledgeBaseData" |
| | | :current-node-key="currentListID" |
| | | :defaultProps="{ |
| | | id: 'group_id', |
| | | label: 'group_name', |
| | | children: 'Children', |
| | | label: 'title', |
| | | id: 'id', |
| | | }" |
| | | @click="handleClickNode" |
| | | > |
| | |
| | | import { ElMessage, ElMessageBox } from 'element-plus'; |
| | | import { computed, nextTick, onMounted, reactive, ref } from 'vue'; |
| | | import { useRoute, useRouter } from 'vue-router'; |
| | | import { delete_docvector_file, get_docvector_file_list, add_docvector_file } from '/@/api/knowledge/docvector'; |
| | | import { add_docvector_file, delete_docvector_file, get_docvector_file_list } from '/@/api/knowledge/docvector'; |
| | | import { get_knowledge_group_list, list_knowledge_file } from '/@/api/knowledge/group'; |
| | | import LeftTreeByMgr from '/@/components/tree/leftTreeByMgr.vue'; |
| | | import { useQueryTable } from '/@/hooks/useQueryTable'; |
| | | import { convertListToTree } from '/@/utils/util'; |
| | | import { OptClassificationMap, classificationEnum } from '/@/views/types/metrics'; |
| | | import item from 'element-plus/es/components/space/src/item'; |
| | | const viewKnowledgeTableRef = ref(); |
| | | const router = useRouter(); |
| | | const route = useRoute(); |
| | |
| | | knowledgeTableData.value = res.values; |
| | | } |
| | | }; |
| | | //查看文档 |
| | | const openOperateDemoPage = (row: any) => { |
| | | router.push({ |
| | | name: 'ViewFile', |
| | | query: { |
| | | id: row.id, |
| | | }, |
| | | }); |
| | | }; |
| | | //查看文档块 |
| | | const handleViewKnowledgeFile = (row) => { |
| | | router.push({ |
| | | name: 'ViewSegmentationFile', |
| | | query: { |
| | | id: row.id, |
| | | }, |
| | | }); |
| | | }; |
| | | //删除知识库的文件列表 |
| | | const deleteKnowledgeFileData = (row: any) => { |
| | | ElMessageBox.confirm(`确定删除文档列表:【${row.name}】?`, '提示', { |
| | |
| | | const treeLoading = ref(false); |
| | | const currentTreeNode = ref(null); |
| | | const leftTreeRef = ref(null); |
| | | const currentListID = computed(() => currentTreeNode.value?.id); |
| | | const currentListID = computed(() => currentTreeNode.value?.group_id); |
| | | //获取文件列表 |
| | | const getImportantFileTreeData = async (selectFirst = false) => { |
| | | treeLoading.value = true; |
| | |
| | | treeLoading.value = false; |
| | | }); |
| | | if (res?.json_ok) { |
| | | const resData = (res.values || []) as []; |
| | | state.knowledgeBaseData = convertListToTree(resData, { |
| | | ID: 'id', |
| | | const resData = (res.groups || []) as []; |
| | | const byParentData = convertListToTree(resData, { |
| | | ID: 'group_id', |
| | | Children: 'Children', |
| | | ParentID: 'parent', |
| | | ParentID: 'p_group_id', |
| | | }); |
| | | const result = []; |
| | | byParentData.forEach((item) => { |
| | | if (item.group_type == OptClassificationMap[classificationEnum.Knowledge]) { |
| | | result.push(item); |
| | | } |
| | | }); |
| | | state.knowledgeBaseData = result; |
| | | if (selectFirst) { |
| | | const firstListTreeNode = state.knowledgeBaseData[0]; |
| | | if (firstListTreeNode) { |
| | |
| | | const handleClickNode = (data: any) => { |
| | | multipleSelection.value = []; |
| | | nextTick(() => { |
| | | leftTreeRef.value?.treeRef.setCurrentKey(data.id); |
| | | leftTreeRef.value?.treeRef.setCurrentKey(data.group_id); |
| | | }); |
| | | currentTreeNode.value = data; |
| | | getFileTableData(); |
| | |
| | | .set-table-height { |
| | | background: #fff; |
| | | border-radius: 16px; |
| | | height: calc(100% - 80px); |
| | | height: calc(100% - 50px); |
| | | margin-top: 12px; |
| | | overflow-y: auto; |
| | | padding: 20px 24px; |
| | |
| | | box-sizing: border-box; |
| | | } |
| | | </style> |
| | | add_docvector_file, import moment from 'moment';add_docvector_file, import moment from 'moment'; |