feat(knowledge): 优化知识库创建流程并添加 Markdown 预览功能

- 修改知识库创建流程,支持从第 2步直接进入第 3 步
- 添加 Markdown 文件预览功能
- 优化重新上传逻辑,根据路由参数判断当前步骤
- 新增 reviewKnowledge 组件用于直接上传到知识库之前的预览页面
- 调整步骤显示逻辑,根据文件类型和状态动态显示
This commit is contained in:
陈昱达
2025-05-07 14:27:53 +08:00
parent fa25771622
commit 3b9ebaa814
4 changed files with 140 additions and 21 deletions

View File

@@ -1,7 +1,7 @@
<template>
<div class="render-container">
<div slot="header" class="clearfix">
<h3>创建知识</h3>
<h3>上传知识</h3>
</div>
<div class="card-body mt20">
<el-steps
@@ -32,12 +32,22 @@
<div class="components">
<transition name="slide" appear mode="out-in">
<step-preprocessing
ref="stepPreProcessing"
v-if="active === 0"
@getForm="getForm"
@getDocumentId="getDocumentId"
></step-preprocessing>
<div v-if="active === 0">
<step-preprocessing
ref="stepPreProcessing"
v-if="!isMd"
@getForm="getForm"
@getDocumentId="getDocumentId"
></step-preprocessing>
<r-miner-u
class="mt10"
v-else
:documentId="documentId"
@saveMarkDown="saveMarkDown"
></r-miner-u>
</div>
<step-split-config
ref="splitConfig"
v-if="active === 1"
@@ -58,7 +68,7 @@
type="primary"
size="medium"
@click="nextStep"
v-if="active < 2"
v-if="active < 2 && !this.isMd"
>下一步</el-button
>
<el-button
@@ -69,7 +79,7 @@
>确定</el-button
>
<el-button
v-if="active === 0"
v-if="active === 0 && !this.isMd"
type="primary"
size="medium"
class="line-button"
@@ -112,7 +122,8 @@ export default {
magic,
visible: false,
active: 0,
documentId: '1365038001244180480'
documentId: '1365038001244180480',
isMd: false
}
},
props: {},
@@ -127,6 +138,7 @@ export default {
saveMarkDown() {
this.visible = false
this.active++
this.isMd = false
},
beMinerU() {
setTimeout(() => {
@@ -175,20 +187,54 @@ export default {
},
// 重新上传
handleReUpload() {
this.active = 0
if (this.$route.query.activeLevel) {
this.$router.replace(
`/knowledge/detail/create?datasetId=${this.$route.query.datasetId}`
)
this.active = 0
} else {
this.active = 0
}
}
},
created() {
let { documentId, datasetId, activeLevel } = this.$route.query
created() {},
mounted() {
console.log(123123)
let { documentId, datasetId, activeLevel, isMd } = this.$route.query
if (documentId) {
this.documentId = documentId
}
if (activeLevel) {
this.active = activeLevel
if (activeLevel !== undefined) {
this.active = Number(activeLevel)
switch (this.active) {
case '0':
case 0:
if (isMd) {
this.isMd = isMd
}
break
case '1':
case 1:
setTimeout(() => {
if (isMd) {
console.log(this.$refs.splitConfig)
this.$refs.splitConfig.previewOperation(documentId)
}
}, 1000)
break
case '2':
case 2:
break
default:
break
}
}
},
mounted() {},
computed: {}
computed: {},
beforeRouteLeave(to, form, next) {
this.visible = false
next()
}
}
</script>
<style scoped lang="scss">