import { defineComponent, onMounted, reactive, ref } from 'vue'; import styles from './index.module.less'; import { NImage, NButton, NPopselect, NModal, useMessage, NSpin, NSelect } 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, getGradeLevelList, getGradeYearList } 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 { iframeDislableKeyboard, 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 { useResizeObserver } from '@vueuse/core'; // 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 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, // 上课数量 // 上次上课的数据 lastClassSelect: { currentClass: null, name: '', upgradeFlag: false, // 是否为历史班 gradeYear: null as any, gradeLevel: null as any }, classSelect: { currentGradeNum: null, currentClass: null, name: '', upgradeFlag: false, // 是否为历史班 gradeLevel: null as any, gradeYear: null } as any, popSelectOptions: [] as any, popSelectYearList: [] as any, popSelectLevelList: [] as any, showGuide: false, showPreview: false, itemPreview: {} as any, homeLeftHeight: 'auto' }); const teachList = ref({} as any); // 获取年级班级 const getClassList = async () => { try { const { data } = await classGroupList({ gradeLevel: forms.classSelect.gradeLevel, gradeYear: forms.classSelect.gradeYear }); const cList = data || []; const gradeList: any = []; const popSelectOptions: any = []; // getLastClassRecode() cList.forEach((item: any, index: number) => { // 判断是否已经有班级了 if (index === 0) { if (forms.lastClassSelect.currentClass) { forms.classSelect.currentClass = forms.lastClassSelect.currentClass; forms.classSelect.name = forms.lastClassSelect.name; forms.classSelect.upgradeFlag = forms.lastClassSelect.upgradeFlag; } else { const temp = item.classGroupList[0]; forms.classSelect.currentGradeNum = item.currentGradeNum; forms.classSelect.currentClass = temp.id; forms.classSelect.name = temp.name; } } 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]) { const tempRow = data.rows[0]; // forms.lastClassSelect.currentClass = tempRow.classGroupId; // forms.lastClassSelect.name = tempRow.classGroupName; forms.lastClassSelect = { currentClass: tempRow.classGroupId, name: tempRow.classGroupName, upgradeFlag: tempRow.upgradeFlag, gradeYear: tempRow.gradeYear + '', gradeLevel: tempRow.gradeLevel + '' }; } }; // 获取学年 const getYearList = async () => { try { const { data } = await getGradeYearList(); const temp = data || []; temp.forEach((i: any) => { i.name = i.name + '学年'; }); forms.popSelectYearList = temp || []; if (temp.length > 0) { if (forms.lastClassSelect.gradeYear) { forms.classSelect.gradeYear = forms.lastClassSelect.gradeYear; } else { forms.classSelect.gradeYear = temp[0].id; } } } catch (e: any) { // } }; // 获取学级 const getLevelList = async () => { try { const { data } = await getGradeLevelList(); const temp = data || []; temp.forEach((i: any) => { i.name = i.name + '级'; }); temp.unshift({ id: '', name: '全部学级' }); forms.popSelectLevelList = temp || []; if (temp.length > 0) { if (forms.lastClassSelect.gradeLevel) { forms.classSelect.gradeLevel = forms.lastClassSelect.gradeLevel + ''; } else { forms.classSelect.gradeLevel = temp[0].id; } } } catch { // } }; const getCourseSchedulePage = async () => { forms.classLoading = true; try { const { data } = await courseSchedulePage({ classGroupId: forms.classSelect.currentClass, gradeLevel: forms.classSelect.gradeLevel, gradeYear: forms.classSelect.gradeYear, 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, subjectName: item.subjectName }); }); teachList.value = dateTime; } catch (e: any) { // console.log(e); } forms.classLoading = false; }; onMounted(async () => { useResizeObserver( document.querySelector('#homeInfoLeft-home') as any, (entries: any) => { const entry = entries[0]; const { height } = entry.contentRect; forms.homeLeftHeight = height + 'px'; } ); forms.classLoading = true; await getLastClassRecode(); await getYearList(); await getLevelList(); await getClassList(); // await catchStore.getSubjects(); await getCourseSchedulePage(); if (!userStore.getUserInfo.account.updatePasswordFlag) { showUpdatePassword.value = true; } else { forms.showGuide = true; } forms.classLoading = false; }); 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.gradeYear = val; forms.lastClassSelect.currentClass = null; forms.classSelect.currentClass = null; await getClassList(); await getCourseSchedulePage(); }}> { forms.classSelect.gradeLevel = val; forms.lastClassSelect.currentClass = null; forms.classSelect.currentClass = null; await getClassList(); await getCourseSchedulePage(); }}> { forms.popSelectOptions.forEach((item: any) => { if (item.value === val) { forms.classSelect.currentGradeNum = item.currentGradeNum; forms.classSelect.currentClass = item.value; forms.classSelect.name = item.label; forms.classSelect.upgradeFlag = item.upgradeFlag; getCourseSchedulePage(); } }); }}>
{Object.keys(teachList.value).length > 0 && (
{Object.keys(teachList.value).map(key => ( ))}
)} {Object.keys(teachList.value).length <= 0 && !forms.classLoading && }
{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, gradeYear: forms.classSelect.gradeYear, upgradeFlag: forms.classSelect.upgradeFlag ? 1 : 0 // 是否为历史班 } }); }}> 查看全部
)}
{ 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 } }); }} />
); } });