index.tsx 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import { defineComponent, nextTick, reactive, ref, watch } from 'vue';
  2. import styles from './index.module.less';
  3. // import { NTabPane, NTabs } from 'naive-ui';
  4. import Courseware from './courseware/addCourseware';
  5. // import Train from './train';
  6. import { usePrepareStore } from '/src/store/modules/prepareLessons';
  7. // import TrainPresets from './train-presets';
  8. import { eventGlobal } from '/src/utils';
  9. import CoursewarePresets from './courseware-presets';
  10. import CoursewareHead from './courseware-head';
  11. import { NButton, NSpace } from 'naive-ui';
  12. export default defineComponent({
  13. name: 'lesson-main',
  14. setup() {
  15. const prepareStore = usePrepareStore();
  16. const state = reactive({
  17. editCoursewareShow: false, // 是否编辑课件
  18. coursewareType: 'create' as 'create' | 'edit',
  19. addParam: {
  20. isAdd: false, // 是否添加
  21. id: null,
  22. addName: '' // 添加的名称
  23. },
  24. editCourseware: {} as any, //
  25. // editWorkShow: false, // 是否编辑预设
  26. editWork: {} as any // 预设模板编号
  27. });
  28. const coursewareHeadRef = ref();
  29. // 取消
  30. const onCancelCourseware = () => {
  31. eventGlobal.emit('coursewareClosed', coursewareHeadRef.value?.getForms());
  32. };
  33. const onSaveCourseware = () => {
  34. // console.log(
  35. // coursewareHeadRef.value,
  36. // coursewareHeadRef.value?.getForms(),
  37. // '12'
  38. // );
  39. eventGlobal.emit('coursewareSave', coursewareHeadRef.value?.getForms());
  40. };
  41. return () => (
  42. <div
  43. class={[state.editCoursewareShow && styles.coursewareSection]}
  44. style={{ height: '100%' }}>
  45. {/* 编辑作业头部标题 */}
  46. {state.editCoursewareShow && (
  47. <div class={styles.coursewareHeader}>
  48. <CoursewareHead ref={coursewareHeadRef} />
  49. </div>
  50. )}
  51. <div class={styles['lesson-main']}>
  52. {state.editCoursewareShow ? (
  53. <Courseware
  54. groupItem={state.editCourseware}
  55. onChange={(val: any) => {
  56. if (val.addParam) {
  57. state.addParam = val.addParam;
  58. }
  59. state.editCoursewareShow = val.status;
  60. prepareStore.setIsEditResource(val.status);
  61. if (!val.status) {
  62. eventGlobal.emit('teacher-slideshow', false);
  63. }
  64. }}
  65. />
  66. ) : (
  67. <CoursewarePresets
  68. addParam={state.addParam}
  69. onChange={(val: any) => {
  70. state.coursewareType = val.type;
  71. state.editCoursewareShow = val.status;
  72. prepareStore.setIsEditResource(val.status);
  73. state.editCourseware = val.groupItem;
  74. state.addParam = {
  75. isAdd: false, // 是否添加
  76. id: null,
  77. addName: '' // 添加的名称
  78. };
  79. }}
  80. />
  81. )}
  82. </div>
  83. {/* 编辑作业底部操作 */}
  84. {state.editCoursewareShow && (
  85. <div class={styles.coursewareFooter}>
  86. <NSpace>
  87. <NButton
  88. bordered={false}
  89. type="error"
  90. onClick={onCancelCourseware}>
  91. 取消
  92. </NButton>
  93. <NButton type="primary" onClick={onSaveCourseware}>
  94. 保存课件
  95. </NButton>
  96. </NSpace>
  97. </div>
  98. )}
  99. </div>
  100. );
  101. }
  102. });