unika-components
Version:
Unika Vue3 components library
389 lines (388 loc) • 9.25 kB
TypeScript
export interface ReceiptConfig {
open: boolean;
which: boolean;
whichList: Array<{
label: string;
}>;
color: string;
isShow?: boolean;
userOpen?: boolean;
end_up?: number;
}
export interface VideoConfig {
open: boolean;
color: string;
url: string;
isShow?: boolean;
userOpen?: boolean;
}
export interface TelConfig {
open: boolean;
color: string;
list: Array<{
label: string;
value?: string;
}>;
end_up?: number;
isShow?: boolean;
userOpen?: boolean;
}
export interface ReceiptForm {
guestName: string;
which: string;
phone: string;
people: string;
}
export interface MapConfig {
open: boolean;
color: string;
lng: string;
lat: string;
location: string;
zoom: number;
type: string;
isShow?: boolean;
userOpen?: boolean;
url: string;
}
export interface Animation {
animate: string;
count: number;
timing: string;
loop: boolean;
delay: number;
duration: number;
name: string;
order: string;
type: string;
aniType: string;
allDelay: string;
id: number;
}
export interface MusicData {
url: string;
name?: string;
music_id?: string;
id?: string;
bgcolor?: string;
iconUrl?: string;
hash?: string | null;
playIconUrl?: string;
pauseIconUrl?: string;
isGlobal?: boolean;
cat?: string;
originalUrl?: string;
crop?: string | null;
}
export interface GlobalData {
id: number;
type?: string;
width?: string;
height?: string;
pageMode?: string;
isPublish?: number;
title?: string;
desc?: string;
coverImg?: string;
latestPublishAt?: string;
updatedAt?: string;
isTemplate?: boolean;
isHot?: boolean;
isNew?: boolean;
author?: string;
copiedCount?: number;
tanmu?: boolean;
themeColor?: string;
viewedCount?: number;
cat?: 'h5' | 'long_page';
sceneId: string;
user?: {
gender: string;
nickName: string;
picture: string;
userName: string;
};
pageDot: number;
pageLoop: boolean;
smImg: string;
receipt: ReceiptConfig;
video: VideoConfig;
tel: TelConfig;
map: MapConfig;
merchant_edit_notice?: number;
toolbar: {
open: boolean;
gift: boolean;
cash: boolean;
fontColor: string;
bgColor: string;
giftRank: boolean;
praise: boolean;
hideFirst: boolean;
hideLast: boolean;
giftQRCode: string;
g?: boolean;
};
music: MusicData;
useFont?: Record<string, {
name: string;
content: string;
}>;
record?: any;
f_id: number;
uid: string;
sceneCode: string;
createFont?: string;
domain: string;
pay_cat: number;
footer_ad: number;
merchant_id: number;
is_weiye: number;
ver: number;
systemUser: number;
member_level: number;
is_member: number;
fontList: Array<{
label: string;
value: string;
fontPath: string;
}>;
imgMattCount: number;
defaultEditor: number;
}
interface FormItem {
label: string;
value: string;
}
export interface CssData {
fontFamily?: string;
fontSize?: number;
lineHeight?: number;
letterSpacing?: number;
fontWeight?: string;
textDecoration?: string;
textAlign?: string;
writingMode?: string;
webkitWritingMode?: string;
fontStyle?: string;
borderWidth?: number;
borderStyle?: string;
borderColor?: string;
color?: string;
opacity?: number;
width: number;
height: number;
left: number;
top: number;
transform: number;
flipHorizontal?: boolean;
flipVertical?: boolean;
padding?: number;
backgroundColor?: string;
textIndent?: number;
borderRadius?: number;
animation?: string;
animation2?: string;
svgPathColor?: string[];
fontColorOri?: string;
fontFamilyOri?: string;
opacityOri?: number;
fontSizeOri?: number;
}
export interface ElementData {
id: string | number;
pid?: string | number;
type: string;
textContent?: string;
layerName: string;
sign?: boolean;
signSort?: number | string;
overturnType?: number;
dateColor?: string;
endTime?: string;
deadline?: string;
heartAni?: boolean;
heartColor?: string;
kind?: number;
language?: string;
themeColor?: string;
btnName?: string;
videoCode?: string;
playLoop?: boolean;
videoCodeOri?: string;
videoStyle?: string;
videoType?: number;
videoUrl?: string;
playMode?: string;
playControls?: string;
imgUrl?: string;
btnText?: string;
tel?: string;
inputType?: string;
title?: string;
btName?: string;
subType?: string;
succAlert?: string;
succEvent?: string;
succUrl?: string;
showSize?: string;
signType?: string;
mapStyle?: string;
iframeUrl?: string;
url?: string;
showType?: string;
direction?: string;
endText?: string;
endOption?: string;
delay?: number;
loop?: boolean;
aniPath?: string;
groupId?: number | string;
eleId?: string[];
css: CssData;
nameSign?: string;
nameSignSort?: number;
nameSignType?: string;
nameSignColor?: string;
nameSignFontSize?: number;
nameSignFontFamily?: string;
nameSignFontWeight?: string;
triggers: {
cat?: string;
crop?: string;
event: string;
link: string;
go: string;
phone: string;
musicName: string;
musicLink: string;
musicHash: string;
};
properties: {
visible: boolean;
isLock: boolean;
required: boolean;
musicName: string;
musicLink: string;
musicHash: string;
shadowSize: number;
shadowColor: string;
shadowX: number;
shadowY: number;
shadowBlur: number;
shadowPoint: number;
aniOrigin: string;
maskBoxImageOutset?: string;
maskBoxImageRepeat?: string;
maskBoxImageSlice?: string;
maskBoxImageSource?: string;
maskBoxImageWidth?: string;
markId?: string;
src?: string;
realW?: number;
realH?: number;
endTime?: string;
count?: string;
speed?: string;
cover?: string;
type?: string;
maskId?: string;
multUpload?: boolean;
animations: Array<{
animate: string;
count: number;
loop: boolean;
delay: number;
duration: number;
name: string;
order: string;
timing: string;
type: string;
aniType: string;
allDelay: string;
id: number;
ord?: string;
}>;
textAni?: Array<{
animate: string;
count: number;
loop: boolean;
delay: number;
duration: number;
name: string;
order: string;
timing: string;
type: string;
aniType: string;
allDelay: string;
id: number;
}>;
lng?: number;
lat?: number;
zoom?: number;
isMapEdit?: number;
location?: string;
mapImg?: string;
mapChange?: string;
};
imgMattingInfo?: any | null;
items?: FormItem[];
canMatt?: boolean;
canMattType?: string;
copyIndex?: number;
overturnTypeNew?: number;
}
export interface PageData {
pageId: string;
pageNum: number;
bgColor: string;
bgImage: string;
pageType: string;
ani: string;
banPage: boolean | number;
autoPage: boolean | number;
delay: number;
unStop?: boolean;
bgOpacity: string;
height: number;
eleIndex?: number;
bgSign?: number;
type: string;
elements: ElementData[] | [];
bgAni?: {
aniList: Array<{
animate: string;
count: number;
loop: boolean;
delay: number;
duration: number;
name: string;
order: string;
timing: string;
type: string;
aniType: string;
allDelay: string;
id: number;
}> | [];
aniCss: string;
aniCss2?: string;
};
imgMattingInfo: any | null;
}
export interface PersonalData {
bridegroom: string;
bride: string;
endTime: number;
location: string;
address: string;
lng?: number;
lat?: number;
zoom?: number;
exchange?: number;
}
export interface WorkData {
personalData?: PersonalData | null;
global: GlobalData;
pages: PageData[] | [];
}
export {};