// 可选组件 export interface Comp { // 组件标识 compCode: CompCode; // 组件名称 compName: string; // 组件类型;基础组件,名片组件,其他组件 compType: CompType; // 组件Json compData: CompDataType; } // 组件 JSON 对象 export interface CompData { // 是否显示标题 showTitle: boolean; // 标题显示样式 titleStyle: TitleStyle; // 标题图片 titleImage?: string; // 是否已初始化(默认false) init: boolean; // 样式 style?: any; // 是否显示更多 showMore?: boolean; // 是否显示按钮 showButton?: boolean; } // DIY 组件类型. export type CompType = "BASIC" | "VCARD" | "ORGAN" | "MALL" | "OTHER"; // 标题样式 export enum TitleStyle { style1, style2, style3, style4 }; // 图片组件 JSON对象 export interface ImageComp extends CompData { // 图片样式 style: ImageStyle; // 图片路径 imageUrls: Array; } // 图片样式 export enum ImageStyle { // 轮播 swiper = "swiper", // 平铺 flat = "flat", // 九宫格 grid = "grid", } // 音频组件 JSON对象 export interface AudioComp extends CompData { // 音频地址 url: string; // 自动播放 autoPlay: boolean; // 是否隐藏 hidden: boolean; // 是否外部 external: boolean; } // 视频组件 JSON对象 export interface VideoComp extends CompData { // 视频截图地址 imageUrl: string; // 宽 width: number; // 高 height: number; // 大小 size: number; // 时长 duration: number; // 视频地址 videoUrl: string; // 是否外部 external: boolean; } // 名片联系我们 JSON对象 export interface MapComp extends CompData {} //Slot组件 JSON对象 export interface SlotComp extends CompData { // 插槽名称 slotCode: string; } // 企业动态/产品宣传组件 (news/product) JSON对象 export interface CmsComp extends CompData { // 站点 siteId: string; // 渠道ID channelId: string; // 渠道别名 channelAlias: string; // 数量 pageSize: number; } // DIY 组件编码 export type CompCode = | "text" // 文本 | "image" // 相册 | "video" //视频 | "audio" // 音频 | "map" // 地图 | "slot" // 插槽 | "news" // 企业动态 | "product"; // 产品宣传 // 支持的组件JSON类型 export type CompDataType = | MapComp | TextComp | ImageComp | VideoComp | AudioComp | SlotComp | CmsComp; // 文本组件 JSON对象 export interface TextComp extends CompData { // 文本内容 text: string; } // 页面 JSON 对象 export interface PageData { // 主题风格 theme: ThemeStyle; // 页面版式 edition: Edition; // 主题索引 themeIndex: number; } // 页面主题 export enum ThemeStyle { // 科技蓝 blue, // 中国红 red, // 优雅灰 gray, // 简约白 while, } // 页面版式 export enum Edition { // 商务版 com, // 政务版 gov, // 教育版 edu, } // DIY页面模板实体 export interface PageModel { // 页面ID pageId?: string; // 名片ID vcardId?: string; // 页面名称 pageName?: string; // 页面编码 pageCode?: string; // 页面模板 pageTemplate?: string; // 页面封面图 pageImgUrl?: string; // 页面数据 pageData?: PageData; // 页面json pageJson: string; // 页面组件 compModels?: Array; } // DIY模板组件实体 export interface CompModel { // 组件ID compId: string; // 页面ID pageId: string; // 组件标识 compCode: CompCode; // 组件名称 compName: string; // 组件类型;基础组件,名片组件,其他组件 compType: CompType; // 组件Json compData: CompDataType; // 排序 orderBy: number; } // 业务模型数据. export interface BusiDataModel {} // 组件事件模型 export interface CompEventModel { pageModel: PageModel; compModel: CompModel; busiDataModel: BusiDataModel; } export interface OrganDataModel extends BusiDataModel { // 地度 latitude: number; // 经度 longitude: number; // 地址 address: string; // 手机号 mobilePhone: string; }