From f9c8e3808bef0bd3876755ca44c2dcc4513bac4f Mon Sep 17 00:00:00 2001 From: Chuck1sn Date: Sat, 28 Jun 2025 08:43:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20CardBase=20=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=EF=BC=8C=E9=87=8D=E6=9E=84=E7=9F=A5=E8=AF=86=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=8D=A1=E7=89=87=E3=80=81=E7=9F=A5=E8=AF=86=E5=BA=93?= =?UTF-8?q?=E5=8D=A1=E7=89=87=E5=92=8C=E5=88=86=E6=AE=B5=E5=8D=A1=E7=89=87?= =?UTF-8?q?=E4=BB=A5=E4=BD=BF=E7=94=A8=E6=96=B0=E7=BB=84=E4=BB=B6=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8C=89=E9=92=AE=E7=BB=84=E4=BB=B6=E5=B9=B6?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=9B=B8=E5=85=B3=E9=A1=B5=E9=9D=A2=E4=BB=A5?= =?UTF-8?q?=E6=8F=90=E5=8D=87=E7=94=A8=E6=88=B7=E4=BD=93=E9=AA=8C=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/common/CardBase.vue | 44 +++++++ frontend/src/components/common/index.ts | 4 + .../common/knowledge/KnowledgeDocCard.vue | 43 +++--- .../common/knowledge/KnowledgeLibraryCard.vue | 35 ++--- .../common/knowledge/SegmentCard.vue | 27 ++-- frontend/src/components/ui/Button.vue | 122 ++++++++++++++++++ frontend/src/components/ui/index.ts | 7 + .../knowledge/useKnowledgeQuery.ts | 16 ++- frontend/src/types/KnowledgeTypes.ts | 5 +- .../src/views/KnowledgeDocManagementPage.vue | 97 +++++++------- .../src/views/KnowledgeManagementPage.vue | 11 +- frontend/src/views/KnowledgeSegmentsPage.vue | 80 ++++++------ 12 files changed, 340 insertions(+), 151 deletions(-) create mode 100644 frontend/src/components/common/CardBase.vue create mode 100644 frontend/src/components/common/index.ts create mode 100644 frontend/src/components/ui/Button.vue create mode 100644 frontend/src/components/ui/index.ts 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 @@