export interface IUploadConfigType { key: string; name: string; type: 'Upload'; isCrop?: boolean; cropRate?: number; onlyPopup?: boolean; onlyPage?: boolean; dependOn?: string; } export type TUploadDefaultType = Array<{ uid: string; name: string; status: string; url: string; width?: number; height?: number; }>; export interface ITextConfigType { key: string; name: string; type: 'Text'; placeholder?: string; onlyPage?: boolean; dependOn?: string; } export interface IOperationConfigType { key: string; name: string; type: 'Operation'; placeholder?: string; } export type TOperationItem = { id?: string; type: string; path: string; condition?: string; needRefresh?: boolean; refreshKeys?: string[]; successMessage?: string; errorMessage?: string; title?: string; dataSourceKey?: string; }; export type TOperationDefaultType = TOperationItem | TOperationItem[]; export type TTextDefaultType = string; export interface ITextAreaConfigType { key: string; name: string; type: 'TextArea'; } export type TTextAreaDefaultType = string; export interface INumberConfigType { key: string; name: string; type: 'Number'; range?: [number, number]; step?: number; } export interface ICheckboxConfigType { key: string; name: string; type: 'CheckBox'; } export type TCheckboxDefaultType = boolean; export type TNumberDefaultType = number; export interface IDataListConfigType { key: string; name: string; type: 'DataList'; cropRate?: number; showImg?: boolean; showLink?: boolean; showTab?: boolean; from?: string; } export interface ITableListConfigType { key: string; name: string; type: 'TableList'; cropRate?: number; } export interface IDataSourceConfigType { key: string; name: string; type: 'DataSource'; cropRate?: number; } export type TDataSourceDefaultTypeItem = { path: string; desc: string; id: string; title: string; }; export type TDataSourceDefaultType = Array; export type TPopupWidthHeightDefaultType = { width: number; height: number; }; export type TDataListDefaultTypeItem = { id: string; title: string; desc: string; link: string; type: number; imgUrl: Array<{ uid: string; name: string; status: string; url: string; }>; }; export type TUserListDefaultTypeItem = { id?: string; userId: string; rank: number; rankStr: string; score: number; luckyGiftAcReward?: number; name: string; avatar: string; age: number; gender: string; omiId: string; isAnchor: boolean; liveLevel?: { gradeIconUrl: string; level: number; }; topContributors: { avatar: string; userId: string; name: string; age: number; gender: string; omiId: string; }[]; }; export type TImgListDefaultTypeItem = { link: string; imgUrl: Array<{ url: string; uid: string; name: string; status: string; width?: number; height?: number; }>; title: string; desc: string; id: string; }; export type TTableListDefaultType = { columns: Array<{ key: string; title: string; }>; data: Array<{ [key: string]: string | number; }>; }; export type TDataListDefaultType = Array; export type TUserListDefaultType = Array; export type TImgListDefaultType = Array; export interface IColorConfigType { key: string; name: string; type: 'Color'; } export interface IWidthHeightConfigType { key: string; name: string; type: 'WidthHeight'; onlyPopup?: boolean; disabled?: boolean; } export type TColorDefaultType = string; export interface IGradientColorConfigType { key: string; name: string; type: 'GradientColor'; } export interface TTabTimeDefaultConfigType { key: string; name: string; type: 'TabTime'; } export type TGradientColorDefaultType = { direction: string; color1: string; color2: string; imageUrl?: string; }; export type TCompatibleGradientColorDefaultType = TGradientColorDefaultType | TColorDefaultType; export interface IRichTextConfigType { key: string; name: string; type: 'RichText'; } export type TRichTextDefaultType = string; export interface IMutiTextConfigType { key: string; name: string; type: 'MutiText'; } export interface ITabMutiTextConfigType { key: string; name: string; type: 'TabMutiText'; } export type TMutiTextDefaultType = Array; export type TTabProDefaultTypeItem = { label: string; showTpl: Array; dataSources: TDataSourceDefaultType; startTime?: number; endTime?: number; }; export interface ISelectConfigType { key: string; name: string; type: 'Select'; range: Array<{ key: KeyType; text: string; }>; } export type TSelectDefaultType = KeyType; export interface IRadioConfigType { key: string; name: string; type: 'Radio'; range: Array<{ key: KeyType; text: string; }>; } export type TRadioDefaultType = KeyType; export interface ISwitchConfigType { key: string; name: string; type: 'Switch'; onlyPage?: boolean; } export type TSwitchDefaultType = boolean; export interface IDatePickerConfigType { key: string; name: string; type: 'DatePicker'; showTime?: boolean; } export type TDatePickerDefaultType = number; export interface IShareConfigType { key: string; name: string; type: 'Share'; onlyPage?: boolean; } export type TShareDefaultType = { enableShare: boolean; shareTitle: string; msgTitle: string; msgSubTitle: string; innerCover?: TUploadDefaultType; outerCover?: TUploadDefaultType; bgImgUrl?: TUploadDefaultType; pushTitleKey: string; pushTickerKey: string; }; export type TTabTimeDefaultType = { startTime: number; type: 'Day' | 'Week' | 'Month' | 'Year'; }; export interface ICardPickerConfigType { key: string; name: string; type: 'CardPicker'; icons: Array; } export type TCardPickerDefaultType = T; export interface ITableConfigType { key: string; name: string; type: 'Table'; } export type TTableDefaultType = Array<{ name: string; value: number; }>; export interface IPosConfigType { key: string; name: string; type: 'Pos'; placeObj?: { text: string; link: string; }; } export type TPosItem = number | undefined; export type TPosDefaultType = [TPosItem, TPosItem]; export interface IFormItemsConfigType { key: string; name: string; type: 'FormItems'; } export type baseFormOptionsType = { label: string; value: string; }; export type baseFormTextTpl = { id: string; type: 'Text'; tableLabel: string; label: string; placeholder: string; requiredText?: string; priority: number; layout?: 'vertical' | 'horizontal'; }; export type baseFormTextTipTpl = { id: string; type: 'MyTextTip'; tableLabel: string; label: string; color: string; fontSize: number; requiredText?: string; priority: number; layout?: 'vertical' | 'horizontal'; }; export type baseFormNumberTpl = { id: string; type: 'Number'; tableLabel: string; label: string; placeholder: string; requiredText?: string; priority: number; layout?: 'vertical' | 'horizontal'; }; export type baseFormTextAreaTpl = { id: string; type: 'Textarea'; tableLabel: string; label: string; placeholder: string; requiredText?: string; priority: number; layout?: 'vertical' | 'horizontal'; }; export type baseFormMyRadioTpl = { id: string; type: 'MyRadio'; tableLabel: string; label: string; options: baseFormOptionsType[]; requiredText?: string; priority: number; layout?: 'vertical' | 'horizontal'; }; export type baseFormMyCheckboxTpl = { id: string; type: 'MyCheckbox'; tableLabel: string; label: string; options: baseFormOptionsType[]; requiredText?: string; priority: number; layout?: 'vertical' | 'horizontal'; }; export type baseFormMySelectTpl = { id: string; type: 'MySelect'; tableLabel: string; label: string; options: baseFormOptionsType[]; requiredText?: string; priority: number; layout?: 'vertical' | 'horizontal'; placeholder?: string; }; export type baseFormDateTpl = { id: string; type: 'Date'; tableLabel: string; label: string; placeholder: string; requiredText?: string; priority: number; layout?: 'vertical' | 'horizontal'; }; export type baseFormImageUploadTpl = { id: string; type: 'ImageUpload'; tableLabel: string; label: string; placeholder: string; requiredText?: string; priority: number; maxCount?: number; layout?: 'vertical' | 'horizontal'; }; export type baseFormUnion = baseFormTextTpl | baseFormTextTipTpl | baseFormNumberTpl | baseFormTextAreaTpl | baseFormMyRadioTpl | baseFormMyCheckboxTpl | baseFormMySelectTpl | baseFormDateTpl | baseFormImageUploadTpl; export type baseFormUnionType = baseFormTextTpl['type'] | baseFormTextTipTpl['type'] | baseFormNumberTpl['type'] | baseFormTextAreaTpl['type'] | baseFormMyRadioTpl['type'] | baseFormMyCheckboxTpl['type'] | baseFormMySelectTpl['type'] | baseFormDateTpl['type'] | baseFormImageUploadTpl['type']; export type TFormItemsDefaultType = Array; export type PointDataItem = { id: string; item: Record; point: Record; zIndex?: number; }; export interface IStateListConfigType { key: string; name: string; type: 'StateList'; fields: string[]; } export type TStateListDefaultTypeItem = { id: string; name: string; expression?: string; [key: string]: any; }; export type TStateListDefaultType = Array;