import { defineComponent, onMounted, reactive, ref } from 'vue'; import styles from './index.module.less'; import { NImage, NButton, NPopselect, NModal, 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 homeText1 from './images/home/home-text-1.png'; import homeText2 from './images/home/home-text-2.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 { useCatchStore } from '/src/store/modules/catchData'; import TeachGroup from './modals/teachGroup'; import { classGroupList, courseSchedulePage } from './api'; import TheEmpty from '/src/components/TheEmpty'; import HomeGuide from '/src/custom-plugins/guide-page/home-guide'; import TimerMeter from '/src/components/timerMeter'; import { vaildUrl } from '/src/utils/urlUtils'; import { px2vw } from '/src/utils'; import PlaceholderTone from '@/components/layout/modals/placeholderTone'; import PreviewWindow from '../preview-window'; import UpdatePassword from '/src/components/layout/modals/update-password'; import AttendClass from '../prepare-lessons/model/attend-class'; import { state } from '/src/state'; 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 showUpdatePassword = ref(false); const showModalBeat = ref(false); const showModalTone = ref(false); const showModalTime = ref(false); const forms = reactive({ showAttendClass: 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, popSelectOptions: [] as any, showGuide: false, showPreview: false, itemPreview: {} as any }); const teachList = ref({} as any); // 学生列表 // getStdentList const onUseConfirm = (item: any) => { forms.classSelect = { currentGradeNum: item.currentGradeNum, currentClass: item.classGroupId, name: item.name }; getCourseSchedulePage(); }; // 获取年级班级 const getClassList = async () => { try { const { data } = await classGroupList({ removeZeroClass: true }); const cList = data || []; const gradeList: any = []; const popSelectOptions: any = []; // getLastClassRecode() cList.forEach((item: any, index: number) => { // if (index === 0) { // const temp = item.classGroupList[0]; // if(forms.classSelect.currentClass){ // return // }else{ // forms.classSelect = { // currentGradeNum: item.currentGradeNum, // currentClass: temp.id, // name: temp.name // }; // console.log(forms.classSelect.currentClass,'getClassList') // } // } const classList: any = []; item.classGroupList.forEach((i: any) => { classList.push({ label: i.currentClass + '班', value: i.id, lastStudy: i.lastStudy }); popSelectOptions.push({ label: i.name, value: i.id, currentGradeNum: item.currentGradeNum, lastStudy: i.lastStudy }); }); gradeList.push({ label: gradeToCN[item.currentGradeNum], value: item.currentGradeNum, childrens: classList }); }); forms.popSelectOptions = popSelectOptions; forms.gradeList = gradeList; } catch { // } }; const getLastClassRecode = async ()=>{ const { data } = await courseSchedulePage({ page: 1, rows: 1, teacherId: userStore.getUserInfo.id }); if(data.rows.length >0 && data.rows[0]){ forms.classSelect.currentClass = data.rows[0].classGroupId; forms.classSelect.name = data.rows[0].classGroupName; } } const getCourseSchedulePage = async () => { forms.classLoading = true; try { const { data } = await courseSchedulePage({ classGroupId: forms.classSelect.currentClass, page: 1, rows: 4, 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 getLastClassRecode() await catchStore.getSubjects(); await getCourseSchedulePage(); forms.subjectList = catchStore.getSubjectList.map((item: any) => { return { label: item.name, value: item.id }; }); if (!userStore.getUserInfo.account.updatePasswordFlag) { showUpdatePassword.value = true; } else { forms.showGuide = true; } }); // 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 // }); // if (window.matchMedia('(display-mode: standalone)').matches) { // forms.showPreview = true; // forms.itemPreview = { // type: 'class', // classGroupId: forms.applyClassItem?.classGroupId, // subjectId: forms.subjectId, // detailId: forms.unit // }; // globalState.application = window.matchMedia( // '(display-mode: standalone)' // ).matches; // // 加全屏 // fscreen(); // } else { // 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 { // // // } // }); // }; const clearStorng = () => { localStorage.removeItem('teacher-guideInfo'); forms.showGuide = false; setTimeout(() => { forms.showGuide = true; }, 500); }; return () => (
Hi,{userStore.getUserInfo?.nickname} {formatDateToDay()}~
{userStore.getUserInfo.gender === 1 ? ( ) : ( )}

可根据声部进行备课,更好的规划教学

{ // 备课 router.push({ path: '/prepare-lessons' }); }}>

点击这里,选择班级快速进入备课区域

{ forms.showAttendClass = true; }}>
工具箱
这里是常用的教学辅助工具,可帮助学生集中注意力、提高演奏效率,使演奏更完整平稳。让您在课堂上完成更好的教学。
{/*

提升效率,练习好节奏

*/} { showModalBeat.value = true; }}> 节拍器
{/*

精准调音,一劳永逸

*/} { showModalTone.value = true; }}> 调音器
{/*

创造时间,集中注意力

*/} { showModalTime.value = true; }}> 计时器
router.push('/setting')}>

{userStore.getUserInfo.nickname}

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

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

)}

上课记录

{forms.classSelect.name && ( { forms.popSelectOptions.forEach((item: any) => { if (item.value === val) { forms.classSelect = { currentGradeNum: item.currentGradeNum, currentClass: item.value, name: item.label }; getCourseSchedulePage(); } }); }}>
(forms.useStatus = true)} > {forms.classSelect.name}
)}
{Object.keys(teachList.value).length > 0 && (
{Object.keys(teachList.value).map(key => ( ))} {forms.total > 4 && (
{ // setTabsCaches('attendclass', 'tabName', { // path: '/classDetail' // }); sessionStorage.setItem( 'classDetailTabs', 'attendclass' ); router.push({ path: '/classDetail', query: { name: forms.classSelect.name, id: forms.classSelect.currentClass } }); }}> 查看全部
)}
)} {Object.keys(teachList.value).length <= 0 && !forms.classLoading && }
onUseConfirm(item)} onClose={() => (forms.useStatus = false)} />
{ showModalTone.value = false; }}>
{/* 弹窗查看 */} {forms.showGuide ? : null} { // 密码更新成功 showUpdatePassword.value = true; forms.showGuide = true; userStore.logout().then(() => { // 移除标签页 router .replace({ name: 'login' }) .finally(() => location.reload()); }); }} /> (forms.showAttendClass = false)} type="change" onConfirm={(item: any) => { router.push({ path: '/prepare-lessons', query: { ...item } }); }} />
); } });