injectionSymbols.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import type { InjectionKey } from 'vue'
  2. import { StudyPlan, StudyPlanStats } from './study';
  3. import { Study, Transfer } from '.';
  4. import { useExam } from '@/composables/useExam';
  5. /**
  6. * 打开知识点记录详情
  7. */
  8. export const OPEN_KNOWLEDGE_DETAIL = Symbol('OPEN_KNOWLEDGE_DETAIL') as InjectionKey<(id: number, name: string) => void>;
  9. /**
  10. * 打开刷题记录详情
  11. */
  12. export const OPEN_PRACTICE_DETAIL = Symbol('OPEN_PRACTICE_DETAIL') as InjectionKey<(id: number, name: string) => void>;
  13. /**
  14. * 打开视频记录详情
  15. */
  16. export const OPEN_VIDEO_DETAIL = Symbol('OPEN_VIDEO_DETAIL') as InjectionKey<(id: number, name: string) => void>;
  17. export const EXAM_AUTO_SUBMIT = Symbol('EXAM_AUTO_SUBMIT') as InjectionKey<() => void>;
  18. export const EXAM_PAGE_OPTIONS = Symbol('EXAM_PAGE_OPTIONS') as InjectionKey<Transfer.ExamAnalysisPageOptions>;
  19. export const EXAM_DATA = Symbol('EXAM_DATA') as InjectionKey<ReturnType<typeof useExam>>;
  20. /**
  21. * 学习计划
  22. */
  23. export const STUDY_PLAN = Symbol('STUDY_PLAN') as InjectionKey<Ref<StudyPlan>>;
  24. /**
  25. * 学习计划统计数据
  26. */
  27. export const STUDY_PLAN_STATS = Symbol('STUDY_PLAN_STATS') as InjectionKey<Ref<StudyPlanStats>>;
  28. /**
  29. * 打开VIP弹窗
  30. */
  31. export const OPEN_VIP_POPUP = Symbol('OPEN_VIP_POPUP') as InjectionKey<() => void>;
  32. /**
  33. * 关闭VIP弹窗
  34. */
  35. export const CLOSE_VIP_POPUP = Symbol('CLOSE_VIP_POPUP') as InjectionKey<() => void>;