import Thumbnail from "@/components/Thumbnail"; import { css, cx } from "@linaria/core"; import { IconDelete } from "@queenjs/icons"; import { View } from "@queenjs/ui"; import { defineUI } from "queenjs"; import { any, string } from "vue-types"; const renderStatus = { succ: "", error: "渲染失败", default: "渲染中…", }; export default defineUI({ props: { record: any(), use: string<"show" | "select" | "task">(), }, emits: ["delete", "download", "use", "preview"], setup(props, { emit }) { return () => { const { record, use } = props; const thumbnailUrl = record?.thumbnail || record?.thumbnailUrl || record.file?.url; return (
{use == "task" && record.status !== "succ" && (
{(renderStatus as any)[record.status || "default"]}
)} {use !== "task" && (
{use == "show" && ( emit("delete")} /> )}
emit("preview")} > 预览
{use == "show" && (
emit("download")} > 下载
)} {use == "select" && (
{ e.stopPropagation(); emit("use"); }} > 使用
)}
)}
{record.name && (
{record.name}
)}
); }; }, }); const itemStyles = css` .card { background-color: rgba(255, 255, 255, 0.1); } .orange { background-color: rgba(232, 139, 0, 0.5); &:hover { background-color: rgba(232, 139, 0, 0.7); } } .btn_circle { background-color: rgba(0, 0, 0, 0.7); &:hover { background-color: rgba(0, 0, 0, 0.8); } &:not(:nth-of-type(1)) { margin-left: 10px; } } .icon_del { background-color: rgba(0, 0, 0, 0.5); &:hover { background-color: rgba(0, 0, 0, 0.6); } } .waiting { background-color: rgba(0, 0, 0, 0.3); } `;