From 9423d7e8924cf552f95278d0b2af158651c89ccf Mon Sep 17 00:00:00 2001 From: zjy <2642113241@qq.com> Date: Thu, 4 Jun 2026 10:44:55 +0800 Subject: [PATCH] =?UTF-8?q?'feat:=E6=8A=80=E8=83=BD=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E6=94=B9=E6=88=90=E5=8D=A1=E7=89=87=E5=BC=8F'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend-web/package.json | 1 + .../settings/skill-settings-page.tsx | 223 +++++++++++++++++- .../components/workspace/tags/tag-chip.tsx | 10 +- 3 files changed, 228 insertions(+), 6 deletions(-) diff --git a/frontend-web/package.json b/frontend-web/package.json index 368e9fa6..aedd761c 100644 --- a/frontend-web/package.json +++ b/frontend-web/package.json @@ -59,6 +59,7 @@ "cmdk": "^1.1.1", "codemirror": "^6.0.2", "date-fns": "^4.1.0", + "dayjs": "^1.11.20", "docx": "^9.5.1", "dotenv": "^17.2.3", "embla-carousel-react": "^8.6.0", diff --git a/frontend-web/src/components/workspace/settings/skill-settings-page.tsx b/frontend-web/src/components/workspace/settings/skill-settings-page.tsx index 2e20e074..19a12de2 100644 --- a/frontend-web/src/components/workspace/settings/skill-settings-page.tsx +++ b/frontend-web/src/components/workspace/settings/skill-settings-page.tsx @@ -27,6 +27,13 @@ import { toast } from "sonner"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; +import { + Card, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from "@/components/ui/card"; import { Dialog, DialogContent, @@ -43,6 +50,7 @@ import { EmptyMedia, EmptyTitle, } from "@/components/ui/empty"; + import { Item, ItemActions, @@ -50,6 +58,7 @@ import { ItemContent, ItemDescription, } from "@/components/ui/item"; + import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { SkillDetailDialog } from "@/components/workspace/skills/skill-detail-dialog"; import { TagChipList } from "@/components/workspace/tags/tag-chip"; @@ -319,6 +328,8 @@ function SkillSettingsList({ onClose }: { onClose?: () => void }) { {!isLoading && !error && filteredSkills.length === 0 && ( )} + + {/* —— 原纵向列表布局(保留备查)—— {!isLoading && !error && filteredSkills.length > 0 && pagedSkills.map((skill) => ( @@ -328,7 +339,21 @@ function SkillSettingsList({ onClose }: { onClose?: () => void }) { currentUserId={currentUserId} isAdmin={isAdmin} /> - ))} + ))} */} + {/* card */} + {!isLoading && !error && filteredSkills.length > 0 && ( +
+ {pagedSkills.map((skill) => ( + + ))} +
+ )} {!isLoading && !error && totalPages > 1 && (
+ )} + {canManage && ( + + )} + {canTogglePublish && ( + + )} + {canManage && ( + + )} +
+ + )} + diff --git a/frontend-web/src/components/workspace/tags/tag-chip.tsx b/frontend-web/src/components/workspace/tags/tag-chip.tsx index 17edf948..635e46a6 100644 --- a/frontend-web/src/components/workspace/tags/tag-chip.tsx +++ b/frontend-web/src/components/workspace/tags/tag-chip.tsx @@ -17,20 +17,22 @@ export function TagChip({ className?: string; }) { const color = resolveTagColor(tag.color); + const label = desensitize(tag.name); return ( - {desensitize(tag.name)} + {label} {onRemove && (