diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index f3380b92..1db04df6 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -630,6 +630,18 @@ const remainingRouter: AppRouteRecordRaw[] = [ icon: 'ep:document', noCache: false } + }, + { + path: 'console/knowledge/document/create', + component: () => import('@/views/ai/knowledge/document/create/index.vue'), + name: 'AiKnowledgeDocumentCreate', + meta: { + title: '创建文档', + icon: 'ep:plus', + noCache: true, + hidden: true, + activeMenu: '/ai/console/knowledge/document' + } } ] }, diff --git a/src/views/ai/knowledge/document/create/ProcessStep.vue b/src/views/ai/knowledge/document/create/ProcessStep.vue new file mode 100644 index 00000000..f72b90ca --- /dev/null +++ b/src/views/ai/knowledge/document/create/ProcessStep.vue @@ -0,0 +1,235 @@ + + + + + + + + + + + 文档信息 + + + + + 文档名称: + {{ modelData.name }} + + + 知识库: + {{ getKnowledgeBaseName(modelData.knowledgeBaseId) }} + + + 文档类型: + {{ getDocumentTypeName(modelData.documentType) }} + + + 段落数量: + {{ modelData.segments.length }} + + + + + + + + + + 处理选项 + + + + + + + 标准处理 + 高级处理 + + + + + + + + + + + + + + + + + + + + + + + + + + 处理状态 + + + + + + + 开始处理 + + + + + + {{ processStatus }} + + + + + + + 查看文档 + + + + + + + + + + + + + diff --git a/src/views/ai/knowledge/document/create/SplitStep.vue b/src/views/ai/knowledge/document/create/SplitStep.vue new file mode 100644 index 00000000..639745d4 --- /dev/null +++ b/src/views/ai/knowledge/document/create/SplitStep.vue @@ -0,0 +1,234 @@ + + + + + + + + 分段设置 + + 自动分段 + 添加段落 + + + + + + + + 按段落分割 + 按字数分割 + 按标题分割 + + + + + + + + + + 段落列表 ({{ modelData.segments.length }}) + + + + + + + + + + + 删除段落 + + + + + + + + + + + 上一步 + 保存并处理 + + + + + + + diff --git a/src/views/ai/knowledge/document/create/UploadStep.vue b/src/views/ai/knowledge/document/create/UploadStep.vue new file mode 100644 index 00000000..5d190f7a --- /dev/null +++ b/src/views/ai/knowledge/document/create/UploadStep.vue @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + 拖拽文件到此处,或 点击上传 + + + {{ modelData.documentType === 'pdf' ? 'PDF文件' : 'Word文件(.docx, .doc)' }} + + + + + + + + + 下一步 + + + + + + + + diff --git a/src/views/ai/knowledge/document/create/index.vue b/src/views/ai/knowledge/document/create/index.vue new file mode 100644 index 00000000..d8724048 --- /dev/null +++ b/src/views/ai/knowledge/document/create/index.vue @@ -0,0 +1,214 @@ + + + + + + + + + + {{ formData.name || '创建知识库文档' }} + + + + + + + + + {{ index + 1 }} + + {{ step.title }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/ai/knowledge/document/index.vue b/src/views/ai/knowledge/document/index.vue index a9de7e41..a7954b09 100644 --- a/src/views/ai/knowledge/document/index.vue +++ b/src/views/ai/knowledge/document/index.vue @@ -35,12 +35,7 @@ 搜索 重置 - + 新增 @@ -106,7 +101,7 @@ import { getIntDictOptions, DICT_TYPE } from '@/utils/dict' import { dateFormatter } from '@/utils/formatTime' import { KnowledgeDocumentApi, KnowledgeDocumentVO } from '@/api/ai/knowledge/document' -import { useRoute } from 'vue-router' +import { useRoute, useRouter } from 'vue-router' // import KnowledgeDocumentForm from './KnowledgeDocumentForm.vue' /** AI 知识库文档 列表 */ @@ -115,6 +110,7 @@ defineOptions({ name: 'KnowledgeDocument' }) const message = useMessage() // 消息弹窗 const { t } = useI18n() // 国际化 const route = useRoute() // 路由 +const router = useRouter() // 路由 const loading = ref(true) // 列表的加载中 const list = ref([]) // 列表的数据 @@ -158,6 +154,11 @@ const openForm = (type: string, id?: number) => { formRef.value.open(type, id) } +/** 跳转到创建文档页面 */ +const handleCreate = () => { + router.push({ name: 'AiKnowledgeDocumentCreate' }) +} + /** 删除按钮操作 */ const handleDelete = async (id: number) => { try { diff --git a/src/views/bpm/model/form/index.vue b/src/views/bpm/model/form/index.vue index 4585fc60..bd715f73 100644 --- a/src/views/bpm/model/form/index.vue +++ b/src/views/bpm/model/form/index.vue @@ -380,7 +380,7 @@ const handleStepClick = async (index: number) => { if (index === 2) { await nextTick() // 等待更长时间确保组件完全初始化 - await new Promise(resolve => setTimeout(resolve, 200)) + await new Promise((resolve) => setTimeout(resolve, 200)) if (processDesignRef.value?.refresh) { await processDesignRef.value.refresh() }