index.tsx 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { defineComponent } from 'vue';
  2. import styles from './index.module.less';
  3. import { useRoute } from 'vue-router';
  4. import Theory from '@/views/courseware-play/component/theory';
  5. import InstrumentInfo from '@/views/courseware-play/component/instrument-info';
  6. export default defineComponent({
  7. name: 'pptResources',
  8. setup() {
  9. const route = useRoute();
  10. // 获取传递过来的参数
  11. const queryParams = {
  12. pptContentType: route.query.pptContentType as string, // ppt传过来的 资源类型
  13. pptType: route.query.pptType as string, // ppt 传过来的显示类型 modal,preview
  14. pptId: route.query.pptId as string // ppt传过来的id
  15. };
  16. console.log(queryParams, '传过来的参数');
  17. const pptTypeObj: Record<string, any> = {
  18. INSTRUMENT: 'instrument',
  19. MUSICIAN: 'musician',
  20. MUSIC_WIKI: 'wiki',
  21. THEORY: 'theory'
  22. };
  23. function handleChangeTogge() {
  24. window.parent.postMessage(
  25. {
  26. api: 'changeTogge'
  27. },
  28. '*'
  29. );
  30. }
  31. return () => (
  32. <div class={styles.pptResources} onClick={handleChangeTogge}>
  33. {['INSTRUMENT', 'MUSICIAN', 'MUSIC_WIKI'].includes(
  34. queryParams.pptContentType
  35. ) ? (
  36. <InstrumentInfo
  37. type={pptTypeObj[queryParams.pptContentType]}
  38. id={queryParams.pptId}
  39. />
  40. ) : queryParams.pptContentType === 'THEORY' ? (
  41. <Theory id={queryParams.pptId} />
  42. ) : (
  43. ''
  44. )}
  45. </div>
  46. );
  47. }
  48. });