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 @@ 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 @@ @@ -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 @@