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