import { CSSProperties } from 'react'; /** * @title 统计信息 */ export interface Statistic { likeCount: number; starCount: number; /** * @zh 预览量 */ viewCount: number; /** * @zh 使用量 */ downloadCount: number; } /** * @title 作者信息 */ interface Author { /** * @zh 邮箱 */ email?: string; /** * @zh 头像 */ avatar_url?: string; /** * @zh 名字 */ name?: string; } /** * @title DesignItem */ export interface DesignItem { /** * @zh 资源名 */ name: string; /** * @zh 作者信息 */ author: Author[]; /** * @zh 资源分类 */ category: string; /** * @zh 封面地址 */ cover: string; /** * @zh 资源描述 */ desc?: string; /** * @zh 详情页图片地址(如PPT会有详情页) */ detail?: { images: Array<{ url: string; index: number; _poorUrl?: string; }>; }; /** * @zh 产品分类 */ products?: string[]; /** * @zh 资源标签 */ tokens?: string[]; /** * @zh 下载地址 */ downloadUrl?: string; /** * @zh 资源实际地址,详情地址。如果有会有立即使用按钮点击跳转链接。 */ resourceUrl?: string; /** * @zh 设计团队名 */ group?: string; /** * @zh 资源所属业务 */ library?: string; resourceId: number; /** * @zh 统计指标 */ statistic: Statistic; } /** * @title DesignCover */ export interface DesignCoverProps { /** * @zh 资源详情 */ resource: DesignItem; /** * @zh 特殊标识,会放在资源 `title` 旁作为作为着重显示 */ resourceTag?: React.ReactNode; style?: CSSProperties; /** * @zh 封面节点 */ coverNode?: React.ReactNode; /** * @zh 封面图片样式,直接挂在img上 */ hasModal?: boolean | 'ppt'; className?: string | string[]; /** * @zh 点击回调 */ onClick?: (item: DesignItem) => void | Promise; /** * @zh 点击试用回调 */ onUse?: (item: DesignItem, type?: 'common' | 'download') => void | Promise; /** * @zh 点击复制按钮回调 */ onCopy?: (path: string, item: DesignItem) => Promise; /** * @zh 是否展示复制按钮(如果resourceUrl是以svg结尾默认会有复制) */ codeCopy?: boolean; } export {};