# ScheduleCardGp 赛程卡片

# 引入

import PressScheduleCardGp from '@tencent/press-plus/press-schedule-card-gp/press-schedule-card-gp';

export default {
  components: {
    PressScheduleCardGp,
  }
}

# 代码演示

# 基础用法

<PressScheduleCardGp
  :game-rank="MOCK_DATA.gameRank"
  :child-name="MOCK_DATA.childName"
  :child-type="MOCK_DATA.childType"
  :show-role-info="MOCK_DATA.showRoleInfo"
  :role-name="MOCK_DATA.roleName"
  :device="MOCK_DATA.device"
  :role-id="MOCK_DATA.roleId"
  :battle-list="MOCK_DATA.battleList"
  :cur-showing-battle-index="MOCK_DATA.curShowingBattleIndex"
  :cur-going-battle-index="MOCK_DATA.curGoingBattleIndex"
  :card-state="MOCK_DATA.cardState"
  :is-manual-start="MOCK_DATA.isManualStart"
  :battle-score-list="MOCK_DATA.battleScoreList"
  :card-custom="MOCK_DATA.cardCustom"
  :sign-up-countdown="MOCK_DATA.signUpCountdown"
  :sign-up-title="MOCK_DATA.signUpTitle"
  @changeCurShowingBattleIndex="changeCurShowingBattleIndex"
  @clickLeftIcon="clickLeftIcon"
  @clickRightIcon="clickRightIcon"
  @checkDetailScore="checkDetailScore"
  @clickMainButton="clickMainButton"
/>

# 数据解析

  • parser-base-card,解析基础赛事卡片
  • parser-cycle-card。解析循环赛卡片
  • parser-knockout-card,解析淘汰赛卡片
  • parser-tree,解析赛程树

# API

# Props

参数 说明 类型 默认值
card-state 赛程状态 string -
is-manual-start 是否手动开赛 boolean false
join-room-countdown 进入房间倒计时 number 0
game-start-countdown 比赛开始倒计时,非对局 number 0
battle-scoreList 对局比分列表 array -
card-custom 自定义信息,比如待开赛的按钮 object -
sign-up-title 报名标题 string 距报名截止
sign-up-countdown 报名倒计时 number 0
show-role-info 顶部是否显示角色信息 boolean false
role-name 角色名称 string -
device 设备 string -
role-id 角色 id string -
child-name 子活动名称 string -
child-type 子活动类型,团队赛还是个人赛 string -
battle-list 对局列表 array -
cur-showing-battle-index 当前正在展示的对局索引 number 0
cur-going-battle-index 当前正在进行的对局索引 number 0
game-rank 比赛总排名 string -

# Events

事件名 说明 参数
clickMainButton 点击主按钮 -
clickLeftIcon 点击左侧图标 -
clickRightIcon 点击右侧图标 -
changeCurShowingBattleIndex 点击切换对局 index
checkDetailScore 点击详细战绩 -
clickChildName 点击子活动名称 -
countdownFinish 倒计时结束 -

# CardState

赛程状态有以下几种:

export const CARD_STATUS_MAP = {
  NOT_SIGN_UP: 'NOT_SIGN_UP', // 未报名
  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名
} as const;

# MainButton

按钮类名有以下几种:

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: '去比赛',
  GROUPING_TIP: '等待分组建房中',

  WAIT_START: '待开赛',
  WAIT_VIRTUAL_START_TIP: '开赛前15分钟进入备战房准备',

  BATTLED_ENDED: '对局已结束',
  BATTLE_PLAYING: '比赛进行中',
} as const;

# CardCustom

卡片自定义信息,其为一个对象,keycardStatevalue 为各种属性,默认值如下:

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: '',
  },
  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,
  },
};

# 常见问题

# 切换轮次倒计时变动

由于采用单例,任意时刻只有一个轮次可以展示,切换轮次后倒计时会从传入的 props 开始,如果 props 不更新,也就是不请求最新数据,那么就会在切换轮次时,倒计时“停在原地”。

解决办法是改成传入“时刻”,组件内自己计算倒计时。

横屏
最后更新时间: 2024/9/11 16:29:58