press-next
Version:
Vue3 组件库,支持 Composition API
70 lines (58 loc) • 1.44 kB
text/typescript
import {
SPECIAL_TEAM_ID_MAP,
SPECIAL_TEAM_NAME_MAP,
SPECIAL_TEAM_AVATAR,
} from '../utils';
function parseTeamInfo(team: Record<string, any> = {}) {
if (!team.team_id) {
return {
isSpecial: true,
avatar: SPECIAL_TEAM_AVATAR,
teamavatar: SPECIAL_TEAM_AVATAR,
name: '待定',
teamNameDesc: '待定',
};
}
const isSpecial = Object.keys(SPECIAL_TEAM_ID_MAP).includes(team.team_id);
if (isSpecial) {
const name = SPECIAL_TEAM_NAME_MAP[team.team_id as 'dd'];
return {
isSpecial,
avatar: SPECIAL_TEAM_AVATAR,
teamavatar: SPECIAL_TEAM_AVATAR,
name,
teamNameDesc: name,
};
}
return {
isSpecial: false,
avatar: team.team_logo?.[0],
teamavatar: team.team_logo?.[0],
name: team.team_name,
teamNameDesc: team.team_name,
};
}
export function getCardTeams(card: Record<string, any>) {
const {
team_a: iTeamA = {},
team_b: iTeamB = {},
} = card;
const getTeamInfo = (team: Record<string, any>) => ({
...parseTeamInfo(team),
teamId: team.team_id,
teamid: team.team_id,
rank: team.rank,
score: team.team_score || 0,
memberList: team.mems?.map((item: any) => ({
avatar: item.mem_avatar,
name: item.mem_nick,
})) || [],
isWinner: team.winner == 1,
});
const teamA = getTeamInfo(iTeamA);
const teamB = getTeamInfo(iTeamB);
return {
teamA,
teamB,
};
}