index.tsx 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import { defineComponent, reactive } from 'vue';
  2. import styles from './index.module.less';
  3. import { NButton, NModal, NScrollbar, NSpace, NTabPane, NTabs } from 'naive-ui';
  4. import CardType from '@/components/card-type';
  5. import AttendClass from '../../model/attend-class';
  6. export default defineComponent({
  7. name: 'lesson-main',
  8. setup() {
  9. const forms = reactive({
  10. list: [
  11. {
  12. id: 1,
  13. type: 'IMG',
  14. url: 'https://lanhu-dds-backend.oss-cn-beijing.aliyuncs.com/merge_image/imgs/24a8551d69b245e0aec1c8613bf50d46_mergeImage.png',
  15. title: '夏日曲演奏',
  16. isCollect: false, // 是否收藏
  17. isSelected: false // 是否精选
  18. },
  19. {
  20. id: 2,
  21. type: 'IMG',
  22. url: 'https://lanhu-dds-backend.oss-cn-beijing.aliyuncs.com/merge_image/imgs/24a8551d69b245e0aec1c8613bf50d46_mergeImage.png',
  23. title: '欢乐颂',
  24. isCollect: true, // 是否收藏
  25. isSelected: true // 是否精选
  26. },
  27. {
  28. id: 3,
  29. type: 'IMG',
  30. url: 'https://lanhu-dds-backend.oss-cn-beijing.aliyuncs.com/merge_image/imgs/24a8551d69b245e0aec1c8613bf50d46_mergeImage.png',
  31. title: '夏日曲演奏',
  32. isCollect: false, // 是否收藏
  33. isSelected: true // 是否精选
  34. },
  35. {
  36. id: 4,
  37. type: 'IMG',
  38. url: 'https://lanhu-dds-backend.oss-cn-beijing.aliyuncs.com/merge_image/imgs/24a8551d69b245e0aec1c8613bf50d46_mergeImage.png',
  39. title: '欢乐颂',
  40. isCollect: true, // 是否收藏
  41. isSelected: false // 是否精选
  42. }
  43. ],
  44. showAttendClass: false // 开始上课
  45. });
  46. return () => (
  47. <div class={styles['lesson-main']}>
  48. <NTabs
  49. animated
  50. defaultValue="courseware"
  51. paneClass={styles.paneTitle}
  52. justifyContent="center"
  53. paneWrapperClass={styles.paneWrapperContainer}>
  54. <NTabPane name="courseware" tab="课件">
  55. <div class={styles.btnGroup}>
  56. <NSpace>
  57. <NButton type="default">编辑</NButton>
  58. </NSpace>
  59. <NSpace>
  60. <NButton type="default">预览</NButton>
  61. <NButton
  62. type="primary"
  63. onClick={() => (forms.showAttendClass = true)}>
  64. 开始上课
  65. </NButton>
  66. </NSpace>
  67. </div>
  68. <NScrollbar class={styles.listContainer}>
  69. <div class={styles.list}>
  70. {forms.list.map((item: any) => (
  71. <CardType isShowCollect={false} item={item} />
  72. ))}
  73. </div>
  74. </NScrollbar>
  75. </NTabPane>
  76. <NTabPane name="train" tab="训练">
  77. <div class={styles.btnGroup}>
  78. <NSpace>
  79. <NButton type="default">添加训练</NButton>
  80. <NButton type="default">编辑</NButton>
  81. </NSpace>
  82. <NSpace>
  83. <NButton type="primary">布置训练</NButton>
  84. </NSpace>
  85. </div>
  86. </NTabPane>
  87. </NTabs>
  88. <NModal
  89. v-model:show={forms.showAttendClass}
  90. preset="card"
  91. showIcon={false}
  92. class={styles.attendClassModal}
  93. title={'选择班级'}
  94. blockScroll={false}>
  95. <AttendClass onClose={() => (forms.showAttendClass = false)} />
  96. </NModal>
  97. </div>
  98. );
  99. }
  100. });