<template>
|
<div class="flex flex-col h100">
|
<div class="h100" v-show="!state.showKnowledgeForm">
|
<div class="mb-[10px] flex flex-shrink-0 items-center">
|
<el-button style="margin-left: 8px; width: 40px" link @click="handleExitFlow">
|
<el-icon style="font-size: 24px !important">
|
<ArrowLeft />
|
</el-icon>
|
</el-button>
|
<span class="text-[24px] text-[#26244c] font-[700]">{{ state.knowledgeInfo.knowledge_title }}</span>
|
</div>
|
<div class="set-table-height"></div>
|
</div>
|
|
<div class="set-form-footer" v-show="state.showKnowledgeForm">
|
<el-button @click="importCompleted" type="primary">导入完成</el-button>
|
<el-button @click="handleShowKnowledge">取消</el-button>
|
</div>
|
</div>
|
</template>
|
|
<script setup lang="ts">
|
import { ElMessage } from 'element-plus';
|
import { onMounted, reactive, ref } from 'vue';
|
import { useRoute, useRouter } from 'vue-router';
|
import { add_docvector_file } from '/@/api/knowledge/docvector';
|
const viewKnowledgeTableRef = ref();
|
const router = useRouter();
|
const route = useRoute();
|
const knowledgeTableData = ref([]);
|
const knowledgeFileRef = ref();
|
// 定义变量内容
|
const state = reactive({
|
knowledgeInfo: {
|
knowledge_title: '查看文件',
|
knowledge_id: '',
|
knowledge_import_data: '导入数据',
|
} as any,
|
knowledgeForm: {
|
segmentationMode: 1,
|
},
|
showKnowledgeForm: false,
|
knowledgeFile: {},
|
});
|
//返回到知识库列表
|
const handleExitFlow = () => {
|
//是否显示返回
|
router.back();
|
};
|
//返回到知识库查看页面
|
const handleShowKnowledge = () => {
|
state.showKnowledgeForm = false;
|
};
|
//#region ====================== 搜索表格,对表格排序 ======================
|
const graphQueryParams = ref({
|
title: '',
|
});
|
// const { resetQuery, handleQueryTable, displayTableData } = useQueryTable(getSliceFile, graphQueryParams, () => {
|
// displayTableData.value = knowledgeTableData.value;
|
// });
|
//#endregion
|
//#region ====================== 获取切换的数据 ======================
|
const getSliceFile = async () => {
|
const res = 0;
|
};
|
//#endregion
|
//#region ====================== 导入知识库数据 ======================
|
const importKnowledgeData = () => {
|
state.showKnowledgeForm = true;
|
getImportantFileTreeData(true);
|
};
|
//导入完成
|
const importCompleted = async () => {
|
// 上传文件
|
if (multipleSelection.value.length == 0) return ElMessage.warning('请先选择文件');
|
let isCreateIndex = false;
|
const file_id = multipleSelection.value.map((v) => v.id).join(',');
|
knowledgeTableData.value.forEach((element) => {
|
if (element.id == file_id) {
|
ElMessage.warning('文件已存在,请选择其他文件');
|
isCreateIndex = true;
|
}
|
});
|
if (isCreateIndex) return;
|
const res = await add_docvector_file({
|
knowlg_id: state.knowledgeInfo.knowledge_id,
|
file_id: file_id,
|
});
|
if (res.json_ok) {
|
ElMessage.success('导入数据成功');
|
state.showKnowledgeForm = false;
|
getKnowledgeFileData();
|
//清空表单
|
knowledgeFileRef.value.resetFields();
|
}
|
};
|
//#endregion
|
|
onMounted(() => {
|
const { id } = route.query;
|
state.knowledgeInfo.knowledge_id = id;
|
getSliceFile();
|
});
|
</script>
|
<style scoped lang="scss">
|
.set-table-height {
|
background: #fff;
|
border-radius: 16px;
|
height: calc(100% - 80px);
|
margin-top: 12px;
|
overflow-y: auto;
|
padding: 20px 24px;
|
box-sizing: border-box;
|
}
|
.set-file-height {
|
height: calc(100% - 48px);
|
}
|
|
.set-form-footer {
|
align-items: center;
|
background: #fff;
|
bottom: 0;
|
box-shadow: 4px 0 5px 1px rgba(16, 9, 65, 0.06);
|
display: flex;
|
flex-shrink: 0;
|
gap: 8px;
|
height: 64px;
|
padding-left: 24px;
|
// position: fixed;
|
width: 100%;
|
left: 220px;
|
}
|
</style>
|