import { defineComponent, onMounted, reactive, ref } from 'vue'; import styles from './index.module.less'; import { NImage, NButton, NAvatarGroup, NForm, NFormItem, NSelect, NSpace, NModal, NCascader, useMessage, NSpin } from 'naive-ui'; import headerD from './images/headerD.png'; import defultHeade from '@/components/layout/images/teacherIcon.png'; import blackBoardBg from './images/blackboard_bg.png'; import teacherMan from './images/teacher_man.png'; import teacherWoman from './images/teacher_woman.png'; import iconLession from './images/icon-lession.png'; import iconBook from './images/icon-book.png'; import iconDetail from './images/icon-detail.png'; import iconSubject from './images/icon-subject.png'; import iconTo from './images/icon-to.png'; import t1 from './images/t1.png'; import t2 from './images/t2.png'; import t3 from './images/t3.png'; import { useRouter } from 'vue-router'; import { useUserStore } from '/src/store/modules/users'; import SelectClass from './modals/selectClass'; import dayjs from 'dayjs'; import { gradeToCN, weekToCN } from '/src/utils/contants'; import { getCLassStudent, getCourseChapter } from '../classList/api'; import { useCatchStore } from '/src/store/modules/catchData'; import { useThrottleFn } from '@vueuse/core'; import { bookVersionPage, courseScheduleStart, lessonCoursewarePage, queryCourseware } from '../prepare-lessons/api'; import TheNoticeBar from '/src/components/TheNoticeBar'; import TeachGroup from './modals/teachGroup'; import { classGroupList, courseSchedulePage } from './api'; import TheEmpty from '/src/components/TheEmpty'; import { setTabsCaches } from '/src/hooks/use-async'; import HomeGuide from '/src/custom-plugins/guide-page/home-guide'; export const formatDateToDay = () => { const hours = dayjs().hour(); if (hours < 12) { return '早上好'; //如果小时数小于12则输出“早上好!” } else if (hours > 12 && hours < 18) { return '下午好'; //如果小时数大于12并且小于18,输入“下午好!” } else { return '晚上好'; //如果上面两个条件都不符合,则输出“晚上好!” } }; export default defineComponent({ name: 'home-page', setup() { const catchStore = useCatchStore(); const message = useMessage(); const router = useRouter(); const userStore = useUserStore(); const forms = reactive({ applyClassItem: {} as any, // 选择的内容 applyStatus: false, useStatus: false, studentList: [] as any, bookVersionId: null, classGroupId: null, category: null, subjectId: null, musicTagList: [] as any, loading: false, list: [] as any, unit: null, unitList: [], subjectList: [] as any, gradeList: [] as any, classLoading: false, total: 0, // 上课数量 classSelect: { currentGradeNum: null, currentClass: null, name: '' } as any }); const teachList = ref({} as any); // 学生列表 // getStdentList // 应用选择年级班级 const onApplyConfirm = async (item: any) => { try { // const { data } = await getCLassStudent({ page: 1, rows: 999, classGroupId: item.classGroupId }); const temps = data.rows || []; temps.forEach((row: any) => { forms.studentList.push({ name: row.nickname, src: row.avatar }); }); forms.applyClassItem = item; } catch { // } }; const onUseConfirm = (item: any) => { forms.classSelect = { currentGradeNum: item.currentGradeNum, currentClass: item.classGroupId, name: item.name }; getCourseSchedulePage(); }; const throttledFn = useThrottleFn(() => getLessonCourseware(), 500); const getLessonCourseware = async () => { forms.category = null; forms.unit = null; forms.category = null; forms.loading = true; try { const { data } = await lessonCoursewarePage({ bookVersionId: forms.bookVersionId, enableFlag: 1, page: 1, rows: 99, type: 'COURSEWARE' // currentGradeNum: forms.applyClassItem.currentGradeNum }); forms.list = data.rows.map((item: any) => { return { label: item.name, value: item.id }; }); } catch { // } forms.loading = false; }; const getunitList = async () => { forms.unit = null; try { if (forms.category) { const res = await getCourseChapter(forms.category); forms.unitList = res.data.lessonList.map((item: any) => { return { ...item, label: item.name, value: item.id }; }); } else { forms.unitList = []; } } catch (e) { console.log(e); } }; const getVersion = async () => { forms.unit = null; try { const { data } = await bookVersionPage({ page: 1, rows: 99, type: 'COURSEWARE' }); const temp = data.rows || []; temp.forEach((item: any) => { forms.musicTagList.push({ id: item.id, name: item.name }); }); } catch { // } }; // 获取年级班级 const getClassList = async () => { try { const { data } = await classGroupList({ removeZeroClass: true }); const cList = data || []; const gradeList: any = []; cList.forEach((item: any, index: number) => { if (index === 0) { const temp = item.classGroupList[0]; forms.classSelect = { currentGradeNum: item.currentGradeNum, currentClass: temp.id, name: temp.name }; } const classList: any = []; item.classGroupList.forEach((i: any) => { classList.push({ label: i.currentClass + '班', value: i.id, lastStudy: i.lastStudy }); }); gradeList.push({ label: gradeToCN[item.currentGradeNum], value: item.currentGradeNum, childrens: classList }); }); forms.gradeList = gradeList; } catch { // } }; const getCourseSchedulePage = async () => { forms.classLoading = true; try { const { data } = await courseSchedulePage({ classGroupId: forms.classSelect.currentClass, page: 1, rows: 6, teacherId: userStore.getUserInfo.id }); const result = data.rows || []; forms.total = data.total || 0; const dateTime: any = {}; result.forEach((item: any) => { const tempTime = dayjs(item.classDate).format('MM-DD'); if (!dateTime[tempTime]) { dateTime[tempTime] = []; } const lessonCourseware = item.lessonCoursewareJson ? JSON.parse(item.lessonCoursewareJson) : {}; dateTime[tempTime].push({ classGroup: forms.classSelect.name, teacherName: item.teacherName, conent: lessonCourseware.lessonCoursewareName + ' | ' + lessonCourseware.lessonCoursewareDetailName + ' | ' + lessonCourseware.lessonCoursewareKnowledgeDetailName, image: item.teacherAvatar }); }); teachList.value = dateTime; } catch (e: any) { // console.log(e); } forms.classLoading = false; }; onMounted(async () => { await getClassList(); await catchStore.getSubjects(); await getCourseSchedulePage(); forms.subjectList = catchStore.getSubjectList.map((item: any) => { return { label: item.name, value: item.id }; }); getVersion(); }); const formsRef = ref(); const gotoClassPage = () => { formsRef.value.validate(async (error: any) => { if (error) return; try { const { data } = await queryCourseware({ coursewareDetailKnowledgeId: forms.unit, subjectId: forms.subjectId, page: 1, rows: 99 }); if (data.rows && data.rows.length > 0) { await courseScheduleStart({ lessonCoursewareKnowledgeDetailId: forms.unit, classGroupId: forms.applyClassItem?.classGroupId }); const { href } = router.resolve({ path: '/attend-class', query: { type: 'class', classGroupId: forms.applyClassItem?.classGroupId, subjectId: forms.subjectId, detailId: forms.unit } }); window.open(href, +new Date() + ''); } else { message.error('当前章节暂无课件,请重新选择'); } } catch { // } }); }; return () => (
Hi,{userStore.getUserInfo?.nickname} {formatDateToDay()}~
{dayjs().format('MM月DD日')},{weekToCN[dayjs().day()]}
欢迎您使用酷乐秀课堂乐器数字化教学平台! 功能引导
11111
{userStore.getUserInfo.gender === 1 ? ( ) : ( )}
(forms.applyStatus = true)}> {forms.applyClassItem.name || '请选择班级'}
{forms.applyClassItem.lastStudy ? ( <> 上次课程: ) : ( '' )}
throttledFn()} />
getunitList()} />
开始上课 router.push('/prepare-lessons')}> 去备课
工具箱
这里是常用的教学辅助工具,可帮助学生集中注意力、提高演奏效率,使演奏更完整平稳。让您在课堂上完成更好的教学。

提升效率,练习好节奏

节拍器

精准调音,一劳永逸

调音器

创造时间,集中注意力

计时器

{userStore.getUserInfo.nickname}

{userStore.getUserInfo.schoolInfos && userStore.getUserInfo.schoolInfos.length > 0 && (

{userStore.getUserInfo.schoolInfos[0].name} {/* | 音乐老师 */}

)}

使用记录

{forms.classSelect.name && (
(forms.useStatus = true)}> {forms.classSelect.name}
)}
{Object.keys(teachList.value).length > 0 && (
{Object.keys(teachList.value).map(key => ( ))} {forms.total > 6 && (
{ setTabsCaches('attendclass', 'tabName', { path: '/classDetail' }); router.push({ path: '/classDetail', query: { name: forms.classSelect.name, id: forms.classSelect.currentClass } }); }}> 查看全部
)}
)} {Object.keys(teachList.value).length <= 0 && !forms.classLoading && }
{/* 添加自定义教材 */} onApplyConfirm(item)} onClose={() => (forms.applyStatus = false)} /> onUseConfirm(item)} onClose={() => (forms.useStatus = false)} />
); } });