UNPKG

press-next

Version:

Vue3 组件库,支持 Composition API

80 lines (67 loc) 1.85 kB
const LABEL_SYMBOL_MAP = { 未开始: 'isLabelGray', 报名中: 'isLabelYellow', 报名结束: 'isLabelGray', 待开赛: 'isLabelPurple', 已报名: 'isLabelGreen', 比赛中: 'isLabelPurple', 已结束: 'isLabelGray', }; export function getLabelSymbol(labelName: string) { return LABEL_SYMBOL_MAP[labelName as keyof typeof LABEL_SYMBOL_MAP] || ''; } function getCurDatePosAtChild(childInfo: { act_start_time?: number; act_end_time?: number; }) { const now = (new Date()).getTime(); const startTime = (childInfo.act_start_time || 0) * 1000; const endTime = (childInfo.act_end_time || 0) * 1000; if (now < startTime) { // 未开始 return -1; } if (now >= startTime && now <= endTime) { // 进行中 return 0; } if (now > endTime) { // 已结束 return 1; } } // 与竖版基本一致,考虑到后续可能不同,所以并未直接复用 export function getLabelName(item: { state?: number; disp_status?: number; child_info?: { act_start_time: number; act_end_time: number; } }) { const curPos = getCurDatePosAtChild(item.child_info || {}); // state, 报名状态 1可报名 2已报名 3不可报名 // disp_status, 展示状态 1报名中 2待比赛 3比赛中 4已结束 if (item.state == 2 && curPos === -1) { return '已报名'; } if (item.state == 2 && curPos === 0) { return '比赛中'; } if (item.state == 2 && curPos === 1) { return '已结束'; } if (item.state == 1 && curPos === -1) { return '报名中'; } if (item.disp_status == 4) { return '已结束'; } if (item.state == 1 && item.disp_status == 1) { return '报名中'; } if (item.state == 1 && (curPos == 0 || curPos == 1)) { return '报名结束'; } if (curPos == -1) { return '未开始'; } return '报名结束'; }