mirror of
http://112.124.100.131/ebiz-ai/ebiz-ai-knowledge-manage.git
synced 2025-12-15 13:56:51 +08:00
feat(knowledge): 添加下载知识文件模板功能
- task-page.js 1. 添加对应的接口 - request.js 1. 更改校验显示 - preprocessing.vue 实现 下载模板的功能
This commit is contained in:
@@ -21,3 +21,14 @@ export function getRuleList(data = {}) {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下载知识文件模板
|
||||||
|
*/
|
||||||
|
export function downloadKnowledgeTemplate() {
|
||||||
|
return request({
|
||||||
|
url: getUrl('/datasetDocumentEx/download'),
|
||||||
|
method: 'get',
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ service.interceptors.request.use(
|
|||||||
endLoading()
|
endLoading()
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(config.noLoading)
|
// console.log(config.noLoading)
|
||||||
//linkage 接口
|
//linkage 接口
|
||||||
// config.type 可以从api的接口地址定义 可以不触发loading
|
// config.type 可以从api的接口地址定义 可以不触发loading
|
||||||
if (config.noLoading != true) {
|
if (config.noLoading != true) {
|
||||||
@@ -53,13 +53,18 @@ service.interceptors.response.use(
|
|||||||
const res = response.data
|
const res = response.data
|
||||||
endLoading()
|
endLoading()
|
||||||
|
|
||||||
if (res.content.code) {
|
// 检查res.content是否存在,处理blob等特殊响应类型
|
||||||
res.content.result = res.content.code
|
if (res.content) {
|
||||||
|
if (res.content.code) {
|
||||||
|
res.content.result = res.content.code
|
||||||
|
}
|
||||||
|
if (res.content.result) {
|
||||||
|
res.content.code = res.content.result
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (res.content.result) {
|
|
||||||
res.content.code = res.content.result
|
// 只有当res.content不存在且res不是blob时才显示错误
|
||||||
}
|
if (!res.content && !(response.config.responseType === 'blob')) {
|
||||||
if (!res.content) {
|
|
||||||
Message({
|
Message({
|
||||||
message: res.message,
|
message: res.message,
|
||||||
type: 'error',
|
type: 'error',
|
||||||
@@ -67,13 +72,13 @@ service.interceptors.response.use(
|
|||||||
})
|
})
|
||||||
return Promise.reject(res)
|
return Promise.reject(res)
|
||||||
}
|
}
|
||||||
if (response.request.responseType == 'blob' || response.request.responseType == 'Blob') {
|
if (response.request.responseType === 'blob' || response.request.responseType === 'Blob') {
|
||||||
return response.data
|
return response.data
|
||||||
}
|
}
|
||||||
if (res.content.code != '0' && res.content.result != 0) {
|
if (res.content.code !== '0' && res.content.result !== 0) {
|
||||||
//500毫秒延迟 显得过度平滑
|
//500毫秒延迟 显得过度平滑
|
||||||
// token过期或失效 根据项目设置其code
|
// token过期或失效 根据项目设置其code
|
||||||
if (response.headers['content-type'] != 'application/x-zip-compressed') {
|
if (response.headers['content-type'] !== 'application/x-zip-compressed') {
|
||||||
if (res.content.code === '4001' || res.content.code === '4002') {
|
if (res.content.code === '4001' || res.content.code === '4002') {
|
||||||
MessageBox.confirm('你已被登出,可以取消继续留在该页面,或者重新登录', '确认退出', {
|
MessageBox.confirm('你已被登出,可以取消继续留在该页面,或者重新登录', '确认退出', {
|
||||||
confirmButtonText: '重新登录',
|
confirmButtonText: '重新登录',
|
||||||
@@ -93,7 +98,7 @@ service.interceptors.response.use(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (res.content.code == '1' || res.content.code == '') {
|
if (res.content.code === '1' || res.content.code === '') {
|
||||||
Message({
|
Message({
|
||||||
message: res.content.resultMessage ? res.content.resultMessage : res.content.message ? res.content.message : '接口错误',
|
message: res.content.resultMessage ? res.content.resultMessage : res.content.message ? res.content.message : '接口错误',
|
||||||
type: 'error',
|
type: 'error',
|
||||||
|
|||||||
@@ -46,7 +46,8 @@
|
|||||||
<el-form-item label="是否进行预处理:" required prop="beMinerU">
|
<el-form-item label="是否进行预处理:" required prop="beMinerU">
|
||||||
<template slot="label">
|
<template slot="label">
|
||||||
是否进行预处理
|
是否进行预处理
|
||||||
<el-tooltip class="item" effect="dark" content="通过整合最先进的文档解析模型来提高内容提取质量" placement="top">
|
<el-tooltip class="item" effect="dark" content="通过整合最先进的文档解析模型来提高内容提取质量"
|
||||||
|
placement="top">
|
||||||
<i class="el-icon-info ml5" style="color: #909399;"></i>
|
<i class="el-icon-info ml5" style="color: #909399;"></i>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
:
|
:
|
||||||
@@ -82,7 +83,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { uploadFileByCustom, uploadFileByTemplate } from '@/api/generatedApi/index'
|
import { uploadFileByCustom, uploadFileByTemplate } from '@/api/generatedApi'
|
||||||
|
import { downloadKnowledgeTemplate } from '@/api/knowledge/task-page'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'preprocessing',
|
name: 'preprocessing',
|
||||||
data() {
|
data() {
|
||||||
@@ -110,7 +113,40 @@ export default {
|
|||||||
getFileType() {
|
getFileType() {
|
||||||
this.$emit('getFileType', this.form.radio)
|
this.$emit('getFileType', this.form.radio)
|
||||||
},
|
},
|
||||||
downloadTemplate() {},
|
downloadTemplate() {
|
||||||
|
downloadKnowledgeTemplate().then((res) => {
|
||||||
|
// 创建Blob URL
|
||||||
|
const blob = new Blob([res.data])
|
||||||
|
|
||||||
|
const url = window.URL.createObjectURL(blob)
|
||||||
|
|
||||||
|
console.log(`blob url: `, url)
|
||||||
|
// 创建一个临时a标签并触发点击
|
||||||
|
const link = document.createElement('a')
|
||||||
|
link.href = url
|
||||||
|
|
||||||
|
// 尝试从响应头获取文件名,如果没有则使用默认名称
|
||||||
|
// const contentDisposition = res.headers['content-disposition']
|
||||||
|
// console.log(`content-disposition: `, contentDisposition)
|
||||||
|
let filename = '知识文件模板.pdf'
|
||||||
|
// if (contentDisposition) {
|
||||||
|
// const filenameMatch = contentDisposition.match(/filename="?(.+)"?/)
|
||||||
|
// if (filenameMatch && filenameMatch[1]) {
|
||||||
|
// filename = filenameMatch[1]
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
link.setAttribute('download', filename)
|
||||||
|
document.body.appendChild(link)
|
||||||
|
link.click()
|
||||||
|
|
||||||
|
// 清理
|
||||||
|
window.URL.revokeObjectURL(url)
|
||||||
|
document.body.removeChild(link)
|
||||||
|
}).catch(error => {
|
||||||
|
this.$message.error(error)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
// 生成filed
|
// 生成filed
|
||||||
createFiled() {
|
createFiled() {
|
||||||
@@ -204,8 +240,10 @@ export default {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {},
|
created() {
|
||||||
mounted() {},
|
},
|
||||||
|
mounted() {
|
||||||
|
},
|
||||||
computed: {}
|
computed: {}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -219,9 +257,11 @@ export default {
|
|||||||
height: 330px;
|
height: 330px;
|
||||||
width: 50%;
|
width: 50%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
border-color: #409eff;
|
border-color: #409eff;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.drag-over {
|
&.drag-over {
|
||||||
border-color: #409eff;
|
border-color: #409eff;
|
||||||
background-color: #ecf5ff;
|
background-color: #ecf5ff;
|
||||||
@@ -238,6 +278,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#preprocessing-container {
|
#preprocessing-container {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -271,6 +312,7 @@ export default {
|
|||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialog-footer {
|
.dialog-footer {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user