press-next
Version:
Vue3 组件库,支持 Composition API
100 lines (86 loc) • 2.27 kB
text/typescript
// 队伍信息接口
export interface TeamInfo {
name: string;
avatar: string;
score?: number;
}
// 获胜者信息接口
export interface WinnerInfo {
name: string;
avatar: string;
}
// for components demo
export function getMockData() {
// 左侧队伍信息
const leftTeam: TeamInfo = {
name: '三好杯专业战队',
avatar: 'https://placehold.co/72x72/4A90E2/ffffff?text=L',
score: 0,
};
// 右侧队伍信息
const rightTeam: TeamInfo = {
name: '美丽杯专业战队',
avatar: 'https://placehold.co/72x72/E24A90/ffffff?text=R',
score: 0,
};
// 获胜者信息(冠军模式)
const winner: WinnerInfo = {
name: '用户昵称昵称最长十字',
avatar: 'https://placehold.co/72x72/90E24A/ffffff?text=W',
};
// 晋级状态组件属性(双队伍比分)
const advanceProps = {
matchType: 'score' as const,
status: 'advance' as const,
leftTeam,
rightTeam,
matchTime: '11-18 12:00 已结束',
showForfeit: true,
buttonText: '分享比赛',
buttonType: 'primary' as const,
buttonDisabled: false,
};
// 冠军状态组件属性(单队伍)
const championTeamProps = {
matchType: 'single' as const,
status: 'champion' as const,
winner: {
name: '三好杯专业战队',
avatar: 'https://placehold.co/72x72/4A90E2/ffffff?text=C',
},
buttonText: '分享比赛',
buttonType: 'primary' as const,
buttonDisabled: false,
};
// 冠军状态组件属性(单用户)
const championUserProps = {
matchType: 'single' as const,
status: 'champion' as const,
statusText: '冠军呀',
winner,
buttonText: '分享比赛',
buttonType: 'primary' as const,
buttonDisabled: false,
};
// 等待状态组件属性
const noneProps = {
matchType: 'single' as const,
status: 'none' as const,
winner,
buttonText: '比赛进行中,等待裁判录入成绩',
buttonType: 'default' as const,
buttonDisabled: true,
};
// 组件属性配置
const componentProps = {
advanceProps,
championTeamProps,
championUserProps,
noneProps,
};
return componentProps;
}
const DEMO_DATA = {
...getMockData().advanceProps,
};
export default DEMO_DATA;