diff --git a/frontend/src/components/common/CardBase.vue b/frontend/src/components/common/CardBase.vue new file mode 100644 index 0000000..306373b --- /dev/null +++ b/frontend/src/components/common/CardBase.vue @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/components/common/index.ts b/frontend/src/components/common/index.ts new file mode 100644 index 0000000..081cca7 --- /dev/null +++ b/frontend/src/components/common/index.ts @@ -0,0 +1,4 @@ +import CardBase from "./CardBase.vue"; +import PromotionBanner from "./PromotionBanner.vue"; + +export { CardBase, PromotionBanner }; diff --git a/frontend/src/components/common/knowledge/KnowledgeDocCard.vue b/frontend/src/components/common/knowledge/KnowledgeDocCard.vue index 6a776a5..2e1f2f5 100644 --- a/frontend/src/components/common/knowledge/KnowledgeDocCard.vue +++ b/frontend/src/components/common/knowledge/KnowledgeDocCard.vue @@ -1,31 +1,26 @@ - - - - - {{ doc.name }} - - - - - - - - - - - - 上传时间: {{ formatDateString(doc.createTime) }} - - - - - - - + + {{ doc.name }} + + + + + + + + + + 上传时间: {{ formatDateString(doc.createTime) }} + + + + + + diff --git a/frontend/src/components/ui/index.ts b/frontend/src/components/ui/index.ts new file mode 100644 index 0000000..4bda237 --- /dev/null +++ b/frontend/src/components/ui/index.ts @@ -0,0 +1,7 @@ +import Alert from "./Alert.vue"; +import Avatar from "./Avatar.vue"; +import Button from "./Button.vue"; +import InputButton from "./InputButton.vue"; +import SortIcon from "./SortIcon.vue"; + +export { Alert, Avatar, Button, InputButton, SortIcon }; diff --git a/frontend/src/composables/knowledge/useKnowledgeQuery.ts b/frontend/src/composables/knowledge/useKnowledgeQuery.ts index 674ba24..cdad5d2 100644 --- a/frontend/src/composables/knowledge/useKnowledgeQuery.ts +++ b/frontend/src/composables/knowledge/useKnowledgeQuery.ts @@ -12,6 +12,7 @@ export const useKnowledgeQuery = () => { const libraries = ref([]); const docs = ref([]); const segments = ref([]); + const doc = ref(null); const fetchLibraries = async () => { const { data } = await client.GET("/knowledge/libraries", {}); @@ -29,11 +30,22 @@ export const useKnowledgeQuery = () => { docs.value = data || []; }; + const fetchDocById = async (docId: number) => { + const { data } = await client.GET("/knowledge/docs", { + params: { + query: {}, + }, + }); + if (data && Array.isArray(data)) { + doc.value = data.find((item) => item.id === docId) || null; + } + }; + const fetchDocSegments = async (params: SegmentQueryParams) => { const { data } = await client.GET("/knowledge/segments", { params: { query: { - libraryDocId: params.libraryDocId, + libraryDocId: params.libraryDocId || params.docId || 0, }, }, }); @@ -45,6 +57,8 @@ export const useKnowledgeQuery = () => { fetchLibraries, docs, fetchLibraryDocs, + doc, + fetchDocById, segments, fetchDocSegments, }; diff --git a/frontend/src/types/KnowledgeTypes.ts b/frontend/src/types/KnowledgeTypes.ts index c28a3e9..7fd7116 100644 --- a/frontend/src/types/KnowledgeTypes.ts +++ b/frontend/src/types/KnowledgeTypes.ts @@ -26,8 +26,9 @@ export interface DocQueryParams { } export interface SegmentQueryParams { - libraryDocId: number; -} + libraryDocId?: number; + docId?: number; + } export enum DocStatus { SUCCESS = "SUCCESS", diff --git a/frontend/src/views/KnowledgeDocManagementPage.vue b/frontend/src/views/KnowledgeDocManagementPage.vue index 1cf017d..478c58a 100644 --- a/frontend/src/views/KnowledgeDocManagementPage.vue +++ b/frontend/src/views/KnowledgeDocManagementPage.vue @@ -1,56 +1,53 @@ - - - - {{ currentLibrary?.name || '知识库' }} - 文档管理 - + + + + {{ currentLibrary?.name || '知识库' }} - 文档管理 + - - - - - - - - - - - - - 查看内容 - - - 删除 - - - - + + + + + + + + + + + + + 查看内容 + + + 删除 + + + + - - - 暂无文档 - - - - - - - 上传文档 - - - + + + 暂无文档 + + + + + + + 上传文档 + + + - + - - @@ -61,11 +58,11 @@ import { Modal, type ModalInterface, initFlowbite } from "flowbite"; import { onMounted, ref, watchEffect } from "vue"; import { useRoute, useRouter } from "vue-router"; -import { KnowledgeDocCard, KnowledgeStatusBadge } from "@/components/common/knowledge"; +import { KnowledgeDocCard } from "@/components/common/knowledge"; import { PlusIcon } from "@/components/icons"; import Breadcrumbs from "@/components/layout/Breadcrumbs.vue"; import ConfirmationDialog from "@/components/modals/ConfirmationDialog.vue"; -import TableButton from "@/components/tables/TableButton.vue"; +import { Button } from "@/components/ui"; import { useKnowledgeQuery } from "@/composables/knowledge/useKnowledgeQuery"; import { useKnowledgeUpsert } from "@/composables/knowledge/useKnowledgeUpsert"; diff --git a/frontend/src/views/KnowledgeManagementPage.vue b/frontend/src/views/KnowledgeManagementPage.vue index 5a68940..b87ce8a 100644 --- a/frontend/src/views/KnowledgeManagementPage.vue +++ b/frontend/src/views/KnowledgeManagementPage.vue @@ -27,10 +27,9 @@ - + 查看知识库 - + @@ -39,10 +38,9 @@ 暂无知识库 - + 创建知识库 - + @@ -69,6 +67,7 @@ import { KnowledgeLibraryCard } from "@/components/common/knowledge"; import Breadcrumbs from "@/components/layout/Breadcrumbs.vue"; import ConfirmationDialog from "@/components/modals/ConfirmationDialog.vue"; import LibraryFormDialog from "@/components/modals/LibraryFormDialog.vue"; +import { Button } from "@/components/ui"; import { useKnowledgeQuery } from "@/composables/knowledge/useKnowledgeQuery"; import { useKnowledgeUpsert } from "@/composables/knowledge/useKnowledgeUpsert"; diff --git a/frontend/src/views/KnowledgeSegmentsPage.vue b/frontend/src/views/KnowledgeSegmentsPage.vue index 7e43214..91cf1fc 100644 --- a/frontend/src/views/KnowledgeSegmentsPage.vue +++ b/frontend/src/views/KnowledgeSegmentsPage.vue @@ -1,76 +1,78 @@ - - - {{ currentDoc?.name || '文档' }} - 分段内容 - - 共 {{ segments.length }} 个分段 - + + + {{ currentDoc?.name || '文档' }} - 分段内容 - - - 暂无分段内容 + + + + + + + + + 返回文档列表 + - + + + + + 暂无分段内容 + + 返回文档列表 + +
- 共 {{ segments.length }} 个分段 -