feat(*): 工作台界面 - 优化插件中心、管理侧栏及画布与短剧列表

This commit is contained in:
ddCat
2026-08-22 11:35:23 +08:00
parent 9327b75c2e
commit c670ebca90
13 changed files with 792 additions and 179 deletions

View File

@@ -2,7 +2,7 @@ import { Dropdown, Input } from "antd";
import { Download, MoreHorizontal, Pencil, Trash2 } from "lucide-react";
import type { KeyboardEvent } from "react";
import { ProjectPreview, formatProjectTime } from "@/components/canvas/canvas-project-card";
import { ProjectPreview } from "@/components/canvas/canvas-project-card";
import { exportCanvasProjects } from "@/lib/canvas/canvas-export";
import { useCanvasStore, type CanvasProject } from "@/stores/canvas/use-canvas-store";
import { useCanvasUiStore } from "@/stores/canvas/use-canvas-ui-store";
@@ -67,17 +67,13 @@ export function CanvasFolderCard({ project, projectName, onClick }: CanvasFolder
)}
</div>
<div className="canvas-folder-meta">
<span className="canvas-folder-meta-item">{projectName || "自由画布"}</span>
<span className="canvas-folder-meta-separator" aria-hidden="true">
·
</span>
<span className="canvas-folder-meta-item">{projectName ? `所属项目:${projectName}` : "自由画布"}</span>
<span className="canvas-folder-meta-separator" aria-hidden="true">·</span>
<span className="canvas-folder-meta-item">{project.nodes.length} 节点</span>
<span className="canvas-folder-meta-separator" aria-hidden="true">
·
</span>
<time className="canvas-folder-meta-item" dateTime={project.updatedAt}>
{formatProjectTime(project.updatedAt).replace(/\s*修改$/, "")}
</time>
</div>
<div className="canvas-folder-dates">
<span><small>创建时间</small><time dateTime={project.createdAt}>{formatCanvasDate(project.createdAt)}</time></span>
<span><small>最后更新</small><time dateTime={project.updatedAt}>{formatCanvasDate(project.updatedAt)}</time></span>
</div>
</div>
</div>
@@ -119,7 +115,7 @@ export function CanvasFolderCard({ project, projectName, onClick }: CanvasFolder
],
}}
>
<button type="button" className="canvas-folder-action" aria-label={`${project.title} 画布操作`} title="更多操作" onClick={(event) => event.stopPropagation()}>
<button type="button" className="canvas-folder-more" aria-label={`${project.title} 画布操作`} title="更多操作" onClick={(event) => event.stopPropagation()}>
<MoreHorizontal />
</button>
</Dropdown>
@@ -127,3 +123,16 @@ export function CanvasFolderCard({ project, projectName, onClick }: CanvasFolder
</article>
);
}
function formatCanvasDate(value: string) {
const timestamp = Date.parse(value);
return Number.isFinite(timestamp)
? new Date(timestamp).toLocaleString("zh-CN", {
year: "numeric",
month: "2-digit",
day: "2-digit",
hour: "2-digit",
minute: "2-digit",
})
: "时间不可用";
}