UNPKG

press-plus

Version:
99 lines (82 loc) 2.49 kB
import { timeStampFormat } from 't-comm/es/time/time'; import { t } from '../../locale'; import { START_BATTLE_CODE_MAP, START_BATTLE_TITLE_MAP, SCHEDULE_STATUS_MAP, SCHEDULE_CUSTOM_STATUS_MAP, } from '../config'; export function isSchEnd(scheGroup: Record<string, any>) { const { rawState } = scheGroup.nodeItem || {}; if (rawState === SCHEDULE_STATUS_MAP.ENDED) { return true; } return [ SCHEDULE_STATUS_MAP.ENDED, SCHEDULE_CUSTOM_STATUS_MAP.EMPTY, ].includes(scheGroup.realStatus); } export function isSchPlaying(realStatus: number, isNotStart: boolean) { return [SCHEDULE_STATUS_MAP.PLAYING].includes(realStatus as 100) && !isNotStart; } export function isScheNotStart(realStatus: number) { return realJudgeScheNotStart(realStatus); } function realJudgeScheNotStart(realStatus: number) { return [ undefined, SCHEDULE_STATUS_MAP.NOT_START, SCHEDULE_STATUS_MAP.STARTED, SCHEDULE_CUSTOM_STATUS_MAP.PENDING, ].includes(realStatus as any); } /** * 获取未开始的不同文案 * * 未开始=人满开赛 * 未开始=待管理员开赛+上场中 * 未开始=10/30 19:00开赛+上场中 * * 人满开赛=上场中=已开赛、10人未准备 * * 区分点就是,开赛前/开赛后 * */ export function getReadyInfoDesc({ roundInfo = {}, scheGroup = {}, }) { const { latest_ready_time: latestReadyTime, start_battle_type: startBattleType, } = roundInfo as Record<string, any>; const { realStatus } = scheGroup as Record<string, any>; const startBattleTypeDesc = getStartBattleTypeDesc(roundInfo); const curBo = (scheGroup as Record<string, any>)?.nodeItem?.sch_score?.cur_bo || 0; if (curBo > 1) { return t('scheduleTree.joining'); } if (startBattleType == START_BATTLE_CODE_MAP.AUTO) { return startBattleTypeDesc; } if (realStatus == SCHEDULE_STATUS_MAP.STARTED) { if (!latestReadyTime) { return t('scheduleTree.joining'); } return t('scheduleTree.joiningAndTimeoutAutoQuit'); } return startBattleTypeDesc; } /** * 获取开赛方式描述 */ export function getStartBattleTypeDesc(roundInfo: Record<string, any>) { const { show_stime: startTime, start_battle_type: startBattleType, } = roundInfo || {}; if (startBattleType === START_BATTLE_CODE_MAP.ON_TIME) { return timeStampFormat(startTime, t('scheduleTree.startMatchOnTime')); } return START_BATTLE_TITLE_MAP[startBattleType as keyof typeof START_BATTLE_TITLE_MAP]; }