# HorTask 横版任务

# 引入

import PressHorTask from '@tencent/press-plus/press-hor-task/press-hor-task';

export default {
  components: {
    PressHorTask,
  }
}

# 代码演示

# 基础用法

<PressHorTask
  :task-list="taskList"
  :match-list="matchList"
  @back="onBack"
  @clickRule="clickRule"
  @clickTaskAward="clickTaskAward"
  @clickTaskButton="clickTaskButton"
  @clickMatchAward="clickMatchAward"
  @clickMatch="clickMatch"
/>
const MOCK_AWARDS = Array.from({
  length: 10,
}).map(() => ({
  image: 'https://igame-10037599.cos.ap-shanghai.myqcloud.com/dd90f5ee-282c-bf96-f8de-c22de72ee7b1.jpg',
}));


const MOCK_TASK_LIST = [
  {
    name: '每日打卡签到',
    awards: MOCK_AWARDS,
    buttonText: '签到',
    buttonPrimary: true,
  }, {
    name: '每日打卡签到',
    awards: MOCK_AWARDS,
    buttonText: '去观赛',
    buttonSecondary: true,
  },
  {
    name: '每日打卡签到',
    awards: MOCK_AWARDS,
    buttonText: '已领取',
    buttonPlain: true,
  },
];

const MOCK_MATCH_LIST = [
  {
    label: '已报名',
    image: 'https://dummyimage.com/80x80',
    name: ' 赛事名称赛事名称',
    awards: MOCK_AWARDS.slice(0, 4),
  },
  {
    image: 'https://dummyimage.com/80x80',
    name: ' 赛事名称赛事名称',
    awards: MOCK_AWARDS.slice(0, 4),
  },
  {
    image: 'https://dummyimage.com/80x80',
    name: ' 赛事名称赛事名称',
    awards: MOCK_AWARDS.slice(0, 4),
  },
  {
    image: 'https://dummyimage.com/80x80',
    name: ' 赛事名称赛事名称',
    awards: MOCK_AWARDS.slice(0, 4),
  },
];

export default {
  data() {
    return {
      taskList: MOCK_TASK_LIST,
      matchList: MOCK_MATCH_LIST,
    };
  },
  methods: {
    onBack() {
      routerBack.call(this);
    },
    clickRule() {
      console.log('[clickRule]');
    },
    clickTaskAward(awardItem, awardIndex, taskItem) {
      console.log('[clickTaskAward]', awardItem, awardIndex, taskItem);
    },
    clickTaskButton(taskItem) {
      console.log('[clickTaskButton]', taskItem);
    },
    clickMatch(matchItem) {
      console.log('[clickMatch]', matchItem);
    },
    clickMatchAward(awardItem, awardIndex, matchItem) {
      console.log('[clickMatchAward]', awardItem, awardIndex, matchItem);
    },
  },
}

# API

# Props

参数 说明 类型 默认值
task-ist 任务列表 array -
match-ist 比赛列表 array -

# Events

事件名 说明 参数
back 点击返回 -
clickRule 点击规则 -
clickTaskAward 点击任务奖品 awardItem, awardIndex, taskItem
clickTaskButton 点击任务按钮 taskItem
clickMatchAward 点击赛事奖品 awardItem, awardIndex, matchItem
clickMatch 点击赛事 matchItem
clickMatchButton 点击赛事按钮 matchItem

# 类型说明

type IAwards = {
  image: string;
};

// taskList
type ITaskList = Array<{
  name: string; // 名称
  awards: IAwards; // 奖励信息

  buttonPrimary?: boolean; // 是否按钮为金黄色
  buttonSecondary?: boolean; // 是否按钮为蓝色
  buttonPlain?: boolean; // 是否按钮为普通文案

  buttonText?: string; // 按钮文案
  
  reportData?: Object; // 上报数据
}>;

// matchList
type IMatchList = Array<{
  label: string;
  image: string;
  name: string;
  
  awards: IAwards; // 奖励信息

  reportData?: Object; // 上报数据

  buttonText?: string; // 按钮文案
  buttonPrimary?: boolean; // 是否按钮为金黄色
  buttonSecondary?: boolean; // 是否按钮为蓝色
}>;
竖屏