export function getEmitEventMixin() {
  return {
    props: {
      listViewMode: {
        type: Boolean,
        default: false,
      },
      stageScheMap: {
        type: Object,
        default: () => ({}),
      },
      scheType: {
        type: Number,
        default: 0,
      },
      scheList: {
        type: Array,
        default: () => ([]),
      },
      roundList: {
        type: Array,
        default: () => ([]),
      },
      scheMap: {
        type: Object,
        default: () => ({}),
      },
      cycleRoundList: {
        type: Array,
        default: () => ([]),
      },
      isAdmin: {
        type: Boolean,
        default: false,
      },
      isPreview: {
        type: Number,
        default: 0,
      },
      childId: {
        type: [Number, String],
        default: 0,
      },
      siteId: {
        type: Number,
        default: 0,
      },
      myTeamId: {
        type: String,
        default: '',
      },
      childInfo: {
        type: Object,
        default: () => ({}),
      },
      selectedSchId: {
        type: String,
        default: '',
      },
      scheSubStatusMap: {
        type: Object,
        default: () => ({}),
      },
      curCycleTab: {
        type: Number,
        default: 0,
      },
      notFinishNum: {
        type: Number,
        default: 0,
      },
      // curStageTab: {
      //   type: Number,
      //   default: 0,
      // },
      curGoingStageIdx: {
        type: Number,
        default: 0,
      },
      stageCfgList: {
        type: Array,
        default: () => ([]),
      },
      allScheList: {
        type: Array,
        default: () => ([]),
      },
      page: {
        type: Number,
        default: 0,
      },
      totalPage: {
        type: Number,
        default: 0,
      },
      automaticGrouping: {
        type: Boolean,
        default: false,
      },
      curRoundFilter: {
        type: String,
        default: '',
      },
      myScheList: {
        type: Array,
        default: () => ([]),
      },

      stageIdx: {
        type: Number,
        default: 0,
      },
      loadingMoreMatchMode: {
        type: Boolean,
        default: false,
      },
      canShowOrderButton: {
        type: Boolean,
        default: true,
      },
      isGroupMode: {
        type: Boolean,
        default: false,
      },
      flatMySche: {
        type: Boolean,
        default: false,
      },
    },
    methods: {
      clickFinalSche(this: any) {
        this.$emit('clickFinalSche');
      },
      clickSche(this: any, ...args: Array<any>) {
        this.$emit('clickSche', ...args);
      },
      clickScheItem(this: any, ...args: Array<any>) {
        this.$emit('clickScheItem', ...args);
      },
      startNextStage(this: any, ...args: Array<any>) {
        this.$emit('startNextStage', ...args);
      },
      clickRoundTab(this: any, ...args: Array<any>) {
        this.$emit('clickRoundTab', ...args);
      },
      loadMoreCycleSche(this: any, ...args: Array<any>) {
        this.$emit('loadMoreCycleSche', ...args);
      },
      clickGroup(this: any, ...args: Array<any>) {
        this.$emit('clickGroup', ...args);
      },
      clickFilter(this: any, ...args: Array<any>) {
        this.$emit('clickFilter', ...args);
      },
      clickScheduleLiveIcon(this: any, ...args: Array<any>) {
        this.$emit('clickScheduleLiveIcon', ...args);
      },
      clickScheItemButton(this: any, ...args: Array<any>) {
        this.$emit('clickScheItemButton', ...args);
      },
      scrollToLower(this: any) {
        this.$emit('scrollToLower');
      },
    },
  };
}
