press-next
Version:
Vue3 组件库,支持 Composition API
292 lines (241 loc) • 7.17 kB
text/typescript
export const COMPONENT_STATUS_MAP = {
NOT_START: 'NOT_START',
ING: 'ING',
END: 'END',
};
export const COMPONENT_STATUS_TEXT_MAP = {
[COMPONENT_STATUS_MAP.NOT_START]: '未开始',
[COMPONENT_STATUS_MAP.ING]: '比赛中',
[COMPONENT_STATUS_MAP.END]: '已结束',
};
export const COMPONENT_STATUS_CLASS_MAP = {
[COMPONENT_STATUS_MAP.NOT_START]: 'press_battle-tag-start',
[COMPONENT_STATUS_MAP.ING]: 'press_battle-tag-in-game',
[COMPONENT_STATUS_MAP.END]: 'press_battle-tag-end',
};
export const CARD_RANK_SCORE_PROPS = {
gameRank: {
type: [String, Number],
default: '',
},
};
export const SPECIAL_TEAM_ID_MAP = {
dd: 'dd',
kk: 'kk',
dnp: 'dnp',
} as const;
export const SPECIAL_TEAM_NAME_MAP = {
[SPECIAL_TEAM_ID_MAP.dd]: '待定',
[SPECIAL_TEAM_ID_MAP.kk]: '轮空',
[SPECIAL_TEAM_ID_MAP.dnp]: '轮空',
};
export const SPECIAL_TEAM_AVATAR = 'https://image-1251917893.file.myqcloud.com/tip-project/pubg/pubg-match/teamate-default-avatar.png';
export const CARD_TOP_INFO_PROPS = {
showRoleInfo: {
type: Boolean,
default: false,
},
roleName: {
type: String,
default: '',
},
device: {
type: String,
default: '',
},
roleId: {
type: String,
default: '',
},
childName: {
type: String,
default: '',
},
childType: {
type: String,
default: '',
},
};
export const CARD_BATTLE_LIST_PROPS = {
battleList: {
type: Array,
// @ts-ignore
default: () => ([]),
},
curShowingBattleIndex: {
type: Number,
default: 0,
},
curGoingBattleIndex: {
type: Number,
default: 0,
},
};
export const CARD_SIGN_UP_PROPS = {
signUpTitle: {
type: String,
default: '距报名截止',
},
signUpCountdown: {
type: Number,
default: 0,
},
};
export const CARD_STATUS_MAP = {
NOT_SIGN_UP: 'NOT_SIGN_UP', // 未报名
PLAYING_AND_CAN_SIGN_UP: 'PLAYING_AND_CAN_SIGN_UP', // 比赛进行中,但仍可报名
PLAYING_AND_NOT_SATISFIED: 'PLAYING_AND_NOT_SATISFIED', // 比赛进行中,报名后报名人数不足
SATISFIED_AND_CAN_INVITE: 'SATISFIED_AND_CAN_INVITE', // 报名人数满足,但仍可邀请队员(第一局未开赛)
SATISFIED_AND_CAN_NOT_INVITE: 'SATISFIED_AND_CAN_NOT_INVITE', // 报名人数满足,不可邀请队员(第一局已开赛)
GAME_WILL_START: 'GAME_WILL_START', // 待开赛
BATTLE_WILL_START: 'BATTLE_WILL_START', // 比赛即将开始,或者下一对局即将开始
BATTLE_STARTED: 'BATTLE_STARTED', // 显示“去比赛”
BATTLE_PLAYING_JOINED: 'BATTLE_PLAYING_JOINED', // 比赛进行中,出战,显示“请等待本场比赛结束”
BATTLE_PLAYING_NOT_JOINED: 'BATTLE_PLAYING_NOT_JOINED', // 比赛进行中,未出战,显示“您本场未出战”
RESULT_WAITING: 'RESULT_WAITING', // 比赛结束,等待结果
RESULT_WIN: 'RESULT_WIN', // 晋级
RESULT_FAIL: 'RESULT_FAIL', // 淘汰
RESULT_SHOW_RANK: 'RESULT_SHOW_RANK', // 显示名次,比如 冠军、亚军、第12名
KNOCK_OUT_SIGNED_UP: 'KNOCK_OUT_SIGNED_UP', // 单败淘汰已报名,新增
KNOCK_OUT_OPPONENT: 'KNOCK_OUT_OPPONENT', // 单败淘汰匹配成功,等待进房,显示对手,新增
KNOCK_OUT_RESULT: 'KNOCK_OUT_RESULT', // 单败淘汰比赛结束,显示结果,新增
// 匹配循环赛,匹配相关阶段,包括未匹配、去匹配、匹配成功、匹配失败等
// 只要没结果,就显示这个
CYCLE_MATCH: 'CYCLE_MATCH',
} as const;
export const CARD_ICON_MAP = {
CHECK_OPPONENTS: 'CHECK_OPPONENTS',
CHECK_PLAYING_LIST: 'CHECK_PLAYING_LIST',
CHECK_RANK_LIST: 'CHECK_RANK_LIST',
};
export const CARD_ICON_FONT_MAP = {
[CARD_ICON_MAP.CHECK_OPPONENTS]: 'icon-team-member',
[CARD_ICON_MAP.CHECK_PLAYING_LIST]: 'icon-team-member',
[CARD_ICON_MAP.CHECK_RANK_LIST]: 'icon-real-time',
} as const;
export const CARD_ICON_TEXT_MAP = {
[CARD_ICON_MAP.CHECK_OPPONENTS]: '查看对手',
[CARD_ICON_MAP.CHECK_PLAYING_LIST]: '出战名单',
[CARD_ICON_MAP.CHECK_RANK_LIST]: '查看榜单',
} as const;
export const CARD_BUTTON_CLASS = {
PRIMARY: 'press-card__button--primary',
INVALID: 'press-card__button--invalid',
};
export const CARD_BUTTON_MAP = {
LAUNCH_GAME: '进入游戏',
LAUNCH_GAME_TIP: '倒计时结束前进入游戏,超时无法参赛',
CAN_NOT_BATTLE: '未出战',
JUMP_TO_ROOM: '进入比赛',
JUMP_TO_ROOM_TIP: '进入备战房',
GROUPING: '去比赛',
TO_GROUPING: '去对局',
GROUPING_TIP: '等待分组建房中',
WAIT_START: '待开赛',
WAIT_VIRTUAL_START_TIP: '开赛前15分钟进入备战房准备',
BATTLED_ENDED: '对局已结束',
BATTLE_PLAYING: '比赛进行中',
WAIT_MATCHING: '待匹配',
START_MATCHING: '开始匹配',
MATCHING: '匹配中',
MATCHING_END: '匹配已结束',
CONTINUE_MATCHING: '继续匹配',
CHECK_DATA: '查看详细数据',
NOT_ENTER_GAME: '您未出战',
BATTLE_WILL_START: '比赛即将开始',
INVITE_MEMBER: '邀请队友',
CHECK_DETAIL_DATA: '查看详细数据',
} as const;
const PLAYING_CUSTOM = {
leftIconFont: '',
leftIconText: '',
rightIconFont: '',
rightIconText: '',
};
const RESULT_CUSTOM = {
leftIconFont: '',
leftIconText: '',
rightIconFont: '',
rightIconText: '',
};
export const DEFAULT_CARD_CUSTOM = {
GAME_WILL_START: {
mainButton: '待开赛',
mainButtonClass: CARD_BUTTON_CLASS.INVALID,
buttonTips: '',
leftIconFont: '',
leftIconText: '',
rightIconFont: '',
rightIconText: '',
},
BATTLE_WILL_START: {
mainButton: '待开赛',
mainButtonClass: CARD_BUTTON_CLASS.INVALID,
buttonTips: '',
leftIconFont: '',
leftIconText: '',
rightIconFont: '',
rightIconText: '',
},
KNOCK_OUT_SIGNED_UP: {
mainButton: '待开赛',
mainButtonClass: CARD_BUTTON_CLASS.INVALID,
buttonTips: '',
leftIconFont: '',
leftIconText: '',
rightIconFont: '',
rightIconText: '',
},
BATTLE_STARTED: {
mainButton: '进入游戏',
buttonTips: '倒计时结束前进入游戏,超时无法参赛',
leftIconFont: '',
leftIconText: '',
rightIconFont: '',
rightIconText: '',
},
BATTLE_PLAYING_JOINED: {
...PLAYING_CUSTOM,
},
BATTLE_PLAYING_NOT_JOINED: {
...PLAYING_CUSTOM,
},
RESULT_WAITING: {
...RESULT_CUSTOM,
},
RESULT_WIN: {
...RESULT_CUSTOM,
},
RESULT_FAIL: {
...RESULT_CUSTOM,
},
RESULT_SHOW_RANK: {
...RESULT_CUSTOM,
},
};
export function pardZero(num: string | number) {
const str = `${num}`;
if (str.length < 2) {
return `0${str}`;
}
return str;
}
export const SCHE_CARD_BUTTON_CODES = {
WATCH_LIVE: 'WATCH',
WATCH_VIDEO: 'WATCH_VIDEO',
ORDER_SCHE: 'ORDER_SCHE',
ORDER_SCHE_CANCEL: 'ORDER_SCHE_CANCEL',
};
export const SCHE_CARD_BUTTON_CLASSES = {
WATCH_LIVE: 'primary-btn',
WATCH_VIDEO: 'secondary-btn',
ORDER_SCHE: 'border-btn',
ORDER_SCHE_CANCEL: 'primary-btn',
};
export enum MatchingStatus {
UNKNOWN = 0, // 未使用
UN_JOIN = 1, // 未加入匹配
ON_GOING = 2, // 匹配中
FAILED = 3, // 匹配失败可重新匹配
SUCCESS = 4, // 匹配成功
}