import { BasicProps, BasicState, EditSetting } from '../type' export type PostCardType = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; export interface PostDetail { classifyType?: number; // 这个是标识目前数据是来自那个分类 blogId: number; blogInfo: BlogInfo; digest: string; id: number; permalink: string; firstImage?: { oh: number, ow: number, orign: string //这个字段错了,导致之后为了属性覆盖都要加上这个 }; postPageUrl: string; publishTime: number; tagList: string[]; title: string; type: number; postCountView: { blogId: number, hotCount: number, responseCount: number, favoriteCount: number, reblogCount: number, shareCount: number, viewCount: number }; photoCount?: number; videoPostView?: { id: number, blogId: number, caption: string, // 视频日志的描述 videoType: number, // 0:普通视频,1:短视频,3本地上传视频 videoCreateTime: number, videoInfo: { /* eslint-disable camelcase */ type: string, video_img_url: string, img_width: string, img_height: string, duration: number, size: number, originUrl: string, flashurl: string /* eslint-enable camelcase */ }, playCount: number }; collectionCountView: { postCount: number; viewCount: number; } }; export interface AllDetail { // 所有的数据信息,可选表示是合集/文章/推集独有的类型 classifyType?: number; // 这个是标识目前数据是来自那个分类 blogId?: number; blogInfo?: BlogInfo; digest: string; id: number; name: string; permalink?: string; firstImage?: { oh: number, ow: number, orign: string //这个字段错了,导致之后为了属性覆盖都要加上这个 }; postPageUrl: string; publishTime?: number; tagList?: string[]; title: string; type?: number; // 注意这个type是文章类型独有的type postCountView?: { // 只有文章有这个字段 blogId: number, hotCount: number, responseCount: number, favoriteCount: number, reblogCount: number, shareCount: number, viewCount: number }; photoCount?: number; videoPostView?: { id: number, blogId: number, caption: string, // 视频日志的描述 videoType: number, // 0:普通视频,1:短视频,3本地上传视频 videoCreateTime: number, videoInfo: { /* eslint-disable camelcase */ type: string, video_img_url: string, img_width: string, img_height: string, duration: number, size: number, originUrl: string, flashurl: string /* eslint-enable camelcase */ }, playCount: number }; collectionCountView?: { postCount: number; viewCount: number; }, postCount?: number collectionType?: 0 | 1; tags?: string[]; subscribedCount?: number }; export interface CollectionDetail { id: number; blogInfo: { blogNickName: string, bigAvaImg: string, blogId: number, isAuth: boolean, isVerify: boolean, signAuth: boolean, authName: boolean, blogName: string, }; coverUrl: string; name: string; description: string; postCount: number; viewCount: number; tags: string; /** * 合集类型,0:普通合集,1:共创合集 */ collectionType: 0 | 1; blogId: number; } export interface PushFolderDetail { id: number; blogInfo: { blogNickName: string, bigAvaImg: string, blogId: number, isAuth: boolean, isVerify: boolean, signAuth: boolean, authName: boolean, blogName: string, }; coverUrl: string; name: string; postCount: number; // 推集文章数 description: string; subscribedCount: number; //推集订阅数 tags: string[]; userId: number; // 推集创建者ID } export interface PostCardConfig { /** * 1文章,2合集,3其他,4推集, 5文章新 */ type: 1 | 2 | 3 | 4 | 5; classifyType: 1 | 2 | 3 | 4 | 5; postId: number; permalinks: string; cover?: { url: string }; title?: string; description?: string; recommend?: string; authorAvatar?: { url: string }; authorName?: string; authorDesc?: string; data?: string; link?: string; } export interface BlogInfo { authName: string; bigAvaImg: string; blogId: 0 blogName: string; blogNickName: string; selfIntro: string; /** * 达人认证 */ isAuth: boolean; /** * 名人认证 */ isVerify: boolean; /** * 签约认证 */ signAuth: boolean; /** * 头像框 */ avatarBoxImage: string; } export class Props extends BasicProps { public editSetting: EditSetting = { key: 'gaea-lofterpost', name: 'lofter内容模块', isContainer: false, isAutoHeight: true, help: 'https://note.youdao.com/s/CeEFluib', defaultPosition: { top: '0', left: '0' }, type: ['common', 'lofter'], editors: [ { field: 'type', text: '类型', type: 'select', data: [ { text: '封面+推荐语', value: 1 }, { text: '封面+推荐语+作者', value: 2 }, { text: '封面(竖版)', value: 3 }, { text: '单行+左图', value: 4 }, { text: '单行+右图', value: 5 }, { text: '单行+纯文字', value: 6 }, { text: '精选排版(一行一个)', value: 7 }, { text: '推集(一行两个,其他类型样式没有完全适配)', value: 8 }, ] }, { field: 'marginTop', text: '模块上间距', type: 'number', }, { field: 'selectedNegativeMargin', text: '是否圆弧向上缩进(仅精选排版)', type: 'boolean', }, { field: 'useWithoutPrivacy', text: '是否用于隐私合规模式(仅精选排版)', type: 'boolean', }, { field: 'posts', text: '文章/合集/推集/其他(其他-ID自定但不重复)', type: 'array', addItem: { type: 5, }, data: [ { field: 'type', text: '内容类型', type: 'select', // 保持之前文章ID的状态,新增item默认会赋值type: 5 defaultValue: 1, data: [ { text: '文章', value: 5 }, { text: '合集', value: 2 }, { text: '推集', value: 4 }, { text: '其他', value: 3 }, { text: '文章旧(请使用文章)', value: 1, disabled: true }, ] }, { field: 'postId', text: '指定文章/合集/推集', type: 'string', placeholder: 'Permalink/ID', }, { field: 'recommend', text: '精选推荐语', type: 'string', placeholder: '仅精选排版显示' }, { field: 'title', text: '标题', type: 'string', placeholder: '不传则使用文章标题' }, { field: 'cover', text: '封面', type: 'image', placeholder: '不传则使用文章封面' }, { field: 'authorAvatar', text: '作者头像', type: 'image' }, { field: 'authorName', text: '作者昵称', type: 'string', placeholder: '不传则使用作者默认' }, { field: 'authorDesc', text: '作者描述', type: 'string', placeholder: '不传则不显示昵称右侧描述' }, { field: 'description', text: '推荐语', type: 'string', placeholder: '不传则使用文章摘要' }, { field: 'data', text: '数据', type: 'string', placeholder: '数据间使用英文逗号分隔' }, { field: 'link', text: '跳转地址', type: 'string', placeholder: '请填入任意跳转地址' }, ] }, { field: 'rightWidth', text: '模块左右间距(此功能目前只适配推集)', type: 'number', } ] }; rightWidth: number = 0; marginTop: number = 0; selectedNegativeMargin = true; useWithoutPrivacy = false; type: PostCardType = 1; posts: PostCardConfig[] = []; } export class State extends BasicState { }