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 && (