mirror of
http://112.124.100.131/ebiz-ai/ebiz-ai-knowledge-manage.git
synced 2025-12-10 03:16:49 +08:00
feat(knowledge): 优化知识库文件上传功能
- 添加通用模板上传功能 - 优化上传接口调用逻辑 - 增加上传进度显示和模板下载功能 - 调整预处理结果预览对话框逻辑 - 优化文档详情查看功能
This commit is contained in:
@@ -126,3 +126,7 @@ export function updateRuleExtractSplit(data) {
|
||||
export function uploadFileByCustom(data) {
|
||||
return getUrl(`/datasetDocumentEx/uploadFileByCustom`, 'jifen')
|
||||
}
|
||||
//知识库文件上传-通用
|
||||
export function uploadFileByTemplate(data) {
|
||||
return getUrl(`/datasetDocumentEx/uploadFileByTemplate`, 'jifen')
|
||||
}
|
||||
|
||||
@@ -8,18 +8,33 @@
|
||||
</el-radio-group>
|
||||
|
||||
<div class="mt10" v-if="form.radio === '2'">
|
||||
<el-button type="primary" size="medium" class="fs14">下载知识文件模板</el-button>
|
||||
<el-button type="primary" size="medium" class="fs14" @click="downloadTemplate">下载知识文件模板</el-button>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<!-- 文件上传-->
|
||||
<el-form-item label="" required prop="file">
|
||||
<el-upload drag :action="actionUrl" :headers="headers" class="upload-demo" :on-success="handleUploadSuccess" :show-file-list="false" :data="form">
|
||||
<el-empty>
|
||||
<el-upload
|
||||
drag
|
||||
:action="form.radio === '1' ? uploadFileByCustom() : uploadFileByTemplate()"
|
||||
:headers="headers"
|
||||
class="upload-demo"
|
||||
:on-success="handleUploadSuccess"
|
||||
:before-upload="handleBeforeUpload"
|
||||
:show-file-list="false"
|
||||
:file-list="fieldList"
|
||||
:data="{
|
||||
...form,
|
||||
beMinerU: form.radio === '2' ? null : form.beMinerU,
|
||||
beOcr: form.radio === '2' ? null : form.beOcr
|
||||
}"
|
||||
>
|
||||
<el-empty v-if="!uploadLoading">
|
||||
<template #description>
|
||||
<p>点击或将文件拖拽到这里上传</p>
|
||||
<p>支持扩展名:.xlsx .doc .docx .pdf .txt...</p>
|
||||
</template>
|
||||
</el-empty>
|
||||
<div v-else v-loading="uploadLoading" :element-loading-text="'文件上传中...'" style="height: 100%"></div>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
|
||||
@@ -55,23 +70,25 @@
|
||||
</div>
|
||||
</el-form>
|
||||
|
||||
<!-- 添加预处理结果预览对话框 -->
|
||||
<el-drawer :visible.sync="previewDialogVisible" size="80%" title="预处理结果预览" :before-close="handleClose">
|
||||
<div style="height:calc(100% - 55px);">
|
||||
<r-miner-u :documentId="documentId"></r-miner-u>
|
||||
</div>
|
||||
</el-drawer>
|
||||
<!-- <!– 添加预处理结果预览对话框 –>-->
|
||||
<!-- <el-drawer :visible.sync="previewDialogVisible" size="80%" title="预处理结果预览" :before-close="handleClose">-->
|
||||
<!-- <div style="height:calc(100% - 55px);">-->
|
||||
<!-- <r-miner-u :documentId="documentId"></r-miner-u>-->
|
||||
<!-- </div>-->
|
||||
<!-- </el-drawer>-->
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { uploadFileByCustom } from '@/api/generatedApi/index'
|
||||
import { uploadFileByCustom, uploadFileByTemplate } from '@/api/generatedApi/index'
|
||||
export default {
|
||||
name: 'preprocessing',
|
||||
data() {
|
||||
return {
|
||||
actionUrl: uploadFileByCustom(),
|
||||
|
||||
uploadFileByCustom,
|
||||
uploadFileByTemplate,
|
||||
uploadLoading: false,
|
||||
headers: {},
|
||||
fieldList: [],
|
||||
form: {
|
||||
radio: '1',
|
||||
beMinerU: false,
|
||||
@@ -87,30 +104,10 @@ export default {
|
||||
components: {},
|
||||
filters: {},
|
||||
methods: {
|
||||
handleSuccess(response, file, fileList) {
|
||||
console.log(response, file, fileList)
|
||||
},
|
||||
handleError(err, file, fileList) {
|
||||
console.log(err, file, fileList)
|
||||
},
|
||||
beforeUpload(file) {
|
||||
console.log(file)
|
||||
return true
|
||||
},
|
||||
handleChange(file, fileList) {
|
||||
console.log(file, fileList)
|
||||
},
|
||||
handleRemove(file, fileList) {
|
||||
console.log(file, fileList)
|
||||
},
|
||||
handlePreview(file) {
|
||||
console.log(file)
|
||||
},
|
||||
emitForm() {
|
||||
this.$emit('getForm', this.$refs.processForm, this.form)
|
||||
},
|
||||
handleUploadSuccess(response, file, fileList) {
|
||||
console.log(response)
|
||||
downloadTemplate() {},
|
||||
handleUploadSuccess(response, file) {
|
||||
this.fieldList = [file]
|
||||
this.uploadLoading = false
|
||||
if (response.content.result === '0') {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
@@ -118,12 +115,13 @@ export default {
|
||||
})
|
||||
// 如果是预处理
|
||||
if (this.form.beMinerU) {
|
||||
this.previewDialogVisible = true
|
||||
this.$emit('beMinerU', true)
|
||||
}
|
||||
this.documentId = response.content.content.id
|
||||
// 向上导入documentId
|
||||
this.$emit('getDocumentId', this.documentId)
|
||||
this.$emit('getUploadDetail', response.content.content)
|
||||
this.$emit('getForm', this.$refs.processForm, this.form)
|
||||
} else {
|
||||
this.$message({
|
||||
type: 'error',
|
||||
@@ -133,17 +131,9 @@ export default {
|
||||
// 显示预处理结果预览对话框
|
||||
// this.previewDialogVisible = true
|
||||
},
|
||||
handleClose(done) {
|
||||
this.$confirm('确认关闭?')
|
||||
.then(_ => {
|
||||
done()
|
||||
})
|
||||
.catch(_ => {})
|
||||
},
|
||||
handleBeforeUpload(file) {
|
||||
// 这里可以添加文件上传前的处理逻辑
|
||||
console.log('开始上传文件:', file)
|
||||
this.previewDialogVisible = true
|
||||
this.uploadLoading = true
|
||||
// 可以在这里进行文件类型、大小等验证
|
||||
|
||||
// 返回 true 继续上传,返回 false 停止上传
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
</el-steps>
|
||||
|
||||
<div class="components">
|
||||
<step-preprocessing ref="stepPreprocessing" v-if="active === 0" @getForm="getForm" @getDocumentId="getDocumentId"></step-preprocessing>
|
||||
<step-preprocessing v-if="active === 0" @getForm="getForm" @getDocumentId="getDocumentId" @beMinerU="beMinerU"></step-preprocessing>
|
||||
<split-config v-if="active === 1"></split-config>
|
||||
<words v-if="active === 2"></words>
|
||||
</div>
|
||||
@@ -30,7 +30,7 @@
|
||||
</el-card>
|
||||
|
||||
<!-- 添加预处理结果预览对话框 -->
|
||||
<el-drawer :visible.sync="visible" size="80%" title="预处理结果预览" :before-close="handleClose">
|
||||
<el-drawer :visible.sync="visible" size="80%" title="预处理结果预览">
|
||||
<div style="height:calc(100% - 55px);">
|
||||
<r-miner-u :documentId="documentId"></r-miner-u>
|
||||
</div>
|
||||
@@ -60,6 +60,9 @@ export default {
|
||||
},
|
||||
filters: {},
|
||||
methods: {
|
||||
beMinerU() {
|
||||
this.visible = true
|
||||
},
|
||||
getForm() {},
|
||||
fetchApi() {},
|
||||
getDocumentId(id) {
|
||||
|
||||
@@ -84,6 +84,21 @@
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-drawer :visible.sync="drawer" size="50%" :title="descriptions.knowledgeName">
|
||||
<div class="flex mh20">
|
||||
<div>
|
||||
<el-descriptions class="margin-top" :column="1" border>
|
||||
<el-descriptions-item label="分段模式:"> </el-descriptions-item>
|
||||
<el-descriptions-item label="是否使用预处理:"> </el-descriptions-item>
|
||||
<el-descriptions-item label="是否使用ocr协助处理:"> </el-descriptions-item>
|
||||
<el-descriptions-item label="知识拆分规则:"> </el-descriptions-item>
|
||||
<el-descriptions-item label="知识题词规则:"> </el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
<div></div>
|
||||
</div>
|
||||
</el-drawer>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@@ -93,6 +108,7 @@ export default {
|
||||
name: 'index',
|
||||
data() {
|
||||
return {
|
||||
drawer: false,
|
||||
editKnowledge: false,
|
||||
form: {
|
||||
fileName: '',
|
||||
@@ -110,7 +126,8 @@ export default {
|
||||
pageSize: 10,
|
||||
total: 0,
|
||||
hasList: false,
|
||||
documentSourceOptions
|
||||
documentSourceOptions,
|
||||
descriptions: {}
|
||||
}
|
||||
},
|
||||
props: {},
|
||||
@@ -218,6 +235,11 @@ export default {
|
||||
currentChange(page) {
|
||||
this.page = page
|
||||
this.getKnowledgeFiledList()
|
||||
},
|
||||
// 查看文档详情
|
||||
viewDocumentDetail(row) {
|
||||
this.descriptions = row
|
||||
this.drawer = true
|
||||
}
|
||||
},
|
||||
filters: {
|
||||
@@ -313,7 +335,7 @@ export default {
|
||||
size: 'mini'
|
||||
},
|
||||
on: {
|
||||
click: () => this.handleEdit(params.row)
|
||||
click: () => this.viewDocumentDetail(params.row)
|
||||
}
|
||||
},
|
||||
'查看详情'
|
||||
|
||||
Reference in New Issue
Block a user