press-next
Version:
Vue3 组件库,支持 Composition API
125 lines (107 loc) • 2.17 kB
text/typescript
/**
* 对局操作弹窗组件的模拟数据
*/
// 战队信息接口
interface TeamInfo {
name: string;
avatar?: string;
}
// 操作项接口
interface OperationItem {
name: string;
title: string;
icon: string;
}
// 比赛状态类型
type MatchStatus = 'not-start' | 'ing' | 'end';
// 默认头像
const DEFAULT_AVATAR = 'https://image-1251917893.file.myqcloud.com/tip-project/pubg/pubg-match/teamate-default-avatar.png';
// 战队信息模拟数据
const TEAM_DATA = {
leftTeam: {
name: '战队Alpha',
avatar: DEFAULT_AVATAR,
},
rightTeam: {
name: '战队Beta',
avatar: DEFAULT_AVATAR,
},
};
// 比赛信息
const MATCH_INFO = '决赛 - 艾伦格';
// 比赛状态
const MATCH_STATUS = {
status: 'not-start' as MatchStatus,
statusText: '未开始',
};
// 操作列表
const OPERATIONS: OperationItem[] = [
{
name: 'RESET_BATTLE',
title: '重置比赛',
icon: 'icon-reset',
},
{
name: 'START_BATTLE',
title: '开始比赛',
icon: 'icon-play',
},
{
name: 'CHANGE_SCORE',
title: '改判比分',
icon: 'icon-edit',
},
{
name: 'BATTLE_RECORD',
title: '对局记录',
icon: 'icon-list',
},
{
name: 'LIVING_ROOM',
title: '直播间',
icon: 'icon-video',
},
];
/**
* 获取对局操作弹窗的模拟数据
* @returns {Object} 包含组件所需的测试数据
*/
export function getMockData() {
return {
// 战队信息
...TEAM_DATA,
// 比赛信息
matchInfo: MATCH_INFO,
// 比赛状态
...MATCH_STATUS,
// 操作列表
operations: [...OPERATIONS],
};
}
/**
* 获取战队信息数据
* @returns {Object} 战队信息
*/
export function getTeamData() {
return TEAM_DATA;
}
/**
* 获取操作列表
* @returns {OperationItem[]} 操作列表
*/
export function getOperations(): OperationItem[] {
return [...OPERATIONS];
}
/**
* 获取比赛状态数据
* @returns {Object} 比赛状态数据
*/
export function getMatchStatus() {
return MATCH_STATUS;
}
// 导出类型
export type { TeamInfo, OperationItem, MatchStatus };
// 导出默认数据
export default {
getMockData,
};