| 
					
				 | 
			
			
				@@ -1,635 +0,0 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { defineComponent, onMounted, reactive, ref } from 'vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import styles from './index.module.less'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import icon_back from './image/icon_back.svg'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import icon_arrow from './image/icon_arrow.svg'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { Button, Popup, Tab, Tabs, Tag } from 'vant'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  api_lessonCoursewareFavoriteRemove, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  api_lessonCoursewareFavoriteSave, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  api_lessonCoursewareFavoriteage, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  api_lessonCoursewarePage, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  api_lessonCoursewareDetail, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  api_classLessonCoursewarePage, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  api_classLessonCoursewareDetail, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  api_subjectList, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  api_bookVersionPage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} from './api'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { NImage } from 'naive-ui'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { state } from '@/state'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import TheFavorite from '@/components/the-favorite'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { useRouter } from 'vue-router'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import TheBook from './component/book'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { postMessage } from '@/helpers/native-message'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import CoursewareList from '@/custom-plugins/guide-page/courseware-list'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import './jquery.min.1.7.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import './turn.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import MEmpty from '@/components/m-empty'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import deepClone from '@/helpers/deep-clone'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import book from './component/book'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { browser } from '@/helpers/utils'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import CoursewareReload from './courseware-reload'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-export const BOOK_DATA = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  grades: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // { text: '全部年级', value: '' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { text: '一年级', value: 1 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { text: '二年级', value: 2 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { text: '三年级', value: 3 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { text: '四年级', value: 4 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { text: '五年级', value: 5 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { text: '六年级', value: 6 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { text: '七年级', value: 7 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { text: '八年级', value: 8 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { text: '九年级', value: 9 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  bookTypes: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    LAST: '上册', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    NEXT: '下册' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } as { [key: string]: string } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  name: 'courseware-list', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  setup() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const router = useRouter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const popoverShow = ref(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const reloadStatus = ref(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const baseBookVerionList = ref([] as any); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const bookVersionList = ref([] as any); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 返回 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const goback = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      postMessage({ api: 'goBack' }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const coursewareStorage = localStorage.getItem('courseware-list') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ? JSON.parse(localStorage.getItem('courseware-list') as any) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      : {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const forms = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      currentGradeNum: coursewareStorage.currentGradeNum || null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      bookVersionId: coursewareStorage.bookVersionId || (null as any), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // instrumentId: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   coursewareStorage.instrumentId || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   state.user.data?.instrumentId || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   (null as any), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // subjectId: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   coursewareStorage.subjectId || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   state.user.data?.subjectId || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   (null as any), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      page: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      rows: 999, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      type: 'COURSEWARE' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // const _actions = computed(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   return BOOK_DATA.grades.map((item, index) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //     return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //       ...item, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //       color: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //         forms.currentGradeNum === index ? 'var(--van-primary-color)' : '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //       className: forms.currentGradeNum === index ? 'fontBlod' : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // const onSelect = (action: any, index: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   forms.currentGradeNum = index; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   handleChange(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const isShowGuide = ref(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const data = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      list: [] as any[], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      loading: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      favoriteList: [] as any[], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      tab: 'all', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      details: [] as any[], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      bookData: {} as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      bookLessonId: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      subjectList: [] as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      instrumentList: [] as any, // 乐器列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      showBook: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      book: {} as DOMRect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const getTanentList = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // const schoolInfos = state.user.data.schoolInfos; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // const schoolId = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //   schoolInfos && schoolInfos.length > 0 ? schoolInfos[0].id : null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // if (!schoolId) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // await api_schoolDetail({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //   id: schoolId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const { data } = await api_bookVersionPage({ type: 'COURSEWARE' }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result = data.rows || []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        baseBookVerionList.value = result.map((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            bookVersionId: item.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            bookVersionName: item.name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        bookVersionList.value = deepClone(baseBookVerionList.value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const index = baseBookVerionList.value.findIndex( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          (item: any) => item.bookVersionId == coursewareStorage.bookVersionId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 判断列表中是存在,缓存的教材数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (index < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          forms.bookVersionId = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } catch (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        console.log(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const getList = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      data.loading = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const { bookVersionId, currentGradeNum, ...more } = forms; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const res = await api_lessonCoursewarePage({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ...more, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        bookVersionId: bookVersionId == -1 ? null : bookVersionId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        currentGradeNum: currentGradeNum ? currentGradeNum : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (res?.code === 200 && Array.isArray(res?.data?.rows)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data.list = res.data.rows.map((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          item.load = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          item.key = Date.now() + item.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          return item; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      data.loading = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      setTimeout(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        isShowGuide.value = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }, 100); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const getFavoriteList = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      data.loading = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const res = await api_lessonCoursewareFavoriteage({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        clientType: 'STUDENT', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        userId: state.user?.data?.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        page: forms.page, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        rows: forms.rows, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // subjectId: forms.subjectId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        bookVersionId: forms.bookVersionId != -1 ? forms.bookVersionId : '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        currentGradeNum: forms.currentGradeNum ? forms.currentGradeNum : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (res?.code === 200 && Array.isArray(res?.data?.rows)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data.list = res.data.rows.map((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          item.name = `${item.name}`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          item.load = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          item.favoriteFlag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          item.key = Date.now() + item.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          return item; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      data.loading = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const getLessonCourseware = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      data.loading = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const res = await api_classLessonCoursewarePage({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // clientType: 'STUDENT', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // userId: state.user?.data?.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        bookVersionId: forms.bookVersionId ? forms.bookVersionId : '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        page: forms.page, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        rows: forms.rows, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // subjectId: forms.subjectId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        currentGradeNum: forms.currentGradeNum ? forms.currentGradeNum : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (res?.code === 200 && Array.isArray(res?.data?.rows)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data.list = res.data.rows.map((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          item.load = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          item.key = Date.now() + item.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          return item; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      data.loading = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // isShowGuide.value = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const getData = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (data.tab === 'all') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        getList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (data.tab === 'favorite') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        getFavoriteList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (data.tab === 'course') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        getLessonCourseware(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const contentContainerRef = ref(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const handleChange = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (data.tab === 'course') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        bookVersionList.value = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ...deepClone(baseBookVerionList.value), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            bookVersionId: -1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            bookVersionName: '自定义' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        bookVersionList.value = deepClone(baseBookVerionList.value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      getData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (contentContainerRef.value && browser().isTablet) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        contentContainerRef.value.scrollTo(0, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const getSubjectList = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const res = await api_subjectList({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          enableFlag: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          delFlag: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          page: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          rows: 999 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // console.log(res.data, ' subjectList'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data.subjectList = res.data.rows || []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } catch {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    onMounted(async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      window.addEventListener('error', (e: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        console.log(e, 'error'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // console.log(browser().isTablet, 'browser().isTablet'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      await getTanentList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      await getSubjectList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // if (forms.subjectId && data.subjectList.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   data.subjectList.forEach((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //     if (item.id == forms.subjectId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //       data.instrumentList = item.instruments || []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      getData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // 安卓的状态栏 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      postMessage({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        api: 'setStatusBarVisibility', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        content: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          isVisibility: 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const handleFavorite = async (item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (item.favoriteFlag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        await api_lessonCoursewareFavoriteSave({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          lessonCoursewareId: item.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        await api_lessonCoursewareFavoriteRemove({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          lessonCoursewareId: item.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (data.tab === 'favorite') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // getData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // item.favoriteFlag = !item.favoriteFlag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let timer: any = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const dubounce = (fn: any, delay: number = 300) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (timer) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        clearTimeout(timer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      timer = setTimeout(fn, delay); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    /** 学生端根据教材编号获取关联的单元、章节 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const getDetail = async (item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (data.tab === 'course') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const res = await api_classLessonCoursewareDetail({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          id: item.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // subjectId: forms.subjectId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (res?.code == 200 && Array.isArray(res?.data?.lessonList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          data.details = res.data.lessonList || []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          data.bookData = res.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          data.bookLessonId = item.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          console.log('🚀 ~ data.details course:', data.details); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // showConfirmDialog({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          //   title: '提示', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          //   message: '课程教材已更新,是否重新加载?' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          //   .then(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          //     // on confirm 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          //     getData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          //   }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          //   .catch(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          //     // on cancel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          //   }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          reloadStatus.value = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const res = await api_lessonCoursewareDetail({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          id: item.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // subjectId: forms.subjectId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (res?.code == 200 && Array.isArray(res?.data?.lessonList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          data.details = res.data.lessonList || []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          data.bookData = res.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          data.bookLessonId = item.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          console.log('🚀 ~ data.details:', data.details); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      handleCreateContainer(item.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      handleRender(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data.showBook = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const handleCreateContainer = (id: string) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const box = document.querySelector( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        `[data-id="${id}"]` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ) as unknown as HTMLElement; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (!box) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const rect = box.getBoundingClientRect(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      data.book = rect; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const handleRender = (fn: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      requestAnimationFrame(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        requestAnimationFrame(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          fn(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const handleOpen = async (item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      await getDetail(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return () => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        class={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          styles.container, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // styles.containerTablet, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          browser().isTablet ? styles.containerTablet : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ]}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <div class={styles.head} style={{ opacity: data.showBook ? 0 : '' }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <div class={styles.back} onClick={goback}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <img src={icon_back} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <Tabs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            class={styles.tabs} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            v-model:active={data.tab} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onChange={() => handleChange()}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <Tab title="全部教材" name="all"></Tab> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <Tab title="课程教材" name="course"></Tab> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <Tab 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              name="favorite" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              v-slots={{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                title: () => <div id="courseware-2">我的收藏</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              }}></Tab> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </Tabs> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <Button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            class={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              styles.downBtn, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              (data.tab != 'course' && forms.bookVersionId > 0) || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              (data.tab == 'course' && forms.bookVersionId) || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              forms.currentGradeNum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ? styles.activeBtn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            round 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            size="small" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onClick={() => (popoverShow.value = true)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            {...{ id: 'courseware-3' }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            筛选 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <svg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              class={[styles.icon, popoverShow.value ? styles.iconUp : '']} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              width="9px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              height="5px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              viewBox="0 0 9 5" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              version="1.1" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              xmlns="http://www.w3.org/2000/svg"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <title>三角形</title> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <g 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                id="演示用" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                stroke="none" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                stroke-width="1" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fill="currentColor" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fill-rule="evenodd"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <g 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  id="全部教材-筛选" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  transform="translate(-769.000000, -35.000000)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  fill="currentColor"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <g id="编组-3" transform="translate(696.000000, 20.000000)"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <g 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      id="筛选目录备份-2" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      transform="translate(13.000000, 7.000000)"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <path 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        d="M64.8716471,8.41294119 L68.2489659,12.1655176 C68.4336954,12.3707726 68.4170562,12.6869176 68.2118012,12.8716471 C68.1199888,12.9542782 68.0008397,13 67.8773188,13 L61.1226812,13 C60.8465388,13 60.6226812,12.7761424 60.6226812,12.5 C60.6226812,12.3764791 60.668403,12.25733 60.7510341,12.1655176 L64.1283529,8.41294119 C64.3130824,8.20768618 64.6292274,8.19104698 64.8344824,8.37577649 C64.8475136,8.38750459 64.859919,8.39990996 64.8716471,8.41294119 Z" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        id="三角形" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        transform="translate(64.500000, 10.500000) rotate(-180.000000) translate(-64.500000, -10.500000) "></path> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    </g> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </g> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                </g> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </g> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </svg> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </Button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ref={contentContainerRef} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          class={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            styles.content, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            data.list.length <= 0 && !data.loading ? styles.contentEmpty : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ]}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            class={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              styles.wrap, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              data.list.length <= 0 && !data.loading ? styles.emtpyWrap : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ]}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            {data.list.map((item, index) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  class={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    styles.wrapItem, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    data.bookData.id === item.id && data.showBook 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      ? styles.wrapItemHide 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  key={item.key} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  onClick={() => handleOpen(item)}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  {/* courseware- */} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <div class={styles.item}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <NImage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      data-id={item.id} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      {...{ id: index == 0 ? 'courseware-0' : '' }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      class={[styles.cover, item.load ? styles.loaded : '']} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      objectFit="cover" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      src={item.coverImg} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      onLoad={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        item.load = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <div class={styles.name}>{item.name}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  {/* 课程教材不需要收藏 */} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  {!data.loading && data.tab !== 'course' && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      id={index === 0 ? 'courseware-1' : ''} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      class={styles.favoriteBtn} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      onClick={(e: Event) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        e.stopPropagation(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        item.favoriteFlag = !item.favoriteFlag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        dubounce(() => handleFavorite(item)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <TheFavorite isFavorite={item.favoriteFlag} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            })} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            {data.list.length <= 0 && !data.loading && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <MEmpty image="list" description="暂无数据" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <TheBook 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          show={data.showBook} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          bookData={data.bookData} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          bookLessonId={data.bookLessonId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // subjectId={forms.subjectId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          tab={data.tab} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          rect={data.book} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          onClose={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            data.showBook = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          onConfirm={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            getData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        {isShowGuide.value ? <CoursewareList></CoursewareList> : null} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <Popup v-model:show={popoverShow.value} class={styles.popupContainer}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <div class={styles.popoverContainer}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class={styles.searchList}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              {bookVersionList.value.length > 0 && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <div class={styles.popoverTitle}>教材版本</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <div class={[styles.popupList, styles.versionList]}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    {bookVersionList.value.map((item: any) => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <Tag 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        plain={forms.bookVersionId == item.bookVersionId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        round 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        onClick={() => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          (forms.bookVersionId = item.bookVersionId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {item.bookVersionName} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      </Tag> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ))} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                </> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class={styles.popoverTitle}>选择年级</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class={[styles.popupList, styles.versionList]}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                {BOOK_DATA.grades.map((item: any) => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <Tag 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    plain={forms.currentGradeNum === item.value} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    round 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    onClick={() => (forms.currentGradeNum = item.value)}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    {item.text} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </Tag> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ))} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              {/* <div class={styles.popoverTitle}>选择声部</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div class={[styles.popupList, styles.versionList]}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                {data.subjectList.map((item: any) => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <span 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // plain={forms.subjectId == item.id} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    class={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      styles.subjectItem, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      forms.subjectId == item.id && styles.active, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      item.instruments?.length > 0 && styles.arrow 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    onClick={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      forms.subjectId = item.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      data.instrumentList = item.instruments || []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      if (data.instrumentList.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        forms.instrumentId = data.instrumentList[0].id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    {item.name} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ))} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              {data.instrumentList.length > 0 && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <div class={styles.popoverTitle}>选择乐器</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <div class={[styles.popupList, styles.versionList]}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    {data.instrumentList.map((item: any) => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <Tag 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        plain={forms.instrumentId == item.id} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        round 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        onClick={() => (forms.instrumentId = item.id)}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {item.name} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      </Tag> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ))} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                </> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              )}*/} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class={styles.btnGroup}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <Button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                round 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                onClick={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  forms.bookVersionId = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  forms.currentGradeNum = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  // forms.subjectId = state.user.data?.subjectId || null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  // forms.instrumentId = state.user.data?.instrumentId || null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  // if (forms.subjectId && data.subjectList.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  //   data.subjectList.forEach((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  //     if (item.id == forms.subjectId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  //       data.instrumentList = item.instruments || []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  //   }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                重置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </Button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <Button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                round 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                class={styles.btnSure} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                onClick={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  // 保存缓存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  localStorage.setItem( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'courseware-list', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    JSON.stringify({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      bookVersionId: forms.bookVersionId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      currentGradeNum: forms.currentGradeNum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      // subjectId: forms.subjectId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      // instrumentId: forms.instrumentId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  getData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  popoverShow.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                确认 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </Button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </Popup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        {reloadStatus.value && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <CoursewareReload 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onClose={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              reloadStatus.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onConfirm={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              getData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }}></CoursewareReload> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 |