mirror of
http://112.124.100.131/ebiz-ai/ebiz-ai-knowledge-manage.git
synced 2025-12-09 19:06:49 +08:00
feat(knowledge): 实现知识库文件上传自定义功能
- 新增 datasetsExPages 和 uploadFileByCustom 接口 - 实现文件上传功能,支持自定义文件和通用知识文件模板 - 添加预处理结果预览功能 - 优化文件上传组件,支持拖拽上传和进度显示
This commit is contained in:
@@ -40,6 +40,13 @@ export function datasetDelete(data) {
|
|||||||
method: 'delete'
|
method: 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
export function datasetsExPages(data) {
|
||||||
|
return request({
|
||||||
|
url: getUrl(`/datasetDocumentEx/page`, 'jifen'),
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
//minerU 获取bbox
|
//minerU 获取bbox
|
||||||
export function minerUBbox(params) {
|
export function minerUBbox(params) {
|
||||||
@@ -114,3 +121,8 @@ export function updateRuleExtractSplit(data) {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//知识库文件上传-自定义
|
||||||
|
export function uploadFileByCustom(data) {
|
||||||
|
return getUrl(`/datasetDocumentEx/uploadFileByCustom`, 'jifen')
|
||||||
|
}
|
||||||
|
|||||||
10
src/assets/js/utils/utilOptions.js
Normal file
10
src/assets/js/utils/utilOptions.js
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
export const documentSourceOptions = [
|
||||||
|
{
|
||||||
|
label: '自定义文件',
|
||||||
|
value: '0'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '通用知识文件模板',
|
||||||
|
value: '1'
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -165,9 +165,8 @@ export default {
|
|||||||
},
|
},
|
||||||
changeTab() {
|
changeTab() {
|
||||||
let pre = document.getElementById('md-editor').innerText
|
let pre = document.getElementById('md-editor').innerText
|
||||||
|
// pre= JSON.stringify(pre)
|
||||||
let copyMdHtml = md.render(pre)
|
let copyMdHtml = md.render(pre)
|
||||||
console.log(copyMdHtml)
|
|
||||||
// 给 copyMdHtml 里面的table 增加 class m-view
|
// 给 copyMdHtml 里面的table 增加 class m-view
|
||||||
copyMdHtml = copyMdHtml.replace(/<table/g, '<table class="m-view"')
|
copyMdHtml = copyMdHtml.replace(/<table/g, '<table class="m-view"')
|
||||||
this.markdownHtml = copyMdHtml
|
this.markdownHtml = copyMdHtml
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
let envInfo = process.env
|
let envInfo = process.env
|
||||||
// let [admin] = [envInfo.VUE_APP_ADMIN]
|
// let [admin] = [envInfo.VUE_APP_ADMIN]
|
||||||
let [admin] = ['/api']
|
let [admin, jifen] = ['/api', 'http://192.168.2.62:7196/']
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
admin
|
admin,
|
||||||
|
jifen
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,89 +1,71 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id='preprocessing-container ' class='mt20'>
|
<div id="preprocessing-container " class="mt20">
|
||||||
<el-form label-width='150px' :model='form' ref='processForm'>
|
<el-form label-width="150px" :model="form" ref="processForm">
|
||||||
<el-form-item label='数据来源:' required prop='radio'>
|
<el-form-item label="数据来源:" required prop="radio">
|
||||||
<el-radio-group v-model='form.radio' size='medium'>
|
<el-radio-group v-model="form.radio" size="medium">
|
||||||
<el-radio-button label='1' size='medium'>使用本地文件</el-radio-button>
|
<el-radio-button label="1" size="medium">使用本地文件</el-radio-button>
|
||||||
<el-radio-button label='2' size='medium'>使用通用知识文件模板</el-radio-button>
|
<el-radio-button label="2" size="medium">使用通用知识文件模板</el-radio-button>
|
||||||
</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">下载知识文件模板</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'
|
<el-upload drag :action="actionUrl" :headers="headers" class="upload-demo" :on-success="handleUploadSuccess" :show-file-list="false" :data="form">
|
||||||
class='upload-demo' :on-success="handleUploadSuccess"
|
<el-empty>
|
||||||
:before-upload="handleBeforeUpload">
|
<template #description>
|
||||||
<el-empty>
|
<p>点击或将文件拖拽到这里上传</p>
|
||||||
<template #description>
|
<p>支持扩展名:.xlsx .doc .docx .pdf .txt...</p>
|
||||||
<p>点击或将文件拖拽到这里上传</p>
|
</template>
|
||||||
<p>支持扩展名:.xlsx .doc .docx .pdf .txt...</p>
|
</el-empty>
|
||||||
</template>
|
|
||||||
</el-empty>
|
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<!-- 本地文件 -->
|
<!-- 本地文件 -->
|
||||||
<div v-if='form.radio==="1"'>
|
<div v-if="form.radio === '1'">
|
||||||
<el-form-item label='是否进行预处理:' required prop='preprocessing'>
|
<el-form-item label="是否进行预处理:" required prop="beMinerU">
|
||||||
<el-radio-group v-model='form.preprocessing' size='medium'>
|
<el-radio-group v-model="form.beMinerU" size="medium">
|
||||||
<el-radio label='1' size='medium'>是</el-radio>
|
<el-radio :label="true" size="medium">是</el-radio>
|
||||||
<el-radio label='2' size='medium'>否</el-radio>
|
<el-radio :label="false" size="medium">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label='是否ocr协助处理:' required prop='ocr'>
|
<el-form-item label="是否ocr协助处理:" required prop="beOcr">
|
||||||
<el-radio-group v-model='form.ocr' size='medium'>
|
<el-radio-group v-model="form.beOcr" size="medium">
|
||||||
<el-radio label='1' size='medium'>是</el-radio>
|
<el-radio :label="true" size="medium">是</el-radio>
|
||||||
<el-radio label='2' size='medium'>否</el-radio>
|
<el-radio :label="false" size="medium">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<!-- 添加预处理结果预览对话框 -->
|
<!-- 添加预处理结果预览对话框 -->
|
||||||
<el-dialog
|
<el-drawer :visible.sync="previewDialogVisible" size="80%" title="预处理结果预览" :before-close="handleClose">
|
||||||
title="预处理结果预览"
|
<div style="height:calc(100% - 55px);">
|
||||||
:visible.sync="previewDialogVisible"
|
<r-miner-u :documentId="documentId"></r-miner-u>
|
||||||
width="80%"
|
|
||||||
:before-close="handleClose">
|
|
||||||
<div class="preview-container">
|
|
||||||
<div class="preview-left">
|
|
||||||
<div class="preview-title">原文件</div>
|
|
||||||
<div class="preview-content">
|
|
||||||
<!-- 原文件内容区域 -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="preview-right">
|
|
||||||
<div class="preview-title">Markdown</div>
|
|
||||||
<div class="preview-content">
|
|
||||||
<!-- Markdown内容区域 -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div slot="footer" class="dialog-footer">
|
</el-drawer>
|
||||||
<el-button size="medium" type="primary" @click="previewDialogVisible = false">保存并处理</el-button>
|
|
||||||
<el-button size="medium" @click="previewDialogVisible = false">取 消</el-button>
|
|
||||||
</div>
|
|
||||||
</el-dialog>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import { uploadFileByCustom } from '@/api/generatedApi/index'
|
||||||
export default {
|
export default {
|
||||||
name: 'preprocessing',
|
name: 'preprocessing',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
actionUrl:'',
|
actionUrl: uploadFileByCustom(),
|
||||||
headers:{},
|
|
||||||
form:{
|
headers: {},
|
||||||
radio:'1',
|
form: {
|
||||||
fileList:[],
|
radio: '1',
|
||||||
preprocessing:'1',
|
beMinerU: false,
|
||||||
ocr:'1',
|
beOcr: false,
|
||||||
|
datasetId: this.$route.query.datasetId
|
||||||
},
|
},
|
||||||
previewDialogVisible: false // 添加对话框显示控制变量
|
previewDialogVisible: false, // 添加对话框显示控制变量
|
||||||
|
documentId: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props: {},
|
props: {},
|
||||||
@@ -111,60 +93,77 @@ export default {
|
|||||||
console.log(file)
|
console.log(file)
|
||||||
},
|
},
|
||||||
emitForm() {
|
emitForm() {
|
||||||
this.$emit('getForm', this.$refs.processForm,this.form)
|
this.$emit('getForm', this.$refs.processForm, this.form)
|
||||||
},
|
},
|
||||||
handleUploadSuccess(response, file, fileList) {
|
handleUploadSuccess(response, file, fileList) {
|
||||||
|
console.log(response)
|
||||||
|
if (response.content.result === '0') {
|
||||||
|
this.$message({
|
||||||
|
type: 'success',
|
||||||
|
message: '上传成功'
|
||||||
|
})
|
||||||
|
// 如果是预处理
|
||||||
|
if (this.form.beMinerU) {
|
||||||
|
this.previewDialogVisible = true
|
||||||
|
}
|
||||||
|
this.documentId = response.content.content.id
|
||||||
|
// 向上导入documentId
|
||||||
|
this.$emit('getDocumentId', this.documentId)
|
||||||
|
this.$emit('getUploadDetail', response.content.content)
|
||||||
|
} else {
|
||||||
|
this.$message({
|
||||||
|
type: 'error',
|
||||||
|
message: response.content.resultMessage
|
||||||
|
})
|
||||||
|
}
|
||||||
// 显示预处理结果预览对话框
|
// 显示预处理结果预览对话框
|
||||||
this.previewDialogVisible = true;
|
// this.previewDialogVisible = true
|
||||||
},
|
},
|
||||||
handleClose(done) {
|
handleClose(done) {
|
||||||
this.$confirm('确认关闭?')
|
this.$confirm('确认关闭?')
|
||||||
.then(_ => {
|
.then(_ => {
|
||||||
done();
|
done()
|
||||||
})
|
})
|
||||||
.catch(_ => {});
|
.catch(_ => {})
|
||||||
},
|
},
|
||||||
handleBeforeUpload(file) {
|
handleBeforeUpload(file) {
|
||||||
// 这里可以添加文件上传前的处理逻辑
|
// 这里可以添加文件上传前的处理逻辑
|
||||||
console.log('开始上传文件:', file);
|
console.log('开始上传文件:', file)
|
||||||
this.previewDialogVisible = true;
|
this.previewDialogVisible = true
|
||||||
// 可以在这里进行文件类型、大小等验证
|
// 可以在这里进行文件类型、大小等验证
|
||||||
|
|
||||||
// 返回 true 继续上传,返回 false 停止上传
|
// 返回 true 继续上传,返回 false 停止上传
|
||||||
return true;
|
return true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {},
|
||||||
},
|
mounted() {},
|
||||||
mounted() {
|
|
||||||
},
|
|
||||||
computed: {}
|
computed: {}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style scoped lang='scss'>
|
<style scoped lang="scss">
|
||||||
.upload-demo{
|
.upload-demo {
|
||||||
//dashed 间隔大一点
|
//dashed 间隔大一点
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
border-style: dashed;
|
border-style: dashed;
|
||||||
border-width: 2px;
|
border-width: 2px;
|
||||||
border-color: #d9d9d9;
|
border-color: #d9d9d9;
|
||||||
height: 330px;
|
height: 330px;
|
||||||
width:50%;
|
width: 50%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
&:hover{
|
&:hover {
|
||||||
border-color: #409EFF;
|
border-color: #409eff;
|
||||||
}
|
}
|
||||||
|
|
||||||
/deep/ .el-upload{
|
/deep/ .el-upload {
|
||||||
width:100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
& .el-upload-dragger{
|
& .el-upload-dragger {
|
||||||
width:100%;
|
width: 100%;
|
||||||
border:unset;
|
border: unset;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#preprocessing-container {
|
#preprocessing-container {
|
||||||
@@ -175,7 +174,8 @@ export default {
|
|||||||
height: 500px;
|
height: 500px;
|
||||||
border: 1px solid #dcdfe6;
|
border: 1px solid #dcdfe6;
|
||||||
|
|
||||||
.preview-left, .preview-right {
|
.preview-left,
|
||||||
|
.preview-right {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -199,7 +199,7 @@ export default {
|
|||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.dialog-footer{
|
.dialog-footer {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -19,10 +19,7 @@
|
|||||||
<add-rule ref="addRule" @getDataList="getDataList"></add-rule>
|
<add-rule ref="addRule" @getDataList="getDataList"></add-rule>
|
||||||
|
|
||||||
<!-- 添加预览弹窗 -->
|
<!-- 添加预览弹窗 -->
|
||||||
<el-dialog
|
<el-dialog title="拆分结果预览" :visible.sync="previewDialogVisible" width="60%">
|
||||||
title="拆分结果预览"
|
|
||||||
:visible.sync="previewDialogVisible"
|
|
||||||
width="60%">
|
|
||||||
<div class="preview-content">
|
<div class="preview-content">
|
||||||
<!-- 预览内容区域 -->
|
<!-- 预览内容区域 -->
|
||||||
这里是预览的内容
|
这里是预览的内容
|
||||||
@@ -62,24 +59,24 @@ export default {
|
|||||||
this.getDataList()
|
this.getDataList()
|
||||||
},
|
},
|
||||||
getDataList() {
|
getDataList() {
|
||||||
console.log('getRulesPage');
|
console.log('getRulesPage')
|
||||||
// 1-文档拆分规则 2-文档题词规则
|
// 1-文档拆分规则 2-文档题词规则
|
||||||
let params = {
|
let params = {
|
||||||
ruleType: 1,
|
ruleType: 1,
|
||||||
...this.form
|
...this.form
|
||||||
}
|
}
|
||||||
getRulesPage(params).then(res => {
|
getRulesPage(params).then(res => {
|
||||||
console.log(res.content.content.list);
|
console.log(res.content.content.list)
|
||||||
this.tableData = res.content.content.list
|
this.tableData = res.content.content.list
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
close(){
|
close() {
|
||||||
this.visible = false;
|
this.visible = false
|
||||||
},
|
},
|
||||||
handlePreview(row) {
|
handlePreview(row) {
|
||||||
// 预览逻辑
|
// 预览逻辑
|
||||||
console.log('Preview', row);
|
console.log('Preview', row)
|
||||||
this.previewDialogVisible = true; // 显示预览弹窗
|
this.previewDialogVisible = true // 显示预览弹窗
|
||||||
},
|
},
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
// 修改逻辑
|
// 修改逻辑
|
||||||
@@ -95,9 +92,9 @@ export default {
|
|||||||
handleClose(done) {
|
handleClose(done) {
|
||||||
this.$confirm('确认关闭?')
|
this.$confirm('确认关闭?')
|
||||||
.then(_ => {
|
.then(_ => {
|
||||||
done();
|
done()
|
||||||
})
|
})
|
||||||
.catch(_ => {});
|
.catch(_ => {})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|||||||
@@ -7,8 +7,45 @@
|
|||||||
<!-- 自动拆分 -->
|
<!-- 自动拆分 -->
|
||||||
<li class="flex" :class="activeIndex === index ? 'active' : ''" v-for="(item, index) in splitOptions" :key="index" @click="handleClick(index)">
|
<li class="flex" :class="activeIndex === index ? 'active' : ''" v-for="(item, index) in splitOptions" :key="index" @click="handleClick(index)">
|
||||||
<div>
|
<div>
|
||||||
<svg v-if="index === 0" t="1744335709188" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2464" width="32" height="32"><path d="M933.868272 511.691752a140.807706 140.807706 0 0 1 90.131728-131.067068 525.562914 525.562914 0 0 0-57.334136-138.64997 139.882962 139.882962 0 0 1-184.948826-184.948826A525.562914 525.562914 0 0 0 643.067068 0a140.376159 140.376159 0 0 1-262.134136 0A525.562914 525.562914 0 0 0 242.282962 57.334136a139.882962 139.882962 0 0 1-184.948826 184.948826A506.698134 506.698134 0 0 0 0 380.932932a140.376159 140.376159 0 0 1 0 262.134136 525.562914 525.562914 0 0 0 57.334136 138.64997 139.882962 139.882962 0 0 1 184.948826 184.948826 525.562914 525.562914 0 0 0 138.64997 57.334136 140.376159 140.376159 0 0 1 262.134136 0 525.562914 525.562914 0 0 0 138.64997-57.334136 139.882962 139.882962 0 0 1 184.948826-184.948826 506.698134 506.698134 0 0 0 57.334136-138.64997A140.807706 140.807706 0 0 1 933.868272 511.691752zM511.691752 652.437809A140.437809 140.437809 0 1 1 652.437809 511.691752 140.499458 140.499458 0 0 1 511.691752 652.437809z" fill="#1D85ED" p-id="2465"></path></svg>
|
<svg
|
||||||
<svg v-if="index === 1" t="1744335834635" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7994" width="32" height="32"><path d="M746 181.1c10.3 0 19.4 6.1 23.3 15.6l1 2.3 1.2 2.2 110.4 210c2.9 8.6 0.9 18.3-5.3 25l-0.6 0.7-0.6 0.7-344.5 401.9c-6.4 6.7-14.1 7.7-18.2 7.7s-11.7-1-18.2-7.7L150.1 437.6l-0.6-0.7-0.6-0.7c-6.2-6.8-8.2-16.4-5.3-25l110.4-210 1.2-2.2 1-2.3c3.9-9.5 13.1-15.6 23.3-15.6H746m0-54.6H279.4c-32.3 0-61.4 19.5-73.8 49.3L93.8 388.7c-11.9 28.7-6 61.6 14.9 84.4l345.2 402.7c15.8 17.3 37.3 25.9 58.9 25.9 21.5 0 43-8.6 58.9-25.9l345.2-402.7c20.9-22.9 26.8-55.8 14.9-84.4l-112-212.9c-12.3-29.8-41.5-49.3-73.8-49.3z" p-id="7995" fill="#d81e06"></path><path d="M513.9 524.6c-19.1 0-37.5-8.1-50.4-22.2l-97.7-106.7c-10.2-11.1-9.4-28.4 1.7-38.5 11.1-10.2 28.4-9.4 38.5 1.7l97.7 106.7c3.6 3.9 7.9 4.5 10.2 4.5 2.3 0 6.6-0.6 10.2-4.5l95.5-104.2c10.2-11.1 27.4-11.9 38.5-1.7 11.1 10.2 11.9 27.4 1.7 38.5l-95.5 104.2c-13 14.1-31.3 22.2-50.4 22.2z" p-id="7996" fill="#d81e06"></path></svg>
|
v-if="index === 0"
|
||||||
|
t="1744335709188"
|
||||||
|
class="icon"
|
||||||
|
viewBox="0 0 1024 1024"
|
||||||
|
version="1.1"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
p-id="2464"
|
||||||
|
width="32"
|
||||||
|
height="32"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M933.868272 511.691752a140.807706 140.807706 0 0 1 90.131728-131.067068 525.562914 525.562914 0 0 0-57.334136-138.64997 139.882962 139.882962 0 0 1-184.948826-184.948826A525.562914 525.562914 0 0 0 643.067068 0a140.376159 140.376159 0 0 1-262.134136 0A525.562914 525.562914 0 0 0 242.282962 57.334136a139.882962 139.882962 0 0 1-184.948826 184.948826A506.698134 506.698134 0 0 0 0 380.932932a140.376159 140.376159 0 0 1 0 262.134136 525.562914 525.562914 0 0 0 57.334136 138.64997 139.882962 139.882962 0 0 1 184.948826 184.948826 525.562914 525.562914 0 0 0 138.64997 57.334136 140.376159 140.376159 0 0 1 262.134136 0 525.562914 525.562914 0 0 0 138.64997-57.334136 139.882962 139.882962 0 0 1 184.948826-184.948826 506.698134 506.698134 0 0 0 57.334136-138.64997A140.807706 140.807706 0 0 1 933.868272 511.691752zM511.691752 652.437809A140.437809 140.437809 0 1 1 652.437809 511.691752 140.499458 140.499458 0 0 1 511.691752 652.437809z"
|
||||||
|
fill="#1D85ED"
|
||||||
|
p-id="2465"
|
||||||
|
></path>
|
||||||
|
</svg>
|
||||||
|
<svg
|
||||||
|
v-if="index === 1"
|
||||||
|
t="1744335834635"
|
||||||
|
class="icon"
|
||||||
|
viewBox="0 0 1024 1024"
|
||||||
|
version="1.1"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
p-id="7994"
|
||||||
|
width="32"
|
||||||
|
height="32"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M746 181.1c10.3 0 19.4 6.1 23.3 15.6l1 2.3 1.2 2.2 110.4 210c2.9 8.6 0.9 18.3-5.3 25l-0.6 0.7-0.6 0.7-344.5 401.9c-6.4 6.7-14.1 7.7-18.2 7.7s-11.7-1-18.2-7.7L150.1 437.6l-0.6-0.7-0.6-0.7c-6.2-6.8-8.2-16.4-5.3-25l110.4-210 1.2-2.2 1-2.3c3.9-9.5 13.1-15.6 23.3-15.6H746m0-54.6H279.4c-32.3 0-61.4 19.5-73.8 49.3L93.8 388.7c-11.9 28.7-6 61.6 14.9 84.4l345.2 402.7c15.8 17.3 37.3 25.9 58.9 25.9 21.5 0 43-8.6 58.9-25.9l345.2-402.7c20.9-22.9 26.8-55.8 14.9-84.4l-112-212.9c-12.3-29.8-41.5-49.3-73.8-49.3z"
|
||||||
|
p-id="7995"
|
||||||
|
fill="#d81e06"
|
||||||
|
></path>
|
||||||
|
<path
|
||||||
|
d="M513.9 524.6c-19.1 0-37.5-8.1-50.4-22.2l-97.7-106.7c-10.2-11.1-9.4-28.4 1.7-38.5 11.1-10.2 28.4-9.4 38.5 1.7l97.7 106.7c3.6 3.9 7.9 4.5 10.2 4.5 2.3 0 6.6-0.6 10.2-4.5l95.5-104.2c10.2-11.1 27.4-11.9 38.5-1.7 11.1 10.2 11.9 27.4 1.7 38.5l-95.5 104.2c-13 14.1-31.3 22.2-50.4 22.2z"
|
||||||
|
p-id="7996"
|
||||||
|
fill="#d81e06"
|
||||||
|
></path>
|
||||||
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<h3>{{ item.title }}</h3>
|
<h3>{{ item.title }}</h3>
|
||||||
@@ -18,15 +55,12 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<!-- 弹窗组件 -->
|
<!-- 弹窗组件 -->
|
||||||
<custom-split-dialog
|
<custom-split-dialog class="active" ref="customTable"> </custom-split-dialog>
|
||||||
class="active"
|
|
||||||
ref="customTable">
|
|
||||||
</custom-split-dialog>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import CustomSplitDialog from './CustomSplitDialog.vue';
|
import CustomSplitDialog from './CustomSplitDialog.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'splitConfig',
|
name: 'splitConfig',
|
||||||
@@ -58,7 +92,7 @@ export default {
|
|||||||
filters: {},
|
filters: {},
|
||||||
methods: {
|
methods: {
|
||||||
handleClick(index) {
|
handleClick(index) {
|
||||||
this.activeIndex = index;
|
this.activeIndex = index
|
||||||
if (index === 1) {
|
if (index === 1) {
|
||||||
this.$refs.customTable.init()
|
this.$refs.customTable.init()
|
||||||
} else {
|
} else {
|
||||||
@@ -72,7 +106,7 @@ export default {
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang='scss'>
|
<style scoped lang="scss">
|
||||||
.splitConfig {
|
.splitConfig {
|
||||||
.title {
|
.title {
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
@@ -95,21 +129,20 @@ export default {
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
.block{
|
.block {
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
h3 {
|
h3 {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
.tips{
|
.tips {
|
||||||
color: #9E9E9E;
|
color: #9e9e9e;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.active{
|
.active {
|
||||||
border: 1px solid #409EFF;
|
border: 1px solid #409eff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,10 +19,7 @@
|
|||||||
<add-rule ref="addRule"></add-rule>
|
<add-rule ref="addRule"></add-rule>
|
||||||
|
|
||||||
<!-- 添加预览弹窗 -->
|
<!-- 添加预览弹窗 -->
|
||||||
<el-dialog
|
<el-dialog title="拆分结果预览" :visible.sync="previewDialogVisible" width="60%">
|
||||||
title="拆分结果预览"
|
|
||||||
:visible.sync="previewDialogVisible"
|
|
||||||
width="60%">
|
|
||||||
<div class="preview-content">
|
<div class="preview-content">
|
||||||
<!-- 预览内容区域 -->
|
<!-- 预览内容区域 -->
|
||||||
这里是预览的内容
|
这里是预览的内容
|
||||||
@@ -44,8 +41,7 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
AddRule // 注册 AddRule 组件
|
AddRule // 注册 AddRule 组件
|
||||||
},
|
},
|
||||||
props: {
|
props: {},
|
||||||
},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
visible: false,
|
visible: false,
|
||||||
@@ -63,29 +59,29 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
init(){
|
init() {
|
||||||
this.visible = true;
|
this.visible = true
|
||||||
this.getDataList()
|
this.getDataList()
|
||||||
},
|
},
|
||||||
getDataList() {
|
getDataList() {
|
||||||
console.log('getRulesPage');
|
console.log('getRulesPage')
|
||||||
// 1-文档拆分规则 2-文档题词规则
|
// 1-文档拆分规则 2-文档题词规则
|
||||||
let params = {
|
let params = {
|
||||||
ruleType: 2,
|
ruleType: 2,
|
||||||
...this.form
|
...this.form
|
||||||
}
|
}
|
||||||
getRulesPage(params).then(res => {
|
getRulesPage(params).then(res => {
|
||||||
console.log(res.content.content.list);
|
console.log(res.content.content.list)
|
||||||
this.tableData = res.content.content.list
|
this.tableData = res.content.content.list
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
close(){
|
close() {
|
||||||
this.visible = false;
|
this.visible = false
|
||||||
},
|
},
|
||||||
handlePreview(row) {
|
handlePreview(row) {
|
||||||
// 预览逻辑
|
// 预览逻辑
|
||||||
console.log('Preview', row);
|
console.log('Preview', row)
|
||||||
this.previewDialogVisible = true; // 显示预览弹窗
|
this.previewDialogVisible = true // 显示预览弹窗
|
||||||
},
|
},
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
// 修改逻辑
|
// 修改逻辑
|
||||||
@@ -101,9 +97,9 @@ export default {
|
|||||||
handleClose(done) {
|
handleClose(done) {
|
||||||
this.$confirm('确认关闭?')
|
this.$confirm('确认关闭?')
|
||||||
.then(_ => {
|
.then(_ => {
|
||||||
done();
|
done()
|
||||||
})
|
})
|
||||||
.catch(_ => {});
|
.catch(_ => {})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
</el-steps>
|
</el-steps>
|
||||||
|
|
||||||
<div class="components">
|
<div class="components">
|
||||||
<step-preprocessing v-if="active === 0" @getForm="getForm"></step-preprocessing>
|
<step-preprocessing v-if="active === 0" @getForm="getForm" @getDocumentId="getDocumentId"></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>
|
||||||
@@ -27,9 +27,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<el-drawer :visible.sync="visible" size="80%" title="预处理结果预览">
|
<!-- 添加预处理结果预览对话框 -->
|
||||||
|
<el-drawer :visible.sync="visible" size="80%" title="预处理结果预览" :before-close="handleClose">
|
||||||
<div style="height:calc(100% - 55px);">
|
<div style="height:calc(100% - 55px);">
|
||||||
<r-miner-u></r-miner-u>
|
<r-miner-u :documentId="documentId"></r-miner-u>
|
||||||
</div>
|
</div>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
</div>
|
</div>
|
||||||
@@ -44,7 +45,8 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
visible: true,
|
visible: true,
|
||||||
active: 0
|
active: 0,
|
||||||
|
documentId: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props: {},
|
props: {},
|
||||||
@@ -57,7 +59,10 @@ export default {
|
|||||||
filters: {},
|
filters: {},
|
||||||
methods: {
|
methods: {
|
||||||
getForm() {},
|
getForm() {},
|
||||||
fetchApi() {}
|
fetchApi() {},
|
||||||
|
getDocumentId(id) {
|
||||||
|
this.documentId = id
|
||||||
|
}
|
||||||
},
|
},
|
||||||
created() {},
|
created() {},
|
||||||
mounted() {},
|
mounted() {},
|
||||||
|
|||||||
@@ -4,20 +4,20 @@
|
|||||||
<div slot="header" class="clearfix">
|
<div slot="header" class="clearfix">
|
||||||
<div class="flex align-items-c">
|
<div class="flex align-items-c">
|
||||||
<h3 class="mr20" v-if="!editKnowledge">{{ knowledgeName }}</h3>
|
<h3 class="mr20" v-if="!editKnowledge">{{ knowledgeName }}</h3>
|
||||||
<el-input class="mr20 w400" size='medium' v-else v-model="copyKnowledgeName">{{ knowledgeName }}</el-input>
|
<el-input class="mr20 w400" size="medium" v-else v-model="copyKnowledgeName">{{ knowledgeName }}</el-input>
|
||||||
<el-icon class="el-icon-edit cursor-pointer" @click.native="editKnowledgeName" v-if="!editKnowledge"></el-icon>
|
<el-icon class="el-icon-edit cursor-pointer" @click.native="editKnowledgeName" v-if="!editKnowledge"></el-icon>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<el-button type='primary' size='medium' @click='saveKnowledgeName'>保存</el-button>
|
<el-button type="primary" size="medium" @click="saveKnowledgeName">保存</el-button>
|
||||||
<el-button size='medium' @click="cancelKnowledgeName">取消</el-button>
|
<el-button size="medium" @click="cancelKnowledgeName">取消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="mt10 fs14" style="line-height: 20px">描述:{{ knowledgeDesc }}</p>
|
<p class="mt10 fs14" style="line-height: 20px">描述:{{ knowledgeDesc }}</p>
|
||||||
<p class="mt10 fs14" style="line-height: 20px">分段模式:{{ segmentedMode | filterSegmentedMode }}</p>
|
<p class="mt10 fs14" style="line-height: 20px">分段模式:{{ segmentedMode | filterSegmentedMode }}</p>
|
||||||
<el-button type="text" class="mt10" @click='jumpEditKnowledge'>修改知识库</el-button>
|
<el-button type="text" class="mt10" @click="jumpEditKnowledge">修改知识库</el-button>
|
||||||
<el-button type="text" class="mt10" @click='jumpAddKnowledge'>上传知识</el-button>
|
<el-button type="text" class="mt10" @click="jumpAddKnowledge">上传知识</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<el-empty v-if="!list || list.length <= 0">
|
<el-empty v-if="!hasList">
|
||||||
<div class="mt20">
|
<div class="mt20">
|
||||||
<el-button type="primary" size="medium" class="fs14" @click="jumpAddKnowledge">立即添加</el-button>
|
<el-button type="primary" size="medium" class="fs14" @click="jumpAddKnowledge">立即添加</el-button>
|
||||||
</div>
|
</div>
|
||||||
@@ -28,58 +28,89 @@
|
|||||||
<el-form :model="form" label-width="100px">
|
<el-form :model="form" label-width="100px">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="知识文件名称">
|
<el-form-item label="知识文件名称" prop="fileName">
|
||||||
<el-input v-model="form.name" placeholder="请输入知识文件名称"></el-input>
|
<el-input v-model="form.fileName" placeholder="请输入知识文件名称"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="知识文件来源">
|
<el-form-item label="知识文件来源" prop="documentSource">
|
||||||
<el-input v-model="form.name" placeholder="请输入知识文件名称"></el-input>
|
<el-select v-model="form.documentSource" placeholder="请输入知识文件名称">
|
||||||
|
<el-option label="全部" value=""></el-option>
|
||||||
|
<el-option v-for="item in documentSourceOptions" :label="item.label" :value="item.value" :key="item.value"></el-option>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="上传用户">
|
<el-form-item label="上传用户" prop="createdUserLike">
|
||||||
<el-input v-model="form.name" placeholder="请输入知识文件名称"></el-input>
|
<el-select v-model="form.createdUserLike" placeholder="请输入知识文件名称" disabled>
|
||||||
</el-form-item>
|
<el-option label="暂无用户" value=""></el-option>
|
||||||
</el-col>
|
</el-select>
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="关键字">
|
|
||||||
<el-input v-model="form.name" placeholder="请输入知识文件名称"></el-input>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<!-- <el-col :span="6">-->
|
||||||
|
<!-- <el-form-item label="关键字">-->
|
||||||
|
<!-- <el-input v-model="form.name" placeholder="请输入关键字/敏感词"></el-input>-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- </el-col>-->
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="12">
|
||||||
<el-form-item label="上传时间">
|
<el-form-item label="上传时间" prop="times">
|
||||||
<el-input v-model="form.name" placeholder="请输入知识文件名称"></el-input>
|
<el-date-picker
|
||||||
|
style="width:100%"
|
||||||
|
v-model="form.times"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
placeholder="请输入知识文件名称"
|
||||||
|
type="daterange"
|
||||||
|
></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24" class="mb20 text-center">
|
<el-col :span="24" class="mb20 text-center">
|
||||||
<el-button size="medium" type="primary">查询</el-button>
|
<el-button size="medium" type="primary" @click="search">查询</el-button>
|
||||||
<el-button size="medium" type="primary">重置</el-button>
|
<el-button size="medium" type="primary" @click="reset">重置</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<r-table :columns="columns" :data="list" :deletion="false"></r-table>
|
<r-table
|
||||||
|
:columns="columns"
|
||||||
|
:data="list"
|
||||||
|
:deletion="false"
|
||||||
|
:total="total"
|
||||||
|
@page-change="pageChange"
|
||||||
|
@current-change="currentChange"
|
||||||
|
:current-page="page"
|
||||||
|
:page-size="pageSize"
|
||||||
|
></r-table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getDatasetById,datasetUpdate } from '@/api/generatedApi/index'
|
import { getDatasetById, datasetUpdate, datasetsExPages } from '@/api/generatedApi/index'
|
||||||
|
import { documentSourceOptions } from '@/assets/js/utils/utilOptions'
|
||||||
export default {
|
export default {
|
||||||
name: 'index',
|
name: 'index',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
editKnowledge: false,
|
editKnowledge: false,
|
||||||
form: {},
|
form: {
|
||||||
|
fileName: '',
|
||||||
|
documentSource: '',
|
||||||
|
createdUserLike: '',
|
||||||
|
times: ''
|
||||||
|
},
|
||||||
//知识库名称
|
//知识库名称
|
||||||
knowledgeName: '监管',
|
knowledgeName: '监管',
|
||||||
copyKnowledgeName: '监管',
|
copyKnowledgeName: '监管',
|
||||||
knowledgeDesc: '监管',
|
knowledgeDesc: '监管',
|
||||||
segmentedMode: '分段模式',
|
segmentedMode: '分段模式',
|
||||||
list: []
|
list: [],
|
||||||
|
page: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
total: 0,
|
||||||
|
hasList: false,
|
||||||
|
documentSourceOptions
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props: {},
|
props: {},
|
||||||
@@ -87,26 +118,26 @@ export default {
|
|||||||
components: {},
|
components: {},
|
||||||
methods: {
|
methods: {
|
||||||
// 开启编辑 知识库标题
|
// 开启编辑 知识库标题
|
||||||
editKnowledgeName(){
|
editKnowledgeName() {
|
||||||
this.editKnowledge = true
|
this.editKnowledge = true
|
||||||
this.copyKnowledgeName = this.knowledgeName
|
this.copyKnowledgeName = this.knowledgeName
|
||||||
},
|
},
|
||||||
// 保存知识库标题
|
// 保存知识库标题
|
||||||
saveKnowledgeName(){
|
saveKnowledgeName() {
|
||||||
let { datasetId } = this.$route.query
|
let { datasetId } = this.$route.query
|
||||||
this.knowledgeName = this.copyKnowledgeName
|
this.knowledgeName = this.copyKnowledgeName
|
||||||
// 调用update接口
|
// 调用update接口
|
||||||
datasetUpdate({
|
datasetUpdate({
|
||||||
name:this.knowledgeName,
|
name: this.knowledgeName,
|
||||||
description:this.knowledgeDesc,
|
description: this.knowledgeDesc,
|
||||||
segmentedMode:this.segmentedMode,
|
segmentedMode: this.segmentedMode,
|
||||||
id:datasetId,
|
id: datasetId
|
||||||
}).then(res=>{
|
}).then(res => {
|
||||||
this.editKnowledge = false
|
this.editKnowledge = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 取消保存
|
// 取消保存
|
||||||
cancelKnowledgeName(){
|
cancelKnowledgeName() {
|
||||||
this.editKnowledge = false
|
this.editKnowledge = false
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -121,7 +152,7 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 跳转到知识库编辑
|
// 跳转到知识库编辑
|
||||||
jumpEditKnowledge(){
|
jumpEditKnowledge() {
|
||||||
let { datasetId } = this.$route.query
|
let { datasetId } = this.$route.query
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
path: '/knowledge/knowledge-create',
|
path: '/knowledge/knowledge-create',
|
||||||
@@ -146,6 +177,47 @@ export default {
|
|||||||
|
|
||||||
console.log(res)
|
console.log(res)
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查询
|
||||||
|
search() {
|
||||||
|
this.page = 1
|
||||||
|
this.getKnowledgeFiledList()
|
||||||
|
},
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
fileName: '',
|
||||||
|
documentSource: '',
|
||||||
|
createdUserLike: '',
|
||||||
|
times: []
|
||||||
|
}
|
||||||
|
this.getKnowledgeFiledList()
|
||||||
|
},
|
||||||
|
//获取知识库文件
|
||||||
|
getKnowledgeFiledList() {
|
||||||
|
let { datasetId } = this.$route.query
|
||||||
|
|
||||||
|
datasetsExPages({
|
||||||
|
...this.form,
|
||||||
|
datasetId,
|
||||||
|
page: this.page,
|
||||||
|
pageSize: this.pageSize,
|
||||||
|
startCreatedDate: this.form.times[0],
|
||||||
|
endCreatedDate: this.form.times[1]
|
||||||
|
}).then(res => {
|
||||||
|
this.list = res.content.content.list
|
||||||
|
this.total = res.content.content.total
|
||||||
|
this.hasList = true
|
||||||
|
})
|
||||||
|
},
|
||||||
|
pageChange(pageSize) {
|
||||||
|
this.pageSize = pageSize
|
||||||
|
this.page = 1
|
||||||
|
this.getKnowledgeFiledList()
|
||||||
|
},
|
||||||
|
currentChange(page) {
|
||||||
|
this.page = page
|
||||||
|
this.getKnowledgeFiledList()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
filters: {
|
filters: {
|
||||||
@@ -163,41 +235,90 @@ export default {
|
|||||||
created() {},
|
created() {},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getKnowledgeDetail()
|
this.getKnowledgeDetail()
|
||||||
|
// 获取知识库文件列表
|
||||||
|
this.getKnowledgeFiledList()
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
columns() {
|
columns(vm) {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
key: '知识文件名称',
|
key: '知识文件名称',
|
||||||
prop: 'knowledgeName',
|
prop: 'knowledgeName',
|
||||||
width: '200px',
|
width: '200px'
|
||||||
align: 'center',
|
|
||||||
render: (h, params) => {
|
|
||||||
return h('div', [h('span', params.row.knowledgeName)])
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: '知识文件来源',
|
key: '知识文件来源',
|
||||||
prop: 'knowledgeDesc'
|
prop: 'documentSource',
|
||||||
|
width: '200px',
|
||||||
|
render: (h, params) => {
|
||||||
|
let text = documentSourceOptions.find(item => item.value === String(params.row.documentSource)).label
|
||||||
|
return h('div', [h('span', text)])
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: '召回次数',
|
key: '召回次数',
|
||||||
prop: 'knowledgeDesc'
|
prop: 'hitCount',
|
||||||
|
render: (h, params) => {
|
||||||
|
return h('div', !params.row.hitCount ? '0' : params.row.hitCount)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: '上传用户',
|
key: '上传用户',
|
||||||
prop: 'knowledgeDesc'
|
prop: 'createdUser',
|
||||||
|
render: (h, params) => {
|
||||||
|
return h('div', !params.row.createdUser ? '-' : params.row.createdUser)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: '上传时间',
|
key: '上传时间',
|
||||||
prop: 'knowledgeDesc'
|
prop: 'createdDate'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: '操作',
|
key: '操作',
|
||||||
prop: 'knowledgeDesc',
|
prop: 'knowledgeDesc',
|
||||||
width: '200px',
|
width: '200px',
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
return h('div', [h('span', params.row.knowledgeDesc)])
|
return h('div', [
|
||||||
|
h(
|
||||||
|
'el-button',
|
||||||
|
{
|
||||||
|
class: 'floatSpan',
|
||||||
|
props: {
|
||||||
|
type: 'primary',
|
||||||
|
size: 'mini',
|
||||||
|
disabled: true
|
||||||
|
},
|
||||||
|
on: {}
|
||||||
|
},
|
||||||
|
'修改'
|
||||||
|
),
|
||||||
|
h(
|
||||||
|
'el-button',
|
||||||
|
{
|
||||||
|
class: 'floatSpan',
|
||||||
|
props: {
|
||||||
|
type: 'danger',
|
||||||
|
size: 'mini'
|
||||||
|
},
|
||||||
|
on: {}
|
||||||
|
},
|
||||||
|
'删除'
|
||||||
|
),
|
||||||
|
h(
|
||||||
|
'el-button',
|
||||||
|
{
|
||||||
|
class: 'floatSpan',
|
||||||
|
props: {
|
||||||
|
type: 'primary',
|
||||||
|
size: 'mini'
|
||||||
|
},
|
||||||
|
on: {
|
||||||
|
click: () => this.handleEdit(params.row)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'查看详情'
|
||||||
|
)
|
||||||
|
])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -40,6 +40,13 @@ module.exports = {
|
|||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
'^/api': ''
|
'^/api': ''
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
'/jifen': {
|
||||||
|
target: 'http://192.168.8.165:7196',
|
||||||
|
changeOrigin: true,
|
||||||
|
pathRewrite: {
|
||||||
|
'^/jifen': ''
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -52,9 +59,9 @@ module.exports = {
|
|||||||
{
|
{
|
||||||
test: /\.mjs$/,
|
test: /\.mjs$/,
|
||||||
include: /node_modules/,
|
include: /node_modules/,
|
||||||
type: 'javascript/auto',
|
type: 'javascript/auto'
|
||||||
},
|
}
|
||||||
],
|
]
|
||||||
},
|
},
|
||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
|
|||||||
Reference in New Issue
Block a user