| 
					
				 | 
			
			
				@@ -1,797 +1,800 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  computed, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  defineComponent, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  onMounted, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  reactive, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ref, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  watch 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} from 'vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import styles from './index.module.less'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  NButton, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  NTooltip, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  NIcon, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  NImage, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  NModal, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  NScrollbar, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  NSpin, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  NTabPane, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  NTabs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  useMessage, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  NPopselect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} from 'naive-ui'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { usePrepareStore } from '/src/store/modules/prepareLessons'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import add from '@/views/studentList/images/add.png'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// import iconSlideRight from '../../../images/icon-slide-right.png'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import CoursewareType from '../../../model/courseware-type'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import TheEmpty from '/src/components/TheEmpty'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import RelatedClass from '../../../model/related-class'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { state } from '/src/state'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { useResizeObserver } from '@vueuse/core'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import AttendClass from '/src/views/prepare-lessons/model/attend-class'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  api_addByOpenCourseware, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  api_teacherChapterLessonCoursewareRemove, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  teacherChapterLessonCoursewareList, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  courseScheduleStart 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} from '../../../api'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { useRoute, useRouter } from 'vue-router'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import TheMessageDialog from '/src/components/TheMessageDialog'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { eventGlobal, fscreen } from '/src/utils'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import PreviewWindow from '/src/views/preview-window'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import Related from './related'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import Train from '../train'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import ResourceMain from '../../resource-main'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  name: 'courseware-presets', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  props: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    addParam: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      type: Object, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      default: () => ({}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  emits: ['change'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  setup(props, { emit }) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const prepareStore = usePrepareStore(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const message = useMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const route = useRoute(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const router = useRouter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const localStorageSubjectId = localStorage.getItem( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'prepareLessonSubjectId' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const forms = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // 选取参数带的,后取缓存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      leftWidth: '100%', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      rightWidth: '0', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      messageLoading: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      instrumentId: route.query.instrumentId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ? Number(route.query.instrumentId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        : localStorageSubjectId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ? Number(localStorageSubjectId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        : '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      courseScheduleSubjectId: route.query.courseScheduleSubjectId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      classGroupId: route.query.classGroupId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      preStudentNum: route.query.preStudentNum, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      bodyWidth: '100%', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      loading: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      openLoading: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      showRelatedClass: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      tableList: [] as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      openTableShow: true, // 是否显示 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      openTableList: [] as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      selectItem: {} as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      editTitleVisiable: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      editTitle: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      editBtnLoading: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      preRemoveVisiable: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      addVisiable: false, // 是否有添加的课件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      carouselIndex: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      showAttendClass: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      attendClassType: 'change', // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      attendClassItem: {} as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      previewModal: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      previewParams: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        type: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        courseId: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        instrumentId: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        detailId: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      workVisiable: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      wikiCategoryIdChild: null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const getCoursewareList = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      forms.loading = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 判断是否有选择对应的课件 或声部 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!prepareStore.getSelectKey) return (forms.loading = false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const { data } = await teacherChapterLessonCoursewareList({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          instrumentId: prepareStore.getInstrumentId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          coursewareDetailKnowledgeId: prepareStore.getSelectKey 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!Array.isArray(data)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const tempList: any = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data.forEach((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const firstItem: any = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            item.chapterKnowledgeList[0]?.chapterKnowledgeMaterialList[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          tempList.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            id: item.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            lessonPreTrainingId: item.lessonPreTrainingId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            openFlag: item.openFlag, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            openFlagEnable: item.openFlagEnable, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            instrumentNames: item.instrumentNames, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            fromChapterLessonCoursewareId: item.fromChapterLessonCoursewareId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            name: item.name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            coverImg: firstItem?.bizInfo.coverImg, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            type: firstItem?.bizInfo.type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            isNotWork: item.lessonPreTrainingNum <= 0 ? true : false // 是否布置作业 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        forms.tableList = tempList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } catch { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      forms.loading = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 监听选择的key 左侧选择了其它的课 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    watch( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      () => [prepareStore.getSelectKey, prepareStore.getInstrumentId], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        eventGlobal.emit('openCoursewareChanged'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        await getCoursewareList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // await getOpenCoursewareList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        subjectRef.value?.syncBarPosition(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    watch( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      () => prepareStore.getInstrumentList, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        checkInstrumentIds(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const checkInstrumentIds = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const instrumentsList = prepareStore.getSingleInstrumentList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // 并且没有声部时才会更新 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (instrumentsList.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const prepareLessonCourseWareSubjectIsNull = sessionStorage.getItem( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'prepareLessonCourseWareSubjectIsNull' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (prepareLessonCourseWareSubjectIsNull === 'true') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          prepareStore.setInstrumentId(''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 并且声部在列表中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const localStorageSubjectId = localStorage.getItem( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'prepareLessonSubjectId' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // // 先取 上次上课声部,在取班级声部 最后取缓存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let instrumentId = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let index = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (forms.courseScheduleSubjectId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // 判断浏览器上面是否有 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          index = instrumentsList.findIndex( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            (subject: any) => subject.id == forms.courseScheduleSubjectId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (index >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            instrumentId = Number(forms.courseScheduleSubjectId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 判断班级上面声部 & 还没有声部 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (forms.instrumentId && !instrumentId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // 判断浏览器上面是否有 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          index = instrumentsList.findIndex( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            (subject: any) => subject.id == forms.instrumentId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (index >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            instrumentId = Number(forms.instrumentId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 缓存声部 & 还没有声部 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (localStorageSubjectId && !instrumentId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // 判断浏览器上面是否有 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          index = instrumentsList.findIndex( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            (subject: any) => subject.id == localStorageSubjectId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (index >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            instrumentId = Number(localStorageSubjectId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 判断是否选择为空 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (instrumentId && index >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          prepareStore.setSubjectId(instrumentId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // forms.instrumentId = instrumentId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // 判断是否有缓存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // prepareStore.setSubjectId(instrumentsList[0].id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // forms.instrumentId = instrumentsList[0].id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 保存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        localStorage.setItem( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'prepareLessonSubjectId', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          prepareStore.getInstrumentId as any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        subjectRef.value?.syncBarPosition(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const getInitInstrumentId = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      let instrumentId: any = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      prepareStore.getInstrumentList.forEach((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (Array.isArray(item.instruments)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          item.instruments.forEach((child: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (child.id === prepareStore.getInstrumentId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              instrumentId = child.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (instrumentId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        forms.wikiCategoryIdChild = instrumentId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const subjectRef = ref(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    onMounted(async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      useResizeObserver( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        document.querySelector('#presetsLeftRef') as HTMLElement, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (entries: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const entry = entries[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const { width } = entry.contentRect; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          forms.leftWidth = width + 'px'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      useResizeObserver( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        document.querySelector('#presetsRightRef') as HTMLElement, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (entries: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const entry = entries[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const { width } = entry.contentRect; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          forms.rightWidth = width + 'px'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      prepareStore.setClassGroupId(route.query.classGroupId as any); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (!prepareStore.getInstrumentId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 获取教材分类列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        checkInstrumentIds(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        getInitInstrumentId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      await getCoursewareList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (props.addParam.isAdd) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        forms.addVisiable = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const onRemove = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      forms.messageLoading = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        await api_teacherChapterLessonCoursewareRemove({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          id: forms.selectItem.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        message.success('删除成功'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        getCoursewareList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // getOpenCoursewareList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        eventGlobal.emit('openCoursewareChanged'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        forms.preRemoveVisiable = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } catch { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      setTimeout(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        forms.messageLoading = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }, 100); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 添加课件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const onAddCourseware = async (item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (forms.messageLoading) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      forms.messageLoading = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        await api_addByOpenCourseware({ id: item.id }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        message.success('添加成功'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        getCoursewareList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // getOpenCoursewareList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        eventGlobal.emit('openCoursewareChanged'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } catch { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      setTimeout(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        forms.messageLoading = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }, 100); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 预览上课 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const onPreviewAttend = (id: string) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // 判断是否在应用里面 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (window.matchMedia('(display-mode: standalone)').matches) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        state.application = window.matchMedia( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          '(display-mode: standalone)' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ).matches; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        forms.previewModal = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        fscreen(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        forms.previewParams = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          type: 'preview', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          courseId: id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          instrumentId: prepareStore.getInstrumentId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          detailId: prepareStore.getSelectKey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          lessonCourseId: prepareStore.getBaseCourseware.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const { href } = router.resolve({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          path: '/attend-class', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          query: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            type: 'preview', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            courseId: id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            instrumentId: prepareStore.getInstrumentId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            detailId: prepareStore.getSelectKey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            lessonCourseId: prepareStore.getBaseCourseware.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        window.open(href, +new Date() + ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const onStartClass = async ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      item: any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      classGroupId: any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      instrumentId?: any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (classGroupId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 开始上课 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const res = await courseScheduleStart({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          lessonCoursewareKnowledgeDetailId: prepareStore.selectKey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          classGroupId: classGroupId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          useChapterLessonCoursewareId: item.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // instrumentId: prepareStore.getInstrumentId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (window.matchMedia('(display-mode: standalone)').matches) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          state.application = window.matchMedia( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            '(display-mode: standalone)' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ).matches; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          forms.previewModal = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          fscreen(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          forms.previewParams = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            type: 'class', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            classGroupId: classGroupId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            courseId: item.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            instrumentId: instrumentId || route.query.instrumentId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            detailId: prepareStore.getSelectKey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            classId: res.data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            lessonCourseId: prepareStore.getBaseCourseware.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            preStudentNum: forms.preStudentNum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const { href } = router.resolve({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            path: '/attend-class', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            query: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              type: 'class', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              classGroupId: classGroupId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              courseId: item.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              // instrumentId: prepareStore.getInstrumentId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              instrumentId: instrumentId || route.query.instrumentId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              detailId: prepareStore.getSelectKey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              classId: res.data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              lessonCourseId: prepareStore.getBaseCourseware.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              preStudentNum: forms.preStudentNum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          window.open(href, +new Date() + ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        forms.showAttendClass = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        forms.attendClassType = 'change'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        forms.attendClassItem = item; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const selectChildObj = (item: any, index: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const obj: any = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      item?.forEach((child: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (child.id === forms.wikiCategoryIdChild) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          obj.selected = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          obj.name = child.name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      return obj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const tabInstrumentValue = computed(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      let instrumentId: any = prepareStore.getInstrumentId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ? prepareStore.getInstrumentId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        : ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      prepareStore.getFormatInstrumentList.forEach((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (Array.isArray(item.instruments)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          item.instruments.forEach((child: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (child.id === prepareStore.getInstrumentId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              instrumentId = item.id + ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      return instrumentId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return () => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        class={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          styles.coursewarePresetsContainer, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          forms.openTableShow && styles.rightLineShow 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ]}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          class={styles.presetsLeft} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          id="presetsLeftRef" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          style={{ width: `calc(${forms.leftWidth} - ${forms.rightWidth})` }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <NTabs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ref={subjectRef} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            defaultValue="" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            paneClass={styles.paneTitle} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            justifyContent="start" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            paneWrapperClass={styles.paneWrapperContainer} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            value={tabInstrumentValue.value} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onUpdate:value={(val: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              console.log(val, 'item.id', prepareStore.getFormatInstrumentList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              prepareStore.getFormatInstrumentList.forEach((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (item.value.toString() === val.toString()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  prepareStore.setInstrumentId(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  // 保存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  forms.instrumentId = val; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  forms.wikiCategoryIdChild = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              if (!val) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                prepareStore.setInstrumentId(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 保存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                forms.instrumentId = val; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                forms.wikiCategoryIdChild = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sessionStorage.setItem( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  'prepareLessonCourseWareSubjectIsNull', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  val ? 'false' : 'true' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            v-slots={{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              suffix: () => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <NButton 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  class={styles.addBtn} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  bordered={false} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  onClick={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    eventGlobal.emit('teacher-slideshow', true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    emit('change', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      status: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      type: 'create' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <NImage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    class={styles.addBtnIcon} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    previewDisabled 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    src={add}></NImage> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  创建课件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                </NButton> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            {[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              { name: '全部乐器', id: '', label: '全部乐器', value: '' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              ...prepareStore.getFormatInstrumentList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ].map((item: any, index: number) => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <NTabPane 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                name={`${item.value}`} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                tab={item.label} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                disabled={item.instruments?.length > 0} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                displayDirective="if"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                {{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  tab: () => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    item.instruments?.length > 0 ? ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <NPopselect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        options={item.instruments} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        trigger="hover" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        v-model:value={forms.wikiCategoryIdChild} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        onUpdate:value={(val: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          // onSearch(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          prepareStore.setInstrumentId(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          // 保存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          forms.instrumentId = val; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          if (!val) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            sessionStorage.setItem( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              'prepareLessonCourseWareSubjectIsNull', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              val ? 'false' : 'true' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        key={item.id} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        class={styles.popSelect}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        <span 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          class={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            styles.textBtn, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            selectChildObj(item.instruments, index).selected && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              styles.textBtnActive 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          ]}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          {selectChildObj(item.instruments, index).label || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            item.label} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          <i class={styles.iconArrow}></i> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        </span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      </NPopselect> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ) : ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      item.label 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </NTabPane> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ))} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </NTabs> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <NSpin show={forms.loading}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <NScrollbar class={styles.coursewarePresets}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div style={{ overflow: 'hidden' }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  class={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    styles.list, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    !forms.loading && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      forms.tableList.length <= 0 && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      styles.listEmpty 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  ]}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  {forms.tableList.map((item: any) => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <div class={[styles.itemWrap, styles.itemBlock, 'row-nav']}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <div class={styles.itemWrapBox}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        <CoursewareType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          operate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          isEditName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          item={item} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          onClick={() => onPreviewAttend(item.id)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          // onEditName={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          //   forms.selectItem = item; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          //   forms.editTitle = item.name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          //   forms.editTitleVisiable = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          // }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          onEdit={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            eventGlobal.emit('teacher-slideshow', true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            emit('change', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              status: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              type: 'update', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              groupItem: { id: item.id } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          onStartClass={() => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            onStartClass(item, forms.classGroupId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          onDelete={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            forms.selectItem = item; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            forms.preRemoveVisiable = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          // 布置作业 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          onWork={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            forms.workVisiable = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            forms.selectItem = item; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  ))} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  {!forms.loading && forms.tableList.length <= 0 && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <TheEmpty 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      class={styles.empty1} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      description="当前章节暂无课件,快点击右上角创建课件吧" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </NScrollbar> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </NSpin> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <div class={styles.presetsRight} id="presetsRightRef"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <NTooltip showArrow={false} animated={false} duration={0} delay={0}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            {{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              trigger: () => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  class={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    styles.presetsArrar, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    !forms.openTableShow && styles.presetsArrarActive 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  onClick={() => (forms.openTableShow = !forms.openTableShow)}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <NIcon> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <path 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        d="M16.62 2.99a1.25 1.25 0 0 0-1.77 0L6.54 11.3a.996.996 0 0 0 0 1.41l8.31 8.31c.49.49 1.28.49 1.77 0s.49-1.28 0-1.77L9.38 12l7.25-7.25c.48-.48.48-1.28-.01-1.76z" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        fill="currentColor"></path> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    </svg> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </NIcon> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              default: () => <div>{forms.openTableShow ? '收起' : '展开'}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </NTooltip> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <Related 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onMore={() => (forms.showRelatedClass = true)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onAdd={(item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              onAddCourseware(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onLook={(item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              onPreviewAttend(item.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        {/* )} */} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <NModal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          v-model:show={forms.showRelatedClass} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          preset="card" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          showIcon={false} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          class={['modalTitle background', styles.attendClassModal1]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          title={'相关课件'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          blockScroll={false}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <RelatedClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            tableList={forms.tableList} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            instrumentList={prepareStore.getInstrumentList} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            instrumentId={prepareStore.getInstrumentId as any} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            coursewareDetailKnowledgeId={prepareStore.getSelectKey} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onClose={() => (forms.showRelatedClass = false)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onAdd={(item: any) => onAddCourseware(item)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onClick={(item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              onPreviewAttend(item.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              forms.showRelatedClass = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </NModal> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        {/* <NModal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          v-model:show={forms.editTitleVisiable} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          preset="card" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          class={['modalTitle', styles.removeVisiable1]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          title={'课件重命名'}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <div class={styles.studentRemove}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <NInput 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              placeholder="请输入课件名称" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              v-model:value={forms.editTitle} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              maxlength={15} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              onKeyup={(e: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (e.code === 'ArrowLeft' || e.code === 'ArrowRight') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  e.stopPropagation(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <NSpace class={styles.btnGroupModal} justify="center"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <NButton round onClick={() => (forms.editTitleVisiable = false)}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                取消 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </NButton> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <NButton 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                round 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                onClick={onEditTitleSubmit} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                loading={forms.editBtnLoading}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                确定 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </NButton> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </NSpace> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </NModal> */} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <NModal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          v-model:show={forms.preRemoveVisiable} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          preset="card" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          class={['modalTitle', styles.removeVisiable1]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          title={'删除课件'}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <TheMessageDialog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            content={`<p style="text-align: left;">请确认是否删除【${forms.selectItem.name}】,删除后不可恢复</p>`} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            cancelButtonText="取消" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            confirmButtonText="确认" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            loading={forms.messageLoading} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onClose={() => (forms.preRemoveVisiable = false)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onConfirm={() => onRemove()} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </NModal> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <NModal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          v-model:show={forms.addVisiable} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          preset="card" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          class={['modalTitle', styles.removeVisiable1]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          title={'保存成功'}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <TheMessageDialog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            content={`<p style="text-align: left;">【${props.addParam.name}】暂未设置课件作业,是否现在去设置课件作业</p>`} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            cancelButtonText="稍后设置" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            confirmButtonText="立即设置" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // loading={forms.messageLoading} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onClose={() => (forms.addVisiable = false)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onConfirm={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              forms.addVisiable = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              forms.workVisiable = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              forms.selectItem = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                id: props.addParam.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                name: props.addParam.name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </NModal> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        {/* 应用内预览或上课 */} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <PreviewWindow 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          v-model:show={forms.previewModal} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          type="attend" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          params={forms.previewParams} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <NModal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          v-model:show={forms.showAttendClass} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          preset="card" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          showIcon={false} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          class={['modalTitle background', styles.attendClassModal]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          title={'选择班级'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          blockScroll={false}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <AttendClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onClose={() => (forms.showAttendClass = false)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            type={forms.attendClassType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onPreview={(item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              if (window.matchMedia('(display-mode: standalone)').matches) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                state.application = window.matchMedia( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  '(display-mode: standalone)' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ).matches; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                forms.previewModal = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                forms.previewParams = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  ...item 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const { href } = router.resolve({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  path: '/attend-class', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  query: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ...item 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                window.open(href, +new Date() + ''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onConfirm={async (item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              onStartClass( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                forms.attendClassItem, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item.classGroupId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item.instrumentId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </NModal> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <NModal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          v-model:show={forms.workVisiable} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          preset="card" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          class={['modalTitle background', styles.workVisiable]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          title={ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            forms.selectItem.lessonPreTrainingId ? '编辑作业' : '创建作业' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <div id="model-homework-height" class={styles.workContainer}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class={styles.workTrain}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <Train 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                cardType="prepare" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                lessonPreTraining={{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  title: forms.selectItem.name + '-课后作业', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  chapterId: forms.selectItem.id, // 课件编号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  id: forms.selectItem.lessonPreTrainingId // 作业编号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                onChange={(val: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  forms.workVisiable = val.status; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  getCoursewareList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class={styles.resourceMain}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <ResourceMain cardType="prepare" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </NModal> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  computed,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  defineComponent,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  onMounted,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  reactive,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ref,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  watch
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} from 'vue';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import styles from './index.module.less';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  NButton,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  NTooltip,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  NIcon,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  NImage,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  NModal,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  NScrollbar,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  NSpin,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  NTabPane,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  NTabs,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  useMessage,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  NPopselect
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} from 'naive-ui';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { usePrepareStore } from '/src/store/modules/prepareLessons';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import add from '@/views/studentList/images/add.png';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// import iconSlideRight from '../../../images/icon-slide-right.png';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import CoursewareType from '../../../model/courseware-type';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import TheEmpty from '/src/components/TheEmpty';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import RelatedClass from '../../../model/related-class';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { state } from '/src/state';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { useResizeObserver } from '@vueuse/core';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import AttendClass from '/src/views/prepare-lessons/model/attend-class';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  api_addByOpenCourseware,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  api_teacherChapterLessonCoursewareRemove,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  teacherChapterLessonCoursewareList,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  courseScheduleStart
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} from '../../../api';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { useRoute, useRouter } from 'vue-router';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import TheMessageDialog from '/src/components/TheMessageDialog';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { eventGlobal, fscreen } from '/src/utils';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import PreviewWindow from '/src/views/preview-window';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import Related from './related';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import Train from '../train';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import ResourceMain from '../../resource-main';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default defineComponent({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  name: 'courseware-presets',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  props: {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addParam: {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      type: Object,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      default: () => ({})
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  },
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  emits: ['change'],
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  setup(props, { emit }) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const prepareStore = usePrepareStore();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const message = useMessage();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const route = useRoute();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const router = useRouter();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const localStorageSubjectId = localStorage.getItem(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      'prepareLessonSubjectId'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const forms = reactive({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 选取参数带的,后取缓存
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      leftWidth: '100%',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      rightWidth: '0',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      messageLoading: false,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      instrumentId: route.query.instrumentId
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ? Number(route.query.instrumentId)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        : localStorageSubjectId
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ? Number(localStorageSubjectId)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        : '',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      courseScheduleSubjectId: route.query.courseScheduleSubjectId,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      classGroupId: route.query.classGroupId,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      preStudentNum: route.query.preStudentNum,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      bodyWidth: '100%',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      loading: false,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      openLoading: false,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      showRelatedClass: false,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      tableList: [] as any,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      openTableShow: true, // 是否显示
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      openTableList: [] as any,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      selectItem: {} as any,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      editTitleVisiable: false,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      editTitle: null,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      editBtnLoading: false,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      preRemoveVisiable: false,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      addVisiable: false, // 是否有添加的课件
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      carouselIndex: 0,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      showAttendClass: false,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      attendClassType: 'change', //
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      attendClassItem: {} as any,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      previewModal: false,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      previewParams: {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        type: '',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        courseId: '',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        instrumentId: '',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        detailId: ''
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } as any,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      workVisiable: false,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      wikiCategoryIdChild: null
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const getCoursewareList = async () => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      forms.loading = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      try {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 判断是否有选择对应的课件 或声部
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!prepareStore.getSelectKey) return (forms.loading = false);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const { data } = await teacherChapterLessonCoursewareList({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          instrumentId: prepareStore.getInstrumentId,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          coursewareDetailKnowledgeId: prepareStore.getSelectKey
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!Array.isArray(data)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const tempList: any = [];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        data.forEach((item: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // const firstItem: any =
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          //   item.chapterKnowledgeList[0]?.chapterKnowledgeMaterialList[0];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const firstItem: any =
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.chapterKnowledgeList[0]?.chapterKnowledgeMaterialList;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          tempList.push({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            id: item.id,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lessonPreTrainingId: item.lessonPreTrainingId,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            openFlag: item.openFlag,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            openFlagEnable: item.openFlagEnable,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            instrumentNames: item.instrumentNames,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fromChapterLessonCoursewareId: item.fromChapterLessonCoursewareId,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            name: item.name,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            coverImg: firstItem && firstItem[0]?.bizInfo.coverImg,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            type: firstItem && firstItem[0]?.bizInfo.type,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            isNotWork: item.lessonPreTrainingNum <= 0 ? true : false // 是否布置作业
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        forms.tableList = tempList;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } catch {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      forms.loading = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    };
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 监听选择的key 左侧选择了其它的课
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    watch(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      () => [prepareStore.getSelectKey, prepareStore.getInstrumentId],
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      async () => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        eventGlobal.emit('openCoursewareChanged');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        await getCoursewareList();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // await getOpenCoursewareList();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        subjectRef.value?.syncBarPosition();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    watch(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      () => prepareStore.getInstrumentList,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      () => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        checkInstrumentIds();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const checkInstrumentIds = () => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const instrumentsList = prepareStore.getSingleInstrumentList;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 并且没有声部时才会更新
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (instrumentsList.length > 0) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const prepareLessonCourseWareSubjectIsNull = sessionStorage.getItem(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'prepareLessonCourseWareSubjectIsNull'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (prepareLessonCourseWareSubjectIsNull === 'true') {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          prepareStore.setInstrumentId('');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 并且声部在列表中
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const localStorageSubjectId = localStorage.getItem(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'prepareLessonSubjectId'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // // 先取 上次上课声部,在取班级声部 最后取缓存
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let instrumentId = null;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let index = -1;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (forms.courseScheduleSubjectId) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // 判断浏览器上面是否有
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          index = instrumentsList.findIndex(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            (subject: any) => subject.id == forms.courseScheduleSubjectId
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (index >= 0) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            instrumentId = Number(forms.courseScheduleSubjectId);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 判断班级上面声部 & 还没有声部
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (forms.instrumentId && !instrumentId) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // 判断浏览器上面是否有
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          index = instrumentsList.findIndex(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            (subject: any) => subject.id == forms.instrumentId
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (index >= 0) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            instrumentId = Number(forms.instrumentId);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 缓存声部 & 还没有声部
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (localStorageSubjectId && !instrumentId) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // 判断浏览器上面是否有
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          index = instrumentsList.findIndex(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            (subject: any) => subject.id == localStorageSubjectId
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (index >= 0) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            instrumentId = Number(localStorageSubjectId);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 判断是否选择为空
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (instrumentId && index >= 0) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          prepareStore.setSubjectId(instrumentId);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // forms.instrumentId = instrumentId;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // 判断是否有缓存
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // prepareStore.setSubjectId(instrumentsList[0].id);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // forms.instrumentId = instrumentsList[0].id;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 保存
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        localStorage.setItem(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'prepareLessonSubjectId',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          prepareStore.getInstrumentId as any
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        subjectRef.value?.syncBarPosition();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    };
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const getInitInstrumentId = () => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let instrumentId: any = '';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      prepareStore.getInstrumentList.forEach((item: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (Array.isArray(item.instruments)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          item.instruments.forEach((child: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (child.id === prepareStore.getInstrumentId) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              instrumentId = child.id;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (instrumentId) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        forms.wikiCategoryIdChild = instrumentId;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    };
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const subjectRef = ref();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onMounted(async () => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      useResizeObserver(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        document.querySelector('#presetsLeftRef') as HTMLElement,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (entries: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const entry = entries[0];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const { width } = entry.contentRect;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          forms.leftWidth = width + 'px';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      useResizeObserver(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        document.querySelector('#presetsRightRef') as HTMLElement,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (entries: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const entry = entries[0];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const { width } = entry.contentRect;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          forms.rightWidth = width + 'px';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      prepareStore.setClassGroupId(route.query.classGroupId as any);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (!prepareStore.getInstrumentId) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 获取教材分类列表
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        checkInstrumentIds();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        getInitInstrumentId();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      await getCoursewareList();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (props.addParam.isAdd) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        forms.addVisiable = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 删除
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const onRemove = async () => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      forms.messageLoading = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      try {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        await api_teacherChapterLessonCoursewareRemove({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          id: forms.selectItem.id
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        message.success('删除成功');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        getCoursewareList();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // getOpenCoursewareList();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        eventGlobal.emit('openCoursewareChanged');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        forms.preRemoveVisiable = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } catch {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      setTimeout(() => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        forms.messageLoading = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 100);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    };
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 添加课件
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const onAddCourseware = async (item: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (forms.messageLoading) return;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      forms.messageLoading = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      try {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        await api_addByOpenCourseware({ id: item.id });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        message.success('添加成功');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        getCoursewareList();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // getOpenCoursewareList();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        eventGlobal.emit('openCoursewareChanged');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } catch {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      setTimeout(() => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        forms.messageLoading = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 100);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    };
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 预览上课
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const onPreviewAttend = (id: string) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 判断是否在应用里面
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (window.matchMedia('(display-mode: standalone)').matches) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        state.application = window.matchMedia(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          '(display-mode: standalone)'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ).matches;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        forms.previewModal = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fscreen();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        forms.previewParams = {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          type: 'preview',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          courseId: id,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          instrumentId: prepareStore.getInstrumentId,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          detailId: prepareStore.getSelectKey,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          lessonCourseId: prepareStore.getBaseCourseware.id
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        };
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const { href } = router.resolve({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          path: '/attend-class',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          query: {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            type: 'preview',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            courseId: id,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            instrumentId: prepareStore.getInstrumentId,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            detailId: prepareStore.getSelectKey,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lessonCourseId: prepareStore.getBaseCourseware.id
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        window.open(href, +new Date() + '');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    };
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const onStartClass = async (
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item: any,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      classGroupId: any,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      instrumentId?: any
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (classGroupId) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 开始上课
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const res = await courseScheduleStart({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          lessonCoursewareKnowledgeDetailId: prepareStore.selectKey,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          classGroupId: classGroupId,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          useChapterLessonCoursewareId: item.id
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // instrumentId: prepareStore.getInstrumentId
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (window.matchMedia('(display-mode: standalone)').matches) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          state.application = window.matchMedia(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            '(display-mode: standalone)'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ).matches;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          forms.previewModal = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          fscreen();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          forms.previewParams = {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            type: 'class',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            classGroupId: classGroupId,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            courseId: item.id,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            instrumentId: instrumentId || route.query.instrumentId,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            detailId: prepareStore.getSelectKey,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            classId: res.data,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lessonCourseId: prepareStore.getBaseCourseware.id,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            preStudentNum: forms.preStudentNum
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          };
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const { href } = router.resolve({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            path: '/attend-class',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            query: {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              type: 'class',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              classGroupId: classGroupId,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              courseId: item.id,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              // instrumentId: prepareStore.getInstrumentId,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              instrumentId: instrumentId || route.query.instrumentId,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              detailId: prepareStore.getSelectKey,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              classId: res.data,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              lessonCourseId: prepareStore.getBaseCourseware.id,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              preStudentNum: forms.preStudentNum
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          window.open(href, +new Date() + '');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        forms.showAttendClass = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        forms.attendClassType = 'change';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        forms.attendClassItem = item;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    };
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const selectChildObj = (item: any, index: number) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const obj: any = {};
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item?.forEach((child: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (child.id === forms.wikiCategoryIdChild) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          obj.selected = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          obj.name = child.name;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return obj;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    };
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const tabInstrumentValue = computed(() => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let instrumentId: any = prepareStore.getInstrumentId
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ? prepareStore.getInstrumentId
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        : '';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      prepareStore.getFormatInstrumentList.forEach((item: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (Array.isArray(item.instruments)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          item.instruments.forEach((child: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (child.id === prepareStore.getInstrumentId) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              instrumentId = item.id + '';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return instrumentId;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return () => (
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        class={[
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          styles.coursewarePresetsContainer,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          forms.openTableShow && styles.rightLineShow
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ]}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          class={styles.presetsLeft}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          id="presetsLeftRef"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          style={{ width: `calc(${forms.leftWidth} - ${forms.rightWidth})` }}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <NTabs
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ref={subjectRef}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            defaultValue=""
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            paneClass={styles.paneTitle}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            justifyContent="start"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            paneWrapperClass={styles.paneWrapperContainer}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            value={tabInstrumentValue.value}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onUpdate:value={(val: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              console.log(val, 'item.id', prepareStore.getFormatInstrumentList);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              prepareStore.getFormatInstrumentList.forEach((item: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (item.value.toString() === val.toString()) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  prepareStore.setInstrumentId(val);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  // 保存
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  forms.instrumentId = val;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  forms.wikiCategoryIdChild = null;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              if (!val) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                prepareStore.setInstrumentId(val);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 保存
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                forms.instrumentId = val;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                forms.wikiCategoryIdChild = null;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sessionStorage.setItem(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  'prepareLessonCourseWareSubjectIsNull',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  val ? 'false' : 'true'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-slots={{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              suffix: () => (
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <NButton
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  class={styles.addBtn}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  type="primary"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  bordered={false}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  onClick={() => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    eventGlobal.emit('teacher-slideshow', true);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    emit('change', {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      status: true,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      type: 'create'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  }}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <NImage
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    class={styles.addBtnIcon}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    previewDisabled
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    src={add}></NImage>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  创建课件
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </NButton>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              )
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            {[
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              { name: '全部乐器', id: '', label: '全部乐器', value: '' },
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ...prepareStore.getFormatInstrumentList
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ].map((item: any, index: number) => (
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <NTabPane
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                name={`${item.value}`}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                tab={item.label}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                disabled={item.instruments?.length > 0}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                displayDirective="if">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                {{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  tab: () =>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    item.instruments?.length > 0 ? (
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <NPopselect
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        options={item.instruments}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        trigger="hover"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        v-model:value={forms.wikiCategoryIdChild}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        onUpdate:value={(val: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          // onSearch();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          prepareStore.setInstrumentId(val);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          // 保存
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          forms.instrumentId = val;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          if (!val) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            sessionStorage.setItem(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              'prepareLessonCourseWareSubjectIsNull',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              val ? 'false' : 'true'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        key={item.id}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        class={styles.popSelect}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <span
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          class={[
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            styles.textBtn,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            selectChildObj(item.instruments, index).selected &&
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              styles.textBtnActive
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          ]}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          {selectChildObj(item.instruments, index).label ||
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            item.label}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          <i class={styles.iconArrow}></i>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        </span>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      </NPopselect>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ) : (
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      item.label
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    )
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </NTabPane>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ))}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </NTabs>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <NSpin show={forms.loading}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <NScrollbar class={styles.coursewarePresets}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div style={{ overflow: 'hidden' }}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  class={[
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    styles.list,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    !forms.loading &&
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      forms.tableList.length <= 0 &&
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      styles.listEmpty
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  ]}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  {forms.tableList.map((item: any) => (
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <div class={[styles.itemWrap, styles.itemBlock, 'row-nav']}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <div class={styles.itemWrapBox}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <CoursewareType
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          operate
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          isEditName
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          item={item}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          onClick={() => onPreviewAttend(item.id)}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          // onEditName={() => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          //   forms.selectItem = item;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          //   forms.editTitle = item.name;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          //   forms.editTitleVisiable = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          // }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          onEdit={() => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            eventGlobal.emit('teacher-slideshow', true);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            emit('change', {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              status: true,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              type: 'update',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              groupItem: { id: item.id }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          onStartClass={() =>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            onStartClass(item, forms.classGroupId)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          onDelete={() => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            forms.selectItem = item;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            forms.preRemoveVisiable = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          // 布置作业
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          onWork={() => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            forms.workVisiable = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            forms.selectItem = item;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        />
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      </div>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    </div>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  ))}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  {!forms.loading && forms.tableList.length <= 0 && (
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <TheEmpty
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      class={styles.empty1}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      description="当前章节暂无课件,快点击右上角创建课件吧"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    />
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  )}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </div>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </div>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </NScrollbar>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </NSpin>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class={styles.presetsRight} id="presetsRightRef">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <NTooltip showArrow={false} animated={false} duration={0} delay={0}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            {{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              trigger: () => (
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  class={[
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    styles.presetsArrar,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    !forms.openTableShow && styles.presetsArrarActive
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  ]}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  onClick={() => (forms.openTableShow = !forms.openTableShow)}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <NIcon>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <path
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        d="M16.62 2.99a1.25 1.25 0 0 0-1.77 0L6.54 11.3a.996.996 0 0 0 0 1.41l8.31 8.31c.49.49 1.28.49 1.77 0s.49-1.28 0-1.77L9.38 12l7.25-7.25c.48-.48.48-1.28-.01-1.76z"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        fill="currentColor"></path>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    </svg>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  </NIcon>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </div>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ),
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              default: () => <div>{forms.openTableShow ? '收起' : '展开'}</div>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </NTooltip>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <Related
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onMore={() => (forms.showRelatedClass = true)}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onAdd={(item: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              onAddCourseware(item);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onLook={(item: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              onPreviewAttend(item.id);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          />
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {/* )} */}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <NModal
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          v-model:show={forms.showRelatedClass}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          preset="card"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          showIcon={false}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          class={['modalTitle background', styles.attendClassModal1]}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          title={'相关课件'}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          blockScroll={false}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <RelatedClass
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tableList={forms.tableList}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            instrumentList={prepareStore.getInstrumentList}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            instrumentId={prepareStore.getInstrumentId as any}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            coursewareDetailKnowledgeId={prepareStore.getSelectKey}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onClose={() => (forms.showRelatedClass = false)}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onAdd={(item: any) => onAddCourseware(item)}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onClick={(item: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              onPreviewAttend(item.id);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              forms.showRelatedClass = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          />
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </NModal>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {/* <NModal
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          v-model:show={forms.editTitleVisiable}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          preset="card"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          class={['modalTitle', styles.removeVisiable1]}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          title={'课件重命名'}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class={styles.studentRemove}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <NInput
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              placeholder="请输入课件名称"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              v-model:value={forms.editTitle}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              maxlength={15}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              onKeyup={(e: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (e.code === 'ArrowLeft' || e.code === 'ArrowRight') {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  e.stopPropagation();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            />
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <NSpace class={styles.btnGroupModal} justify="center">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <NButton round onClick={() => (forms.editTitleVisiable = false)}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                取消
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </NButton>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <NButton
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                round
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                type="primary"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                onClick={onEditTitleSubmit}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                loading={forms.editBtnLoading}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                确定
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </NButton>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </NSpace>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </NModal> */}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <NModal
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          v-model:show={forms.preRemoveVisiable}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          preset="card"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          class={['modalTitle', styles.removeVisiable1]}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          title={'删除课件'}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <TheMessageDialog
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            content={`<p style="text-align: left;">请确认是否删除【${forms.selectItem.name}】,删除后不可恢复</p>`}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cancelButtonText="取消"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            confirmButtonText="确认"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            loading={forms.messageLoading}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onClose={() => (forms.preRemoveVisiable = false)}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onConfirm={() => onRemove()}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          />
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </NModal>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <NModal
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          v-model:show={forms.addVisiable}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          preset="card"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          class={['modalTitle', styles.removeVisiable1]}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          title={'保存成功'}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <TheMessageDialog
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            content={`<p style="text-align: left;">【${props.addParam.name}】暂未设置课件作业,是否现在去设置课件作业</p>`}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cancelButtonText="稍后设置"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            confirmButtonText="立即设置"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // loading={forms.messageLoading}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onClose={() => (forms.addVisiable = false)}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onConfirm={() => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              forms.addVisiable = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              forms.workVisiable = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              forms.selectItem = {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                id: props.addParam.id,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                name: props.addParam.name
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              };
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          />
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </NModal>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {/* 应用内预览或上课 */}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <PreviewWindow
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          v-model:show={forms.previewModal}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          type="attend"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          params={forms.previewParams}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        />
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <NModal
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          v-model:show={forms.showAttendClass}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          preset="card"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          showIcon={false}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          class={['modalTitle background', styles.attendClassModal]}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          title={'选择班级'}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          blockScroll={false}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <AttendClass
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onClose={() => (forms.showAttendClass = false)}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            type={forms.attendClassType}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onPreview={(item: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              if (window.matchMedia('(display-mode: standalone)').matches) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                state.application = window.matchMedia(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  '(display-mode: standalone)'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ).matches;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                forms.previewModal = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                forms.previewParams = {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  ...item
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                };
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } else {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const { href } = router.resolve({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  path: '/attend-class',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  query: {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ...item
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                window.open(href, +new Date() + '');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onConfirm={async (item: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              onStartClass(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                forms.attendClassItem,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                item.classGroupId,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                item.instrumentId
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          />
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </NModal>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <NModal
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          v-model:show={forms.workVisiable}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          preset="card"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          class={['modalTitle background', styles.workVisiable]}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          title={
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            forms.selectItem.lessonPreTrainingId ? '编辑作业' : '创建作业'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div id="model-homework-height" class={styles.workContainer}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div class={styles.workTrain}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <Train
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                cardType="prepare"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lessonPreTraining={{
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  title: forms.selectItem.name + '-课后作业',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  chapterId: forms.selectItem.id, // 课件编号
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  id: forms.selectItem.lessonPreTrainingId // 作业编号
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                onChange={(val: any) => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  forms.workVisiable = val.status;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  getCoursewareList();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              />
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div class={styles.resourceMain}>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <ResourceMain cardType="prepare" />
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </NModal>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+});
 
			 |