{"version":3,"file":"js/index.68cc757b.js","mappings":"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,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,YAAYA,GAAW,KAC94G,C,eCHAtB,EAAoBwB,SAAW,SAASF,GAEvC,MAAO,QAAsB,MAAZA,EAAkB,eAAiBA,GAAW,IAAM,CAAC,GAAK,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,YAAYA,GAAW,MAClgG,C,eCJAtB,EAAoB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AAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,EAAE,KAAO,E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","sources":["webpack://crazyrope-shs/./src/App.vue?c2ce","webpack://crazyrope-shs/src/App.vue","webpack://crazyrope-shs/./src/App.vue?c338","webpack://crazyrope-shs/./src/App.vue","webpack://crazyrope-shs/./src/main.ts","webpack://crazyrope-shs/./src/models/role.ts","webpack://crazyrope-shs/./src/router/RAutumn2022.ts","webpack://crazyrope-shs/./src/router/RCompetitionRegion.ts","webpack://crazyrope-shs/./src/router/RSummer2022.ts","webpack://crazyrope-shs/./src/router/RCustomGuangdong.ts","webpack://crazyrope-shs/./src/router/RCustomCompetition.ts","webpack://crazyrope-shs/./src/router/RCustom.ts","webpack://crazyrope-shs/./src/router/RHomeOrganization.ts","webpack://crazyrope-shs/./src/router/RCompetitionRegionJudge.ts","webpack://crazyrope-shs/./src/router/RCompetitionRegionOrganization.ts","webpack://crazyrope-shs/./src/router/RVideoCompetitionRegionOrganization.ts","webpack://crazyrope-shs/./src/router/RCompetitionOrganization.ts","webpack://crazyrope-shs/./src/router/ROrganization.ts","webpack://crazyrope-shs/./src/router/RLongBreak.ts","webpack://crazyrope-shs/./src/router/RAuth.ts","webpack://crazyrope-shs/./src/router/RHome.ts","webpack://crazyrope-shs/./src/router/RPlan.ts","webpack://crazyrope-shs/./src/router/RExamRecordStandard.ts","webpack://crazyrope-shs/./src/router/RExam.ts","webpack://crazyrope-shs/./src/router/RUser.ts","webpack://crazyrope-shs/./src/router/RSchool.ts","webpack://crazyrope-shs/./src/router/RSystem.ts","webpack://crazyrope-shs/./src/router/RActivity.ts","webpack://crazyrope-shs/./src/router/RResource.ts","webpack://crazyrope-shs/./src/router/RHomeworkTemplate.ts","webpack://crazyrope-shs/./src/router/RVacationHomework.ts","webpack://crazyrope-shs/./src/router/RHomework.ts","webpack://crazyrope-shs/./src/router/RTeachSource.ts","webpack://crazyrope-shs/./src/router/RWorkbench.ts","webpack://crazyrope-shs/./src/router/RCourseLive.ts","webpack://crazyrope-shs/./src/router/RVideoCompetitionRegion.ts","webpack://crazyrope-shs/./src/router/RCompetitionManagement.ts","webpack://crazyrope-shs/./src/router/RCompetitionOnlineGames.ts","webpack://crazyrope-shs/./src/router/RSportsFestival2022.ts","webpack://crazyrope-shs/./src/router/RCompetition.ts","webpack://crazyrope-shs/./src/router/RNoticeCenter.ts","webpack://crazyrope-shs/./src/router/RDigitalSports.ts","webpack://crazyrope-shs/./src/router/RProcessEvaluation.ts","webpack://crazyrope-shs/./src/router/RBroadcastGymnastics.ts","webpack://crazyrope-shs/./src/router/RExercisePrescription.ts","webpack://crazyrope-shs/./src/router/RIntelligentClassroom.ts","webpack://crazyrope-shs/./src/router/RDataBoard.ts","webpack://crazyrope-shs/./src/router/RWinter2023.ts","webpack://crazyrope-shs/./src/views/special-skill/PracticeClazzDetail.vue?9fb9","webpack://crazyrope-shs/./src/views/special-skill/components/TrainingOverviewInfo.vue?4809","webpack://crazyrope-shs/src/views/special-skill/components/TrainingOverviewInfo.vue","webpack://crazyrope-shs/./src/views/special-skill/components/TrainingOverviewInfo.vue?0022","webpack://crazyrope-shs/./src/views/special-skill/components/TrainingOverviewInfo.vue","webpack://crazyrope-shs/./src/views/special-skill/components/TrainingClazzStaticInfo.vue?568f","webpack://crazyrope-shs/src/views/special-skill/components/TrainingClazzStaticInfo.vue","webpack://crazyrope-shs/./src/views/special-skill/components/TrainingClazzStaticInfo.vue?f804","webpack://crazyrope-shs/./src/views/special-skill/components/TrainingClazzStaticInfo.vue","webpack://crazyrope-shs/src/views/special-skill/PracticeClazzDetail.vue","webpack://crazyrope-shs/./src/views/special-skill/PracticeClazzDetail.vue?5f9b","webpack://crazyrope-shs/./src/views/special-skill/PracticeClazzDetail.vue","webpack://crazyrope-shs/./src/views/special-skill/PracticeStudentList.vue?9dab","webpack://crazyrope-shs/src/views/special-skill/PracticeStudentList.vue","webpack://crazyrope-shs/./src/views/special-skill/PracticeStudentList.vue?f0e7","webpack://crazyrope-shs/./src/views/special-skill/PracticeStudentList.vue","webpack://crazyrope-shs/./src/views/special-skill/PracticeStudentDetail.vue?7b3e","webpack://crazyrope-shs/./src/views/special-skill/components/PersonalDrillRecordCard.vue?a99a","webpack://crazyrope-shs/src/views/special-skill/components/PersonalDrillRecordCard.vue","webpack://crazyrope-shs/./src/views/special-skill/components/PersonalDrillRecordCard.vue?6bc0","webpack://crazyrope-shs/./src/views/special-skill/components/PersonalDrillRecordCard.vue","webpack://crazyrope-shs/./src/views/special-skill/components/PersonalExamRecordCard.vue?e7d3","webpack://crazyrope-shs/src/views/special-skill/components/PersonalExamRecordCard.vue","webpack://crazyrope-shs/./src/views/special-skill/components/PersonalExamRecordCard.vue?90d8","webpack://crazyrope-shs/./src/views/special-skill/components/PersonalExamRecordCard.vue","webpack://crazyrope-shs/src/views/special-skill/PracticeStudentDetail.vue","webpack://crazyrope-shs/./src/views/special-skill/PracticeStudentDetail.vue?b625","webpack://crazyrope-shs/./src/views/special-skill/PracticeStudentDetail.vue","webpack://crazyrope-shs/./src/router/RSpecialSkill.ts","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeRepo.vue?30f9","webpack://crazyrope-shs/src/views/pe-knowledge/KnowledgeRepo.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeRepo.vue?8056","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeRepo.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeExamDetail.vue?1fc3","webpack://crazyrope-shs/./src/views/pe-knowledge/components/QuestionDetailContent.vue?91c0","webpack://crazyrope-shs/./src/views/pe-knowledge/components/QuestionInfo.vue?252e","webpack://crazyrope-shs/src/views/pe-knowledge/components/QuestionInfo.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/components/QuestionInfo.vue?d1d7","webpack://crazyrope-shs/./src/views/pe-knowledge/components/QuestionInfo.vue","webpack://crazyrope-shs/src/views/pe-knowledge/components/QuestionDetailContent.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/components/QuestionDetailContent.vue?63f5","webpack://crazyrope-shs/./src/views/pe-knowledge/components/QuestionDetailContent.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/components/TypeSelectPopup.vue?209a","webpack://crazyrope-shs/src/views/pe-knowledge/components/TypeSelectPopup.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/components/TypeSelectPopup.vue?d620","webpack://crazyrope-shs/./src/views/pe-knowledge/components/TypeSelectPopup.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/components/AssignExamPopup.vue?5096","webpack://crazyrope-shs/src/views/pe-knowledge/components/AssignExamPopup.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/components/AssignExamPopup.vue?68e0","webpack://crazyrope-shs/./src/views/pe-knowledge/components/AssignExamPopup.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/components/AssignPracticePopup.vue?d8cb","webpack://crazyrope-shs/src/views/pe-knowledge/components/AssignPracticePopup.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/components/AssignPracticePopup.vue?6f48","webpack://crazyrope-shs/./src/views/pe-knowledge/components/AssignPracticePopup.vue","webpack://crazyrope-shs/src/views/pe-knowledge/KnowledgeExamDetail.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeExamDetail.vue?2715","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeExamDetail.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeExamList.vue?f730","webpack://crazyrope-shs/./src/views/pe-knowledge/components/ExamCard.vue?a931","webpack://crazyrope-shs/src/views/pe-knowledge/components/ExamCard.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/components/ExamCard.vue?0e81","webpack://crazyrope-shs/./src/views/pe-knowledge/components/ExamCard.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/components/UpdateNamePopup.vue?c7da","webpack://crazyrope-shs/src/views/pe-knowledge/components/UpdateNamePopup.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/components/UpdateNamePopup.vue?a895","webpack://crazyrope-shs/./src/views/pe-knowledge/components/UpdateNamePopup.vue","webpack://crazyrope-shs/src/views/pe-knowledge/KnowledgeExamList.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeExamList.vue?dded","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeExamList.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgePracticeList.vue?3b64","webpack://crazyrope-shs/./src/views/pe-knowledge/components/PracticeCard.vue?ba2e","webpack://crazyrope-shs/src/views/pe-knowledge/components/PracticeCard.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/components/PracticeCard.vue?e723","webpack://crazyrope-shs/./src/views/pe-knowledge/components/PracticeCard.vue","webpack://crazyrope-shs/src/views/pe-knowledge/KnowledgePracticeList.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgePracticeList.vue?310f","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgePracticeList.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeExamClazzDetail.vue?df6f","webpack://crazyrope-shs/./src/views/pe-knowledge/components/ExamPosterBase.vue?1cff","webpack://crazyrope-shs/src/views/pe-knowledge/components/ExamPosterBase.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/components/ExamPosterBase.vue?cc1d","webpack://crazyrope-shs/./src/views/pe-knowledge/components/ExamPosterBase.vue","webpack://crazyrope-shs/src/views/pe-knowledge/KnowledgeExamClazzDetail.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeExamClazzDetail.vue?2e7a","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeExamClazzDetail.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeExamStudentDetail.vue?4a30","webpack://crazyrope-shs/src/views/pe-knowledge/KnowledgeExamStudentDetail.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeExamStudentDetail.vue?7283","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeExamStudentDetail.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeExamResultForStudent.vue?eb2b","webpack://crazyrope-shs/./src/views/pe-knowledge/components/StudentQuestionInfo.vue?123f","webpack://crazyrope-shs/src/views/pe-knowledge/components/StudentQuestionInfo.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/components/StudentQuestionInfo.vue?7cae","webpack://crazyrope-shs/./src/views/pe-knowledge/components/StudentQuestionInfo.vue","webpack://crazyrope-shs/src/views/pe-knowledge/KnowledgeExamResultForStudent.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeExamResultForStudent.vue?7825","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgeExamResultForStudent.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgePracticeClazzDetail.vue?5232","webpack://crazyrope-shs/src/views/pe-knowledge/KnowledgePracticeClazzDetail.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgePracticeClazzDetail.vue?9b1b","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgePracticeClazzDetail.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgePracticeStudentDetail.vue?0562","webpack://crazyrope-shs/src/views/pe-knowledge/KnowledgePracticeStudentDetail.vue","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgePracticeStudentDetail.vue?6be3","webpack://crazyrope-shs/./src/views/pe-knowledge/KnowledgePracticeStudentDetail.vue","webpack://crazyrope-shs/./src/router/RPEKnowledge.ts","webpack://crazyrope-shs/./src/router/RWorkContest.ts","webpack://crazyrope-shs/./src/router/base.ts","webpack://crazyrope-shs/./src/router/helper.ts","webpack://crazyrope-shs/./src/router/Service.ts","webpack://crazyrope-shs/./src/router/index.ts","webpack://crazyrope-shs/./src/services/LoginService.ts","webpack://crazyrope-shs/../kuaidong-api/src/AClazz.ts","webpack://crazyrope-shs/../kuaidong-api/src/ACompetition.ts","webpack://crazyrope-shs/../kuaidong-api/src/AGlobalConfig.ts","webpack://crazyrope-shs/../kuaidong-api/src/AHomework.ts","webpack://crazyrope-shs/../kuaidong-api/src/ALogin.ts","webpack://crazyrope-shs/../kuaidong-lib/src/AdUtil.ts","webpack://crazyrope-shs/../kuaidong-api/src/ATeacher.ts","webpack://crazyrope-shs/../kuaidong-api/src/AUser.ts","webpack://crazyrope-shs/../kuaidong-api/src/AWinter2023.ts","webpack://crazyrope-shs/../kuaidong-api/src/ALog.ts","webpack://crazyrope-shs/../kuaidong-component/src/base.ts","webpack://crazyrope-shs/../kuaidong-lib/src/JSBridgeUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/AppJumpXYUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/AppJumpUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/AppUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/AppVersion.ts","webpack://crazyrope-shs/../kuaidong-lib/src/ArrayUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/BrowserUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/CanvasPosterUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/DateUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/DecoratorUtils.ts","webpack://crazyrope-shs/../kuaidong-lib/src/EnvUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/EventEmitter.ts","webpack://crazyrope-shs/../kuaidong-lib/src/HtmlUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/HttpUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/LogUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/ObjectUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/RouterUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/StorageUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/StringUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/UIUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/UnitUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/VueUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/WechatUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/WrapperUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/biz/DrillUtil.ts","webpack://crazyrope-shs/../kuaidong-lib/src/biz/SchoolUtil.ts","webpack://crazyrope-shs/../kuaidong-model/src/clazz.ts","webpack://crazyrope-shs/../kuaidong-model/src/competition.ts","webpack://crazyrope-shs/../kuaidong-model/src/courseLive.ts","webpack://crazyrope-shs/../kuaidong-model/src/examRecordStandard.ts","webpack://crazyrope-shs/../kuaidong-model/src/globalConfig.ts","webpack://crazyrope-shs/../kuaidong-model/src/homeworkStats.ts","webpack://crazyrope-shs/../kuaidong-model/src/login.ts","webpack://crazyrope-shs/../kuaidong-model/src/school.ts","webpack://crazyrope-shs/../kuaidong-model/src/status.ts","webpack://crazyrope-shs/../kuaidong-model/src/vacationHomework.ts","webpack://crazyrope-shs/../kuaidong-model/src/winter2023.ts","webpack://crazyrope-shs/../kuaidong-service/src/BaseService.ts","webpack://crazyrope-shs/../kuaidong-service/src/ClassService.ts","webpack://crazyrope-shs/../kuaidong-service/src/CourseLiveService.ts","webpack://crazyrope-shs/../kuaidong-service/src/DownloadService.ts","webpack://crazyrope-shs/../kuaidong-service/src/DrillReportService.ts","webpack://crazyrope-shs/../kuaidong-service/src/DrillService.ts","webpack://crazyrope-shs/../kuaidong-service/src/FileExportService.ts","webpack://crazyrope-shs/../kuaidong-service/src/FormService.ts","webpack://crazyrope-shs/../kuaidong-service/src/LoginTeacher.ts","webpack://crazyrope-shs/../kuaidong-service/src/PermissionService.ts","webpack://crazyrope-shs/../kuaidong-service/src/TeacherService.ts","webpack://crazyrope-shs/../kuaidong-service/src/TitleBar.ts","webpack://crazyrope-shs/../kuaidong-store/src/competition.ts","webpack://crazyrope-shs/../kuaidong-store/src/global-config.ts","webpack://crazyrope-shs/../kuaidong-store/src/login.ts","webpack://crazyrope-shs/../kuaidong-store/src/menu-role.ts","webpack://crazyrope-shs/../kuaidong-store/src/store.ts","webpack://crazyrope-shs/../kuaidong-store/src/teacher.ts","webpack://crazyrope-shs/../kuaidong-ui/src/components/KdMessageBox/MessageBox.vue","webpack://crazyrope-shs/../kuaidong-ui/src/components/KdMessageBox/MessageBox.vue?0549","webpack://crazyrope-shs/../kuaidong-ui/src/components/KdMessageBox/MessageBox.vue?dd0f","webpack://crazyrope-shs/../kuaidong-ui/src/components/KdMessageBox/Index.ts","webpack://crazyrope-shs/../kuaidong-ui/src/components/base.ts","webpack://crazyrope-shs/./src/components/CompetitionOfDrillTypeRemoveDialog.vue?44cc","webpack://crazyrope-shs/src/components/CompetitionOfDrillTypeRemoveDialog.vue","webpack://crazyrope-shs/./src/components/CompetitionOfDrillTypeRemoveDialog.vue?b77a","webpack://crazyrope-shs/./src/components/CompetitionOfDrillTypeRemoveDialog.vue","webpack://crazyrope-shs/./src/components/CsIcon.vue?50df","webpack://crazyrope-shs/src/components/CsIcon.vue","webpack://crazyrope-shs/./src/components/CsIcon.vue?2170","webpack://crazyrope-shs/./src/components/CsIcon.vue","webpack://crazyrope-shs/./src/components/CsIconButton.vue?a524","webpack://crazyrope-shs/src/components/CsIconButton.vue","webpack://crazyrope-shs/./src/components/CsIconButton.vue?db94","webpack://crazyrope-shs/./src/components/CsIconButton.vue","webpack://crazyrope-shs/./src/components/CsSelect.vue?0ad8","webpack://crazyrope-shs/src/components/CsSelect.vue","webpack://crazyrope-shs/./src/components/CsSelect.vue?8624","webpack://crazyrope-shs/./src/components/CsSelect.vue","webpack://crazyrope-shs/./src/components/DrillReport.vue?8f94","webpack://crazyrope-shs/src/components/DrillReport.vue","webpack://crazyrope-shs/./src/components/DrillReport.vue?7ee3","webpack://crazyrope-shs/./src/components/DrillReport.vue","webpack://crazyrope-shs/./src/components/ListPage.vue?0598","webpack://crazyrope-shs/src/components/ListPage.vue","webpack://crazyrope-shs/./src/components/ListPage.vue?123e","webpack://crazyrope-shs/./src/components/ListPage.vue","webpack://crazyrope-shs/./src/components/StudentManagement/DropdownMenu.vue?e74e","webpack://crazyrope-shs/src/components/StudentManagement/DropdownMenu.vue","webpack://crazyrope-shs/./src/components/StudentManagement/DropdownMenu.vue?6aa3","webpack://crazyrope-shs/./src/components/StudentManagement/DropdownMenu.vue","webpack://crazyrope-shs/./src/components/TitleBar.vue?d4c2","webpack://crazyrope-shs/src/components/TitleBar.vue","webpack://crazyrope-shs/./src/components/TitleBar.vue?ef72","webpack://crazyrope-shs/./src/components/TitleBar.vue","webpack://crazyrope-shs/./src/views/special-skill/ProgressTag.vue?af33","webpack://crazyrope-shs/src/views/special-skill/ProgressTag.vue","webpack://crazyrope-shs/./src/views/special-skill/ProgressTag.vue?eacb","webpack://crazyrope-shs/./src/views/special-skill/ProgressTag.vue","webpack://crazyrope-shs/../kuaidong-component/src/HtmlPoster.vue","webpack://crazyrope-shs/../kuaidong-component/src/HtmlPoster.vue?2359","webpack://crazyrope-shs/../kuaidong-component/src/HtmlPoster.vue?8f56","webpack://crazyrope-shs/../kuaidong-component/src/PosterFooter.vue","webpack://crazyrope-shs/../kuaidong-component/src/PosterFooterTzy.vue","webpack://crazyrope-shs/../kuaidong-component/src/PosterFooterTzy.vue?6574","webpack://crazyrope-shs/../kuaidong-component/src/PosterFooterTzy.vue?e718","webpack://crazyrope-shs/../kuaidong-component/src/PosterFooterTtts.vue","webpack://crazyrope-shs/../kuaidong-component/src/PosterFooterTtts.vue?b574","webpack://crazyrope-shs/../kuaidong-component/src/PosterFooterTtts.vue?498d","webpack://crazyrope-shs/../kuaidong-component/src/PosterFooter.vue?60c9","webpack://crazyrope-shs/../kuaidong-component/src/PosterFooter.vue?6a89","webpack://crazyrope-shs/../kuaidong-ui/src/components/KdButton.vue","webpack://crazyrope-shs/../kuaidong-ui/src/components/KdButton.vue?8aec","webpack://crazyrope-shs/../kuaidong-ui/src/components/KdButton.vue?557d","webpack://crazyrope-shs/./src/assets/icons/assistant.svg","webpack://crazyrope-shs/./src/assets/icons/broadcast-gymnastics.svg","webpack://crazyrope-shs/./src/assets/icons/clean.svg","webpack://crazyrope-shs/./src/assets/icons/copy.svg","webpack://crazyrope-shs/./src/assets/icons/delete.svg","webpack://crazyrope-shs/./src/assets/icons/doc.svg","webpack://crazyrope-shs/./src/assets/icons/download.svg","webpack://crazyrope-shs/./src/assets/icons/draggable.svg","webpack://crazyrope-shs/./src/assets/icons/edit-3.svg","webpack://crazyrope-shs/./src/assets/icons/edit.svg","webpack://crazyrope-shs/./src/assets/icons/female.svg","webpack://crazyrope-shs/./src/assets/icons/filter.svg","webpack://crazyrope-shs/./src/assets/icons/flag.svg","webpack://crazyrope-shs/./src/assets/icons/homework.svg","webpack://crazyrope-shs/./src/assets/icons/like.svg","webpack://crazyrope-shs/./src/assets/icons/like_on.svg","webpack://crazyrope-shs/./src/assets/icons/line-chart.svg","webpack://crazyrope-shs/./src/assets/icons/live.svg","webpack://crazyrope-shs/./src/assets/icons/male.svg","webpack://crazyrope-shs/./src/assets/icons/notify.svg","webpack://crazyrope-shs/./src/assets/icons/school.svg","webpack://crazyrope-shs/./src/assets/icons/sent.svg","webpack://crazyrope-shs/./src/assets/icons/smart-phone.svg","webpack://crazyrope-shs/./src/assets/icons/student.svg","webpack://crazyrope-shs/./src/assets/icons/success.svg","webpack://crazyrope-shs/./src/assets/icons/teacher.svg","webpack://crazyrope-shs/./src/assets/icons/upload-1.svg","webpack://crazyrope-shs/./src/assets/icons/upload.svg","webpack://crazyrope-shs/./src/assets/icons/warning.svg","webpack://crazyrope-shs/./src/assets/icons/workbench.svg","webpack://crazyrope-shs/./src/assets/icons/index.js","webpack://crazyrope-shs/./src/assets/icons/ sync nonrecursive \\.svg$","webpack://crazyrope-shs/webpack/bootstrap","webpack://crazyrope-shs/webpack/runtime/amd options","webpack://crazyrope-shs/webpack/runtime/chunk loaded","webpack://crazyrope-shs/webpack/runtime/compat get default export","webpack://crazyrope-shs/webpack/runtime/define property getters","webpack://crazyrope-shs/webpack/runtime/ensure chunk","webpack://crazyrope-shs/webpack/runtime/get javascript chunk filename","webpack://crazyrope-shs/webpack/runtime/get mini-css chunk filename","webpack://crazyrope-shs/webpack/runtime/global","webpack://crazyrope-shs/webpack/runtime/hasOwnProperty shorthand","webpack://crazyrope-shs/webpack/runtime/load script","webpack://crazyrope-shs/webpack/runtime/make namespace object","webpack://crazyrope-shs/webpack/runtime/node module decorator","webpack://crazyrope-shs/webpack/runtime/publicPath","webpack://crazyrope-shs/webpack/runtime/css loading","webpack://crazyrope-shs/webpack/runtime/jsonp chunk loading","webpack://crazyrope-shs/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view'),_c('vue-progress-bar')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=466181c8\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=466181c8&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport App from './App.vue'\nimport ElementUI from 'element-ui'\nimport CsIcon from './components/CsIcon.vue'\nimport VueProgressBar from 'vue-progressbar'\n\nimport { IRole, Role } from './models/role'\nimport router, { routerHelper } from './router'\nimport LoginService from './services/LoginService'\nimport { PermissionService } from 'kuaidong-service'\nimport { store, loginStore, teacherStore, menuRoleStore } from 'kuaidong-store'\nimport { HttpUtil, VueUtil, HttpUtilEvent, EnvUtil, logger } from 'kuaidong-lib'\n\nimport './assets/icons'\nimport './assets/style/reset.css'\nimport './assets/style/base.css'\nimport 'element-ui/lib/theme-chalk/index.css'\n\nVue.use(ElementUI)\nVue.use(VueProgressBar, {\n color: '#409eff',\n failedColor: '#f56c6c',\n thickness: '3px',\n})\n\nrouter.beforeEach(LoginService.routerBeforeEachHook)\n\nHttpUtil.setWithCredentials()\nHttpUtil.on(HttpUtilEvent.StatusCode401, LoginService.login.bind(LoginService, undefined))\nVueUtil.setARMSConfig({ environment: EnvUtil.isProd() ? 'prod' : 'gray' })\n\nVue.component('cs-icon', CsIcon)\nVue.config.productionTip = false\nVue.routerHelper = Vue.prototype.$routerHelper = routerHelper\n\nVue.mixin({\n computed: {\n $role(): IRole {\n const keys = Object.keys(Role) as [keyof typeof Role]\n const result = {} as any\n\n keys.forEach((key) => {\n result[key] = loginStore.organization?.role === Role[key]\n })\n\n return result\n },\n\n $p() {\n return new PermissionService(\n teacherStore.userRoleInfo,\n teacherStore.teacher,\n menuRoleStore.menuRole\n ).buildPermissions()\n },\n },\n})\n\nconst v = new Vue({\n router,\n store,\n render: (h) => h(App),\n}).$mount('#app')\n\nlogger.installCodelessTracking(v)\n","export enum Role {\n Admin = 'admin',\n Offical = 'offical',\n Organization = 'association',\n OrganizationJudge = 'judge',\n Verified = 'verified',\n UserAccount = 'userAccount',\n HWJudge = 'hw_judge',\n}\n\nexport type IRole = {\n [index in keyof typeof Role]: boolean\n}\n","import { RouteConfig } from 'vue-router'\nimport newTermIcon from '@/assets/images/icon_new_term_2022_deactive@2x.png'\nimport newTermIconActive from '@/assets/images/icon_new_term_2022_active@2x.png'\n\nconst Layout = () => import('../views/Layout.vue')\n\nconst Intro = () => import('../views/new-term-plan-2022/Intro.vue')\n\nconst Create = () => import('../views/autumn-2022/Create.vue')\n\nconst List = () => import('../views/autumn-2022/List.vue')\n\nconst Detail = () => import('../views/autumn-2022/Detail.vue')\n\nexport const createRoute: RouteConfig = {\n path: 'create',\n name: 'autumn2022_homework_create',\n component: Create,\n props: (route) => {\n return { ...route.query }\n },\n meta: {\n title: '新学期计划',\n },\n}\n\nexport const listRoute: RouteConfig = {\n path: 'list',\n name: 'autumn2022_homework_list',\n component: List,\n meta: {\n title: '计划列表',\n // showMenu: true,\n },\n props: (route) => {\n return { ...route.query }\n },\n}\n\nexport const introRoute: RouteConfig = {\n path: 'new-term-plan',\n name: 'new_term_plan',\n component: Intro,\n meta: {\n title: '新学期计划',\n },\n}\n\nexport const detailRoute: RouteConfig = {\n path: 'detail',\n name: 'detail',\n component: Detail,\n props: (route) => {\n return { ...route.query }\n },\n}\n\nexport const autumn2022Route: RouteConfig = {\n path: '/autumn-2022',\n name: 'autumn-2022',\n component: Layout,\n meta: {\n title: '新学期计划',\n icon: newTermIcon,\n iconActive: newTermIconActive,\n // showMenu: true,\n },\n children: [listRoute, createRoute, introRoute, detailRoute],\n}\n\nexport default [autumn2022Route]\n","import { RouteConfig } from 'vue-router'\nimport { GlobalConfigRouteMetaEnum } from 'kuaidong-model'\n\nconst LayoutEmpty = () => import('../views/LayoutEmpty.vue')\n\nconst Details = () => import('../views/CompetitionRegionDetails.vue')\nconst DetailsInfo = () => import('../views/CompetitionRegionDetailsInfo.vue')\nconst DetailsStats = () => import('../views/CompetitionRegionDetailsStats.vue')\n\nconst ListAvailable = () => import('../views/CompetitionRegionListAvailable.vue')\nconst ListParticipated = () => import('../views/CompetitionRegionListParticipated.vue')\nconst List = () => import('../views/CompetitionRegionCards.vue')\n\nconst DetailsGroup = () => import('@/views/CompetitionRegionDetailsGroup.vue')\nconst DetailsVideos = () => import('@/views/CompetitionRegionDetailsVideos.vue')\n\nconst DrillDetailsInfo = () => import('../views/CompetitionRegionDrillDetailsInfo.vue')\n\nconst CompetitionAreaDetail = () => import('@/views/CompetitionAreaDetailsInfo.vue')\nconst CompetitionAreaDetailState = () => import('@/views/CompetitionAreaDetailsStats.vue')\n\nexport const drillDetailsInfoRoute: RouteConfig = {\n path: 'drill-info',\n name: 'competition_region_drill_details_info_teacher',\n component: DrillDetailsInfo,\n props: (route) => ({ ...route.query, ...route.params }),\n\n meta: {\n title: '省市级比赛',\n },\n}\n\nexport const detailsInfoRoute: RouteConfig = {\n path: 'info',\n name: 'competition_region_details_info',\n component: DetailsInfo,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '省市级比赛',\n },\n}\n\nexport const detailsStatsRoute: RouteConfig = {\n path: 'stats',\n name: 'competition_region_details_stats',\n component: DetailsStats,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '省市级比赛',\n },\n}\n\nexport const detailsGroupRoute: RouteConfig = {\n path: 'group',\n name: 'competition_region_details_group',\n component: DetailsGroup,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '省市级比赛',\n },\n}\n\nexport const detailsVideosRoute: RouteConfig = {\n path: 'videos',\n name: 'competition_region_details_videos',\n component: DetailsVideos,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '省市级比赛',\n },\n}\n\nexport const detailsRoute: RouteConfig = {\n path: 'details',\n name: 'competition_region_details',\n redirect: detailsInfoRoute,\n component: Details,\n props: (route) => ({ ...route.query, ...route.params }),\n children: [detailsInfoRoute, detailsStatsRoute, detailsGroupRoute, drillDetailsInfoRoute],\n meta: {\n title: '省市级比赛',\n [GlobalConfigRouteMetaEnum.Drills]: true,\n [GlobalConfigRouteMetaEnum.Homework]: true,\n },\n}\n\nexport const areaDetailsInfoRoute: RouteConfig = {\n path: 'area_info',\n name: 'competition_area_details_info',\n component: DetailsInfo,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '省市级比赛',\n },\n}\n\nexport const areaDetailsStatsRoute: RouteConfig = {\n path: 'area_stats',\n name: 'competition_area_details_stats',\n component: DetailsStats,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '省市级比赛',\n },\n}\n\nexport const listAvailableRoute: RouteConfig = {\n path: 'list-available',\n name: 'competition_region_list_available',\n component: ListAvailable,\n meta: {\n title: '省市级比赛',\n },\n}\n\nexport const listParticipatedRoute: RouteConfig = {\n path: 'list-participated',\n name: 'competition_region_list_participated',\n component: ListParticipated,\n meta: {\n title: '省市级比赛',\n },\n}\n\nexport const listRoute: RouteConfig = {\n path: 'list',\n name: 'competition_region_list',\n component: List,\n meta: {\n title: '省市级比赛',\n showMenu: true,\n messageTarget: 'region_match',\n },\n}\n\nexport const areaDetailRoute: RouteConfig = {\n path: 'details',\n name: 'competition_area_detail',\n component: CompetitionAreaDetail,\n props: (route) => ({ ...route.query, ...route.params }),\n\n meta: {\n title: '省市级比赛',\n },\n}\n\nexport const areaDetailStatRoute: RouteConfig = {\n path: 'details-stat',\n name: 'competition_area_detail_stat',\n component: CompetitionAreaDetailState,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '省市级比赛',\n },\n}\n\nexport const detailsAreaRoute: RouteConfig = {\n path: 'area-details',\n name: 'competition_area_details',\n component: Details,\n redirect: areaDetailRoute,\n\n props: (route) => ({ ...route.query, ...route.params }),\n children: [areaDetailRoute, areaDetailsInfoRoute, areaDetailsStatsRoute],\n meta: {\n title: '省市级比赛',\n },\n}\n\nexport default [\n {\n path: '/competition-region',\n name: 'competition_region',\n component: LayoutEmpty,\n redirect: listParticipatedRoute.name,\n\n children: [\n detailsRoute,\n detailsVideosRoute,\n detailsAreaRoute,\n areaDetailStatRoute,\n listAvailableRoute,\n listParticipatedRoute,\n listRoute,\n ],\n },\n]\n\nconst listAvailableRouteClone: RouteConfig = {\n path: 'list-available',\n name: 'competition_region_list_available',\n component: ListAvailable,\n meta: {\n title: '省市级比赛',\n },\n}\n\nconst listParticipatedRouteClone: RouteConfig = {\n path: 'list-participated',\n name: 'competition_region_list_participated',\n component: ListParticipated,\n meta: {\n title: '省市级比赛',\n showMenu: true,\n },\n}\n\nexport const oldCompetitionRoutes = [\n {\n path: '/competition-region',\n name: 'competition_region',\n component: LayoutEmpty,\n redirect: listParticipatedRoute.name,\n\n children: [\n detailsRoute,\n detailsVideosRoute,\n detailsAreaRoute,\n areaDetailStatRoute,\n listAvailableRouteClone,\n listParticipatedRouteClone,\n ],\n },\n]\n","import VueRouter, { RouteConfig } from 'vue-router'\n\nconst Create = () => import('../views/summer-2022/Create.vue')\nconst List = () => import('../views/summer-2022/List.vue')\nconst Detail = () => import('../views/summer-2022/Detail.vue')\nconst Landing = () => import('../views/summer-2022/Landing.vue')\nconst Statistics = () => import('@/views/summer-2022/Statistics.vue')\n\nexport const createRoute: RouteConfig = {\n path: '/summer2022-vacation-homework/create',\n name: 'summer2022_vacation_homework_create',\n component: Create,\n props: (route) => {\n return { ...route.query }\n },\n}\n\nexport const listRoute: RouteConfig = {\n path: '/summer2022-vacation-homework/list',\n name: 'summer2022_vacation_homework_list',\n component: List,\n meta: {\n title: '2022暑假作业',\n },\n}\n\nexport const detailRoute: RouteConfig = {\n path: '/summer2022-vacation-homework/detail',\n name: 'summer2022_vacation_homework_detail',\n component: Detail,\n props: (route) => {\n return { ...route.query }\n },\n}\n\nexport const landingRoute: RouteConfig = {\n path: '/summer-vacation-2022-landing',\n name: 'summer_vacation_2022_landing',\n component: Landing,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '2022暑假作业',\n },\n}\n\nexport const statisticsRoute: RouteConfig = {\n path: '/summer2022-vacation-homework/statistics',\n name: 'summer2022_vacation_homework_statistics',\n component: Statistics,\n meta: {\n title: '2022暑假作业',\n },\n}\n\nexport const Summer2022Routes = [createRoute, listRoute, detailRoute, landingRoute, statisticsRoute]\n\nexport function navigateToSummerVacation2022List(router: VueRouter) {\n router.push({ name: listRoute.name })\n}\n\nexport function navigateToSummerVacation2022Edit(router: VueRouter) {\n router.push({ name: createRoute.name })\n}\n\nexport function navigateToSummerVacation2022Landing(router: VueRouter, qd?: string) {\n router.push({ name: landingRoute.name, query: { qd } })\n}\n\nexport function redirectToSummerVacation2022Landing(router: VueRouter) {\n router.replace({ name: landingRoute.name })\n}\n","import { LoginMethod } from 'kuaidong-model'\nimport VueRouter, { RouteConfig } from 'vue-router'\n\nconst Login = () => import('../views/custom/guangdong/Login.vue')\nconst Dashboard = () => import('../views/custom/guangdong/Dashboard.vue')\n\nexport const loginRoute: RouteConfig = {\n path: 'guangdong/login',\n name: 'custom_guangdong_login',\n component: Login,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n ignoreLogin: true,\n },\n}\n\nexport const dashboardRoute: RouteConfig = {\n path: 'guangdong/dashboard',\n name: 'custom_guangdong_dashboard',\n component: Dashboard,\n props: (route) => ({ ...route.query, ...route.params }),\n}\n\nexport default [loginRoute, dashboardRoute]\n\nexport function navigateToCustomGuangdongLogin(router: VueRouter, loginMethod?: LoginMethod) {\n router.push({ name: loginRoute.name, query: { loginMethod } })\n}\n\nexport function redirectToCustomGuangdongLogin(router: VueRouter, loginMethod?: LoginMethod) {\n router.replace({ name: loginRoute.name, query: { loginMethod } })\n}\n\nexport function navigateToCustomGuangdongDashboard(router: VueRouter) {\n router.push({ path: dashboardRoute.path })\n}\n","import { LoginMethod } from 'kuaidong-model'\nimport VueRouter, { RouteConfig } from 'vue-router'\n\nconst Login = () => import('../views/custom/guangdong/Login.vue')\nconst Dashboard = () => import('../views/custom/guangdong/Dashboard.vue')\nconst DashboardFull = () => import('../views/custom/competition/Dashboard.vue')\n\nexport const loginRoute: RouteConfig = {\n path: 'competition/login',\n name: 'custom_competition_login',\n component: Login,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n ignoreLogin: true,\n },\n}\n\nexport const dashboardRoute: RouteConfig = {\n path: 'competition/dashboard',\n name: 'custom_competition_dashboard',\n component: Dashboard,\n props: (route) => ({ ...route.query, ...route.params }),\n}\n\nexport const dashbaordFullRoute: RouteConfig = {\n path: 'competition/dashboard-full',\n name: 'custom_competition_dashboard_full',\n component: DashboardFull,\n props: (route) => ({ ...route.query, ...route.params }),\n}\n\nexport default [loginRoute, dashboardRoute, dashbaordFullRoute]\n\nexport function navigateToCustomCompetitionLogin(router: VueRouter, loginMethod?: LoginMethod) {\n router.push({ name: loginRoute.name, query: { loginMethod } })\n}\n\nexport function redirectToCustomCompetitionLogin(router: VueRouter, loginMethod?: LoginMethod) {\n router.replace({ name: loginRoute.name, query: { loginMethod } })\n}\n\nexport function navigateToCustomCompetitionDashboard(router: VueRouter, id: string) {\n router.push({ path: dashboardRoute.path, query: { id } })\n}\n\nexport function navigateToCustomCompetitionDashboardFull(router: VueRouter, id: string) {\n router.push({ path: dashbaordFullRoute.path, query: { id } })\n}\n","import RCustomGuandong, * as customGuangdongRouter from './RCustomGuangdong'\nimport RCustomCompetition, * as customCompetitionRouter from './RCustomCompetition'\n\nconst Layout = () => import('../views/LayoutCustom.vue')\n\nexport default [\n {\n path: '/custom',\n name: 'custom',\n component: Layout,\n redirect: customCompetitionRouter.dashboardRoute,\n children: [...RCustomGuandong, ...RCustomCompetition],\n },\n]\n\nexport { customGuangdongRouter, customCompetitionRouter }\n","import { Role } from '../models/role'\nimport { RouteConfig } from 'vue-router'\n\nimport homeIcon from '@/assets/images/icon_menu_workbench@2x.png'\nimport homeIconActive from '@/assets/images/icon_menu_workbench_active@2x.png'\n\nconst Home = () => import('../views/HomeOrganization.vue')\n\nexport const homeRoute: RouteConfig = {\n path: '/organization/home',\n name: 'organization_home',\n component: Home,\n meta: {\n title: '概览',\n icon: homeIcon,\n iconActive: homeIconActive,\n showMenu: false,\n roles: [Role.Offical],\n },\n}\n\nexport default [homeRoute]\n","import VueRouter, { RouteConfig } from 'vue-router'\n\nconst List = () => import('../views/CompetitionRegionJudgeList.vue')\nconst Edit = () => import('../views/CompetitionRegionJudgeEdit.vue')\nconst Details = () => import('../views/CompetitionRegionJudgeDetails.vue')\n\nconst Score = () => import('../views/CompetitionRegionJudgeScore.vue')\nconst JudgeStats = () => import('../views/CompetitionRegionStatsJudge.vue')\n\nexport const listRoute: RouteConfig = {\n path: 'judge-list',\n name: 'competition_region_judge_list',\n component: List,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '区域云比赛',\n },\n}\n\nexport const editRoute: RouteConfig = {\n path: 'judge-edit',\n name: 'competition_region_judge_edit',\n component: Edit,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '区域云比赛',\n },\n}\n\nexport const detailsRoute: RouteConfig = {\n path: 'judge-details',\n name: 'competition_region_judge_details',\n component: Details,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '区域云比赛',\n },\n}\n\nexport const scoreRoute: RouteConfig = {\n path: 'judge-score',\n name: 'competition_region_judge_score',\n component: Score,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '区域云比赛',\n },\n}\n\nexport const statsRoute: RouteConfig = {\n path: 'judge-stats',\n name: 'competition_region_organization_judge_stats',\n component: JudgeStats,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '区域云比赛',\n },\n}\n\nexport default [listRoute, editRoute, detailsRoute, scoreRoute, statsRoute]\n\nexport function navigateToCompetitionRegionJudgeList(router: VueRouter, competitionId: string) {\n router.push({ path: `../${listRoute.path}`, query: { competitionId } })\n}\n\nexport function navigateToCompetitionRegionJudgeEdit(router: VueRouter) {\n router.push({ path: editRoute.path })\n}\n\nexport function navigateToCompetitionRegionJudgeDetails(router: VueRouter, id: string, competitionId: string) {\n router.push({ path: detailsRoute.path, query: { id, competitionId } })\n}\n\nexport function navigateToCompetitionRegionJudgeScore(\n router: VueRouter,\n id: string,\n groupName: string,\n scoringTypesId: string\n) {\n router.push({ path: `../${scoreRoute.path}`, query: { id, groupName, scoringTypesId } })\n}\n\nexport function navigateToCompetitionRegionJudgeStats(router: VueRouter, id: string, name: string, groupCode: string) {\n router.push({ path: `../${statsRoute.path}`, query: { id, name, groupCode } })\n}\n","import { Role } from '../models/role'\nimport VueRouter, { RouteConfig } from 'vue-router'\n\nimport {\n listRoute as judgeListRoute,\n editRoute as judgeEditRoute,\n detailsRoute as judgeDetailsRoute,\n scoreRoute as judgeScoreRoute,\n statsRoute as judgeStatsRoute,\n navigateToCompetitionRegionJudgeList,\n navigateToCompetitionRegionJudgeEdit,\n navigateToCompetitionRegionJudgeScore,\n navigateToCompetitionRegionJudgeStats,\n navigateToCompetitionRegionJudgeDetails,\n} from './RCompetitionRegionJudge'\n\nconst LayoutEmpty = () => import('../views/LayoutEmpty.vue')\n\nconst List = () => import('../views/CompetitionRegionListOrganization.vue')\nconst Details = () => import('../views/CompetitionRegionDetailsOrganization.vue')\nconst DetailsInfo = () => import('../views/CompetitionRegionDetailsOrganizationInfo.vue')\nconst DetailsStats = () => import('../views/CompetitionRegionDetailsOrganizationStats.vue')\nconst DetailsGroup = () => import('../views/CompetitionRegionDetailsOrganizationGroup.vue')\nconst DetailsVideosInfo = () => import('../views/CompetitionRegionDetailsOrganizationVideos.vue')\nconst DetailsParticipant = () => import('../views/CompetitionRegionDetailsOrganizationParticipant.vue')\n\nconst Stats = () => import('../views/CompetitionRegionStatsOrganization.vue')\nconst StatsParticipant = () => import('../views/CompetitionRegionStatsOrganizationParticipant.vue')\n\nconst DrillDetailsInfo = () => import('../views/CompetitionRegionDrillDetailsInfo.vue')\n\nexport const drillDetailsInfoRoute: RouteConfig = {\n path: 'drill-info',\n name: 'competition_region_drill_details_info',\n component: DrillDetailsInfo,\n props: (route) => ({\n data: JSON.parse(route.query.data as string),\n }),\n meta: {\n title: '区域云比赛',\n },\n}\n\nexport const listRoute: RouteConfig = {\n path: 'list',\n name: 'competition_region_organization_list',\n component: List,\n meta: {\n title: '区域云比赛',\n showMenu: true,\n roles: [Role.Organization],\n },\n}\n\nexport const detailsInfoRoute: RouteConfig = {\n path: 'info',\n name: 'competition_region_organization_details_info',\n component: DetailsInfo,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '区域云比赛',\n },\n}\n\nexport const detailsStatsRoute: RouteConfig = {\n path: 'stats',\n name: 'competition_region_organization_details_stats',\n component: DetailsStats,\n props: (route) => ({\n ...route.query,\n ...route.params,\n region: route.query.region && JSON.parse(route.query.region as string),\n }),\n meta: {\n title: '区域云比赛',\n },\n}\n\nexport const detailsGroupRoute: RouteConfig = {\n path: 'group',\n name: 'competition_region_organization_details_group',\n component: DetailsGroup,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '区域云比赛',\n },\n}\n\nexport const detailsParticipantRoute: RouteConfig = {\n path: 'participant',\n name: 'competition_region_organization_details_participant',\n component: DetailsParticipant,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '区域云比赛',\n },\n}\nexport const detailsVideosInfoRoute: RouteConfig = {\n path: 'videos',\n name: 'competition_region_organization_details_video',\n component: DetailsVideosInfo,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '区域云比赛',\n },\n}\n\nexport const detailsRoute: RouteConfig = {\n path: 'details',\n name: 'competition_region_organization_details',\n redirect: detailsInfoRoute,\n component: Details,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '区域云比赛',\n },\n children: [detailsInfoRoute, detailsStatsRoute, detailsGroupRoute, detailsParticipantRoute, drillDetailsInfoRoute],\n}\n\nexport const statsRoute: RouteConfig = {\n path: 'stats',\n name: 'competition_region_organization_stats',\n component: Stats,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '区域云比赛',\n },\n}\n\nexport const statsParticipantRoute: RouteConfig = {\n path: 'stats-participant',\n name: 'competition_region_organization_stats_participant',\n component: StatsParticipant,\n props: (route) => ({ ...route.query, ...route.params, participantId: Number(route.query.participantId!) }),\n meta: {\n title: '区域云比赛',\n },\n}\n\nexport default [\n {\n path: '/organization/competition-region',\n name: 'competition_region_organization',\n component: LayoutEmpty,\n meta: {\n roles: [Role.Organization],\n },\n redirect: listRoute,\n children: [\n listRoute,\n detailsRoute,\n statsRoute,\n statsParticipantRoute,\n detailsVideosInfoRoute,\n judgeListRoute,\n judgeEditRoute,\n judgeDetailsRoute,\n judgeScoreRoute,\n judgeStatsRoute,\n ],\n },\n]\n\nexport function navigateToCompetitionRegionStatsOrganization(\n router: VueRouter,\n id: string,\n name: string,\n group_code: string\n) {\n router.push({ path: `../${statsRoute.path}`, query: { id, name, group_code } })\n}\n\nexport function navigateToCompetitionRegionDetailsOrganization(rotuer: VueRouter, id: string, name: string) {\n rotuer.push({ name: detailsInfoRoute.name, query: { id, name } })\n}\n\nexport { judgeScoreRoute, judgeStatsRoute, judgeListRoute, judgeEditRoute, judgeDetailsRoute }\n\nexport {\n navigateToCompetitionRegionJudgeList,\n navigateToCompetitionRegionJudgeEdit,\n navigateToCompetitionRegionJudgeScore,\n navigateToCompetitionRegionJudgeStats,\n navigateToCompetitionRegionJudgeDetails,\n}\n","import { Role } from '../models/role'\nimport { RouterUtil } from 'kuaidong-lib'\nimport { CompetitionMode } from 'kuaidong-model'\nimport competitionRegionOrganizationRoutes from './RCompetitionRegionOrganization'\n\nexport default RouterUtil.cloneRoutes(\n competitionRegionOrganizationRoutes,\n 'video',\n '区域视频赛',\n {\n mode: CompetitionMode.Video,\n },\n [Role.Organization, Role.OrganizationJudge]\n)\n","import { Role } from '../models/role'\n\nimport regionRoutes, * as regionRouter from './RCompetitionRegionOrganization'\nimport videoRegionRoutes, * as videoRegionRouter from './RVideoCompetitionRegionOrganization'\n\nimport competitionMenuIcon from '@/assets/images/icon_menu_competition@2x.png'\nimport competitionMenuIconActive from '@/assets/images/icon_menu_competition_active@2x.png'\n\nconst LayoutEmpty = () => import('../views/LayoutEmpty.vue')\n\nexport default [\n {\n path: 'competition',\n name: 'competition_organization',\n component: LayoutEmpty,\n meta: {\n title: '在线比赛',\n icon: competitionMenuIcon,\n iconActive: competitionMenuIconActive,\n showMenu: true,\n roles: [Role.Organization, Role.OrganizationJudge, Role.Offical],\n },\n redirect: regionRoutes[0],\n children: [...regionRoutes, ...videoRegionRoutes],\n },\n]\n\nexport { regionRouter, videoRegionRouter }\n","import RCustomGuandong from './RCustomGuangdong'\nimport RHomeOrganization, * as homeOrganizationRouter from './RHomeOrganization'\nimport RCustomCompetition, * as customCompetitionRouter from './RCustomCompetition'\n\nimport RCompetitionOrganization, {\n regionRouter as competitionRegionRouter,\n videoRegionRouter as videoCompetitionRegionRouter,\n} from './RCompetitionOrganization'\n\nconst Layout = () => import('../views/Layout.vue')\nconst LayoutEmpty = () => import('../views/LayoutEmpty.vue')\n\nexport default [\n {\n path: '/organization',\n name: 'organization',\n component: Layout,\n redirect: RCompetitionOrganization[0],\n children: [...RHomeOrganization, ...RCompetitionOrganization],\n },\n {\n path: '/organization/custom',\n name: 'organization_custom',\n component: LayoutEmpty,\n redirect: customCompetitionRouter.dashboardRoute,\n children: [...RCustomGuandong.slice(1), ...RCustomCompetition.slice(1)],\n },\n]\n\nexport { homeOrganizationRouter, competitionRegionRouter, videoCompetitionRegionRouter }\n","const Layout = () => import('@/views/Layout.vue')\n\nconst Index = () => import('@/views/LongBreakIndex.vue')\nconst List = () => import('@/views/LongBreakList.vue')\nconst Detail = () => import('@/views/GymnasticsDetail.vue')\nconst DetailInfo = () => import('@/views/GymnasticsDetailInfo.vue')\nconst DetailStat = () => import('@/views/GymnasticsDetailStat.vue')\nconst Edit = () => import('@/views/LongBreakEdit.vue')\n\nimport menuIcon from '@/assets/images/icon_menu_long_break@2x.png'\nimport menuIconActive from '@/assets/images/icon_menu_long_break_active@2x.png'\nimport { Route } from 'vue-router'\n\nexport default [\n {\n path: '/long-break',\n name: 'long_break',\n component: Layout,\n meta: {\n title: '特色大课间',\n icon: menuIcon,\n iconActive: menuIconActive,\n showMenu: true,\n },\n children: [\n {\n path: 'index',\n name: 'long_break_index',\n component: Index,\n meta: {\n title: '大课间活动',\n showMenu: true,\n },\n },\n {\n path: 'list',\n name: 'long_break_list',\n component: List,\n meta: {\n title: '大课间回家练',\n showMenu: true,\n },\n },\n {\n path: 'edit',\n name: 'long_break_edit',\n component: Edit,\n props: (route: Route) => ({ ...route.query }),\n meta: {\n title: '大课间活动',\n },\n },\n {\n path: 'detail',\n name: 'long_break_detail',\n component: Detail,\n meta: { title: '大课间回家练', showMenu: false },\n children: [\n {\n path: 'stat',\n name: 'long_break_detail_stat',\n component: DetailStat,\n props: (route: Route) => ({ id: route.query.id }),\n meta: { title: '大课间回家练' },\n },\n {\n path: 'info',\n name: 'long_break_detail_info',\n component: DetailInfo,\n props: (route: Route) => ({ id: route.query.id }),\n meta: { title: '大课间回家练' },\n },\n ],\n },\n ],\n },\n]\n","import VueRouter, { RouteConfig } from 'vue-router'\n\nconst LayoutUnauth = () => import('../views/LayoutUnauth.vue')\n\nconst Login = () => import('../views/Login.vue')\nconst AuthForm = () => import('../views/AuthForm.vue')\nconst ContactUs = () => import('../views/ContactUs.vue')\nconst AuthFormQuick = () => import('../views/AuthFormQuick.vue')\nconst AuthInProgress = () => import('../views/AuthInProgress.vue')\n\nexport const loginRoute: RouteConfig = {\n path: 'login',\n name: 'login',\n component: Login,\n props: (route) => ({ ...route.query, ...route.params }),\n}\n\nexport const authRoute: RouteConfig = {\n path: 'auth',\n name: 'auth',\n component: AuthForm,\n props: (route) => ({ ...route.query, ...route.params }),\n}\n\nexport const contactUsRoute: RouteConfig = {\n path: '/contact-us',\n name: 'contact_us',\n component: ContactUs,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '联系我们',\n ignoreLogin: true,\n },\n}\n\nexport const authFormQuickRoute: RouteConfig = {\n path: 'auth-form-quick',\n name: 'auth_form_quick',\n component: AuthFormQuick,\n props: (route) => ({ ...route.query, ...route.params }),\n}\n\nexport const authInProgressRoute: RouteConfig = {\n path: 'auth-in-progress',\n name: 'auth_in_progress',\n component: AuthInProgress,\n props: (route) => ({ ...route.query, ...route.params }),\n}\n\nexport default [\n {\n path: '/account',\n name: 'account',\n component: LayoutUnauth,\n children: [authRoute, loginRoute, contactUsRoute, authFormQuickRoute, authInProgressRoute],\n },\n]\n\nexport function navigateToContactUs(router: VueRouter, qd?: string) {\n window.open(router.resolve({ name: contactUsRoute.name, query: { qd } }).href, '__blank')\n}\n","import { RouteConfig } from 'vue-router'\n\nconst Home = () => import('../views/Home.vue')\n\nexport const homeRoute: RouteConfig = {\n path: '/home',\n name: 'home',\n component: Home,\n redirect: 'workbench',\n meta: {\n title: '首页',\n },\n}\n\nexport default [homeRoute]\n","// import VueRouter, { RouteConfig } from 'vue-router'\n\nconst Layout = () => import('../views/Layout.vue')\n\nexport default [\n {\n path: '/plan',\n name: 'plan',\n component: Layout,\n meta: {\n title: '体育教学规划',\n icon: 'el-icon-date',\n },\n },\n]\n","import VueRouter, { RouteConfig } from 'vue-router'\nimport { ExamRecordStandardDetailsTab } from 'kuaidong-model'\n\nconst List = () => import('../views/exam-record-standard/List.vue')\nconst Details = () => import('../views/exam-record-standard/Details.vue')\n\nexport const listRoute: RouteConfig = {\n path: 'record-standard-list',\n name: 'exam_record_standard_list',\n component: List,\n meta: {\n title: '分析报告',\n },\n}\n\nexport const detailsRoute: RouteConfig = {\n path: 'record-standard-details',\n name: 'exam_record_standard_details',\n component: Details,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '分析报告',\n },\n}\n\nexport default [listRoute, detailsRoute]\n\nexport function navigateToExamRecordStandardList(router: VueRouter) {\n router.push({ name: listRoute.name })\n}\n\nexport function navigateToExamRecordStandardDetails(\n router: VueRouter,\n id: string,\n tab = ExamRecordStandardDetailsTab.Measure\n) {\n router.push({ name: detailsRoute.name, query: { id, tab } })\n}\n","import VueRouter, { RouteConfig } from 'vue-router'\nimport { GlobalConfigRouteMetaEnum } from 'kuaidong-model'\n\nimport RExamRecordStandard, {\n navigateToExamRecordStandardList,\n navigateToExamRecordStandardDetails,\n} from './RExamRecordStandard'\n\nimport examMenuIcon from '@/assets/images/icon_menu_exam@2x.png'\nimport examMenuIconActive from '@/assets/images/icon_menu_exam_active@2x.png'\n\nconst Layout = () => import('../views/Layout.vue')\nconst List = () => import('@/views/ExamList.vue')\nconst Edit = () => import('@/views/ExamEdit.vue')\nconst Detail = () => import('@/views/ExamDetail.vue')\nconst DetailInfo = () => import('@/views/ExamDetailInfo.vue')\nconst DetailStat = () => import('@/views/ExamDetailStat.vue')\nconst Landing = () => import('../views/intelligent-exam/Landing.vue')\n\nconst PracticeList = () => import('../views/ExamPracticeList.vue')\nconst PracticeEdit = () => import('../views/ExamPracticeEdit.vue')\nconst PracticeCheck = () => import('../views/ExamPracticeCheck.vue')\nconst PracticeDetails = () => import('../views/ExamPracticeDetails.vue')\n\nconst ExamRecordStateSchoolList = () => import('../views/ExamRecordStateSchoolList.vue')\nconst ExamRecordStateClazzList = () => import('../views/ExamRecordStateClazzList.vue')\nconst ExamRecordStateStudentList = () => import('../views/ExamRecordStateStudentList.vue')\n\nconst DataSummary = () => import('../views/ExamDataSummary.vue')\nconst DataClassSummary = () => import('../views/ExamDataClassSummary.vue')\nconst DataClassJobs = () => import('../views/ExamDataClassJobs.vue')\nconst DataJobs = () => import('../views/ExamDataJobs.vue')\nconst DataGrades = () => import('../views/ExamDataGrades.vue')\nconst DataRateSummary = () => import('../views/ExamDataRateSummary.vue')\nconst RecordList = () => import('../views/ExamRecordList.vue')\nconst RecordDetails = () => import('../views/ExamRecordDetails.vue')\nconst RecordDetailsAdjust = () => import('../views/ExamRecordDetailsAdjust.vue')\n\nexport const listRoute: RouteConfig = {\n path: 'index',\n name: 'exam_list',\n component: List,\n meta: { title: '学生自测', showMenu: true },\n}\n\nexport const EditRoute: RouteConfig = {\n path: 'edit',\n name: 'exam_edit',\n component: Edit,\n props: (route) => ({ id: route.query.id }),\n meta: {\n title: '学生自测',\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n}\n\nexport const DetailRoute: RouteConfig = {\n path: 'detail',\n name: 'exam_detail',\n component: Detail,\n children: [\n {\n path: 'stat',\n name: 'exam_detail_stat',\n component: DetailStat,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: { title: '学生自测' },\n },\n {\n path: 'info',\n name: 'exam_detail_info',\n component: DetailInfo,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: { title: '学生自测' },\n },\n ],\n}\n\nexport const landingRoute: RouteConfig = {\n path: 'landing',\n name: 'intelligent_exam_landing',\n component: Landing,\n meta: {\n title: '智能体质测试',\n showMenu: true,\n },\n}\n\nexport const practiceListRoute: RouteConfig = {\n path: 'practice-list',\n name: 'exam_practice_list',\n component: PracticeList,\n meta: {\n title: '体测练习',\n showMenu: false,\n },\n}\n\nexport const practiceEditRoute: RouteConfig = {\n path: 'practice-edit',\n name: 'exam_practice_edit',\n component: PracticeEdit,\n meta: {\n title: '体测练习',\n },\n}\n\nexport const practiceCheckRoute: RouteConfig = {\n path: 'practice-check',\n name: 'exam_practice_check',\n component: PracticeCheck,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '体测练习',\n },\n}\n\nexport const practiceDetailsRoute: RouteConfig = {\n path: 'practice-details',\n name: 'exam_practice_details',\n component: PracticeDetails,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '体测练习',\n },\n}\n\nexport const dataRoutes: RouteConfig[] = [\n {\n path: 'data-summary',\n name: 'exam_data_summary',\n component: DataSummary,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '分析报告',\n },\n },\n {\n path: 'data-class-summary',\n name: 'exam_data_class_summary',\n component: DataClassSummary,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '分析报告',\n },\n },\n {\n path: 'data-class-jobs',\n name: 'exam_data_class_jobs',\n component: DataClassJobs,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '分析报告',\n },\n },\n {\n path: 'data-jobs',\n name: 'exam_data_jobs',\n component: DataJobs,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '分析报告',\n },\n },\n {\n path: 'data-grades',\n name: 'exam_data_grades',\n component: DataGrades,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '分析报告',\n },\n },\n {\n path: 'data-rate-summary',\n name: 'exam_data_rate_summary',\n component: DataRateSummary,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '分析报告',\n },\n },\n]\n\nexport const schoolRecordListRoute: RouteConfig = {\n path: 'exam-record-school-record-list',\n name: 'exam_record_school_record_list',\n component: ExamRecordStateSchoolList,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '分析报告',\n showMenu: true,\n },\n}\n\nexport const clazzDataAnalysisRoute: RouteConfig = {\n path: 'exam-record-state-clazz-list',\n name: 'exam_record_state_clazz_list',\n component: ExamRecordStateClazzList,\n props: (route) => ({ ...route.query, ...route.params, body_exam_upload_score_id: route.query.id }),\n meta: {\n title: '分析报告',\n },\n}\n\nexport const studentDataAnalysisRoute: RouteConfig = {\n path: 'exam-record-state-student-list',\n name: 'exam_record_state_student_list',\n component: ExamRecordStateStudentList,\n props: (route) => ({\n ...route.query,\n ...route.params,\n body_exam_upload_score_id: route.query.id,\n class_no: route.query.cid,\n }),\n meta: {\n title: '分析报告',\n },\n}\n\nexport const recordListRoute: RouteConfig = {\n path: 'record-list',\n name: 'exam_record_list',\n component: RecordList,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '学校跟测',\n showMenu: true,\n },\n}\n\nexport const recordDetailsRoute: RouteConfig = {\n path: 'record-details',\n name: 'exam_record_details',\n component: RecordDetails,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '学校跟测',\n },\n}\n\nexport const recordDetailsAdjustRoute: RouteConfig = {\n path: 'record-details-adjust',\n name: 'exam_record_details_adjust',\n component: RecordDetailsAdjust,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '学校跟测',\n },\n}\n\nexport default [\n {\n path: '/exam',\n name: 'exam',\n component: Layout,\n meta: { title: '体质测试', icon: examMenuIcon, iconActive: examMenuIconActive, showMenu: true },\n children: [\n landingRoute,\n listRoute,\n recordListRoute,\n EditRoute,\n DetailRoute,\n practiceListRoute,\n practiceEditRoute,\n practiceCheckRoute,\n practiceDetailsRoute,\n recordDetailsRoute,\n recordDetailsAdjustRoute,\n ...dataRoutes,\n schoolRecordListRoute,\n clazzDataAnalysisRoute,\n studentDataAnalysisRoute,\n ...RExamRecordStandard,\n ],\n },\n]\n\nexport function navigateToExamPracticeEdit(router: VueRouter) {\n router.push({ name: practiceEditRoute.name })\n}\n\nexport function navigateToExamPracticeCheck(router: VueRouter, examPracticeId: string) {\n router.push({ name: practiceCheckRoute.name, query: { examPracticeId } })\n}\n\nexport function redirectToExamPracticeCheck(router: VueRouter, examPracticeId: string) {\n router.replace({ name: practiceCheckRoute.name, query: { examPracticeId } })\n}\n\nexport function navigateToExamPracticeDetails(router: VueRouter, examPracticeId: string) {\n router.push({ name: practiceDetailsRoute.name, query: { examPracticeId } })\n}\n\nexport function redirectToExamPracticeDetails(router: VueRouter, examPracticeId: string) {\n router.replace({ name: practiceDetailsRoute.name, query: { examPracticeId } })\n}\n\nexport function navigateToClazzDataAnalysis(\n router: VueRouter,\n body_exam_upload_score_id: string,\n target_school_id: string\n) {\n router.push({ name: clazzDataAnalysisRoute.name, query: { body_exam_upload_score_id, target_school_id } })\n}\n\nexport function navigateToExamRecordDetails(\n router: VueRouter,\n examRecordId: string,\n name = '',\n showUploadDialog = 'false'\n) {\n router.push({ name: recordDetailsRoute.name, query: { examRecordId, name, showUploadDialog } })\n}\n\nexport function navigateToExamRecordDetailsAdjust(router: VueRouter, examRecordId: string) {\n router.push({ name: recordDetailsAdjustRoute.name, query: { examRecordId } })\n}\n\nexport { navigateToExamRecordStandardList, navigateToExamRecordStandardDetails }\n","import { RouteConfig } from 'vue-router'\n\nconst Layout = () => import('../views/Layout.vue')\nconst Edit = () => import('../views/UserEdit.vue')\n\nexport const editRoute: RouteConfig = {\n path: 'edit',\n name: 'user_edit',\n component: Edit,\n meta: { title: '个人信息', showMenu: false },\n}\n\nexport default [\n {\n path: '/user',\n name: 'user',\n component: Layout,\n meta: { title: '教学资源中心', showMenu: false },\n children: [editRoute],\n },\n]\n","import { IStudentTableItemForStudentCode, Student } from 'kuaidong-model'\nimport VueRouter, { RouteConfig } from 'vue-router'\n\nconst Layout = () => import('../views/Layout.vue')\nconst SchoolManage = () => import('../views/SchoolManage.vue')\nconst GradeList = () => import('../views/GradeList.vue')\nconst ClazzList = () => import('../views/ClazzListPage.vue')\nconst StudentList = () => import('../views/StudentList.vue')\nconst StudentAuth = () => import('../views/StudentAuth.vue')\nconst StudentAuthForAccount = () => import('../views/StudentAuthForAccount.vue')\nconst StudentAuthForAccountDetail = () => import('../views/StudentAuthForAccountDetail.vue')\n\nconst StudentListManagePage = () => import('../views/StudentListPage.vue')\nconst GradeDetails = () => import('../views/GradeDetails.vue')\nconst ClazzDetails = () => import('../views/ClazzDetailsPage.vue')\nconst ClazzDetailsForStudentCode = () => import('../views/ClazzDetailsForStudentCode.vue')\n\nconst StudentDetails = () => import('../views/StudentDetails.vue')\nconst StudentDetailsSchoolRollNo = () => import('../views/StudentDetailsForSchoolRollNo.vue')\nconst StudentDetailsForSchoolAccount = () => import('../views/StudentDetailsForSchoolAccount.vue')\nconst StudentMatchesInfo = () => import('../views/StudentMatchesInfo.vue')\nconst TeacherList = () => import('../views/TeacherList.vue')\nconst TeacherCreate = () => import('../views/TeacherCreate.vue')\nconst TeacherDetail = () => import('../views/TeacherDetail.vue')\nexport const schoolManageRoute: RouteConfig = {\n path: 'school-manage',\n name: 'school_manage',\n component: SchoolManage,\n meta: {\n title: '学校管理',\n showMenu: true,\n roles: ['verified'],\n },\n}\n\nexport const gradeListRoute: RouteConfig = {\n path: 'grade-list',\n name: 'grade_list',\n component: GradeList,\n meta: {\n title: '年级管理',\n showMenu: false,\n },\n}\n\nexport const clazzListRoute: RouteConfig = {\n path: 'clazz-list',\n name: 'clazz_list',\n component: ClazzList,\n props: (route) => ({\n ...route.query,\n ...route.params,\n gradeNo: route.query.gradeNo ? Number(route.query.gradeNo) : null,\n }),\n meta: {\n title: '班级管理',\n showMenu: true,\n },\n}\n\nexport const studentListRoute: RouteConfig = {\n path: 'student-list',\n name: 'student_list',\n component: StudentList,\n props: (route) => ({\n ...route.query,\n ...route.params,\n }),\n meta: {\n title: '学生管理',\n showMenu: true,\n },\n}\n\nexport const studentAuthRoute: RouteConfig = {\n path: 'student-auth',\n name: 'student_auth',\n component: StudentAuth,\n props: (route) => ({\n ...route.query,\n ...route.params,\n }),\n meta: {\n title: '学生认证管理',\n showMenu: true,\n roles: ['verified'],\n },\n}\n\nexport const studentAuthAccountRoute: RouteConfig = {\n path: 'student-auth-for-account',\n name: 'student_auth_for_account',\n component: StudentAuthForAccount,\n props: (route) => ({\n ...route.query,\n ...route.params,\n }),\n meta: {\n title: '合作账号管理',\n showMenu: true,\n roles: ['userAccount'],\n },\n}\n\nexport const studentAuthAccountDetailRoute: RouteConfig = {\n path: 'student-auth-for-account-detail',\n name: 'student_auth_for_account_detail',\n component: StudentAuthForAccountDetail,\n props: (route) => ({\n ...route.query,\n ...route.params,\n }),\n meta: {\n title: '合作账号管理',\n roles: ['verified'],\n },\n}\n\nexport const studentManageListRoute: RouteConfig = {\n path: 'student-manage-list',\n name: 'student_manage_list',\n component: StudentListManagePage,\n meta: {\n title: '学生名单',\n showMenu: true,\n },\n}\n\nexport const gradeDetailsRoute: RouteConfig = {\n path: 'grade-details',\n name: 'grade_details',\n component: GradeDetails,\n props: (route) => ({\n ...route.query,\n ...route.params,\n gradeId: Number(route.query.gradeId),\n }),\n meta: {\n title: '年级管理',\n },\n}\n\nexport const clazzDetailsRoute: RouteConfig = {\n path: 'clazz-details',\n name: 'clazz_details',\n component: ClazzDetails,\n props: (route) => ({\n ...route.query,\n ...route.params,\n clazzId: Number(route.query.clazzId),\n }),\n meta: {\n title: '班级管理',\n },\n}\n\nexport const clazzDetailsForStudentCodeRoute: RouteConfig = {\n path: 'clazz-details-for-student-code',\n name: 'clazz_details_for_student_code',\n component: ClazzDetailsForStudentCode,\n props: (route) => ({\n ...route.query,\n ...route.params,\n clazzId: Number(route.query.clazzId),\n }),\n meta: {\n title: '学生认证管理',\n },\n}\n\nexport const studentMatchesInfoRoute: RouteConfig = {\n path: 'student-matches-info',\n name: 'student_matches_info',\n component: StudentMatchesInfo,\n props: (route) => ({\n ...route.query,\n ...route.params,\n clazzId: Number(route.query.clazzId),\n }),\n meta: {\n title: '关联详情',\n showMenu: false,\n },\n}\n\nexport const studentDetailsRoute: RouteConfig = {\n path: 'student-details',\n name: 'student_details',\n component: StudentDetails,\n props: (route) => ({\n ...route.query,\n ...route.params,\n student: route.query.student ? JSON.parse(route.query.student as string) : null,\n }),\n meta: {\n title: '学生管理',\n },\n}\nexport const studentDetailsSchoolRollNoRoute: RouteConfig = {\n path: 'student-details-roll-no',\n name: 'student_details_roll_no',\n component: StudentDetailsSchoolRollNo,\n props: (route) => ({\n ...route.query,\n ...route.params,\n student: route.query.student ? JSON.parse(route.query.student as string) : null,\n }),\n meta: {\n title: '学生认证管理',\n },\n}\n\nexport const studentDetailsForSchoolAccountRoute: RouteConfig = {\n path: 'student-details-school-account',\n name: 'student_details_school_account',\n component: StudentDetailsForSchoolAccount,\n props: (route) => ({\n ...route.query,\n ...route.params,\n student: route.query.student ? JSON.parse(route.query.student as string) : null,\n }),\n meta: {\n title: '合作账号管理',\n },\n}\n\nexport const TeacherListRoute: RouteConfig = {\n path: 'teacher-list',\n name: 'teacher_list',\n component: TeacherList,\n meta: {\n title: '教师管理',\n showMenu: true,\n roles: ['admin'],\n },\n}\n\nexport const TeacherCreateRoute: RouteConfig = {\n path: 'teacher-create',\n name: 'teacher_create',\n component: TeacherCreate,\n meta: {\n title: '教师管理',\n showMenu: false,\n roles: ['admin'],\n },\n}\n\nexport const TeacherDetailRoute: RouteConfig = {\n path: 'teacher-detail',\n name: 'teacher_detail',\n component: TeacherDetail,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '教师管理',\n showMenu: false,\n roles: ['admin'],\n },\n}\nimport schoolMenuIcon from '@/assets/images/icon_menu_school@2x.png'\nimport schoolMenuIconActive from '@/assets/images/icon_menu_school_active@2x.png'\n\nexport default [\n {\n path: '/school',\n name: 'school',\n component: Layout,\n meta: {\n title: '我的学校',\n icon: schoolMenuIcon,\n iconActive: schoolMenuIconActive,\n showMenu: true,\n },\n children: [\n schoolManageRoute,\n TeacherListRoute,\n TeacherCreateRoute,\n TeacherDetailRoute,\n gradeListRoute,\n clazzListRoute,\n studentListRoute,\n studentAuthRoute,\n studentAuthAccountRoute,\n studentAuthAccountDetailRoute,\n\n gradeDetailsRoute,\n clazzDetailsRoute,\n clazzDetailsForStudentCodeRoute,\n studentDetailsRoute,\n studentDetailsSchoolRollNoRoute,\n studentDetailsForSchoolAccountRoute,\n studentMatchesInfoRoute,\n ],\n },\n]\n\nexport function navigateToWebTeacherList(router: VueRouter) {\n router.push({ name: TeacherListRoute.name })\n}\n\nexport function navigateToGradeDetails(router: VueRouter, gradeId: number) {\n router.push({ name: gradeDetailsRoute.name, query: { gradeId: String(gradeId) } })\n}\n\nexport function navigateToClazzDetails(router: VueRouter, clazzId: number, clazzName?: string) {\n router.push({ name: clazzDetailsRoute.name, query: { clazzId: String(clazzId), clazzName } })\n}\n\nexport function navigateToClazzStudentAccountDetails(router: VueRouter, clazzId: number, clazzName?: string) {\n router.push({ name: studentAuthAccountDetailRoute.name, query: { clazzId: String(clazzId), clazzName } })\n}\n\nexport function navigateToClazzDetailsForStudentCode(router: VueRouter, clazzId: number, clazzName?: string) {\n router.push({ name: clazzDetailsForStudentCodeRoute.name, query: { clazzId: String(clazzId), clazzName } })\n}\n\nexport function navigateToStudentMatchesInfo(router: VueRouter, clazzId: number) {\n router.push({\n name: studentMatchesInfoRoute.name,\n query: {\n clazzId: String(clazzId),\n },\n })\n}\n\nexport function navigateToStudentDetails(router: VueRouter, student: Student) {\n router.push({ name: studentDetailsRoute.name, query: { student: JSON.stringify(student) } })\n}\n\nexport function navigateToStudentDetailsSchoolRollNo(router: VueRouter, student: IStudentTableItemForStudentCode) {\n router.push({ name: studentDetailsSchoolRollNoRoute.name, query: { student: JSON.stringify(student) } })\n}\n\nexport function navigateToStudentDetailsSchoolAccount(router: VueRouter, student: IStudentTableItemForStudentCode) {\n router.push({ name: studentDetailsForSchoolAccountRoute.name, query: { student: JSON.stringify(student) } })\n}\n\nexport function navigateToTeacherDetails(router: VueRouter) {\n router.push({\n name: TeacherDetailRoute.name,\n })\n}\n\nexport function navigateToTeacherCreate(router: VueRouter) {\n router.push({ name: TeacherCreateRoute.name })\n}\n","// import VueRouter, { RouteConfig } from 'vue-router'\n\nconst Layout = () => import('../views/Layout.vue')\n\nexport default [\n {\n path: '/system',\n name: 'system',\n component: Layout,\n meta: {\n title: '系统功能管理',\n icon: 'i-setting',\n },\n children: [],\n },\n]\n","import VueRouter, { RouteConfig } from 'vue-router'\n\nconst LayoutEmpty = () => import('../views/LayoutEmpty.vue')\n\nconst GiftPacksActivity = () => import('../views/GiftPacksActivity.vue')\n\nexport const giftPacksRoute: RouteConfig = {\n path: 'gift-packs',\n name: 'gift_packs_activity',\n component: GiftPacksActivity,\n meta: {\n title: '体智云大礼包',\n },\n}\n\nexport default [\n {\n path: '/activity',\n name: 'activity',\n component: LayoutEmpty,\n children: [giftPacksRoute],\n },\n]\n\nexport function navigateToGiftPacksActivity(router: VueRouter) {\n router.push({ name: giftPacksRoute.name })\n}\n","// import VueRouter, { RouteConfig } from 'vue-router'\n\nconst Layout = () => import('../views/Layout.vue')\n\nexport default [\n {\n path: '/resource',\n name: 'resource',\n component: Layout,\n meta: {\n title: '教学资源助手',\n icon: 'el-icon-folder-opened',\n },\n children: [],\n },\n]\n","import VueRouter, { RouteConfig } from 'vue-router'\nimport { GlobalConfigRouteMetaEnum } from 'kuaidong-model'\n\nconst List = () => import('../views/HomeworkTemplateList.vue')\nconst Edit = () => import('../views/HomeworkTemplateEdit.vue')\nconst Details = () => import('../views/HomeworkTemplateDetails.vue')\n\nexport const listRoute: RouteConfig = {\n path: 'template-list',\n name: 'homework_template_list',\n component: List,\n meta: {\n title: '作业计划',\n },\n}\n\nexport const editRoute: RouteConfig = {\n path: 'template-edit',\n name: 'homework_template_edit',\n component: Edit,\n meta: {\n title: '作业计划',\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n}\n\nexport const detailsRoute: RouteConfig = {\n path: 'template-details',\n name: 'homework_template_details',\n component: Details,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '作业计划',\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n}\n\nexport const routes = [listRoute, editRoute, detailsRoute]\n\nexport function navigateToHomeworkTemplateList(router: VueRouter) {\n router.push({ name: listRoute.name })\n}\n\nexport function navigateToHomeworkTemplateEdit(router: VueRouter) {\n router.push({ name: editRoute.name })\n}\n\nexport function navigateToHomeworkTemplateDetails(router: VueRouter, id: string) {\n router.push({ name: detailsRoute.name, query: { id } })\n}\n","import { RouterUtil } from 'kuaidong-lib'\nimport VueRouter, { RouteConfig } from 'vue-router'\nimport { GlobalConfigRouteMetaEnum, VacationHomeworkType } from 'kuaidong-model'\n\nconst List = () => import('../views/VacationHomeworkPlanList.vue')\nconst Edit = () => import('../views/VacationHomeworkPlanEdit.vue')\nconst Details = () => import('../views/VacationHomeworkPlanDetails.vue')\nconst EditChooseTemplate = () => import('../views/VacationHomeworkPlanEditChooseTemplate.vue')\n\nexport const listRoute: RouteConfig = {\n path: 'plan-list',\n name: 'vacation_homework_plan_list',\n component: List,\n meta: {\n title: '寒假作业',\n showMenu: false,\n },\n}\n\nexport const editRoute: RouteConfig = {\n path: 'plan-edit',\n name: 'vacation_homework_plan_edit',\n component: Edit,\n meta: {\n title: '寒假作业',\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n}\n\nexport const detailsRoute: RouteConfig = {\n path: 'plan-details',\n name: 'vacation_homework_plan_details',\n component: Details,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '寒假作业',\n [GlobalConfigRouteMetaEnum.All]: true,\n [GlobalConfigRouteMetaEnum.CompetitionType]: true,\n },\n}\n\nexport const editChooseTemplateRoute: RouteConfig = {\n path: 'plan-edit-choose-template',\n name: 'vacation_homework_plan_edit_choose_template',\n component: EditChooseTemplate,\n meta: {\n title: '寒假作业',\n },\n}\n\nexport const routes = [listRoute, editRoute, detailsRoute, editChooseTemplateRoute].map((route) => ({\n ...route,\n path: `/vacation-homework/${route.path}`,\n}))\n\nexport const springSemester2022Routes = RouterUtil.cloneRoutes(\n [listRoute, editRoute, detailsRoute, editChooseTemplateRoute],\n 'spring2022',\n '新学期作业',\n {\n type: VacationHomeworkType.SpringSemester2022Homework,\n }\n).map((route) => ({\n ...route,\n path: `/spring2022-vacation-homework/${route.path}`,\n}))\n\nexport function navigateToVacationHomeworkPlanEdit(router: VueRouter) {\n router.push({ path: editRoute.path })\n}\n\nexport function redirectToVacationHomeworkPlanEdit(router: VueRouter) {\n router.replace({ path: editRoute.path })\n}\n\nexport function navigateToVacationHomeworkPlanDetails(router: VueRouter, id: string) {\n router.push({ path: detailsRoute.path, query: { id } })\n}\n\nexport function redirectToVacationHomeworkPlanDetails(router: VueRouter, id: string) {\n router.replace({ path: detailsRoute.path, query: { id } })\n}\n\nexport function navigateToVacationHomeworkPlanEditChooseTemplate(router: VueRouter) {\n router.push({ path: editChooseTemplateRoute.path })\n}\n","import { DateWrapper } from 'kuaidong-lib'\nimport VueRouter, { RouteConfig } from 'vue-router'\nimport { GlobalConfigRouteMetaEnum, HomeworkStatsType } from 'kuaidong-model'\n\nimport homeworkMenuIcon from '@/assets/images/icon_menu_homework@2x.png'\nimport homeworkMenuIconActive from '@/assets/images/icon_menu_homework_active@2x.png'\n\nimport {\n routes as templateRoutes,\n navigateToHomeworkTemplateList,\n navigateToHomeworkTemplateEdit,\n navigateToHomeworkTemplateDetails,\n} from './RHomeworkTemplate'\n\nimport {\n routes,\n springSemester2022Routes,\n navigateToVacationHomeworkPlanEdit,\n redirectToVacationHomeworkPlanEdit,\n navigateToVacationHomeworkPlanDetails,\n redirectToVacationHomeworkPlanDetails,\n navigateToVacationHomeworkPlanEditChooseTemplate,\n} from './RVacationHomework'\n\nimport {\n Summer2022Routes,\n navigateToSummerVacation2022List,\n navigateToSummerVacation2022Edit,\n navigateToSummerVacation2022Landing,\n redirectToSummerVacation2022Landing,\n} from './RSummer2022'\n\nconst Layout = () => import('../views/Layout.vue')\nconst Check = () => import('../views/HomeworkCheck.vue')\nconst Landing = () => import('../views/homework/Landing.vue')\nconst PlanEdit = () => import('../views/HomeworkPlanEdit.vue')\nconst PlanList = () => import('../views/HomeworkPlanList.vue')\nconst PlanDetails = () => import('../views/HomeworkPlanDetails.vue')\nconst PlanEditChooseTemplate = () => import('../views/HomeworkPlanEditChooseTemplate.vue')\nconst PlanDetailsForLongTerm = () => import('../views/HomeworkPlanDetailsLongTerm.vue')\nconst Stats = () => import('../views/HomeworkStats.vue')\nconst StatsDetailsGrade = () => import('../views/HomeworkStatsDetailsGrade.vue')\nconst StatsDetailsClazz = () => import('../views/HomeworkStatsDetailsClazz.vue')\nconst StatsDetailsDrill = () => import('../views/HomeworkStatsDetailsDrill.vue')\nconst StatsDetailsClock = () => import('../views/HomeworkStatsDetailsClock.vue')\nconst StatsDetailsStudent = () => import('../views/HomeworkStatsDetailsStudent.vue')\n\nconst IntelligentPlanEdit = () => import('@/views/IntelligentHomeworkPlanEdit.vue')\nconst IntelligentPlanDetails = () => import('@/views/IntelligentHomeworkPlanDetails.vue')\n\nexport const landingRoute: RouteConfig = {\n path: 'landing',\n name: 'homework_landing',\n component: Landing,\n meta: {\n title: '了解一下',\n showMenu: true,\n },\n}\n\nexport const statsRoute: RouteConfig = {\n path: 'stats',\n name: 'homework_stats',\n component: Stats,\n meta: {\n title: '统计报表',\n showMenu: true,\n },\n}\n\nexport const statsDetailsGradeRoute: RouteConfig = {\n path: 'stats-details-grade',\n name: 'homework_stats_details_grade',\n component: StatsDetailsGrade,\n props: (route) => ({\n ...route.query,\n ...route.params,\n type: HomeworkStatsType.ByGrade,\n }),\n meta: {\n title: '统计报表',\n },\n}\n\nexport const statsDetailsClazzRoute: RouteConfig = {\n path: 'stats-details-clazz',\n name: 'homework_stats_details_clazz',\n component: StatsDetailsClazz,\n props: (route) => ({\n ...route.query,\n ...route.params,\n type: HomeworkStatsType.ByClazz,\n }),\n meta: {\n title: '统计报表',\n },\n}\n\nexport const statsDetailsDrillRoute: RouteConfig = {\n path: 'stats-details-drill',\n name: 'homework_stats_details_drill',\n component: StatsDetailsDrill,\n props: (route) => ({\n ...route.query,\n ...route.params,\n type: HomeworkStatsType.ByDrill,\n }),\n meta: {\n title: '统计报表',\n },\n}\n\nexport const statsDetailsClockRoute: RouteConfig = {\n path: 'stats-details-clock',\n name: 'homework_stats_details_clock',\n component: StatsDetailsClock,\n props: (route) => ({\n ...route.query,\n ...route.params,\n type: HomeworkStatsType.ByClock,\n }),\n meta: {\n title: '统计报表',\n },\n}\n\nexport const statsDetailsStudentRoute: RouteConfig = {\n path: 'stats-details-student',\n name: 'homework_stats_details_student',\n component: StatsDetailsStudent,\n props: (route) => ({\n ...route.query,\n ...route.params,\n type: HomeworkStatsType.ByStudent,\n }),\n meta: {\n title: '统计报表',\n },\n}\n\nexport const planListRoute: RouteConfig = {\n path: 'plan-list',\n name: 'homework_plan_list',\n component: PlanList,\n meta: {\n title: '作业计划',\n showMenu: true,\n },\n}\n\nexport const planDetailsRoute: RouteConfig = {\n path: 'plan-details',\n name: 'homework_plan_details',\n component: PlanDetails,\n meta: {\n title: '作业计划',\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n props: (route) => ({\n ...route.query,\n ...route.params,\n clazzId: Number(route.query.clazzId),\n }),\n}\n\nexport const planDetailsForLongTermRoute: RouteConfig = {\n path: 'plan-details-for-long-term',\n name: 'homework_plan_details_for_long_term',\n component: PlanDetailsForLongTerm,\n meta: {\n title: '作业计划',\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n props: (route) => ({\n ...route.query,\n ...route.params,\n clazzId: Number(route.query.clazzId),\n id: route.query.id,\n }),\n}\n\nexport const planEditRoute: RouteConfig = {\n path: 'plan-edit',\n name: 'homework_plan_edit',\n component: PlanEdit,\n meta: {\n title: '作业计划',\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n props: (route) => ({\n ...route.query,\n ...route.params,\n cid: route.query.cid ? Number(route.query.cid) : undefined,\n cids: route.query.cids ? JSON.parse(route.query.cids as string) : undefined,\n\n templateId: route.query.templateId ? route.query.templateId : undefined,\n }),\n}\n\nexport const checkRoute: RouteConfig = {\n path: 'check',\n name: 'homework_check',\n component: Check,\n props: (route) => ({\n ...route.query,\n ...route.params,\n initialDate: route.query.initialDate ? new DateWrapper(route.query.initialDate as string).date : new Date(),\n }),\n meta: { title: '检查作业', showMenu: true },\n}\n\nexport const planEditChooseTemplateRoute: RouteConfig = {\n path: 'plan-edit-choose-template',\n name: 'homework_plan_edit_choose_template',\n component: PlanEditChooseTemplate,\n props: (route) => ({\n ...route.query,\n ...route.params,\n clazzId: route.query.clazzId ? Number(route.query.clazzId) : undefined,\n }),\n meta: {\n title: '作业计划',\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n}\n\nexport const IntelligentPlanEditRoute: RouteConfig = {\n path: 'intelligent-plan-edit',\n name: 'intelligent_plan_edit',\n component: IntelligentPlanEdit,\n props: (route) => ({\n ...route.query,\n ...route.params,\n clazzId: route.query.clazzId ? Number(route.query.clazzId) : undefined,\n isEdit: route.query.isEdit,\n }),\n meta: {\n title: '作业计划',\n },\n}\n\nexport const IntelligentPlanDetailsRoute: RouteConfig = {\n path: 'intelligent-plan-detail',\n name: 'intelligent_plan_detail',\n component: IntelligentPlanDetails,\n props: (route) => ({\n ...route.query,\n ...route.params,\n clazzId: route.query.clazzId ? Number(route.query.clazzId) : undefined,\n }),\n meta: {\n title: '作业计划',\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n}\n\nexport default [\n {\n path: '/homework',\n name: 'homework',\n component: Layout,\n meta: {\n title: '体育作业',\n icon: homeworkMenuIcon,\n iconActive: homeworkMenuIconActive,\n showMenu: true,\n },\n children: [\n ...Summer2022Routes,\n ...springSemester2022Routes,\n ...routes,\n planListRoute,\n planDetailsRoute,\n planDetailsForLongTermRoute,\n planEditRoute,\n checkRoute,\n planEditChooseTemplateRoute,\n IntelligentPlanEditRoute,\n IntelligentPlanDetailsRoute,\n statsRoute,\n statsDetailsGradeRoute,\n statsDetailsClazzRoute,\n statsDetailsDrillRoute,\n statsDetailsClockRoute,\n statsDetailsStudentRoute,\n ...templateRoutes,\n landingRoute,\n ],\n },\n]\n\nexport { navigateToHomeworkTemplateList, navigateToHomeworkTemplateEdit, navigateToHomeworkTemplateDetails }\n\nexport {\n navigateToVacationHomeworkPlanEdit,\n redirectToVacationHomeworkPlanEdit,\n navigateToVacationHomeworkPlanDetails,\n redirectToVacationHomeworkPlanDetails,\n navigateToVacationHomeworkPlanEditChooseTemplate,\n}\n\nexport {\n navigateToSummerVacation2022List,\n navigateToSummerVacation2022Edit,\n navigateToSummerVacation2022Landing,\n redirectToSummerVacation2022Landing,\n}\n\nexport function navigateToHomeworkCheck(router: VueRouter, initialDate = new Date()) {\n router.push({ name: checkRoute.name, query: { initialDate: new DateWrapper(initialDate).showDateStr } })\n}\n\nexport function navigateToHomeworkPlanList(router: VueRouter) {\n router.push({ name: planListRoute.name })\n}\n\nexport function navigateToHomeworkPlanEdit(router: VueRouter, classId?: string) {\n router.push({ name: planEditRoute.name, query: { cid: classId } })\n}\n\nexport function redirectToHomeworkPlanEdit(router: VueRouter, classId?: string, templateId?: string) {\n router.replace({ name: planEditRoute.name, query: { cid: classId, templateId } })\n}\n\nexport function navigateToHomeworkStatsDetails(router: VueRouter, type: HomeworkStatsType) {\n switch (type) {\n case HomeworkStatsType.ByGrade:\n return router.push({ name: statsDetailsGradeRoute.name })\n case HomeworkStatsType.ByClazz:\n return router.push({ name: statsDetailsClazzRoute.name })\n case HomeworkStatsType.ByClock:\n return router.push({ name: statsDetailsClockRoute.name })\n case HomeworkStatsType.ByDrill:\n return router.push({ name: statsDetailsDrillRoute.name })\n case HomeworkStatsType.ByStudent:\n return router.push({ name: statsDetailsStudentRoute.name })\n }\n}\n\nexport function navigateToHomeworkPlanEditChooseTemplate(router: VueRouter, clazzId?: number) {\n router.push({ name: planEditChooseTemplateRoute.name, query: { clazzId: clazzId ? String(clazzId) : null } })\n}\n\nexport function redirectToIntelligentPlanEdit(router: VueRouter, isEdit = false, clazzId: number) {\n router.replace({ name: IntelligentPlanEditRoute.name, query: { isEdit: String(isEdit), clazzId: String(clazzId) } })\n}\n\nexport function navigateToIntelligentPlanEdit(router: VueRouter, isEdit = false) {\n router.push({ name: IntelligentPlanEditRoute.name, query: { isEdit: String(isEdit) } })\n}\n\nexport function navigateToHomeworkPlanDetails(router: VueRouter, id: string) {\n router.push({ name: planDetailsRoute.name, query: { id } })\n}\n\nexport function navigateToIntelligentHomeworkPlanDetails(router: VueRouter, clazzId: number, id: string) {\n router.push({ name: IntelligentPlanDetailsRoute.name, query: { clazzId: String(clazzId), id } })\n}\n\nexport function navigateToHomeworkPlanLongTermDetails(router: VueRouter, id: string) {\n router.push({\n name: planDetailsForLongTermRoute.name,\n query: {\n id,\n },\n })\n}\n","import { RouteConfig } from 'vue-router'\n\nconst Layout = () => import('../views/Layout.vue')\nconst Index = () => import('@/views/TeachSourceIndex.vue')\nconst Detail = () => import('@/views/TeachSourceDetail.vue')\nconst Collect = () => import('@/views/TeachSourceCollect.vue')\nconst Topic = () => import('@/views/TeachSourceTopic.vue')\nconst Mine = () => import('@/views/TeachSourceMine.vue')\nconst Edit = () => import('@/views/TeachSourceEdit.vue')\n\nexport const indexRoute: RouteConfig = {\n path: 'index',\n name: 'teach_index',\n component: Index,\n meta: { title: '教案资源库', showMenu: true },\n}\n\nexport const detailRoute: RouteConfig = {\n path: 'detail',\n name: 'teach_detail',\n component: Detail,\n props: (route) => ({ id: route.query.id }),\n meta: { title: '教案资源库', showMenu: false },\n}\n\nexport const collectRoute: RouteConfig = {\n path: 'collect',\n name: 'teach_collect',\n component: Collect,\n meta: { title: '教案资源库', showMenu: false },\n}\n\nexport const topicRoute: RouteConfig = {\n path: 'topic',\n name: 'teach_topic',\n component: Topic,\n props: (route) => ({ id: route.query.id }),\n meta: { title: '教案资源库', showMenu: false },\n}\n\nexport const mineRoute: RouteConfig = {\n path: 'mine',\n name: 'teach_mine',\n component: Mine,\n meta: { title: '我的教案', showMenu: true },\n}\n\nexport const editRoute: RouteConfig = {\n path: 'edit',\n name: 'teach_edit',\n component: Edit,\n meta: { title: '我的教案', showMenu: false },\n}\nimport teachMenuIcon from '@/assets/images/icon_menu_teach@2x.png'\nimport teachMenuIconActive from '@/assets/images/icon_menu_teach_active@2x.png'\n\nexport default [\n {\n path: '/teach',\n name: 'teach',\n component: Layout,\n meta: { title: '教学资源', icon: teachMenuIcon, iconActive: teachMenuIconActive, showMenu: true },\n children: [indexRoute, detailRoute, collectRoute, topicRoute, mineRoute, editRoute],\n },\n]\n","const Workbench = () => import('../views/DashboardSchool/Index.vue')\n\nimport workbenchIcon from '@/assets/images/icon_menu_workbench@2x.png'\nimport workbenchIconActive from '@/assets/images/icon_menu_workbench_active@2x.png'\n\nexport default [\n {\n path: '/workbench',\n name: 'workbench',\n component: Workbench,\n meta: {\n title: '工作台',\n icon: workbenchIcon,\n iconActive: workbenchIconActive,\n showMenu: true,\n },\n },\n]\n","import VueRouter, { RouteConfig } from 'vue-router'\n\nimport IconMenuActive from '../assets/images/icon_menu_course_live_active@2x.png'\nimport IconMenuInactive from '../assets/images/icon_menu_course_live_inactive@2x.png'\nimport { GlobalConfigRouteMetaEnum } from 'kuaidong-model'\nimport { DateWrapper } from 'kuaidong-lib'\nconst Layout = () => import('../views/Layout.vue')\n\nconst Details = () => import('../views/CourseLiveStatisticsDetails.vue')\nconst MineCourseDetail = () => import('../views/CourseLiveMineCourseDetail.vue')\n\nconst ListMine = () => import('../views/CourseLiveListMine.vue')\nconst ListResource = () => import('../views/CourseLiveListResource.vue')\nconst ListCourseResources = () => import('../views/live-courses/ListCourseResources.vue')\nconst CourseLiveDetail = () => import('../views/live-courses/LiveCourseResourcesDetail.vue')\nconst LiveCourseLessonSchedule = () => import('../views/live-courses/LiveCourseLessonSchedule.vue')\nconst LiveCourseLessonDetail = () => import('../views/live-courses/LiveCourseLessonDetail.vue')\nconst LiveCourseLessonStatistics = () => import('../views/live-courses/LiveCourseLessonStatistics.vue')\nexport const detailsRoute: RouteConfig = {\n path: 'details',\n name: 'course_live_details',\n component: Details,\n props: (route) => {\n return {\n ...route.query,\n ...route.params,\n currentDate: new DateWrapper(JSON.parse(route.query.currentDate as string)).date,\n }\n },\n meta: {\n title: '体育课程',\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n}\n//\nexport const mineCourseDetailsRoute: RouteConfig = {\n path: 'mine-course-detail',\n name: 'mine_course_detail',\n component: MineCourseDetail,\n props: (route) => {\n return {\n ...route.query,\n ...route.params,\n currentDate: new DateWrapper(JSON.parse(route.query.currentDate as string)).date,\n }\n },\n meta: {\n title: '课程详情',\n },\n}\n\nexport const listMineRoute: RouteConfig = {\n path: 'list-mine',\n name: 'course_live_list_mine',\n component: ListMine,\n props: (route) => {\n return {\n ...route.query,\n ...route.params,\n }\n },\n meta: {\n title: '体育课程',\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n}\n\nexport const listResourceRoute: RouteConfig = {\n path: 'list-resource-old',\n name: 'course_live_list_resource_old',\n component: ListResource,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '课程资源库',\n },\n}\nexport const ListCourseResourcesRoute: RouteConfig = {\n path: 'list-resource',\n name: 'course_live_list_resource',\n component: ListCourseResources,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '课程资源库',\n showMenu: true,\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n}\nexport const CourseResourceDetailRoute: RouteConfig = {\n path: 'course-resource-detail',\n name: 'course_resource_detail',\n component: CourseLiveDetail,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '体育课程',\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n}\n\nexport const LiveCourseLessonScheduleRoute: RouteConfig = {\n path: 'live-course-time-table',\n name: 'live_course_time_table',\n component: LiveCourseLessonSchedule,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '课程表',\n showMenu: true,\n },\n}\nexport const LiveCourseLessonDetailRoute: RouteConfig = {\n path: 'live-course-lesson-detail',\n name: 'live-course-lesson-detail',\n component: LiveCourseLessonDetail,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '课程表',\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n}\n\nexport const LiveCourseLessonStatisticsRoute: RouteConfig = {\n path: 'live-course-lesson-statistics',\n name: 'live_course_lesson_statistics',\n component: LiveCourseLessonStatistics,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '课程表',\n },\n}\n\nexport default [\n {\n path: '/course-live',\n name: 'course_live',\n component: Layout,\n\n meta: {\n title: '在线体育课',\n icon: IconMenuInactive,\n iconActive: IconMenuActive,\n showMenu: true,\n },\n children: [\n ListCourseResourcesRoute,\n CourseResourceDetailRoute,\n LiveCourseLessonScheduleRoute,\n detailsRoute,\n mineCourseDetailsRoute,\n listMineRoute,\n listResourceRoute,\n LiveCourseLessonDetailRoute,\n LiveCourseLessonStatisticsRoute,\n ],\n },\n]\n\nexport function navigateToLiveCourseDetails(router: VueRouter, id: string, currentDate: Date) {\n router.push({ name: detailsRoute.name, query: { id, currentDate: JSON.stringify(currentDate) } })\n}\nexport function navigateToLiveCourseRepoDetails(router: VueRouter, id: string) {\n router.push({ name: CourseResourceDetailRoute.name, query: { id } })\n}\n\nexport function navigateToLiveCourseLessonDetail(\n router: VueRouter,\n id: string,\n from?: string,\n homeworkTemplateId?: string\n) {\n router.push({ name: LiveCourseLessonDetailRoute.name, query: { id, from, homeworkTemplateId } })\n}\n\nexport function navigateToLiveCourseLessonStatistics(router: VueRouter, id: string) {\n router.push({ name: LiveCourseLessonStatisticsRoute.name, query: { id } })\n}\n\nexport function navigateToLiveCourseTimeTable(router: VueRouter) {\n router.push({ name: LiveCourseLessonScheduleRoute.name })\n}\n","import { RouterUtil } from 'kuaidong-lib'\nimport { CompetitionMode } from 'kuaidong-model'\nimport { oldCompetitionRoutes } from './RCompetitionRegion'\n\nexport default RouterUtil.cloneRoutes(oldCompetitionRoutes, 'video', '区域视频赛', { mode: CompetitionMode.Video })\n","import { RouteConfig } from 'vue-router'\nimport { GlobalConfigRouteMetaEnum } from 'kuaidong-model'\nconst LayoutEmpty = () => import('../views/LayoutEmpty.vue')\n\nconst CompetitionManagementPage = () => import('@/views/CompetitionManagement.vue')\nconst CompetitionManagementDetailPage = () => import('@/views/CompetitionManagementDetailsInfo.vue')\nconst CompetitionManagementDetailStatePage = () => import('@/views/CompetitionManagementDetailsStats.vue')\n\nexport const managementRoute: RouteConfig = {\n path: 'management',\n name: 'competition_management',\n component: CompetitionManagementPage,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '管理比赛',\n showMenu: true,\n },\n}\nexport const managementDetailsRoute: RouteConfig = {\n path: 'management-details',\n name: 'competition_management_details',\n component: CompetitionManagementDetailPage,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '管理比赛',\n showMenu: false,\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n}\n\nexport const managementDetailStateRoute: RouteConfig = {\n path: 'management-details-stat',\n name: 'competition_management_details_stat',\n component: CompetitionManagementDetailStatePage,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '管理比赛',\n showMenu: false,\n },\n}\n\nexport default [\n {\n path: '/competition-management',\n name: 'competition_management',\n component: LayoutEmpty,\n redirect: managementRoute.name,\n children: [managementRoute, managementDetailsRoute, managementDetailStateRoute],\n },\n]\n","import { RouteConfig } from 'vue-router'\nimport { GlobalConfigRouteMetaEnum } from 'kuaidong-model'\nconst LayoutEmpty = () => import('../views/LayoutEmpty.vue')\n\nconst OnlineGameList = () => import('../views/CompetitionOnlineGameList.vue')\nconst OnlineGameDetail = () => import('../views/CompetitionOnlineGameDetail.vue')\nconst OnlineGameStatDetail = () => import('../views/CompetitionManagementDetailsStats.vue')\nconst OnlienGameAwards = () => import('../views/CompetitionOnlineGameAwards.vue')\nexport const onlineGameListRoute: RouteConfig = {\n path: 'online-game-list',\n name: 'competition_online_game_list',\n component: OnlineGameList,\n meta: {\n title: '在线运动会',\n showMenu: true,\n },\n}\n\nexport const onlineGameDetailRoute: RouteConfig = {\n path: 'online-game-detail',\n name: 'competition_online_game_detail',\n component: OnlineGameDetail,\n props: (route) => ({ ...route.query, ...route.params }),\n\n meta: {\n title: '在线运动会详情',\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n}\n\nexport const OnlineGameStatDetailRoute: RouteConfig = {\n path: 'online-game-stat-detail',\n name: 'competition_online_game_stat_detail',\n component: OnlineGameStatDetail,\n props: (route) => ({ ...route.query, ...route.params }),\n\n meta: {\n title: '在线运动会统计详情',\n },\n}\n\nexport const OnlineGameAwardsRoute: RouteConfig = {\n path: 'online-game-awards',\n name: 'competition_online_game_awards',\n component: OnlienGameAwards,\n props: (route) => ({\n drillInfo: JSON.parse(route.query.drillInfo as string),\n awardsStatus: JSON.parse(route.query.awardsStatus as string),\n matchDetail: JSON.parse(route.query.matchDetail as string),\n ...route.query,\n ...route.params,\n }),\n\n meta: {\n title: '在线运动会',\n },\n}\n\nexport default [\n {\n path: '/competition-online-game',\n name: 'competition_online_game',\n component: LayoutEmpty,\n redirect: onlineGameListRoute.name,\n children: [onlineGameListRoute, onlineGameDetailRoute, OnlineGameStatDetailRoute, OnlineGameAwardsRoute],\n },\n]\n","import { RouteConfig } from 'vue-router'\n\nconst LayoutEmpty = () => import('@/views/LayoutEmpty.vue')\n\nconst Landing = () => import('@/views/sportsfestival-2022/Landing.vue')\n\nexport const landingRoute: RouteConfig = {\n path: 'landing',\n name: 'landing',\n component: Landing,\n meta: {\n title: '2022体育节',\n showMenu: false,\n },\n}\n\nexport default [\n {\n path: '/sports-festival-2022',\n name: 'sports_festival_2022',\n component: LayoutEmpty,\n children: [landingRoute],\n },\n]\n","import VueRouter, { RouteConfig } from 'vue-router'\nimport { GlobalConfigRouteMetaEnum } from 'kuaidong-model'\n\nimport regionRoutes from './RCompetitionRegion'\nimport videoRegionRoutes from './RVideoCompetitionRegion'\nimport managementRouters from './RCompetitionManagement'\nimport onlineGameRouters from './RCompetitionOnlineGames'\nimport sportsFestivalRouters from './RSportsFestival2022'\n\nimport competitionMenuIcon from '@/assets/images/icon_menu_competition@2x.png'\nimport competitionMenuIconActive from '@/assets/images/icon_menu_competition_active@2x.png'\n\nconst Layout = () => import('../views/Layout.vue')\n\nconst List = () => import('@/views/CompetitionList.vue')\nconst Edit = () => import('../views/CompetitionCreate.vue')\nconst Launch = () => import('../views/CompetitionLaunch.vue')\nconst Landing = () => import('../views/digital-sports-meeting/Landing.vue')\nconst OnlineLaunch = () => import('../views/CompetitionOnlineLaunch.vue')\nconst Detail = () => import('@/views//CompetitionDetail.vue')\nconst DetailInfo = () => import('@/views//CompetitionDetailInfo.vue')\nconst DetailStat = () => import('@/views//CompetitionDetailStat.vue')\nconst OnlineIntro = () => import('@/views/CompetitionOnlineNotPayIntro.vue')\n\nconst CompetitionIntroPage = () => import('@/views/CompetitionNotVipIntro.vue')\n\nconst CreateSportsMeeting = () => import('../views/sports-meeting/Create.vue')\n\nexport const onlineIntroRoute: RouteConfig = {\n path: 'online-intro',\n name: 'online_intro',\n component: OnlineIntro,\n meta: {\n title: '运动会介绍',\n // showMenu: true,\n },\n}\n\nexport const listRoute: RouteConfig = {\n path: 'index',\n name: 'competition_list',\n component: List,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '校内云比赛',\n showMenu: true,\n },\n}\n\nexport const editRoute: RouteConfig = {\n path: 'edit',\n name: 'competition_edit',\n component: Edit,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '校内云比赛',\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n}\n\nexport const launchRoute: RouteConfig = {\n path: 'launch',\n name: 'competition_launch',\n component: Launch,\n meta: {\n title: '发起比赛',\n showMenu: true,\n [GlobalConfigRouteMetaEnum.All]: true,\n },\n}\n\nexport const landingRoute: RouteConfig = {\n path: 'landing',\n name: 'digital_sports_meeting_landing',\n component: Landing,\n meta: {\n title: '数字运动会',\n showMenu: true,\n },\n}\n\nexport const onlineLaunchRoute: RouteConfig = {\n path: 'online-launch',\n name: 'competition_online_launch',\n component: OnlineLaunch,\n meta: {\n title: '在线运动会',\n // showMenu: true,\n },\n}\n\nexport const detailRoute: RouteConfig = {\n path: 'detail',\n name: 'competition_detail',\n component: Detail,\n children: [\n {\n path: 'stat',\n name: 'competition_detail_stat',\n component: DetailStat,\n props: (route) => ({ id: route.query.id }),\n meta: { title: '校内云比赛' },\n },\n {\n path: 'info',\n name: 'competition_detail_info',\n component: DetailInfo,\n props: (route) => ({ id: route.query.id }),\n meta: { title: '校内云比赛' },\n },\n ],\n}\n\nexport const competitionIntroRoute: RouteConfig = {\n path: 'competition-intro',\n name: 'competition_intro',\n component: CompetitionIntroPage,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '办赛服务',\n showMenu: false,\n },\n}\n\nexport const createSportsMeetingRoute: RouteConfig = {\n path: '/sports-meeting-2022/create',\n name: 'sports_meeting_2022_create',\n component: CreateSportsMeeting,\n props: (route) => {\n return { ...route.query }\n },\n meta: {\n title: '在线运动会',\n showMenu: false,\n },\n}\n\nexport default [\n {\n path: '/competition',\n name: 'competition',\n component: Layout,\n meta: {\n title: '体育比赛',\n icon: competitionMenuIcon,\n iconActive: competitionMenuIconActive,\n // isVip: true,\n showMenu: true,\n },\n children: [\n landingRoute,\n detailRoute,\n editRoute,\n launchRoute,\n ...managementRouters,\n ...onlineGameRouters,\n\n ...regionRoutes,\n onlineLaunchRoute,\n\n ...videoRegionRoutes,\n competitionIntroRoute,\n\n listRoute,\n onlineIntroRoute,\n\n ...sportsFestivalRouters,\n\n createSportsMeetingRoute,\n ],\n },\n]\n\nexport function navigateToWebCreateCompetition(router: VueRouter) {\n router.push({ name: editRoute.name })\n}\n\nexport function navigateToCompetitionDetailStat(router: VueRouter, id: number) {\n router.push({ name: 'competition_detail_stat', query: { id: `${id}` } })\n}\n","import VueRouter, { RouteConfig } from 'vue-router'\nconst NoticeCenter = () => import('../views/NoticeCenter.vue')\n\nexport const noticeCenterRoute: RouteConfig = {\n path: '/notice-center',\n name: 'notice_center',\n component: NoticeCenter,\n meta: { title: '消息中心' },\n props: (route) => ({ category: route.query.category, title: route.query.title }),\n}\n\nexport default [noticeCenterRoute]\n\nexport function navToNoticeCenter(router: VueRouter) {\n router.push({ name: noticeCenterRoute.name })\n}\n","import { RouteConfig } from 'vue-router'\n\nimport digitalSportsIcon from '../assets/images/icon_menu_sports_digital_portrait@2x.png'\nimport digitalSportsIconActive from '../assets/images/icon_menu_sports_digital_portrait_active@2x.png'\n\nconst Layout = () => import('../views/Layout.vue')\nconst SubjectEvaluationLanding = () => import('../views/subject-evaluation/Landing.vue')\nconst SportsDigitalPortraitLanding = () => import('../views/sports-digital-portrait/Landing.vue')\n\nexport const subjectEvaluationLandingRoute: RouteConfig = {\n path: '/subject-evaluation-landing',\n name: 'subject_evaluation_landing',\n component: SubjectEvaluationLanding,\n meta: {\n title: '体育学科评价',\n showMenu: true,\n },\n}\n\nexport const sportsDigitalPortraitLandingRoute: RouteConfig = {\n path: '/sports-digital-portrait-landing',\n name: 'sports_digital_portrait_landing',\n component: SportsDigitalPortraitLanding,\n meta: {\n title: '体育数字画像',\n showMenu: true,\n },\n}\n\nexport default [\n {\n path: '/digital-sports',\n name: 'digital_sports',\n component: Layout,\n meta: {\n title: '数字体育',\n icon: digitalSportsIcon,\n iconActive: digitalSportsIconActive,\n showMenu: true,\n },\n children: [sportsDigitalPortraitLandingRoute, subjectEvaluationLandingRoute],\n },\n]\n","import { RouteConfig } from 'vue-router'\n\nimport homeworkMenuIcon from '@/assets/images/icon_menu_evaluation@2x.png'\nimport homeworkMenuIconActive from '@/assets/images/icon_menu_evaluation_active@2x.png'\n\nconst Layout = () => import('../views/Layout.vue')\nconst ClazzResultDetails = () => import('../views/ProcessEvaluationClazzResultDetails.vue')\nconst StudentResultDetails = () => import('../views/ProcessEvaluationStudentResultDetails.vue')\nconst CategoryItem = () => import('../views/ProcessEvaluationCategoryItem.vue')\nconst CategoryItemRecord = () => import('../views/ProcessEvaluationCategoryItemRecord.vue')\nconst Config = () => import('../views/ProcessEvaluationConfig.vue')\n\nexport const ClazzResultDetailsRoute: RouteConfig = {\n path: 'clazz-result-details',\n name: 'evaluation_clazz_result_details',\n component: ClazzResultDetails,\n meta: {\n title: '成绩明细',\n showMenu: false,\n },\n}\n\nexport const StudentResultDetailsRoute: RouteConfig = {\n path: 'student-result-details',\n name: 'evaluation_student_result_details',\n component: StudentResultDetails,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '成绩明细',\n showMenu: false,\n },\n}\n\nexport const CategoryItemRecordRoute: RouteConfig = {\n path: 'category-item-record',\n name: 'evaluation_record',\n component: CategoryItemRecord,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '成绩记录',\n showMenu: false,\n },\n}\n\nexport const CategoryItemRoute: RouteConfig = {\n path: 'category-items',\n name: 'evaluation_category_items',\n component: CategoryItem,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '指标成绩明细',\n showMenu: false,\n },\n}\n\nexport const ConfigRoute: RouteConfig = {\n path: 'config',\n name: 'evaluation_config',\n component: Config,\n meta: {\n title: '方案配置',\n showMenu: false,\n },\n}\n\nexport default [\n {\n path: '/process-evaluation',\n name: 'process_evaluation',\n component: Layout,\n meta: {\n title: '过程性评价',\n icon: homeworkMenuIcon,\n iconActive: homeworkMenuIconActive,\n showMenu: false,\n },\n children: [\n ClazzResultDetailsRoute,\n StudentResultDetailsRoute,\n CategoryItemRoute,\n CategoryItemRecordRoute,\n ConfigRoute,\n ],\n },\n]\n","import VueRouter, { RouteConfig } from 'vue-router'\n\nconst Layout = () => import('../views/Layout.vue')\n\nconst Edit = () => import('../views/BroadcastGymnasticsEdit.vue')\nconst List = () => import('../views/BroadcastGymnasticsList.vue')\nconst Check = () => import('../views/BroadcastGymnasticsCheck.vue')\nconst Details = () => import('../views/BroadcastGymnasticsDetails.vue')\n\nconst Index = () => import('@/views/GymnasticsList.vue')\nconst CustomEdit = () => import('@/views/GymnasticsEdit.vue')\nconst CustomDetail = () => import('@/views/GymnasticsDetail.vue')\nconst DetailInfo = () => import('@/views/GymnasticsDetailInfo.vue')\nconst DetailStat = () => import('@/views/GymnasticsDetailStat.vue')\n\nconst GymnasticsActivity = () => import('@/views/gymnastics-activity/GymnasticsActivity.vue')\n\nexport const editRoute: RouteConfig = {\n path: 'edit',\n name: 'broadcast_gymnastics_edit',\n component: Edit,\n meta: {\n title: '广播操练习',\n },\n}\n\nexport const listRoute: RouteConfig = {\n path: 'list',\n name: 'broadcast_gymnastics_list',\n component: List,\n props: (route) => ({ listType: +route.query.t || 0 }),\n meta: {\n title: '广播操练习',\n showMenu: true,\n },\n}\n\nexport const checkRoute: RouteConfig = {\n path: 'check',\n name: 'broadcast_gymnastics_check',\n component: Check,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '广播操练习',\n },\n}\n\nexport const detailsRoute: RouteConfig = {\n path: 'details',\n name: 'broadcast_gymnastics_details',\n component: Details,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '广播操练习',\n },\n}\nimport broadcastMenuIcon from '@/assets/images/icon_menu_broadcast@2x.png'\nimport broadcastMenuIconActive from '@/assets/images/icon_menu_broadcast_active@2x.png'\n\nexport const customIndexRoute: RouteConfig = {\n path: 'custom',\n name: 'gymnastic_custom_index',\n component: Index,\n meta: { title: '我的自编操', showMenu: true, rolesKey: '广播体操.自编操.查看' },\n}\n\nexport const customEditRoute: RouteConfig = {\n path: 'custom-edit',\n name: 'gymnastic_custom_edit',\n component: CustomEdit,\n props: (route) => ({ id: route.query.id }),\n meta: { title: '我的自编操', showMenu: false },\n}\n\nexport const customDetailRoute: RouteConfig = {\n path: 'custom-detail',\n name: 'gymnastic_custom_detail',\n component: CustomDetail,\n meta: { title: '我的自编操', showMenu: false },\n children: [\n {\n path: 'stat',\n name: 'gymnastic_custom_detail_stat',\n component: DetailStat,\n props: (route) => ({ id: route.query.id }),\n meta: { title: '我的自编操' },\n },\n {\n path: 'info',\n name: 'gymnastic_custom_detail_info',\n component: DetailInfo,\n props: (route) => ({ id: route.query.id }),\n meta: { title: '我的自编操' },\n },\n ],\n}\n\nexport const gymnasticActivityRoute: RouteConfig = {\n path: 'gymnastic-activity',\n name: 'gymnastic_activity',\n component: GymnasticsActivity,\n meta: { title: '智教广播操', showMenu: false },\n}\n\nexport default [\n {\n path: '/broadcast-gymnastics',\n name: 'broadcast_gymnastics',\n component: Layout,\n meta: {\n title: '广播体操',\n icon: broadcastMenuIcon,\n iconActive: broadcastMenuIconActive,\n showMenu: true,\n },\n children: [\n gymnasticActivityRoute,\n editRoute,\n listRoute,\n checkRoute,\n detailsRoute,\n customIndexRoute,\n customEditRoute,\n customDetailRoute,\n ],\n },\n]\n\nexport function navigateToGymActivity(router: VueRouter) {\n router.push({ name: gymnasticActivityRoute.name })\n}\n\nexport function navigateToBroadcastGymnasticsEdit(router: VueRouter) {\n router.push({ name: editRoute.name })\n}\n\nexport function redirectToBroadcastGymnasticsCheck(router: VueRouter, broadcastGymnasticsId: string) {\n router.replace({ name: checkRoute.name, query: { broadcastGymnasticsId } })\n}\n\nexport function navigateToBroadcastGymnasticsDetails(router: VueRouter, broadcastGymnasticsId: string) {\n router.push({ name: detailsRoute.name, query: { broadcastGymnasticsId } })\n}\n\nexport function redirectToBroadcastGymnasticsDetails(router: VueRouter, broadcastGymnasticsId: string) {\n router.replace({ name: detailsRoute.name, query: { broadcastGymnasticsId } })\n}\n","import { RouteConfig } from 'vue-router'\n\nimport IconMenuActive from '../assets/images/icon_menu_exercise_prescription_active@2x.png'\nimport IconMenuInactive from '../assets/images/icon_menu_exercise_prescription_inactive@2x.png'\n\nconst Layout = () => import('../views/Layout.vue')\n\nconst ExercisePrescriptionList = () => import('../views/ExercisePrescriptionList.vue')\nconst ExercisePrescriptionClazzDetail = () => import('../views/ExercisePrescriptionClazzDetail.vue')\nconst ExercisePrescriptionStudentDetail = () => import('../views/ExercisePrescriptionStudentDetail.vue')\nconst ExercisePrescriptionTrainingDetail = () => import('../views/ExercisePrescriptionTrainingDetail.vue')\nconst EPIntroPage = () => import('../views/ExercisePrescriptionNotVipIntro.vue')\n\nexport const exercisePrescriptionListRoute: RouteConfig = {\n path: 'exercise-prescription-list',\n name: 'exercise_prescription_list',\n component: ExercisePrescriptionList,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '训练计划',\n showMenu: true,\n },\n}\n\nexport const exercisePrescriptionClazzDetailRoute: RouteConfig = {\n path: 'clazz-detail',\n name: 'exercise_prescription_clazz_detail',\n component: ExercisePrescriptionClazzDetail,\n props: (route) => {\n route.query.startDate = JSON.parse(route.query.startDate as string)\n route.query.endDate = JSON.parse(route.query.endDate as string)\n return { ...route.query, ...route.params }\n },\n meta: {\n title: '训练计划',\n showMenu: false,\n },\n}\nexport const exercisePrescriptionTrainingDetailRoute: RouteConfig = {\n path: 'exercise-prescription-training-detail',\n name: 'exercise_prescription_training_detail',\n component: ExercisePrescriptionTrainingDetail,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '检查训练',\n showMenu: true,\n },\n}\nexport const exercisePrescriptionStudentDetailRoute: RouteConfig = {\n path: 'exercise-prescription-student_detail',\n name: 'exercise_prescription_student_detail',\n component: ExercisePrescriptionStudentDetail,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '训练计划',\n },\n}\n\nexport const epIntroPage: RouteConfig = {\n path: 'ep-intro',\n name: 'ep_intro',\n component: EPIntroPage,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '运动处方介绍',\n },\n}\n\nexport default [\n {\n path: '/exercise-prescription',\n name: 'exercise_prescription',\n component: Layout,\n meta: {\n title: '运动处方',\n icon: IconMenuInactive,\n iconActive: IconMenuActive,\n showMenu: true,\n // isVip: true\n },\n children: [\n exercisePrescriptionTrainingDetailRoute,\n exercisePrescriptionListRoute,\n exercisePrescriptionClazzDetailRoute,\n exercisePrescriptionStudentDetailRoute,\n epIntroPage,\n ],\n },\n]\n","import { RouteConfig } from 'vue-router'\n\nimport intelligentClassroomIconActive from '../assets/images/icon_menu_intelligent_classroom_active@2x.png'\nimport intelligentClassroomIconInactive from '../assets/images/icon_menu_intelligent_classroom_inactive@2x.png'\n\nconst Layout = () => import('../views/Layout.vue')\nconst Landing = () => import('../views/intelligent-classroom/Landing.vue')\n\nexport const landingRoute: RouteConfig = {\n path: 'landing',\n name: 'intelligent_classroom_landing',\n component: Landing,\n meta: {\n title: '智慧体育课堂',\n },\n}\n\nexport default [\n {\n path: '/intelligent-classroom',\n name: 'intelligent_classroom',\n component: Layout,\n redirect: landingRoute,\n meta: {\n title: '智慧体育课堂',\n icon: intelligentClassroomIconInactive,\n iconActive: intelligentClassroomIconActive,\n showMenu: true,\n },\n children: [landingRoute],\n },\n]\n","import { RouteConfig } from 'vue-router'\nimport { Role } from '@/models/role'\n\nimport workbenchIcon from '@/assets/images/icon_menu_workbench@2x.png'\nimport workbenchIconActive from '@/assets/images/icon_menu_workbench_active@2x.png'\n\nimport homeworkMenuIcon from '@/assets/images/icon_menu_homework@2x.png'\nimport homeworkMenuIconActive from '@/assets/images/icon_menu_homework_active@2x.png'\n\nconst Layout = () => import('../views/Layout.vue')\nconst baseData = () => import('../views/DataBoard/base.vue')\nconst moveData = () => import('../views/DataBoard/move.vue')\n\nconst homeworkAssignData = () => import('../views/DataBoard/homeworkAssign.vue')\nconst homeworkFinishData = () => import('../views/DataBoard/homeworkFinish.vue')\n\nexport const baseDataRoute: RouteConfig = {\n path: 'base',\n name: 'databoard_base',\n component: baseData,\n meta: {\n title: '基础数据',\n showMenu: true,\n roles: [Role.Offical],\n },\n}\n\nexport const moveDataRoute: RouteConfig = {\n path: 'move',\n name: 'databoard_move',\n component: moveData,\n meta: {\n title: '运动数据',\n showMenu: true,\n roles: [Role.Offical],\n },\n}\n\nexport const overviewRoute: RouteConfig = {\n path: '/organization/overview',\n name: 'organization_overview',\n component: Layout,\n meta: {\n title: '运动概览',\n icon: workbenchIcon,\n iconActive: workbenchIconActive,\n showMenu: true,\n roles: [Role.Offical],\n },\n children: [baseDataRoute, moveDataRoute],\n}\n\nexport const homeworkAssignDataRoute: RouteConfig = {\n path: 'homework-assign',\n name: 'homework_assign',\n component: homeworkAssignData,\n meta: {\n title: '布置情况',\n showMenu: true,\n roles: [Role.Offical],\n },\n}\n\nexport const homeworkFinishDataRoute: RouteConfig = {\n path: 'homework-finish',\n name: 'homework_finish',\n component: homeworkFinishData,\n meta: {\n title: '完成情况',\n showMenu: true,\n roles: [Role.Offical],\n },\n}\n\nexport const homeworkRoute: RouteConfig = {\n path: '/organization/homework',\n name: 'organization_homework',\n component: Layout,\n meta: {\n title: '体育作业',\n icon: homeworkMenuIcon,\n iconActive: homeworkMenuIconActive,\n showMenu: true,\n roles: [Role.Offical],\n },\n children: [homeworkAssignDataRoute, homeworkFinishDataRoute],\n}\n\nexport default [overviewRoute, homeworkRoute]\n","import { RouteConfig } from 'vue-router'\nimport newTermIcon from '@/assets/images/icon_new_term_2022_deactive@2x.png'\nimport newTermIconActive from '@/assets/images/icon_new_term_2022_active@2x.png'\n\nconst Layout = () => import('../views/Layout.vue')\n\nconst Landing = () => import('../views/winter-2023/Landing.vue')\nconst List = () => import('../views/winter-2023/List.vue')\nconst Create = () => import('../views/winter-2023/Create.vue')\nconst Preview = () => import('../views/winter-2023/Preview.vue')\n\nexport const landingRoute: RouteConfig = {\n path: '/winter-vacation-2023-landing',\n name: 'winter_vacation_2023_landing',\n component: Landing,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '2023寒假作业',\n },\n}\n\nexport const createRoute: RouteConfig = {\n path: '/winter2023-vacation-homework/create',\n name: 'winter2023_vacation_homework_create',\n component: Create,\n meta: {\n title: '2023寒假作业',\n },\n}\n\nexport const listRoute: RouteConfig = {\n path: '/winter2023-vacation-homework/list',\n name: 'winter2023_vacation_homework_list',\n component: List,\n meta: {\n title: '2023寒假作业',\n // showMenu: true,\n },\n}\n\nexport const previewRoute: RouteConfig = {\n path: '/winter-2023-preview',\n name: 'winter_2023_preview',\n component: Preview,\n props: (route) => ({\n ...route.query,\n ...route.params,\n canUpdate: JSON.parse(route.query.canUpdate as string),\n canDelete: JSON.parse(route.query.canDelete as string),\n }),\n meta: {\n title: '作业详情',\n },\n}\n\nexport const winter2023Route: RouteConfig = {\n path: '/winter-2023',\n name: 'winter_2023',\n component: Layout,\n meta: {\n title: '寒假计划',\n icon: newTermIcon,\n iconActive: newTermIconActive,\n // showMenu: true,\n },\n children: [landingRoute, listRoute, createRoute, previewRoute],\n}\n\nexport default [winter2023Route]\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"practice-clazz-detail-page\"},[_c('TitleBar',{attrs:{\"title\":\"训练表现\",\"back\":\"\"}},[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.viewPlan}},[_vm._v(\"查看计划\")])],1),_c('div',{staticClass:\"main\"},[_c('training-overview-info',{attrs:{\"training\":_vm.training}}),_c('training-clazz-static-info',{attrs:{\"clazz-summary-items\":_vm.clazzSummaryItems}}),_c('list-page',{staticClass:\"list-page\",attrs:{\"pagination-data\":_vm.pageData,\"limit\":_vm.query.limit}},[_c('el-table-column',{attrs:{\"label\":\"班级\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.class_vo.note_name || row.class_vo.name)+\" \")]}}])}),_c('el-table-column',{attrs:{\"label\":\"人数\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.students_count)+\" \")]}}])}),_c('el-table-column',{attrs:{\"label\":\"完成人数\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.completion_count)+\" \")]}}])}),_c('el-table-column',{attrs:{\"label\":\"完成率\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_c('span',{style:(_vm.service.participatedRateColor(row.completion_rate * 100))},[_vm._v(\" \"+_vm._s(_vm.formatRate(row.completion_rate / 100))+\"% \")])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"action\",\"label\":\"更多操作\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_c('el-button',{attrs:{\"type\":\"text\"},on:{\"click\":function($event){return _vm.navToDetail(row.challenge_class_id)}}},[_vm._v(\"详情\")])]}}])})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"training-overview-info-comp\"},[_c('div',{staticClass:\"title\"},[_c('progress-status-tag',{attrs:{\"start-time\":_vm.training.start_datetime,\"end-time\":_vm.training.end_datetime,\"type\":\"tag\"}}),_vm._v(\" \"+_vm._s(_vm.training.name)+\" \")],1),_c('div',{staticClass:\"items\"},[_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"考试时间\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.formatDate(_vm.training.start_datetime))+\" ~ \"+_vm._s(_vm.formatDate(_vm.training.end_datetime)))])]),_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"布置教室\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.training.teacher_vo.teacher_name))])]),_c('div',{staticClass:\"item clazz\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"布置班级\")]),_c('div',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(_vm.clazzInfo.map((clazz) => clazz.note_name || clazz.name).join('、'))+\" \")])])]),_c('div',{staticClass:\"split-line\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./TrainingOverviewInfo.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./TrainingOverviewInfo.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TrainingOverviewInfo.vue?vue&type=template&id=0e6a7b02\"\nimport script from \"./TrainingOverviewInfo.vue?vue&type=script&lang=ts\"\nexport * from \"./TrainingOverviewInfo.vue?vue&type=script&lang=ts\"\nimport style0 from \"./TrainingOverviewInfo.vue?vue&type=style&index=0&id=0e6a7b02&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"training-clazz-static-info-comp\"},[_c('div',{staticClass:\"title\"},[_c('span',[_vm._v(\" 班级统计 \")]),(_vm.clazzOptions)?_c('el-form',{attrs:{\"inline\":\"\"}},[_c('el-form-item',[_c('cs-select',{attrs:{\"value\":_vm.value,\"label\":\"班级\"},on:{\"change\":_vm.updateClazzId}},_vm._l((_vm.clazzOptions),function(option,index){return _c('el-option',{key:index,attrs:{\"value\":option.value,\"label\":option.label}})}),1)],1)],1):_vm._e()],1),_c('div',{staticClass:\"summary-box-comp\"},_vm._l((_vm.clazzSummaryItems),function(info,index){return _c('div',{key:index,staticClass:\"item\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(info.title))]),_c('div',{staticClass:\"value\",style:(_vm.getValueStyle(info))},[_vm._v(\" \"+_vm._s(info.title === '完成率' ? _vm.formatRate(+info.value) : info.value)+_vm._s(info.title === '完成率' ? '%' : '')+\" \")])])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./TrainingClazzStaticInfo.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./TrainingClazzStaticInfo.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TrainingClazzStaticInfo.vue?vue&type=template&id=251ed026\"\nimport script from \"./TrainingClazzStaticInfo.vue?vue&type=script&lang=ts\"\nexport * from \"./TrainingClazzStaticInfo.vue?vue&type=script&lang=ts\"\nimport style0 from \"./TrainingClazzStaticInfo.vue?vue&type=style&index=0&id=251ed026&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PracticeClazzDetail.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PracticeClazzDetail.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PracticeClazzDetail.vue?vue&type=template&id=881e8696\"\nimport script from \"./PracticeClazzDetail.vue?vue&type=script&lang=ts\"\nexport * from \"./PracticeClazzDetail.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PracticeClazzDetail.vue?vue&type=style&index=0&id=881e8696&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"practice-student-list-page\"},[_c('TitleBar',{attrs:{\"title\":\"训练表现\",\"back\":\"\"}}),_c('div',{staticClass:\"main\"},[_c('training-overview-info',{attrs:{\"training\":_vm.training}}),_c('training-clazz-static-info',{attrs:{\"clazz-summary-items\":_vm.clazzSummaryItems,\"clazz-options\":_vm.clazzOptions,\"value\":_vm.clazzId},on:{\"change\":_vm.updateClazzId}}),_c('list-page',{staticClass:\"list-page\",attrs:{\"data\":_vm.studentList,\"limit\":_vm.query.limit}},[_c('el-table-column',{attrs:{\"label\":\"学生姓名\",\"prop\":\"name\"}}),_c('el-table-column',{attrs:{\"label\":\"年级班级\",\"prop\":\"class_name\"}}),_c('el-table-column',{attrs:{\"label\":\"性别\",\"prop\":\"gender\"}}),_c('el-table-column',{attrs:{\"label\":\"完成情况\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_c('div',{staticClass:\"completion-status\"},[_c('div',{class:['status', _vm.statusClass(row.completion_status)]}),_vm._v(\" \"+_vm._s(row.completion_status)+\" \")])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"action\",\"label\":\"更多操作\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_c('el-button',{attrs:{\"type\":\"text\"},on:{\"click\":function($event){return _vm.navToDetail(row.user_id)}}},[_vm._v(\"详情\")])]}}])})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PracticeStudentList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PracticeStudentList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PracticeStudentList.vue?vue&type=template&id=7dac8f64\"\nimport script from \"./PracticeStudentList.vue?vue&type=script&lang=ts\"\nexport * from \"./PracticeStudentList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PracticeStudentList.vue?vue&type=style&index=0&id=7dac8f64&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"exam_practice_student_detail\"},[_c('TitleBar',{attrs:{\"title\":\"学生答题详情\",\"back\":\"\"}}),_c('div',{staticClass:\"header\"},[_c('img',{staticClass:\"avatar\",attrs:{\"src\":_vm.student.head_img_url}}),_c('div',{staticClass:\"info-box\"},[_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm._show_student_name(_vm.student)))]),_c('div',{staticClass:\"clazz-name\"},[_vm._v(_vm._s(_vm.clazzName))])]),_c('div',{staticClass:\"score-info\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"综合评价\")]),_c('div',{staticClass:\"score\"},[_vm._v(_vm._s(_vm.totalScore))])])]),_c('div',{staticClass:\"main\"},_vm._l((_vm.records),function(record,index){return _c('div',{key:index,staticClass:\"card\"},[(record.max_paper_record)?_c('personal-exam-record-card',{attrs:{\"paper-record\":record.max_paper_record,\"name\":record.name,\"seq\":index + 1}}):_c('personal-drill-record-card',{attrs:{\"seq\":index + 1,\"name\":record.name,\"drill-infos\":record.drill_records}})],1)}),0)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"personal-drill-record-card-comp\"},[_c('div',{staticClass:\"header\"},[_c('div',{staticClass:\"wrapper\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.seq)+\"、\"+_vm._s(_vm.name))])]),_c('div',{staticClass:\"tip\"},[_vm._v(\"运动\"+_vm._s(_vm.drillInfos.length)+\"次\")])]),_vm._l((_vm.drillInfos),function(drill,index){return _c('div',{key:index,staticClass:\"drill-info\",on:{\"click\":function($event){return _vm.showDrillReportPopup(drill.drill_record_id)}}},[_c('div',{staticClass:\"detail-info\"},[_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"wrapper\"},[_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(drill.name))]),(!!drill.ai_detect_label)?_c('div',{staticClass:\"detect-info\"},[_vm._v(\"AI检测结果为\"+_vm._s(drill.ai_detect_label))]):_vm._e()]),_c('div',{staticClass:\"time\"},[_vm._v(_vm._s(_vm.formatTime(drill.time)))])]),_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"name\"},[_vm._v(\"运动时长\")]),_c('div',{staticClass:\"value\"},[_c('span',[_vm._v(_vm._s(_vm.formatDuration(drill.duration)))]),_vm._v(\" 分钟 \")])]),_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"name\"},[_vm._v(\"得分评价\")]),_c('div',{staticClass:\"value\"},[_c('span',[_vm._v(_vm._s(drill.star_score))])])])])])}),(_vm.showDrillReport)?_c('el-dialog',{attrs:{\"visible\":_vm.showDrillReport},on:{\"update:visible\":function($event){_vm.showDrillReport=$event}}},[_c('drill-report',{attrs:{\"id\":_vm.currentDrillReportId,\"show-illegal-btn\":false,\"show-rank-down-btn\":false}})],1):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PersonalDrillRecordCard.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PersonalDrillRecordCard.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PersonalDrillRecordCard.vue?vue&type=template&id=2433344f\"\nimport script from \"./PersonalDrillRecordCard.vue?vue&type=script&lang=ts\"\nexport * from \"./PersonalDrillRecordCard.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PersonalDrillRecordCard.vue?vue&type=style&index=0&id=2433344f&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"personal-exam-record-card-comp\"},[_c('div',{staticClass:\"header\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.seq)+\"、\"+_vm._s(_vm.name))])]),_c('div',{staticClass:\"overview\"},_vm._l((_vm.overviewInfo),function(item,index){return _c('div',{key:index,staticClass:\"item\"},[_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(item.name))]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(item.value))])])}),0),_vm._l((_vm.questionInfo),function(question,index){return _c('div',{key:index,staticClass:\"questions\"},[_c('div',{staticClass:\"question\",class:[_vm.calcQuestionClass(question.status)]},[_c('div',{staticClass:\"content\"},[_vm._v(_vm._s(index + 1)+\"、\"+_vm._s(question.subject))]),_c('div',{staticClass:\"options\"},_vm._l((question.options),function(option,index){return _c('div',{key:index,staticClass:\"option\",class:_vm.calcStatus(question, option.id)},[_vm._v(\" \"+_vm._s(_vm.no[index])+\" : \"+_vm._s(option.content)+\" \")])}),0),_c('div',{staticClass:\"answer\"},[_c('span',{staticClass:\"label\"},[_vm._v(\"答案:\")]),_vm._v(\" \"+_vm._s(_vm.showRightSeq(question))+\" \")]),(question.explanation)?_c('div',{staticClass:\"explanation\"},[_vm._v(\"解析:\"+_vm._s(question.explanation))]):_vm._e()])])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PersonalExamRecordCard.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PersonalExamRecordCard.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PersonalExamRecordCard.vue?vue&type=template&id=2dd375b4\"\nimport script from \"./PersonalExamRecordCard.vue?vue&type=script&lang=ts\"\nexport * from \"./PersonalExamRecordCard.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PersonalExamRecordCard.vue?vue&type=style&index=0&id=2dd375b4&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PracticeStudentDetail.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PracticeStudentDetail.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PracticeStudentDetail.vue?vue&type=template&id=2c768036\"\nimport script from \"./PracticeStudentDetail.vue?vue&type=script&lang=ts\"\nexport * from \"./PracticeStudentDetail.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PracticeStudentDetail.vue?vue&type=style&index=0&id=2c768036&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import VueRouter, { RouteConfig } from 'vue-router'\nconst PracticeList = () => import('@/views/special-skill/PracticeList.vue')\nconst TaskList = () => import('@/views/special-skill/TaskList.vue')\nconst TaskDetail = () => import('@/views/special-skill/TaskDetail.vue')\n\nimport specialSkillIcon from '../views/special-skill/assets/icon_special_skill_gray@2x.png'\nimport specialSkillIconActive from '../views/special-skill/assets/icon_special_skill@2x.png'\nimport PracticeClazzDetailPage from '../views/special-skill/PracticeClazzDetail.vue'\nimport PracticeStudentListPage from '../views/special-skill/PracticeStudentList.vue'\nimport PracticeStudentDetailPage from '@/views/special-skill/PracticeStudentDetail.vue'\n\nconst Layout = () => import('../views/Layout.vue')\n\nexport const PracticeRoute: RouteConfig = {\n path: '/exam-practice-list-2023',\n name: 'exam_practice_list_2023',\n component: PracticeList,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '任务列表',\n showMenu: true,\n },\n}\n\nexport const TaskRoute: RouteConfig = {\n path: '/exam-task-list',\n name: 'exam_task_list',\n component: TaskList,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '训练列表',\n showMenu: true,\n },\n}\n\nexport const PracticeClazzDetailRoute: RouteConfig = {\n path: '/exam-practice-clazz-detail',\n name: 'exam_practice_clazz_detail',\n component: PracticeClazzDetailPage,\n props: (route) => ({ ...route.query, ...route.params, training: JSON.parse(route.query.training as string) }),\n meta: {\n title: '任务列表',\n },\n}\n\nexport const PracticeStudentListRoute: RouteConfig = {\n path: '/exam-practice-student-detail',\n name: 'exam_practice_student_list_detail',\n component: PracticeStudentListPage,\n props: (route) => ({\n ...route.query,\n ...route.params,\n ...route.query,\n ...route.params,\n training: JSON.parse(route.query.training as string),\n clazzOptions: JSON.parse(route.query.clazzOptions as string),\n challengeClassId: route.query.challengeClassId,\n }),\n meta: {\n title: '任务列表',\n },\n}\n\nexport const PracticeStudentDetailRoute: RouteConfig = {\n path: '/winter_2023_question_student_training_record_detail',\n name: 'winter_2023_question_student_training_record_detail',\n component: PracticeStudentDetailPage,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '个人训练记录',\n },\n}\n\nexport const TaskDetailRoute: RouteConfig = {\n path: '/exam-task-detail',\n name: 'exam_task_detail',\n component: TaskDetail,\n props: (route) => ({ ...route.query, ...route.params, id: route.query.id }),\n meta: {\n title: '训练列表',\n },\n}\n\nexport const SpecialSkillRoute: RouteConfig = {\n path: '/exam-or-practice-special-skill',\n name: 'exam_or_practice_special_skill',\n component: Layout,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '专项技能',\n showMenu: true,\n icon: specialSkillIcon,\n iconActive: specialSkillIconActive,\n },\n children: [\n PracticeRoute,\n TaskRoute,\n TaskDetailRoute,\n PracticeClazzDetailRoute,\n PracticeStudentListRoute,\n PracticeStudentDetailRoute,\n ],\n}\n\nexport default [SpecialSkillRoute]\n\nexport function navToTaskDetail(router: VueRouter, id: string, imgUrl: string, from?: string) {\n router.push({ name: TaskDetailRoute.name, query: { id, imgUrl, from } })\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"knowledge-repo-page\"},[_c('title-bar',{attrs:{\"title\":\"知识库\"}},[_c('el-input',{attrs:{\"placeholder\":\"搜索知识问答\"},model:{value:(_vm.query.title),callback:function ($$v) {_vm.$set(_vm.query, \"title\", $$v)},expression:\"query.title\"}},[_c('i',{staticClass:\"el-input__icon el-icon-search\",attrs:{\"slot\":\"prefix\"},slot:\"prefix\"})])],1),_c('div',{staticClass:\"main\"},_vm._l((_vm.filterExamList),function(exam,index){return _c('div',{key:index,staticClass:\"exam-overview-card\",on:{\"click\":function($event){return _vm.navToExamDetail(exam)}}},[_c('img',{attrs:{\"src\":require(\"./assets/img_knowledge_poster@2x.png\")}}),_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(exam.title))]),_c('div',{staticClass:\"author\"},[_vm._v(_vm._s(exam.author))])])}),0)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgeRepo.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgeRepo.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./KnowledgeRepo.vue?vue&type=template&id=6c670869\"\nimport script from \"./KnowledgeRepo.vue?vue&type=script&lang=ts\"\nexport * from \"./KnowledgeRepo.vue?vue&type=script&lang=ts\"\nimport style0 from \"./KnowledgeRepo.vue?vue&type=style&index=0&id=6c670869&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"knowledge-repo-page\"},[_c('title-bar',{attrs:{\"title\":\"试卷详情\"}},[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.assign}},[_vm._v(\"立即布置\")])],1),(_vm.paperDetail)?_c('question-detail-content',{attrs:{\"paperDetail\":_vm.paperDetail}}):_vm._e(),_c('question-type-select-popup',{attrs:{\"visible\":_vm.selectPopupVisible},on:{\"change\":_vm.navToExamOrPracticeAssign,\"update:visible\":function($event){_vm.selectPopupVisible=$event}}}),_c('assign-exam-popup',{attrs:{\"id\":_vm.id,\"name\":_vm.paperName,\"total-questions\":_vm.totalQuestions,\"visible\":_vm.assignExamPopupVisible},on:{\"update:visible\":function($event){_vm.assignExamPopupVisible=$event},\"back\":_vm.backTypeSelect}}),_c('assign-practice-popup',{attrs:{\"id\":_vm.id,\"name\":_vm.paperName,\"visible\":_vm.assignPracticePopupVisible},on:{\"update:visible\":function($event){_vm.assignPracticePopupVisible=$event},\"back\":_vm.backTypeSelect}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"question-content\"},[(_vm.paperDetail)?_c('div',{staticClass:\"header\"},[_c('div',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.paperDetail.title)+\" \")]),_vm._m(0),_c('div',{staticClass:\"split-line\"}),_c('div',{staticClass:\"rules\"},[_vm._l((_vm.questionGroupByCategory),function(categoryGroup,index){return _c('div',{key:index,staticClass:\"item\"},[_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(index))]),_c('div',{staticClass:\"counts\"},[_vm._v(_vm._s(categoryGroup.length)),_c('span',[_vm._v(\"题\")])])])}),_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"name\"},[_vm._v(\"低难度\")]),_c('div',{staticClass:\"counts\"},[_vm._v(_vm._s(_vm.lowCounts)),_c('span',[_vm._v(\"题\")])])]),_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"name\"},[_vm._v(\"中等难度\")]),_c('div',{staticClass:\"counts\"},[_vm._v(_vm._s(_vm.mediumCounts)),_c('span',[_vm._v(\"题\")])])]),_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"name\"},[_vm._v(\"高难度\")]),_c('div',{staticClass:\"counts\"},[_vm._v(_vm._s(_vm.highCounts)),_c('span',[_vm._v(\"题\")])])])],2)]):_vm._e(),_c('div',{staticClass:\"question-list\"},[_c('div',{staticClass:\"questions\"},_vm._l((_vm.questions),function(question,index){return _c('question-info',{key:index,attrs:{\"show-explanation\":true,\"questionInfo\":question,\"seqNo\":index + 1}})}),1)])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tip\"},[_c('div',{staticClass:\"left\"},[_vm._v(\"体智云官方\")])])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"question-info-comp\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.seqNo)+\".\"+_vm._s(_vm.questionInfo.subject))]),_c('div',{staticClass:\"tags\"},[_c('div',{staticClass:\"tag difficult\",class:[_vm.calcDifficultyClass(_vm.questionInfo.difficulty_level)]},[_vm._v(\" \"+_vm._s(_vm.questionInfo.difficulty_level)+\" \")]),_c('div',{staticClass:\"tag category\"},[_vm._v(\" \"+_vm._s(_vm.questionInfo.category)+\" \")])]),_c('div',{staticClass:\"options\"},_vm._l((_vm.questionInfo.options),function(option,index){return _c('div',{key:index,staticClass:\"option\"},[_vm._v(\" \"+_vm._s(_vm.no[option.seq - 1])+\" : \"+_vm._s(option.content)+\" \")])}),0),_c('div',{staticClass:\"answer\"},[_c('span',{staticClass:\"label\"},[_vm._v(\"答案:\")]),_vm._v(\" \"+_vm._s(_vm.showRightSeq(_vm.questionInfo.options))+\" \")]),(_vm.showExplanation && _vm.questionInfo.explanation)?_c('div',{staticClass:\"explanation\"},[_vm._v(\" 解析:\"+_vm._s(_vm.questionInfo.explanation)+\" \")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionInfo.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionInfo.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./QuestionInfo.vue?vue&type=template&id=f317df3c\"\nimport script from \"./QuestionInfo.vue?vue&type=script&lang=ts\"\nexport * from \"./QuestionInfo.vue?vue&type=script&lang=ts\"\nimport style0 from \"./QuestionInfo.vue?vue&type=style&index=0&id=f317df3c&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionDetailContent.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionDetailContent.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./QuestionDetailContent.vue?vue&type=template&id=2e394500\"\nimport script from \"./QuestionDetailContent.vue?vue&type=script&lang=ts\"\nexport * from \"./QuestionDetailContent.vue?vue&type=script&lang=ts\"\nimport style0 from \"./QuestionDetailContent.vue?vue&type=style&index=0&id=2e394500&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('el-dialog',{staticClass:\"exam-type-select-popup\",attrs:{\"visible\":_vm.show,\"width\":\"600px\",\"center\":\"\"},on:{\"update:visible\":function($event){_vm.show=$event}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\"选择布置类型\")]},proxy:true},{key:\"default\",fn:function(){return [_c('ul',{staticClass:\"types\"},_vm._l((_vm.types),function(type){return _c('li',{key:type.value,staticClass:\"type\",class:{ selected: _vm.value === type.value },on:{\"click\":function($event){return _vm.select(type.value)}}},[_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(type.label))]),_c('p',{staticClass:\"text\"},[_vm._v(_vm._s(type.text))]),_vm._l((type.tips),function(tip,idx){return _c('p',{key:idx,staticClass:\"tips\"},[_vm._v(_vm._s(tip))])})],2)}),0),_c('div',{staticClass:\"footer\"},[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.change}},[_vm._v(\"确认布置\")])],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./TypeSelectPopup.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./TypeSelectPopup.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TypeSelectPopup.vue?vue&type=template&id=3085eba3\"\nimport script from \"./TypeSelectPopup.vue?vue&type=script&lang=ts\"\nexport * from \"./TypeSelectPopup.vue?vue&type=script&lang=ts\"\nimport style0 from \"./TypeSelectPopup.vue?vue&type=style&index=0&id=3085eba3&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('el-dialog',{staticClass:\"assign-exam-popup\",attrs:{\"visible\":_vm.show,\"width\":\"600px\",\"center\":\"\"},on:{\"update:visible\":function($event){_vm.show=$event}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\"设置考试内容\")]},proxy:true},{key:\"default\",fn:function(){return [_c('el-form',{attrs:{\"inline\":\"\"}},[_c('el-form-item',{attrs:{\"label\":\"考试名称\"}},[_c('el-input',{model:{value:(_vm.form.name),callback:function ($$v) {_vm.$set(_vm.form, \"name\", $$v)},expression:\"form.name\"}})],1),_c('el-form-item',{attrs:{\"label\":\"开始日期\"}},[_c('el-date-picker',{model:{value:(_vm.form.start_datetime),callback:function ($$v) {_vm.$set(_vm.form, \"start_datetime\", $$v)},expression:\"form.start_datetime\"}})],1),_c('el-form-item',{attrs:{\"label\":\"考试时间\"}},[_c('el-time-picker',{attrs:{\"format\":\"HH:mm\"},model:{value:(_vm.time),callback:function ($$v) {_vm.time=$$v},expression:\"time\"}})],1),_c('el-form-item',{attrs:{\"label\":\"考试时长\"}},[_c('el-select',{model:{value:(_vm.duration),callback:function ($$v) {_vm.duration=$$v},expression:\"duration\"}},_vm._l((_vm.durationOption),function(item){return _c('el-option',{key:item.value,attrs:{\"label\":item.label,\"value\":item.value}})}),1)],1),_c('el-form-item',{attrs:{\"label\":\"每题分值\"}},[_c('el-select',{model:{value:(_vm.form.question_score),callback:function ($$v) {_vm.$set(_vm.form, \"question_score\", $$v)},expression:\"form.question_score\"}},_vm._l((_vm.scoreOption),function(item){return _c('el-option',{key:item.value,attrs:{\"label\":item.label,\"value\":item.value}})}),1)],1),_c('el-form-item',{attrs:{\"label\":\"选择班级\"}},[_c('el-cascader',{attrs:{\"options\":_vm.clazzOptions,\"placeholder\":\"请选择班级\",\"collapse-tags\":\"\",\"props\":{ multiple: true },\"clearable\":\"\"},model:{value:(_vm.form.class_id_list),callback:function ($$v) {_vm.$set(_vm.form, \"class_id_list\", $$v)},expression:\"form.class_id_list\"}})],1),_c('el-form-item',{attrs:{\"label\":\"总分\"}},[_c('div',{staticClass:\"total-score\"},[_vm._v(_vm._s(_vm.totalScore))])])],1),_c('div',{staticClass:\"footer\"},[_c('el-button',{on:{\"click\":_vm.back}},[_vm._v(\"上一步\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.assign}},[_vm._v(\"确认布置\")])],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./AssignExamPopup.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./AssignExamPopup.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./AssignExamPopup.vue?vue&type=template&id=4c206d76\"\nimport script from \"./AssignExamPopup.vue?vue&type=script&lang=ts\"\nexport * from \"./AssignExamPopup.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AssignExamPopup.vue?vue&type=style&index=0&id=4c206d76&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('el-dialog',{staticClass:\"assign-practice-popup\",attrs:{\"visible\":_vm.show,\"width\":\"600px\",\"center\":\"\"},on:{\"update:visible\":function($event){_vm.show=$event}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\"设置练习内容\")]},proxy:true},{key:\"default\",fn:function(){return [_c('el-form',{attrs:{\"inline\":\"\"}},[_c('el-form-item',{attrs:{\"label\":\"练习名称\"}},[_c('el-input',{model:{value:(_vm.form.name),callback:function ($$v) {_vm.$set(_vm.form, \"name\", $$v)},expression:\"form.name\"}})],1),_c('el-form-item',{attrs:{\"label\":\"开始日期\"}},[_c('el-date-picker',{model:{value:(_vm.form.start_datetime),callback:function ($$v) {_vm.$set(_vm.form, \"start_datetime\", $$v)},expression:\"form.start_datetime\"}})],1),_c('el-form-item',{attrs:{\"label\":\"结束日期\"}},[_c('el-date-picker',{model:{value:(_vm.form.end_datetime),callback:function ($$v) {_vm.$set(_vm.form, \"end_datetime\", $$v)},expression:\"form.end_datetime\"}})],1),_c('el-form-item',{attrs:{\"label\":\"选择班级\"}},[_c('el-cascader',{attrs:{\"options\":_vm.clazzOptions,\"placeholder\":\"请选择班级\",\"props\":{ multiple: true },\"collapse-tags\":\"\",\"clearable\":\"\"},model:{value:(_vm.form.class_id_list),callback:function ($$v) {_vm.$set(_vm.form, \"class_id_list\", $$v)},expression:\"form.class_id_list\"}})],1)],1),_c('div',{staticClass:\"footer\"},[_c('el-button',{on:{\"click\":_vm.back}},[_vm._v(\"上一步\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.assign}},[_vm._v(\"确认布置\")])],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./AssignPracticePopup.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./AssignPracticePopup.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./AssignPracticePopup.vue?vue&type=template&id=eeef6892\"\nimport script from \"./AssignPracticePopup.vue?vue&type=script&lang=ts\"\nexport * from \"./AssignPracticePopup.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AssignPracticePopup.vue?vue&type=style&index=0&id=eeef6892&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgeExamDetail.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgeExamDetail.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./KnowledgeExamDetail.vue?vue&type=template&id=0e6442ec\"\nimport script from \"./KnowledgeExamDetail.vue?vue&type=script&lang=ts\"\nexport * from \"./KnowledgeExamDetail.vue?vue&type=script&lang=ts\"\nimport style0 from \"./KnowledgeExamDetail.vue?vue&type=style&index=0&id=0e6442ec&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"knowledge-exam-list-page\"},[_c('title-bar',{attrs:{\"title\":\"体育健康知识\"}}),(_vm.examList.length)?_c('div',{staticClass:\"main\"},_vm._l((_vm.examList),function(exam,index){return _c('exam-card',{key:index,attrs:{\"exam\":exam},on:{\"remove\":function($event){return _vm.handleRemove(exam)},\"updateName\":function($event){return _vm.showUpdateNamePopup(exam)},\"updateTime\":function($event){return _vm.showUpdatePopup(exam)},\"navToExamSummary\":_vm.navToExamSummary}})}),1):_c('div',{staticClass:\"empty\"},[_c('img',{attrs:{\"src\":require(\"./assets/img_exam_empty@2x.png\")}}),_c('el-button',{on:{\"click\":_vm.navToRepo}},[_vm._v(\" 从知识库布置\")])],1),(_vm.selectItem)?_c('el-dialog',{staticClass:\"update-exam-time-dialog\",attrs:{\"width\":\"486px\",\"center\":\"\",\"title\":\"调整考试时间\",\"visible\":_vm.updateTimePopupVisible},on:{\"confirm\":_vm.updateChallengeTime,\"update:visible\":function($event){_vm.updateTimePopupVisible=$event}}},[_c('el-form',{attrs:{\"inline\":\"\"}},[_c('el-form-item',{attrs:{\"label\":\"开始日期\"}},[_c('el-date-picker',{model:{value:(_vm.selectItem.start_datetime),callback:function ($$v) {_vm.$set(_vm.selectItem, \"start_datetime\", $$v)},expression:\"selectItem.start_datetime\"}})],1),_c('el-form-item',{attrs:{\"label\":\"考试时间\"}},[_c('el-time-picker',{attrs:{\"format\":\"HH:mm\"},model:{value:(_vm.time),callback:function ($$v) {_vm.time=$$v},expression:\"time\"}})],1),_c('el-form-item',{attrs:{\"label\":\"考试时长\"}},[_c('el-select',{model:{value:(_vm.duration),callback:function ($$v) {_vm.duration=$$v},expression:\"duration\"}},_vm._l((_vm.durationOption),function(item){return _c('el-option',{key:item.value,attrs:{\"label\":item.label,\"value\":item.value}})}),1)],1)],1),_c('div',{staticClass:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.updateTimePopupVisible = false}}},[_vm._v(\" 取消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.updateChallengeTime}},[_vm._v(\" 确认\")])],1)],1):_vm._e(),_c('update-name-popup',{attrs:{\"visible\":_vm.updateNamePopupVisible,\"name\":_vm.updateName},on:{\"update:visible\":function($event){_vm.updateNamePopupVisible=$event},\"confirm\":_vm.updateExamName}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"exam-card-comp\"},[_c('div',{staticClass:\"header\"},[_c('div',{staticClass:\"title\"},[_c('span',{staticClass:\"tag\",class:[_vm.calcStatus(_vm.exam.status)]},[_vm._v(_vm._s(_vm.exam.status))])]),_c('dropdown-menu',{attrs:{\"menu\":\"更多操作\",\"menu-type\":\"span\",\"drop-down-items\":_vm.dropDownItems},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([{key:\"menu\",fn:function(){return [_vm._v(\"...\")]},proxy:true}])})],1),_c('div',{staticClass:\"main\",on:{\"click\":function($event){$event.preventDefault();return _vm.navToExamSummary.apply(null, arguments)}}},[_c('img',{attrs:{\"src\":require(\"../assets/img_exam_flag@2x.png\")}}),_c('div',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.exam.title)+\" \")])]),_c('div',{staticClass:\"info-box\",on:{\"click\":function($event){$event.preventDefault();return _vm.navToExamSummary.apply(null, arguments)}}},[_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"布置班级\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.exam.clazzName))])]),_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"考试时间\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.exam.date))])]),_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"布置教师\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.exam.creator))])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./ExamCard.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./ExamCard.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ExamCard.vue?vue&type=template&id=1eec7d1d\"\nimport script from \"./ExamCard.vue?vue&type=script&lang=ts\"\nexport * from \"./ExamCard.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ExamCard.vue?vue&type=style&index=0&id=1eec7d1d&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('el-dialog',{staticClass:\"update-name-popup-comp\",attrs:{\"width\":\"486px\",\"title\":\"修改名称\",\"center\":\"\",\"visible\":_vm.updateNamePopupVisible},on:{\"update:visible\":function($event){_vm.updateNamePopupVisible=$event}}},[_c('el-form',{attrs:{\"inline\":\"\"}},[_c('el-form-item',{attrs:{\"label\":_vm.label}},[_c('el-input',{attrs:{\"placeholder\":\"请输入考试名称\"},model:{value:(_vm.updateName),callback:function ($$v) {_vm.updateName=$$v},expression:\"updateName\"}})],1)],1),_c('div',{staticClass:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.updateNamePopupVisible = false}}},[_vm._v(\" 取消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.confirm}},[_vm._v(\" 确认\")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateNamePopup.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateNamePopup.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./UpdateNamePopup.vue?vue&type=template&id=768a8ef8\"\nimport script from \"./UpdateNamePopup.vue?vue&type=script&lang=ts\"\nexport * from \"./UpdateNamePopup.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UpdateNamePopup.vue?vue&type=style&index=0&id=768a8ef8&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgeExamList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgeExamList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./KnowledgeExamList.vue?vue&type=template&id=66beb7e0\"\nimport script from \"./KnowledgeExamList.vue?vue&type=script&lang=ts\"\nexport * from \"./KnowledgeExamList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./KnowledgeExamList.vue?vue&type=style&index=0&id=66beb7e0&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"knowledge-practice-list-page\"},[_c('title-bar',{attrs:{\"title\":\"体育健康知识\"}}),(_vm.knowledgeList.length)?_c('div',{staticClass:\"main\"},_vm._l((_vm.knowledgeList),function(training,index){return _c('practice-card',{key:index,attrs:{\"training-info\":training},on:{\"click\":function($event){return _vm.navToTrainingStatic(training)},\"remove\":_vm.handleRemove,\"updateTime\":function($event){return _vm.showUpdatePopup(training)}}})}),1):_c('div',{staticClass:\"empty\"},[_c('img',{attrs:{\"src\":require(\"./assets/img_practice_empty@2x.png\")}}),_c('el-button',{on:{\"click\":_vm.navToRepo}},[_vm._v(\" 从知识库布置\")])],1),(_vm.selectItem)?_c('el-dialog',{staticClass:\"update-exam-time-dialog\",attrs:{\"width\":\"486px\",\"center\":\"\",\"title\":\"调整练习时间\",\"visible\":_vm.updateTimePopupVisible},on:{\"update:visible\":function($event){_vm.updateTimePopupVisible=$event}}},[_c('el-form',{attrs:{\"inline\":\"\"}},[_c('el-form-item',{attrs:{\"label\":\"开始日期\"}},[_c('el-date-picker',{model:{value:(_vm.selectItem.start_datetime),callback:function ($$v) {_vm.$set(_vm.selectItem, \"start_datetime\", $$v)},expression:\"selectItem.start_datetime\"}})],1),_c('el-form-item',{attrs:{\"label\":\"结束日期\"}},[_c('el-date-picker',{model:{value:(_vm.selectItem.end_datetime),callback:function ($$v) {_vm.$set(_vm.selectItem, \"end_datetime\", $$v)},expression:\"selectItem.end_datetime\"}})],1)],1),_c('div',{staticClass:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.updateTimePopupVisible = false}}},[_vm._v(\" 取消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.updateChallenge}},[_vm._v(\" 确认\")])],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"practice-card-comp\"},[_c('div',{staticClass:\"header\"},[_c('div',{staticClass:\"title\"},[_c('span',{staticClass:\"tag\",class:[_vm.calcStatus()]},[_vm._v(_vm._s(_vm.calcStatusLabel()))])]),_c('dropdown-menu',{attrs:{\"menu\":\"更多操作\",\"menu-type\":\"span\",\"drop-down-items\":_vm.dropDownItems},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([{key:\"menu\",fn:function(){return [_vm._v(\"...\")]},proxy:true}])})],1),_c('div',{staticClass:\"main\",on:{\"click\":function($event){$event.preventDefault();return _vm.navToTrainingDetail.apply(null, arguments)}}},[_c('img',{attrs:{\"src\":require(\"../assets/img_practice_flag@2x.png\")}}),_c('div',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.trainingInfo.name)+\" \")])]),_c('div',{staticClass:\"info-box\",on:{\"click\":function($event){$event.preventDefault();return _vm.navToTrainingDetail.apply(null, arguments)}}},[_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"布置班级\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.showClazzName(_vm.trainingInfo.class_vo_list)))])]),_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"练习时间\")]),_c('div',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(_vm.formatDate(_vm.trainingInfo.start_datetime))+\" - \"+_vm._s(_vm.formatDate(_vm.trainingInfo.end_datetime))+\" \")])]),_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"label\"},[_vm._v(\"布置教师\")]),_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.trainingInfo.teacher_vo.teacher_name))])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PracticeCard.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PracticeCard.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PracticeCard.vue?vue&type=template&id=308d38bd\"\nimport script from \"./PracticeCard.vue?vue&type=script&lang=ts\"\nexport * from \"./PracticeCard.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PracticeCard.vue?vue&type=style&index=0&id=308d38bd&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgePracticeList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgePracticeList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./KnowledgePracticeList.vue?vue&type=template&id=d5fc409a\"\nimport script from \"./KnowledgePracticeList.vue?vue&type=script&lang=ts\"\nexport * from \"./KnowledgePracticeList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./KnowledgePracticeList.vue?vue&type=style&index=0&id=d5fc409a&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"knowledge-exam-clazz-detail-page\"},[_c('title-bar',{attrs:{\"title\":\"答题表现\",\"back\":\"\"}},[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.notifyStudent}},[_vm._v(\"通知学生\")])],1),_c('div',{staticClass:\"main\"},[(_vm.exam)?_c('training-overview-info',{attrs:{\"training\":_vm.exam,\"format\":_vm.formatExamTime}}):_vm._e(),_c('training-clazz-static-info',{attrs:{\"clazz-summary-items\":_vm.clazzSummaryInfo}}),_c('list-page',{staticClass:\"list-page\",attrs:{\"data\":_vm.items,\"limit\":_vm.query.limit}},[_c('el-table-column',{attrs:{\"label\":\"班级\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.class_vo.note_name || row.class_vo.name)+\" \")]}}])}),_c('el-table-column',{attrs:{\"label\":\"人数\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.students_count)+\" \")]}}])}),(_vm.isEnd)?_c('el-table-column',{attrs:{\"label\":\"完成人数\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.completion_count)+\" \")]}}],null,false,1111746535)}):_vm._e(),(_vm.isEnd)?_c('el-table-column',{attrs:{\"label\":\"平均分\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [(_vm.isEnd)?_c('div',{staticClass:\"avg-score\",class:[_vm.calcScoreStatus(row.avg_score)]},[_vm._v(\" \"+_vm._s(_vm.formatAvgScore(row.avg_score))+\" \")]):_vm._e()]}}],null,false,771932410)}):_vm._e(),(!_vm.isEnd)?_c('el-table-column',{attrs:{\"label\":\"进行中\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.attending_count)+\" \")]}}],null,false,3028322925)}):_vm._e(),(!_vm.isEnd)?_c('el-table-column',{attrs:{\"label\":\"未开始\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.un_start_count)+\" \")]}}],null,false,4251273127)}):_vm._e(),_c('el-table-column',{attrs:{\"prop\":\"action\",\"label\":\"更多操作\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_c('el-button',{attrs:{\"type\":\"text\"},on:{\"click\":function($event){return _vm.navToStudentStatic(row)}}},[_vm._v(\"详情\")])]}}])})],1),(_vm.examStatisticInfo && _vm.invitePosterDialogVisible)?_c('el-dialog',{attrs:{\"width\":\"400px\",\"visible\":_vm.invitePosterDialogVisible},on:{\"update:visible\":function($event){_vm.invitePosterDialogVisible=$event}}},[_c('exam-poster-base-comp',{attrs:{\"exam-statistic-info\":_vm.examStatisticInfo}}),(_vm.base64)?_c('a',{staticClass:\"download\",attrs:{\"href\":_vm.base64,\"download\":\"优秀名单.png\"}},[_vm._v(\"保存图片\")]):_vm._e(),(_vm.posterKey)?_c('html-poster',{key:_vm.posterKey,on:{\"generate\":_vm.setImg}},[_c('exam-poster-base-comp',{attrs:{\"exam-statistic-info\":_vm.examStatisticInfo}})],1):_vm._e()],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"exam-poster-base-comp\"},[_vm._m(0),_c('div',{staticClass:\"main\"},[_c('div',{staticClass:\"content-box\"},[_c('div',{staticClass:\"info\"},[_c('div',{staticClass:\"tip\"},[_vm._v(\" 本校研究决定开展线上《体育与健康》考试。根据线上考试特点,结合学校考试工作实际,现将线上考试有关要求通知如下: \")]),_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"考试时间\")]),_c('div',{staticClass:\"date\"},[_vm._v(\" \"+_vm._s(_vm.formatDate(_vm.examStatisticInfo.exam.start_datetime))+\" ~ \"+_vm._s(_vm.formatDate(_vm.examStatisticInfo.exam.end_datetime))+\" \")])]),_vm._m(1),_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"考试班级\")]),_c('div',{staticClass:\"detail\"},_vm._l((_vm.gradeInfo),function(grade,index){return _c('div',{key:index,staticClass:\"grade-info\"},[_c('div',{staticClass:\"grade-name\"},[_vm._v(\" \"+_vm._s(_vm.buildGradeName(index))+\" \")]),_c('div',{staticClass:\"clazz-list\"},_vm._l((grade),function(clazz,clazzIndex){return _c('div',{key:clazzIndex,staticClass:\"name\"},[_vm._v(\" \"+_vm._s(clazz.note_name || clazz.name)+\" \"),(clazzIndex !== grade.length - 1)?_c('span',[_vm._v(\"、\")]):_vm._e()])}),0)])}),0)]),_c('div',{staticClass:\"school\"},[_c('span'),_vm._v(\" \"+_vm._s(_vm.schoolName))])])])]),_c('poster-footer',{staticClass:\"footer\",attrs:{\"is-ttts\":\"\",\"scene\":\"knowledge-exam\"}})],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"header\"},[_c('img',{attrs:{\"src\":require(\"../assets/img_exam_title@2x.png\")}})])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"考试方式\")]),_c('div',{staticClass:\"detail\"},[_vm._v(\"线上考试\")]),_c('div',{staticClass:\"tip\"},[_vm._v(\"*具体考试细则详见天天跳绳app,需要升级最新版本\")])])\n}]\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./ExamPosterBase.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./ExamPosterBase.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ExamPosterBase.vue?vue&type=template&id=62b7db65\"\nimport script from \"./ExamPosterBase.vue?vue&type=script&lang=ts\"\nexport * from \"./ExamPosterBase.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ExamPosterBase.vue?vue&type=style&index=0&id=62b7db65&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgeExamClazzDetail.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgeExamClazzDetail.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./KnowledgeExamClazzDetail.vue?vue&type=template&id=80193dfa\"\nimport script from \"./KnowledgeExamClazzDetail.vue?vue&type=script&lang=ts\"\nexport * from \"./KnowledgeExamClazzDetail.vue?vue&type=script&lang=ts\"\nimport style0 from \"./KnowledgeExamClazzDetail.vue?vue&type=style&index=0&id=80193dfa&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"knowledge-exam-student-detail-page\"},[_c('title-bar',{attrs:{\"title\":\"答题表现\",\"back\":\"\"}},[(!_vm.isEnd)?_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.remindStudent}},[_vm._v(\"提醒学生\")]):_vm._e()],1),_c('div',{staticClass:\"main\"},[(_vm.exam)?_c('training-overview-info',{attrs:{\"training\":_vm.exam,\"format\":_vm.formatExamTime}}):_vm._e(),_c('training-clazz-static-info',{attrs:{\"value\":_vm.currentClazzId,\"clazz-options\":_vm.clazzOption,\"clazz-summary-items\":_vm.clazzSummaryInfo},on:{\"change\":_vm.updateClazzId}}),_c('list-page',{staticClass:\"list-page\",attrs:{\"data\":_vm.mapItems,\"limit\":_vm.query.limit}},[_c('el-table-column',{attrs:{\"label\":\"学生姓名\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.studentName)+\" \")]}}])}),_c('el-table-column',{attrs:{\"label\":\"性别\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.gender)+\" \")]}}])}),(_vm.isEnd)?_c('el-table-column',{attrs:{\"label\":\"正确\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.correct)+\" \")]}}],null,false,1614448033)}):_vm._e(),(_vm.isEnd)?_c('el-table-column',{attrs:{\"label\":\"得分\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [(_vm.isEnd)?_c('div',{staticClass:\"score\",class:[_vm.calcScoreStatus(row.score)]},[_vm._v(\" \"+_vm._s(row.score)+\" \")]):_vm._e()]}}],null,false,3207657917)}):_vm._e(),(!_vm.isEnd)?_c('el-table-column',{attrs:{\"label\":\"完成进度\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.finish_progress)+\" \")]}}],null,false,3430618318)}):_vm._e(),(!_vm.isEnd)?_c('el-table-column',{attrs:{\"label\":\"状态\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_c('div',{staticClass:\"completion-status\"},[_c('div',{class:['status', _vm.statusClass(row.status)]}),_vm._v(\" \"+_vm._s(row.status)+\" \")])]}}],null,false,674749309)}):_vm._e(),_c('el-table-column',{attrs:{\"prop\":\"action\",\"label\":\"更多操作\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_c('el-button',{attrs:{\"type\":\"text\"},on:{\"click\":function($event){return _vm.navToStudentExamResultDetail(row)}}},[_vm._v(\"详情\")])]}}])})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgeExamStudentDetail.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgeExamStudentDetail.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./KnowledgeExamStudentDetail.vue?vue&type=template&id=65b271dc\"\nimport script from \"./KnowledgeExamStudentDetail.vue?vue&type=script&lang=ts\"\nexport * from \"./KnowledgeExamStudentDetail.vue?vue&type=script&lang=ts\"\nimport style0 from \"./KnowledgeExamStudentDetail.vue?vue&type=style&index=0&id=65b271dc&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"exam-result-for-student-page\"},[_c('div',{staticClass:\"header\"},[(_vm.student)?_c('div',{staticClass:\"user-info\"},[_c('img',{attrs:{\"src\":_vm.student.head_img_url}}),_c('div',{staticClass:\"info\"},[_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm._show_student_name(_vm.student)))]),_c('div',{staticClass:\"clazz-name\"},[_vm._v(_vm._s(_vm.clazzName))])])]):_vm._e(),_c('div',{staticClass:\"score-box\"},[_c('div',{staticClass:\"tip\"},[_vm._v(\"考试得分\")]),_c('div',{staticClass:\"score\"},[_vm._v(_vm._s(_vm.studentPaper.star_score))])]),_c('div',{staticClass:\"title\"},[_vm._v(\"【\"+_vm._s(_vm.title)+\"】 答题明细\")]),_c('div',{staticClass:\"over-view\"},_vm._l((_vm.summaryItems),function(item,index){return _c('div',{key:index,staticClass:\"item\"},[_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(item.label))]),_c('div',{staticClass:\"value\",class:{ error: item.label === '错误' || item.label === '未完成' }},[_vm._v(_vm._s(item.value))])])}),0),_c('div',{staticClass:\"answer-list\"},_vm._l((_vm.studentPaper.questions),function(question,index){return _c('student-question-info',{key:index,attrs:{\"question-info\":question,\"seq-no\":index + 1}})}),1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"student-question-info-comp\",class:[_vm.answerStatus]},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.seqNo)+\"、\"+_vm._s(_vm.questionInfo.subject))]),_c('div',{staticClass:\"options\"},_vm._l((_vm.questionInfo.options),function(option,index){return _c('div',{key:index,staticClass:\"option\",class:[_vm.calcStatus(option.id)]},[_vm._v(\" \"+_vm._s(_vm.no[index])+\" : \"+_vm._s(option.content)+\" \")])}),0),_c('div',{staticClass:\"answer\"},[_c('span',{staticClass:\"label\"},[_vm._v(\"答案:\")]),_vm._v(\" \"+_vm._s(_vm.showRightSeq)+\" \")]),(_vm.questionInfo.explanation)?_c('div',{staticClass:\"explanation\"},[_vm._v(\"解析:\"+_vm._s(_vm.questionInfo.explanation))]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./StudentQuestionInfo.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./StudentQuestionInfo.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./StudentQuestionInfo.vue?vue&type=template&id=5a765f7c\"\nimport script from \"./StudentQuestionInfo.vue?vue&type=script&lang=ts\"\nexport * from \"./StudentQuestionInfo.vue?vue&type=script&lang=ts\"\nimport style0 from \"./StudentQuestionInfo.vue?vue&type=style&index=0&id=5a765f7c&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgeExamResultForStudent.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgeExamResultForStudent.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./KnowledgeExamResultForStudent.vue?vue&type=template&id=2b0fd4f2\"\nimport script from \"./KnowledgeExamResultForStudent.vue?vue&type=script&lang=ts\"\nexport * from \"./KnowledgeExamResultForStudent.vue?vue&type=script&lang=ts\"\nimport style0 from \"./KnowledgeExamResultForStudent.vue?vue&type=style&index=0&id=2b0fd4f2&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"knowledge-practice-clazz-detail-page\"},[_c('title-bar',{attrs:{\"back\":\"\",\"title\":\"答题表现\"}},[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.viewPlan}},[_vm._v(\"查看计划\")])],1),_c('div',{staticClass:\"main\"},[(_vm.training)?_c('training-overview-info',{attrs:{\"training\":_vm.training}}):_vm._e(),_c('training-clazz-static-info',{attrs:{\"clazz-summary-items\":_vm.clazzSummaryItems}}),_c('list-page',{staticClass:\"list-page\",attrs:{\"data\":_vm.transferSummaryItems,\"limit\":_vm.query.limit}},[_c('el-table-column',{attrs:{\"label\":\"班级\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(_vm.showClazzName(row.class_vo))+\" \")]}}])}),_c('el-table-column',{attrs:{\"label\":\"人数\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.completion_count + row.uncompleted_count)+\" \")]}}])}),_c('el-table-column',{attrs:{\"label\":\"完成人数\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.completion_count)+\" \")]}}])}),_c('el-table-column',{attrs:{\"label\":\"完成率\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_c('div',{staticClass:\"finish-rate\",style:(_vm.service.participatedRateColor(row.completion_rate * 100))},[_vm._v(\" \"+_vm._s(_vm.formatRate(row.completion_rate / 100))+\"% \")])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"action\",\"label\":\"更多操作\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_c('el-button',{attrs:{\"type\":\"text\"},on:{\"click\":function($event){return _vm.navToClazzStudentStatic(row.challenge_class_id)}}},[_vm._v(\"详情\")])]}}])})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgePracticeClazzDetail.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgePracticeClazzDetail.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./KnowledgePracticeClazzDetail.vue?vue&type=template&id=43fbada8\"\nimport script from \"./KnowledgePracticeClazzDetail.vue?vue&type=script&lang=ts\"\nexport * from \"./KnowledgePracticeClazzDetail.vue?vue&type=script&lang=ts\"\nimport style0 from \"./KnowledgePracticeClazzDetail.vue?vue&type=style&index=0&id=43fbada8&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"knowledge-practice-student-detail-page\"},[_c('title-bar',{attrs:{\"back\":\"\",\"title\":\"答题表现\"}},[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.viewPlan}},[_vm._v(\"查看计划\")])],1),_c('div',{staticClass:\"main\"},[(_vm.training)?_c('training-overview-info',{attrs:{\"training\":_vm.training}}):_vm._e(),_c('training-clazz-static-info',{attrs:{\"value\":_vm.clazzId,\"clazz-options\":_vm.clazzOptions,\"clazz-summary-items\":_vm.clazzSummaryItems},on:{\"change\":_vm.updateClazzId}}),_c('list-page',{staticClass:\"list-page\",attrs:{\"data\":_vm.studentList,\"limit\":_vm.query.limit}},[_c('el-table-column',{attrs:{\"label\":\"学生姓名\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.name)+\" \")]}}])}),_c('el-table-column',{attrs:{\"label\":\"年级班级\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.class_name)+\" \")]}}])}),_c('el-table-column',{attrs:{\"label\":\"性别\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(row.gender)+\" \")]}}])}),_c('el-table-column',{attrs:{\"label\":\"完成情况\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_c('div',{staticClass:\"completion-status\"},[_c('div',{class:['status', _vm.statusClass(row.completion_status)]}),_vm._v(\" \"+_vm._s(row.completion_status)+\" \")])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"action\",\"label\":\"更多操作\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_c('el-button',{attrs:{\"type\":\"text\"},on:{\"click\":function($event){return _vm.navToLiveCourseRecords(row)}}},[_vm._v(\"详情\")])]}}])})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgePracticeStudentDetail.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KnowledgePracticeStudentDetail.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./KnowledgePracticeStudentDetail.vue?vue&type=template&id=2d05815f\"\nimport script from \"./KnowledgePracticeStudentDetail.vue?vue&type=script&lang=ts\"\nexport * from \"./KnowledgePracticeStudentDetail.vue?vue&type=script&lang=ts\"\nimport style0 from \"./KnowledgePracticeStudentDetail.vue?vue&type=style&index=0&id=2d05815f&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\nimport peKnowledgeIcon from '@/assets/images/icon_menu_pe_knowledge@2x.png'\nimport peKnowledgeActiveIcon from '@/assets/images/icon_menu_pe_knowledge_active@2x.png'\nimport KnowledgeRepoPage from '@/views/pe-knowledge/KnowledgeRepo.vue'\nimport KnowledgeExamDetailPage from '@/views/pe-knowledge/KnowledgeExamDetail.vue'\nimport KnowledgeExamListPage from '@/views/pe-knowledge/KnowledgeExamList.vue'\nimport KnowledgePracticeListPage from '@/views/pe-knowledge/KnowledgePracticeList.vue'\nimport KnowledgeExamClazzDetailPage from '@/views/pe-knowledge/KnowledgeExamClazzDetail.vue'\nimport KnowledgeExamStudentDetailPage from '@/views/pe-knowledge/KnowledgeExamStudentDetail.vue'\nimport KnowledgeExamResultForStudentPage from '@/views/pe-knowledge/KnowledgeExamResultForStudent.vue'\nimport KnowledgePracticeClazzDetailPage from '@/views/pe-knowledge/KnowledgePracticeClazzDetail.vue'\nimport KnowledgePracticeStudentDetailPage from '@/views/pe-knowledge/KnowledgePracticeStudentDetail.vue'\nimport PracticeStudentDetailPage from '@/views/special-skill/PracticeStudentDetail.vue'\n\nconst Layout = () => import('../views/Layout.vue')\n\nexport const PEKnowledgeRepoRoute: RouteConfig = {\n path: '/repo',\n name: 'pe_knowledge_repo',\n component: KnowledgeRepoPage,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '知识库',\n showMenu: true,\n },\n}\n\nexport const PEKnowledgeExamDetailRoute: RouteConfig = {\n path: '/pe-knowledge-exam-detail',\n name: 'pe_knowledge_exam_detail',\n component: KnowledgeExamDetailPage,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '知识库',\n },\n}\n\nexport const PEKnowledgeExamListRoute: RouteConfig = {\n path: '/pe-knowledge-exam-list',\n name: 'pe_knowledge_exam_list',\n component: KnowledgeExamListPage,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '考试列表',\n showMenu: true,\n },\n}\n\nexport const PEKnowledgeClazzDetailRoute: RouteConfig = {\n path: '/pe-knowledge-exam-clazz-detail',\n name: 'pe_knowledge_exam_clazz_detail',\n component: KnowledgeExamClazzDetailPage,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '考试列表',\n },\n}\n\nexport const PEKnowledgeStudentDetailRoute: RouteConfig = {\n path: '/pe-knowledge-exam-student-detail',\n name: 'pe_knowledge_exam_student_detail',\n component: KnowledgeExamStudentDetailPage,\n props: (route) => ({\n ...route.query,\n ...route.params,\n classId: +route.query.classId,\n clazzOption: JSON.parse(route.query.clazzOption as string),\n }),\n meta: {\n title: '考试列表',\n },\n}\n\nexport const PEKnowledgeExamResultForStudentRoute: RouteConfig = {\n path: '/pe-knowledge-exam-result-student',\n name: 'pe_knowledge_exam_result_student',\n component: KnowledgeExamResultForStudentPage,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '学生答题详情',\n },\n}\n\nexport const PEKnowledgePracticeListRoute: RouteConfig = {\n path: '/pe-knowledge-practice-list',\n name: 'pe_knowledge_practice_list',\n component: KnowledgePracticeListPage,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '练习列表',\n showMenu: true,\n },\n}\n\nexport const PEKnowledgePracticeClazzDetailRoute: RouteConfig = {\n path: '/pe-knowledge-practice-clazz-detail',\n name: 'pe_knowledge_practice_clazz_detail',\n component: KnowledgePracticeClazzDetailPage,\n props: (route) => ({ ...route.query, ...route.params, training: JSON.parse(route.query.training as string) }),\n meta: {\n title: '练习列表',\n },\n}\n\nexport const PEKnowledgePracticeStudentDetailRoute: RouteConfig = {\n path: '/pe-knowledge-practice-student-detail',\n name: 'pe_knowledge_practice_student_detail',\n component: KnowledgePracticeStudentDetailPage,\n props: (route) => ({\n ...route.query,\n ...route.params,\n training: JSON.parse(route.query.training as string),\n clazzOptions: JSON.parse(route.query.clazzOptions as string),\n challengeClassId: route.query.challengeClassId,\n }),\n meta: {\n title: '练习列表',\n },\n}\n\nexport const PEKnowledgePracticeResultForStudentRoute: RouteConfig = {\n path: '/pe-knowledge-practice-student-result',\n name: 'pe_knowledge_practice_student_result',\n component: PracticeStudentDetailPage,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '练习列表',\n },\n}\n\nexport const PEKnowledgeRoute: RouteConfig = {\n path: '/pe-knowledge',\n name: 'pe_knowledge',\n component: Layout,\n props: (route) => ({ ...route.query, ...route.params }),\n meta: {\n title: '体育知识',\n showMenu: true,\n icon: peKnowledgeIcon,\n iconActive: peKnowledgeActiveIcon,\n },\n children: [\n PEKnowledgeRepoRoute,\n PEKnowledgeExamDetailRoute,\n PEKnowledgeExamListRoute,\n PEKnowledgeClazzDetailRoute,\n PEKnowledgeStudentDetailRoute,\n PEKnowledgeExamResultForStudentRoute,\n\n PEKnowledgePracticeListRoute,\n PEKnowledgePracticeClazzDetailRoute,\n PEKnowledgePracticeStudentDetailRoute,\n PEKnowledgePracticeResultForStudentRoute,\n ],\n}\n\nexport default [PEKnowledgeRoute]\n","import { RouteConfig } from 'vue-router'\n\nimport digitalSportsIcon from '../assets/images/icon_menu_sports_digital_portrait@2x.png'\nimport digitalSportsIconActive from '../assets/images/icon_menu_sports_digital_portrait_active@2x.png'\nimport { Role } from '@/models/role'\n\nconst Layout = () => import('../views/Layout.vue')\nconst WorkContestAssessment = () => import('../views/work-contest/ProjectAssessment.vue')\nconst WorkContestProjects = () => import('../views/work-contest/ContestProjects.vue')\n\nexport const workContestDetailRoute: RouteConfig = {\n path: '/work-contest/work-contest-assessment',\n name: 'work_contest_assessment',\n component: WorkContestAssessment,\n props: (route) => ({ ...route.query }),\n meta: {\n title: '作业设计大赛',\n showMenu: false,\n },\n}\n\nexport const workContestProjectsRoute: RouteConfig = {\n path: '/work-contest/work-contest-projects',\n name: 'work_contest_projects',\n component: WorkContestProjects,\n meta: {\n title: '作业设计大赛',\n showMenu: false,\n },\n}\n\nexport default [\n {\n path: '/work-contest',\n name: 'work_contest',\n component: Layout,\n redirect: workContestProjectsRoute.path,\n meta: {\n title: '作业设计大赛',\n icon: digitalSportsIcon,\n iconActive: digitalSportsIconActive,\n showMenu: true,\n roles: [Role.HWJudge],\n },\n children: [workContestProjectsRoute, workContestDetailRoute],\n },\n]\n","import Vue from 'vue'\nimport { teacherStore } from 'kuaidong-store'\nimport { Route } from 'vue-router/types/router'\nimport VueRouter, { RouteConfig } from 'vue-router'\n\nimport RCustom, * as customRouter from './RCustom'\nimport ROrganization, * as organizationRouter from './ROrganization'\n\nimport RLongBreak from './RLongBreak'\nimport RAuth, * as authRouter from './RAuth'\nimport RHome, * as homeRouter from './RHome'\nimport RPlan, * as planRouter from './RPlan'\nimport RExam, * as examRouter from './RExam'\nimport RUser, * as userRouter from './RUser'\nimport RSchool, * as schoolRouter from './RSchool'\nimport RSystem, * as systemRouter from './RSystem'\nimport RActivity, * as activityRouter from './RActivity'\nimport RResource, * as resourceRouter from './RResource'\nimport RHomework, * as homeworkRouter from './RHomework'\nimport RTeachSource, * as teachRouter from './RTeachSource'\nimport RWorkbench, * as workbenchRouter from './RWorkbench'\nimport RCourseLive, * as courseLiveRouter from './RCourseLive'\nimport RCompetition, * as competitionRouter from './RCompetition'\nimport RNoticeCenter, * as noticeCenterRouter from './RNoticeCenter'\nimport RDigitalSports, * as digitalSportsRouter from './RDigitalSports'\nimport RProcessEvaluation, * as processEvaluationRouter from './RProcessEvaluation'\nimport RBroadcastGymnastics, * as broadcastGymnasticsRouter from './RBroadcastGymnastics'\nimport RExercisePrescription, * as exercisePrescriptionRouter from './RExercisePrescription'\nimport RIntelligentClassroom, * as intelligentClassroomRouter from './RIntelligentClassroom'\nimport RDataBoard, * as dashBoardRouter from './RDataBoard'\nimport RAutumn2022, * as autumn20222022Router from '@/router/RAutumn2022'\nimport RWinter2023 from './RWinter2023'\nimport RSpecialSkill, * as specialSkillRouter from '@/router/RSpecialSkill'\nimport RPEKnowledge, * as peKnowledgeRouter from '@/router/RPEKnowledge'\nimport RWorkContest, * as workContestRouter from './RWorkContest'\n\nconst Layout = () => import('../views/Layout.vue')\n\nVue.use(VueRouter)\n\nconst routes: RouteConfig[] = [\n {\n path: '/',\n name: 'layout',\n component: Layout,\n redirect: RWorkbench[0],\n children: [...RWorkbench, ...RHome, ...RNoticeCenter],\n },\n ...RDataBoard,\n ...RAuth,\n ...RPlan,\n ...RDigitalSports,\n ...RIntelligentClassroom,\n ...RWinter2023,\n ...RAutumn2022,\n ...RHomework,\n ...RProcessEvaluation,\n ...RResource,\n ...RSystem,\n ...RCompetition,\n ...RExam,\n ...RExercisePrescription,\n ...RPEKnowledge,\n ...RTeachSource,\n ...RCourseLive,\n ...RBroadcastGymnastics,\n ...RUser,\n ...ROrganization,\n ...RActivity,\n ...RLongBreak,\n ...RSpecialSkill,\n ...RCustom,\n ...RSchool,\n ...RWorkContest,\n // default\n {\n path: '*',\n name: '*',\n redirect: RWorkbench[0],\n },\n]\n\nconst router = new VueRouter({\n routes,\n})\n\nrouter.beforeEach((to: Route, from: Route, next: any) => {\n // 防止刷新跳转到介绍页\n if (!teacherStore.isSportMeetingSchool && to.fullPath.startsWith('/competition-online-game/online-game-list')) {\n next(/**{ path: '/competition/online-intro' } */)\n } else {\n if (teacherStore.isPaidSchool || teacherStore?.teacher === null) {\n next()\n } else {\n if (to.fullPath.startsWith('/exercise-prescription') && to.name !== 'ep_intro') {\n next({ name: 'ep_intro' })\n } else {\n next()\n }\n }\n }\n})\n\nexport default router\n\nexport const ignoreLoginRoutes: RouteConfig[] = [authRouter.authFormQuickRoute]\n\nexport const ignoreLoginInBrowserRoutes: RouteConfig[] = []\n\nexport const ignoreAuthRoutes: RouteConfig[] = []\n\nexport {\n authRouter,\n homeRouter,\n planRouter,\n examRouter,\n userRouter,\n teachRouter,\n schoolRouter,\n systemRouter,\n customRouter,\n resourceRouter,\n homeworkRouter,\n activityRouter,\n workbenchRouter,\n courseLiveRouter,\n competitionRouter,\n organizationRouter,\n noticeCenterRouter,\n digitalSportsRouter,\n processEvaluationRouter,\n broadcastGymnasticsRouter,\n exercisePrescriptionRouter,\n intelligentClassroomRouter,\n dashBoardRouter,\n autumn20222022Router,\n specialSkillRouter,\n peKnowledgeRouter,\n workContestRouter,\n}\n","import VueRouter from 'vue-router'\nimport router, * as routes from './base'\n\nconst routerHelper: {\n [index: string]: Function\n} = {}\n\ninterface HelperMethod {\n (router: VueRouter, ...params: any[]): any\n}\n\nfunction currying(helperMethod: HelperMethod) {\n return function (...params: any[]) {\n helperMethod(router, ...params)\n }\n}\n\nfunction buildRouterHelper(routes: object) {\n for (const key in routes) {\n if (key !== 'default') {\n const route = (routes as any)[key]\n for (const methodName in route) {\n const method = route[methodName]\n if (typeof method === 'function') {\n routerHelper[methodName] = currying(method)\n }\n }\n }\n }\n}\n\nbuildRouterHelper(routes)\nbuildRouterHelper(routes.customRouter)\nbuildRouterHelper(routes.organizationRouter)\n\nexport default routerHelper\n","import { Role } from '../models/role'\nimport VueRouter, { RouteConfig } from 'vue-router'\nimport { PermissionService } from 'kuaidong-service'\nimport { teacherStore, loginStore, menuRoleStore } from 'kuaidong-store'\n\nexport default class RouterService {\n constructor(public router: VueRouter) {}\n\n get menuItems() {\n return this.buildMenuItems(this.router.options.routes)\n }\n\n get permissons() {\n return new PermissionService(\n teacherStore.userRoleInfo,\n teacherStore.teacher,\n menuRoleStore.menuRole\n ).buildPermissions()\n }\n\n hasRole(route: RouteConfig, role: string) {\n return !!route?.meta?.roles?.includes(role)\n }\n\n hasRoles(route: RouteConfig, roles: string[]) {\n return roles.some((role) => this.hasRole(route, role))\n }\n\n hasPermission(route: RouteConfig) {\n if (loginStore.organization) {\n return this.hasRole(route, loginStore.organization.role)\n }\n\n if (this.hasRole(route, Role.Admin)) {\n return !!teacherStore.isAdmin\n }\n\n if (this.hasRole(route, Role.Verified)) {\n return !!teacherStore.isVerifiedSchool\n }\n\n if (this.hasRole(route, Role.UserAccount)) {\n return teacherStore.hasUserAccountPermission\n }\n\n if (this.hasRoles(route, Object.values(Role))) {\n return false\n }\n\n if (route.meta?.rolesKey) {\n return this.permissons.m.hasPermission(this.permissons.m.getRoles(route.meta.rolesKey))\n }\n\n return true\n }\n\n public buildMenuItems(routes?: RouteConfig[]) {\n const menuItems: RouteConfig[] = []\n\n if (routes) {\n for (const route of routes) {\n if (route.meta?.showMenu && this.hasPermission(route)) {\n const routeCopy = { ...route }\n\n routeCopy.children = this.buildMenuItems(route.children)\n\n menuItems.push(routeCopy)\n } else {\n menuItems.push(...this.buildMenuItems(route.children))\n }\n }\n }\n\n return menuItems\n }\n}\n","import router from './base'\nimport routerHelper from './helper'\nimport RouterService from './Service'\n\nexport * from './base'\n\nexport default router\n\nexport { routerHelper }\nexport { RouterService }\n","import { ATeacher } from 'kuaidong-api'\nimport { Route, NavigationGuardNext } from 'vue-router'\nimport { LoginMethod, GlobalConfigRouteMetaEnum } from 'kuaidong-model'\nimport { AppUtil, BrowserUtil, RouterUtil, EventEmitter, VueUtil, BaseLogger } from 'kuaidong-lib'\nimport { loginStore, teacherStore, globalConfigStore, competitionStore, menuRoleStore } from 'kuaidong-store'\n\nimport router, {\n ignoreAuthRoutes,\n ignoreLoginRoutes,\n ignoreLoginInBrowserRoutes,\n // routers\n authRouter,\n customRouter,\n organizationRouter,\n workContestRouter,\n} from '../router'\n\nexport enum LoginEvent {\n Authed = 'authed',\n Logined = 'logined',\n}\n\nconst eventEmitter = new EventEmitter()\n\nconst WXWebOauthTargetHash = 'wx-web-oauth-target-hash'\n\nconst OrganizationTag = organizationRouter.default[0].path\n\nconst ContestTag = workContestRouter.default[0].path\n\nexport default class LoginService {\n public static once(type: string, handler: Function) {\n eventEmitter.once(type, handler)\n }\n\n public static async initBeforeLogin(route?: Route) {\n if (route && route.meta) {\n if (route.meta[GlobalConfigRouteMetaEnum.All]) {\n await globalConfigStore.ensureConfigIsLoaded()\n }\n\n if (route.meta[GlobalConfigRouteMetaEnum.Drills]) {\n await globalConfigStore.ensureDrillsIsLoaded()\n }\n\n if (route.meta[GlobalConfigRouteMetaEnum.Homework]) {\n await globalConfigStore.ensureHomeworkIsLoaded()\n }\n\n if (route.meta[GlobalConfigRouteMetaEnum.DrillCategories]) {\n await globalConfigStore.ensureDrillCategoriesIsLoaded()\n }\n\n if (route.meta[GlobalConfigRouteMetaEnum.CompetitionType]) {\n await competitionStore.ensureTypesIsLoaded()\n }\n }\n }\n\n public static async initAfterAuthed() {\n if (loginStore.isLoginedByOrganization) {\n return\n }\n\n if (!teacherStore.teacher) {\n await teacherStore.loadTeacher()\n }\n\n if (!teacherStore.userRoleInfo) {\n await teacherStore.loadUserRoleInfo()\n }\n\n if (!menuRoleStore.menuRole) {\n await menuRoleStore.ensureMenuRoleConfigIsLoaded()\n }\n }\n\n public static async route(target: string) {\n location.href = target\n }\n\n public static async routeToAuth(_route: Route) {\n const route = (await this.isApplied()) ? authRouter.authInProgressRoute : authRouter.authRoute\n\n if (_route.name !== route.name) {\n router.replace({ name: route.name, query: { channel: _route.query?.qd } })\n }\n }\n\n public static async isApplied() {\n const authRecords = await ATeacher.allAuthRecords()\n return authRecords && authRecords.length > 0\n }\n\n public static isOrganizationPath(url: string) {\n return !!(url && url.includes(OrganizationTag))\n }\n\n public static isCustomGuangdongPath(url: string) {\n return !!(url && url.includes(customRouter.customGuangdongRouter.dashboardRoute.path))\n }\n\n public static isCustomCompetitionPath(url: string) {\n return !!(url && url.includes(customRouter.customCompetitionRouter.dashboardRoute.path))\n }\n\n public static hasWXWebOauthTargetHash(href: string) {\n return href && href.includes(WXWebOauthTargetHash)\n }\n\n public static encodeWXWebOauthTargetHash(href: string) {\n const url = new URL(href)\n if (url.hash) {\n return `${url.origin}${url.pathname}?${WXWebOauthTargetHash}=${url.hash.substring(2)}`\n } else {\n return href\n }\n }\n\n public static decodeWXWebOauthTargetHash(href: string) {\n if (this.hasWXWebOauthTargetHash(href)) {\n let hash = ''\n const url = new URL(href)\n\n if (url.searchParams.has(WXWebOauthTargetHash)) {\n hash = url.searchParams.get(WXWebOauthTargetHash) || ''\n }\n\n return `${url.origin}${url.pathname}#/${hash}`\n }\n\n return href\n }\n\n public static checkWXWebOauthTargetAndRedirect(href = location.href) {\n if (href && this.hasWXWebOauthTargetHash(href) && !RouterUtil.isCurRoute(authRouter.loginRoute, router)) {\n location.replace(this.decodeWXWebOauthTargetHash(href))\n\n return true\n }\n\n return false\n }\n\n public static async login(_route?: Route) {\n if (!(await AppUtil.isUnderApp())) {\n // 当前页已经是登录页不做跳转\n if (\n !_route &&\n (RouterUtil.isCurRoute(authRouter.loginRoute, router) ||\n RouterUtil.isCurRoute(customRouter.customGuangdongRouter.loginRoute, router) ||\n RouterUtil.isCurRoute(customRouter.customCompetitionRouter.loginRoute, router))\n ) {\n return false\n }\n\n let queryStr: string\n\n if (_route && _route.fullPath) {\n queryStr = `${location.origin}${location.pathname}#${_route.fullPath}`\n } else {\n queryStr = location.href\n }\n\n if (BrowserUtil.isWechat() && !BrowserUtil.isWxWork()) {\n // 微信重定向到target时会将hash部分抹去,所以需要处理下target。\n // https://www.cnblogs.com/fan-zha/p/11250549.html\n queryStr = this.encodeWXWebOauthTargetHash(queryStr)\n\n // 微信的登录地址, 微信登录之后固定跳转到当前页面\n location.href = `${process.env.VUE_APP_CRAZYROPE_API}/wx_web_oauth_entry?target=${queryStr}`\n } else {\n // 普通网页的登录地址\n let routeName = authRouter.loginRoute.name\n\n const query = {\n target: queryStr,\n loginMethod: LoginMethod.ByPhone,\n }\n\n if (LoginService.isCustomGuangdongPath(queryStr)) {\n routeName = customRouter.customGuangdongRouter.loginRoute.name\n query.loginMethod = LoginMethod.ByAccount\n } else if (LoginService.isCustomCompetitionPath(queryStr)) {\n routeName = customRouter.customCompetitionRouter.loginRoute.name\n query.loginMethod = LoginMethod.ByAccount\n }\n\n router.replace({ name: routeName, query })\n }\n\n return true\n }\n\n return false\n }\n\n public static async needAuth(_route: Route) {\n if (_route.name && (_route.name.startsWith('auth') || _route.name.startsWith('ad_auth'))) {\n return false\n }\n\n if (ignoreAuthRoutes.some((route) => _route.name === route.name)) {\n return false\n }\n\n if (_route.meta?.ignoreAuth) {\n return false\n }\n\n return true\n }\n\n public static async needLogin(_route: Route) {\n if (_route.name === authRouter.loginRoute.name) {\n return false\n }\n\n if (ignoreLoginRoutes.some((route) => _route.name === route.name)) {\n return false\n }\n\n if (_route.meta?.ignoreLogin) {\n return false\n }\n\n if (!BrowserUtil.isWechat() && !(await AppUtil.isUnderApp())) {\n if (ignoreLoginInBrowserRoutes.some((route) => _route.name === route.name)) {\n return false\n }\n }\n\n return true\n }\n\n public static async routerBeforeEachHook(_to: Route, _from: Route, _next: NavigationGuardNext) {\n if (!(await LoginService.needLogin(_to))) {\n return _next()\n }\n\n // Check if it is logined/authed already.\n if (loginStore.userTeacherId === null) {\n if (_to.path.includes(OrganizationTag) || _to.path.includes(ContestTag)) {\n await loginStore.loadOrganization()\n\n if (loginStore.isLoginedByOrganization) {\n BaseLogger.setUserId(loginStore.organization!.id)\n VueUtil.setARMSConfig({ uid: loginStore.organization!.id })\n }\n } else {\n await loginStore.loadUserTeacherId()\n\n if (loginStore.isLogined) {\n BaseLogger.setUserId(loginStore.userTeacherId!.user_id!)\n VueUtil.setARMSConfig({ uid: loginStore.userTeacherId!.user_id })\n }\n }\n }\n\n LoginService.initBeforeLogin(_to)\n\n if (!loginStore.isLogined) {\n _next(false)\n\n return LoginService.login(_to)\n }\n\n eventEmitter.fire(LoginEvent.Logined)\n\n if (!(await LoginService.needAuth(_to))) {\n return _next()\n }\n\n if (loginStore.isAuthed) {\n await LoginService.initAfterAuthed()\n\n return _next()\n } else {\n _next(false)\n\n return LoginService.routeToAuth(_to)\n }\n }\n}\n","import { AppUtil } from 'kuaidong-lib'\n\nimport {\n Clazz,\n Student,\n IParseTitles,\n ClazzAvailableType,\n VacationHomeworkType,\n IEditClazzNoteForm,\n IStudentMatchesInfo,\n IStudentMatchesCheckInfo,\n IStudentMatchesUpdateInfo,\n ISchoolStudentMatchesCheckInfo,\n ISchoolStudentMatchesUpdateInfo,\n IStudentCodeOverView,\n IPaginationStudentTableItem,\n IAddStudentCodeForm,\n ClazzListForSchoolRollNoItem,\n IStudentAccountOverView,\n IPaginationStudentTableItemForStudentAccount,\n IAddStudentAccountForm,\n IClazzListForStudentAccountTable,\n ISportsTeam,\n IPagination,\n IClazzDupStudent,\n IGradeClazzJoin,\n} from 'kuaidong-model'\n\nexport class AClazz {\n /**\n * 全校所有的有老师的班级 (注意有老师)\n * 但没有考虑已设定的合作校的班级,按理如果设定了合作校,按理只返回设定的年级范围和班级列表\n * @returns 班级列表\n */\n public static async all(): Promise> {\n return AppUtil.httpGET('/clazz/school')\n }\n\n public static async allImported(): Promise {\n return AppUtil.httpGET('/web/school_roll_no/list_class')\n }\n\n public static async allClassListForSchoolManagement(): Promise {\n return AppUtil.httpGET('/web/school_management/class_list')\n }\n\n // 全校所有的班级, 包括没有老师的\n public static async allNotOnlyOwnedByTeacher(): Promise> {\n return AppUtil.httpGET('/clazz/school', {\n only_owned_by_teachers: false,\n })\n }\n\n public static async allForAdminOwnForTeacher(isAdmin: boolean) {\n return isAdmin ? AClazz.all() : AClazz.allMine()\n }\n\n // 获得对应年级的所有班级,会附上班级人数等信息\n // onlyOwned: 班级是否是否有老师\n public static async allByGradeNo(gradeNo: number, options = { onlyOwned: true }): Promise> {\n return AppUtil.httpGET('/clazz/grade', {\n grade_no: gradeNo,\n only_owned_by_teachers: options.onlyOwned,\n })\n }\n\n // 后端有逻辑处理教师是否是管理员\n public static async allMine(addClassManagerSet?: boolean): Promise> {\n return AppUtil.httpGET('/web/classes', {\n add_class_manager_set: addClassManagerSet,\n })\n }\n\n // 我的执教,班级+运动队\n public static async classesSportMine(): Promise> {\n return AppUtil.httpGET('/clazz/biz', {})\n }\n\n public static async allSportsTeams(): Promise {\n return AppUtil.httpGET('/web/classes/school_sport_team')\n }\n\n /**\n * 如果设定了合作校,则返回合作校标准的班级列表,\n * 所以这个应该是最常用的学校班级列表的方法,\n * 如果没有合作校,则返回所有的班级,但是会过滤那些没有任何老师和学生的班级\n */\n public static async allClazzes(): Promise {\n return AppUtil.httpGET('/web/school_classes')\n }\n\n // 添加班级的下拉列表展示\n public static async clazzesOptions(): Promise {\n // 返回所有的班级,但是会过滤那些没有任何老师和学生的班级\n return AppUtil.httpGET('/web/school_classes/join')\n }\n\n public static async createSportsTeam(form: { note_name: string; img_url: string }): Promise {\n return AppUtil.httpPOST('/web/classes/school_sport_team', { ...form })\n }\n\n public static async allAvailable(\n type?: ClazzAvailableType | VacationHomeworkType | null,\n id?: string | null\n ): Promise> {\n if (type === ClazzAvailableType.ExamPractice) {\n return AppUtil.httpGET('/async/homework_body_exam/classes', { summer_homework_id: id })\n }\n\n return AppUtil.httpGET('/async/summer/2021/classes', {\n summer_homework_id: id,\n hw_space_type: type,\n })\n }\n\n public static async findById(id: number): Promise {\n return AppUtil.httpGET('/clazz/mine/detail', { id })\n }\n\n public static async findByTeacherId(teacherId: string): Promise {\n return AppUtil.httpGET('/cel/clazzes/teacher_classes', { teacher_id: teacherId })\n }\n\n public static async findStudent(clazzId: number, userId: string): Promise {\n return AppUtil.httpGET('/account/student_info', { class_id: clazzId, user_id: userId })\n }\n\n public static async removeStudent(clazzId: number, userId: string) {\n return AppUtil.httpDelete(`/clazz/student?clazz_id=${clazzId}&user_id=${userId}`)\n }\n\n // 班级批量删除学生\n public static async batchRemoveStudent(clazzId: number, userIds: string[]) {\n return AppUtil.httpPOST('/clazz/student/remove_in_batch', {\n clazz_id: clazzId,\n user_ids: userIds,\n })\n }\n\n public static async updateStudent(clazzId: number, userId: string, student: Student) {\n return AppUtil.httpPOST('/async/student/nickname/study_no', {\n class_id: clazzId,\n user_id: userId,\n student_no: student.student_no,\n note_name: student.note_name,\n })\n }\n\n public static async fileUploadToken(filename: string, scene = 'class-export-student-list-file') {\n return AppUtil.httpGET('/async/common/file_upload_presign', { scene, filename })\n }\n\n public static async studentsImport(fileUrl: string, clazzId: number) {\n return AppUtil.httpPOST('/web/students_import', {\n file_url: fileUrl,\n class_id: clazzId,\n })\n }\n\n // 废弃不用\n public static async studentsAdminImport(fileUrl: string) {\n return AppUtil.httpPOST('/web/school/students_imports', {\n file_url: fileUrl,\n })\n }\n\n public static async setStudentTestFree(student_import_id: string, test_free: boolean) {\n return AppUtil.httpPUT('/web/school/students_import/test_free', {\n student_import_id,\n test_free,\n })\n }\n\n public static async fetchStudentMatches(clazzId: number): Promise {\n return AppUtil.httpGET('/web/student_matches', {\n class_id: clazzId,\n })\n }\n\n public static async updateStudentMatches(updateInfo: IStudentMatchesUpdateInfo) {\n return AppUtil.httpPOST('/web/student_matches', updateInfo)\n }\n\n public static async studentMatchesCheck(clazzId: number): Promise {\n return AppUtil.httpGET('/web/student_matches/check', {\n class_id: clazzId,\n })\n }\n\n public static async schoolStudentMatchesCheck(): Promise {\n return AppUtil.httpGET('/web/school/student_matches/check')\n }\n\n public static async updateSchoolStudentMatches(): Promise {\n return AppUtil.httpPOST('/web/school/student_matches/update')\n }\n\n public static async updateClazzNoteName(updateInfo: IEditClazzNoteForm) {\n if (updateInfo.note_name === '') {\n updateInfo.note_name = null\n }\n return AppUtil.httpPOST('/clazz/mine/class_info', updateInfo)\n }\n\n public static async updateStudentMatcher() {\n return AppUtil.httpPOST('/web/school/student_matches/update')\n }\n\n // 废弃\n public static async exportStudents() {\n return AppUtil.httpGET('/web/students/export')\n }\n\n public static changeStudentClazz(user_id: string, class_id: number) {\n return AppUtil.httpPOST('/clazz/change', {\n user_id,\n class_id,\n })\n }\n\n // 班级学生认证\n public static async verifyStudent(id: number, userId: string) {\n return AppUtil.httpPOST('/school/student/verification', {\n class_id: id,\n user_id: userId,\n })\n }\n\n public static async unVerifyStudent(id: number, userId: string) {\n return AppUtil.httpDelete('/school/student/verification', {\n class_id: id,\n user_id: userId,\n })\n }\n\n public static async studentSchoolRollNoImport(\n fileUrl: string,\n columnMap?: Record\n ): Promise<{\n students_count: number\n }> {\n return AppUtil.httpPOST('/web/school_roll_no/school_roll_no_imports', {\n file_url: fileUrl,\n column_map: columnMap,\n })\n }\n\n public static async studentSchoolRollNoImportParseTitles(url: string): Promise {\n return AppUtil.httpPOST('/web/school_roll_no/parse_titles', { excel_url: url })\n }\n\n public static async studentSchoolRollSummary(\n grade_no: null | number,\n class_id: null | number\n ): Promise {\n return AppUtil.httpGET('/web/school_roll_no/student_school_roll_summary', {\n grade_no,\n class_id,\n })\n }\n\n public static async studentList(\n class_id: number | null = null,\n limit: number,\n offset: number,\n name: string | null\n ): Promise {\n return AppUtil.httpGET('/web/school_roll_no/student_list', {\n class_id,\n limit,\n offset,\n name,\n })\n }\n // 解绑单个学生的学籍号\n public static async unBundlingStudentCode(school_roll_no: string): Promise {\n return AppUtil.httpPUT('/web/school_roll_no/add_a_student', { school_roll_no })\n }\n\n // 删除单个学籍号\n public static async deleteStudentCode(school_roll_no: string): Promise {\n return AppUtil.httpDelete('/web/school_roll_no/add_a_student', { school_roll_no })\n }\n\n // 删除全校名单\n public static async deleteAllStudentCode(): Promise {\n return AppUtil.httpDelete('/web/school_roll_no/school_roll_no_imports')\n }\n\n // 添加单个学生学籍号\n public static async addStudent(studentInfo: IAddStudentCodeForm) {\n return AppUtil.httpPOST('/web/school_roll_no/add_a_student', studentInfo)\n }\n\n // 班级列表\n public static async clazzListForStudentSchoolRoll(\n limit: number | null,\n offset: number | null\n ): Promise> {\n return AppUtil.httpGET('/web/school_roll_no/class_summary_list', { limit, offset })\n }\n\n // 导出学籍号名单\n public static async schoolRollNoImports(): Promise<{ file_url: string }> {\n return AppUtil.httpGET('/web/school_roll_no/school_roll_no_imports')\n }\n\n // 导出班级列表\n public static async SchoolRollNoExportClassExcel(): Promise<{ file_url: string }> {\n return AppUtil.httpGET('/web/school_roll_no/export_class_excel')\n }\n\n // 删除班级 管理员认证校\n public static async DeleteClassForVerifiedSchool(...clazzIds: number[]): Promise<{ file_url: string }> {\n return AppUtil.httpDelete('/web/school_roll_no/class_summary_list', {\n class_id_list: clazzIds,\n })\n }\n\n // 合作账号类型认证校\n // 生成账号汇总\n public static async studentAccountSummary(\n grade_no: null | number,\n class_id: null | number\n ): Promise {\n return AppUtil.httpGET('/web/user_account/user_account_summary', {\n grade_no,\n class_id,\n })\n }\n\n // 下载学生账号\n public static async studentAccountImports(include_password = false): Promise<{ file_url: string }> {\n return AppUtil.httpGET('/web/user_account/export_student_excel', { include_password })\n }\n\n // 下载班级账号\n public static async studentAccountClazzImport(): Promise<{ file_url: string }> {\n return AppUtil.httpGET('/web/user_account/export_class_excel')\n }\n\n // 学生账号学生列表\n public static async studentListForStudentAccount(\n class_id: number | null = null,\n limit: number,\n offset: number,\n name: string | null\n ): Promise {\n return AppUtil.httpGET('/web/user_account/user_account_student_list', {\n class_id,\n limit,\n offset,\n name,\n })\n }\n\n // 合作账号删除\n public static async delStudentAccount(login_name: string): Promise {\n return AppUtil.httpDelete('/web/user_account/user_account_student_list', {\n login_name,\n })\n }\n\n // 解绑手机号\n public static async unBindStudentAccount(login_name: string): Promise {\n return AppUtil.httpPUT('/web/user_account/user_account_student_list', {\n login_name,\n })\n }\n\n // 添加单个学生账号\n public static async addStudentAccount(studentAccountForm: IAddStudentAccountForm) {\n return AppUtil.httpPOST('/web/user_account/user_account_student_list', studentAccountForm)\n }\n\n // 学校班级列表\n public static async clazzListForStudentAccount(\n grade_no: number | '',\n limit: number,\n offset: number\n ): Promise {\n return AppUtil.httpGET('/web/user_account/user_account_class_list', {\n grade_no,\n limit,\n offset,\n })\n }\n\n // 判断班级是否有重复学生\n public static async checkClazzHasDupStudents(clazzId: string | number): Promise {\n const items = await this.getDupStudents(clazzId)\n return items.length > 0\n }\n\n public static async getDupStudents(clazzId: string | number): Promise {\n return await AppUtil.httpGET('/clazz/student/dup', { clazz_id: clazzId })\n }\n\n // 处理班级内重复学生,改名和移除\n public static async dupStudentProcess(\n clazzId: string | number,\n actions: { type: 'rename' | 'remove'; user_id: string; new_name?: string }[]\n ) {\n return await AppUtil.httpPOST('/clazz/student/dup/actions', {\n class_id: clazzId,\n actions,\n })\n }\n\n // 获得学校的年级列表,会考虑暑假,如果暑假会考虑新入学的年级\n public static async getSchoolGrades(): Promise {\n const infos = await this.clazzesOptions()\n return infos.map((item) => item.grade_no)\n }\n}\n","import { AppUtil } from 'kuaidong-lib'\nimport {\n Competition,\n CompetitionClassStat,\n CompetitionForm,\n CompetitionGradeStat,\n CompetitionRankingBoard,\n CompetitionScopeConfig,\n CompetitionType,\n CreateCompetitionForm,\n LaunchCompetitionForm,\n} from 'kuaidong-model'\n\nexport class ACompetition {\n static async findById(id: number): Promise {\n return AppUtil.httpGET('/school_competition/item/detail', { competition_id: id })\n }\n\n static async fetchCompetitions(): Promise {\n return AppUtil.httpGET('/cel/school_competition/list')\n }\n\n static async fetchTypes(): Promise {\n return AppUtil.httpGET('/school_competition/types')\n }\n\n static async fetchCompetitionScopeConfig(): Promise {\n return AppUtil.httpGET('/school_competition/scope/select')\n }\n\n static async saveCompetition({ competition, competition_scope }: CompetitionForm): Promise {\n const params = {\n competition_type_id: competition.competition_type.competition_type_id,\n theme_title: competition.theme_title,\n start_time: competition.start_time,\n end_time: competition.end_time,\n description: competition.description,\n take_part_limits: competition.take_part_limits,\n scope_type: competition_scope!.type === 'own_grades' ? 'custom' : competition_scope!.type,\n scope_school_ids: competition_scope!.schools.map((s) => s.school_id),\n scope_grade_ids: competition_scope!.grades.map((g) => g.grade_id),\n scope_class_ids: competition_scope!.clazzes.map((c) => c.id),\n }\n\n if (!competition.competition_id) {\n return AppUtil.httpPOST('/school_competition/publish', params)\n } else {\n return AppUtil.httpPUT('/school_competition/publish', {\n ...params,\n competition_id: competition.competition_id,\n })\n }\n }\n static adjustOwnGradesScopeType(form: CreateCompetitionForm) {\n if (form.scope_type === 'own_grades') {\n form.scope_type = 'custom'\n }\n return\n }\n static async createCompetition(form: CreateCompetitionForm): Promise {\n this.adjustOwnGradesScopeType(form)\n return await AppUtil.httpPOST('/school_competition/publish', form)\n }\n\n static async launchCompetition(form: LaunchCompetitionForm): Promise {\n const params: any = {\n match_type: form.match_type,\n introduce: form.introduce,\n match_img_url: '',\n theme_title: form.theme_title,\n start_time: form.start_time,\n end_time: form.end_time,\n }\n\n const config = {\n limit_score: form.config.config[0].limit_score,\n target_score: form.config.config[0].target_score,\n name: form.config.name,\n game_type: form.config.game_type,\n introduce: form.config.introduce,\n description: '',\n gender: 'A',\n scope_type: form.scope_type,\n scope_list:\n form.scope_type === 'all_school'\n ? null\n : form.scope_type === 'own_grades'\n ? form.scope_grade_ids\n : form.scope_class_ids,\n config: form.config.config.map((c) => ({ id: c.id, title: c.title })),\n }\n\n params.config = [config]\n\n return await AppUtil.httpPOST('/school_online_match/create_match', params)\n }\n\n static async updateCompetition(form: CreateCompetitionForm): Promise {\n this.adjustOwnGradesScopeType(form)\n return await AppUtil.httpPUT('/school_competition/publish', form)\n }\n\n static async closeCompetition({ competition }: CompetitionForm): Promise {\n const params = {\n competition_id: competition.competition_id,\n }\n\n return AppUtil.httpDelete('/school_competition/publish', params)\n }\n\n static async saveDraft({ competition, competition_scope }: CompetitionForm): Promise {\n const params = {\n competition_type_id: competition.competition_type.competition_type_id,\n theme_title: competition.theme_title,\n start_time: competition.start_time,\n end_time: competition.end_time,\n description: competition.description,\n take_part_limits: competition.take_part_limits,\n }\n\n if (competition_scope) {\n Object.assign(params, {\n scope_type: competition_scope.type === 'own_grades' ? 'custom' : competition_scope!.type,\n scope_school_ids: competition_scope.schools.map((s) => s.school_id),\n scope_grade_ids: competition_scope.grades.map((g) => g.grade_id),\n scope_class_ids: competition_scope.clazzes.map((c) => c.id),\n })\n }\n\n if (!competition.competition_id) {\n return AppUtil.httpPOST('/school_competition/draft/publish', params)\n } else {\n return AppUtil.httpPUT('/school_competition/draft/publish', {\n ...params,\n competition_id: competition.competition_id,\n })\n }\n }\n\n static async deleteDraft({ competition }: CompetitionForm): Promise {\n const params = {\n competition_id: competition.competition_id,\n }\n\n return AppUtil.httpDelete('/school_competition/draft/publish', params)\n }\n\n static async fetchCompetitionRankings(\n competitionId: number,\n query: { grade_id?: number; class_id?: number } = {}\n ): Promise {\n return AppUtil.httpGET('/cel/school_competition/students/list', {\n competition_id: competitionId,\n ...query,\n })\n }\n\n static async exportCompetitionRankings(\n competitionId: number,\n query: { grade_id?: number; class_id?: number } = {}\n ): Promise {\n return AppUtil.httpGET('/cel/school_competition/rank/excel', {\n competition_id: competitionId,\n ...query,\n })\n }\n\n static async fetchCompetitionGradeStat(competitionId: number): Promise {\n return AppUtil.httpGET('/school_competition/grades/detail', { competition_id: competitionId })\n }\n\n static async fetchCompetitionClassStat(competitionId: number, gradeId: number): Promise {\n return AppUtil.httpGET('/school_competition/classes/detail', { competition_id: competitionId, grade_id: gradeId })\n }\n}\n","import { AppUtil } from 'kuaidong-lib'\nimport { GlobalConfig, IGlobalConfigHomework, IFirstCategory, IDrillSimple, MenuRole } from 'kuaidong-model'\n\nexport class AGlobalConfig {\n public static async homework(): Promise {\n return AppUtil.httpGET('/global/config/homework')\n }\n\n public static async allDrills(): Promise<{ [index: string]: IDrillSimple }> {\n return (await AppUtil.httpGET('/global/config/all_drill')).drills_info\n }\n\n /**\n * @deprecated\n * 获取全局配置,已废弃,请使用对应的具体配置\n */\n public static async getGlobalConfig(): Promise {\n return AppUtil.httpGET('/global/config')\n }\n\n public static async getDrillCategory(): Promise {\n return AppUtil.httpGET('/global/config/drill_category')\n }\n\n public static async buildShortUrl(url: string): Promise {\n const result: any = await AppUtil.httpGET('/async/system/short_url', { url })\n return result.short_url\n }\n\n public static async menuRoles(): Promise {\n return await AppUtil.httpGET('/global/config/menu_role?refresh=1')\n }\n}\n","import { AppUtil, DateUtil, DateWrapper } from 'kuaidong-lib'\n\nimport {\n Clazz,\n EverydayHomeworkPlan,\n HomeworkClazzStatDaily,\n HomeworkClazzStatWeekly,\n HomeworkComment,\n HomeworkCommentTemplate,\n HomeworkDailyStat,\n HomeworkPlan,\n HomeworkPlanForm,\n HomeworkRecord,\n HomeworkReport,\n HomeworkStudent,\n HomeworkStudentWeekly,\n HomeworkTemplate,\n IHomeworkDrillDetail,\n IHomeworkIntelligentTarget,\n IHomeworkIntelligentRuleOption,\n IHomeworkIntelligentRulePostParams,\n HomeworkEditPlan,\n IAutoCorrectionConfig,\n IGradeReivew,\n} from 'kuaidong-model'\n\nconst templateHandler = (res: any) => {\n const drills = Array(8).fill([])\n res.homework_contents.forEach((v: any) => {\n const idx = !v.day_of_week || v.day_of_week === 8 ? 0 : v.day_of_week\n drills[idx] = v.homework_items.map((d: any) => ({\n drill_id: d.drill_id,\n repeats: d.repeats,\n container_type: d.container_type,\n homework_desc: d.homework_desc,\n gender_scope: d.gender_scope,\n stage: d.stage,\n }))\n })\n return {\n id: res.hw_tpl_id,\n title: res.title,\n desc: res.description,\n grades: res.grades,\n message: res.message,\n repeatBy: res.repeat_type,\n fridayChecked: res.is_check_wd5,\n drills: drills,\n }\n}\n\nconst templateListHandler = (res: { hw_tpls: any[] }) => {\n return res.hw_tpls.map((v) => ({\n id: v.hw_tpl_id,\n title: v.title,\n type: v.repeat_type,\n desc: v.description,\n date: new DateWrapper(v.created_time).showFullStr,\n }))\n}\n\nexport class AHomework {\n static fetchDayClassResult(\n everyday_release_id: number,\n class_id: number,\n curr_date: Date,\n limit: number,\n offset: number\n ) {\n return AppUtil.httpGET('/web/homework/students/list', {\n everyday_release_id,\n class_id,\n curr_date: new DateWrapper(curr_date).showDateStr,\n limit,\n offset,\n })\n }\n\n static async fetchWeeklyCount(\n class_id: number,\n date: Date,\n scopeCover: 'gymnastics' | null = null\n ): Promise<{ count: number }[]> {\n return AppUtil.httpGET('/web/homework/count', {\n class_id,\n date: new DateWrapper(date).showDateStr,\n scope_cover: scopeCover,\n })\n }\n\n static async fetchWeeklyLineData(\n class_id: number,\n date: Date,\n scopeCover: 'gymnastics' | null = null\n ): Promise<{ rate: number }[]> {\n return AppUtil.httpGET('/web/homework/week/completion', {\n class_id,\n date: new DateWrapper(date).showDateStr,\n scope_cover: scopeCover,\n })\n }\n\n static async fetchHomeworkPlans(): Promise {\n return AppUtil.httpGET('/cel/v2/homework/plan/list')\n }\n\n static async fetchHomeworkSummaryDaily(\n clazzId: number,\n date: string,\n scopeCover: 'gymnastics' | null = null\n ): Promise {\n return AppUtil.httpGET('/class/homework/inspect', {\n class_id: clazzId,\n target_date: date,\n scope_cover: scopeCover,\n })\n }\n\n static async fetchHomeworkSummariesDailyLatest(): Promise {\n return AppUtil.httpGET('/homework/home_page/classes/list')\n }\n\n static async fetchHomeworkSummariesDaily(\n clazzId?: number,\n startDate?: string,\n endDate?: string,\n scopeCover: 'gymnastics' | null = null\n ): Promise {\n return AppUtil.httpGET(\n '/v2/homework/classes/list',\n {\n class_id: clazzId,\n start_date: startDate,\n end_date: endDate,\n scope_cover: scopeCover,\n },\n {},\n true\n )\n }\n\n static async exportHomeworkSummariesDaily(\n clazzId?: number,\n startDate?: string,\n endDate?: string,\n scopeCover: 'gymnastics' | null = null\n ): Promise {\n return AppUtil.httpGET('/cel/classes/homework/train/stats/excel', {\n class_id: clazzId,\n start_date: startDate,\n end_date: endDate,\n scope_cover: scopeCover,\n })\n }\n\n static async fetchHomeworkSummariesWeekly(\n startDate: string,\n scopeCover: 'gymnastics' | null = null\n ): Promise {\n return AppUtil.httpGET('/cel/weekly/homework/classes/list', {\n start_date: startDate,\n scope_cover: scopeCover,\n })\n }\n\n static async checkHomeworkPlanSave(form: HomeworkPlanForm, isShs = false): Promise {\n const res = await AppUtil.httpGET('/homework_schedule/overlap', {\n class_ids: isShs ? form.classes : form.classes.map((c) => c.id),\n start_time: form.startDate,\n end_time: form.endDate,\n })\n\n return res\n }\n\n static async saveHomeworkPlan(\n form: HomeworkPlanForm,\n clearAndSync = false,\n saveTemplate = true,\n cascade = false\n ): Promise {\n const params = {\n schedule_id: form.schedule_id,\n group_id: form.groupId,\n release_id: form.homeworkContents[0].release_id || null,\n class_ids: form.classes.map((c) => c.id),\n is_check_wd5: form.fridayChecked,\n message: form.message?.trim() || null,\n start_time: form.startDate,\n expire_time: form.endDate,\n end_time: form.endDate,\n homework_contents: form.homeworkContents.filter((c) => c.homework_items.length > 0),\n release_type: form.releaseType,\n is_publish_all_class: form.publishToAllClasses,\n is_clear_and_sync: clearAndSync,\n template_id: form.template_id,\n is_modify: form.is_modify,\n repeat_type: form.repeatBy,\n is_record_custom_tpl: saveTemplate && form.is_modify !== false,\n hw_tpl_id: form.hw_tpl_id,\n is_clear_today: form.is_clear_today,\n cascade,\n }\n\n return AppUtil.httpPOST('/v2/homework/publish', params)\n }\n\n static async checkHomeworkToday(groupId: number, releaseId: number): Promise {\n return AppUtil.httpGET('/cel/v2/homework/check/delete_close/homework', { group_id: groupId, release_id: releaseId })\n }\n\n static async removeHomeworkPlan(groupId: number, releaseId: number, checked: boolean): Promise {\n return AppUtil.httpDelete('/v2/homework/publish', {\n group_id: groupId,\n release_id: releaseId,\n is_del_curr_homework: checked,\n })\n }\n\n static async checkHomeworkPlanPublish(groupId: number, releaseId: number): Promise {\n const { classes } = await AppUtil.httpGET('/cel/v2/homework/check/classes', {\n group_id: groupId,\n release_id: releaseId,\n })\n return classes || []\n }\n\n static async publish(groupId: number, releaseId: number): Promise {\n return AppUtil.httpPUT(`/v2/homework/publish?group_id=${groupId}&release_id=${releaseId}`)\n }\n\n static async unpublish(groupId: number, releaseId: number, checked: boolean): Promise {\n return AppUtil.httpPOST(\n `/v2/homework/cancel?group_id=${groupId}&release_id=${releaseId}&is_del_curr_homework=${checked}`\n )\n }\n\n static async fetchEverydayHomeworkPlan(everydayReleaseId: number, clazzId: number): Promise {\n return AppUtil.httpGET('/v2/everyday/homework/release', {\n everyday_release_id: everydayReleaseId,\n class_id: clazzId,\n })\n }\n\n static async removeEveryHomeworkPlan(everydayReleaseId: number): Promise {\n return AppUtil.httpDelete('/v2/everyday/homework/release', { everyday_release_id: everydayReleaseId })\n }\n\n static async fetchHomeworkStudents(\n classId: number,\n currentDate: string,\n everydayReleaseId: number\n ): Promise {\n return AppUtil.httpGET('/v2/homework/students/list', {\n class_id: classId,\n curr_date: currentDate,\n everyday_release_id: everydayReleaseId,\n })\n }\n\n static async fetchHomeworkStudentsWeekly(\n clazzId: number,\n startDate: string,\n scopeCover: 'gymnastics' | null = null\n ): Promise {\n return AppUtil.httpGET('/cel/weekly/homework/students/list', {\n class_id: clazzId,\n start_date: startDate,\n scope_cover: scopeCover,\n })\n }\n\n static async fetchHomeworkComments(everydayReleaseId: number, userId: string): Promise {\n return AppUtil.httpGET('/v2/homework/comments/list', {\n everyday_release_id: everydayReleaseId,\n user_id: userId,\n })\n }\n\n static async fetchHomeworkRecord(recordId: string): Promise {\n return AppUtil.httpGET(`/v2/homework/student/record?record_id=${recordId}`)\n }\n\n static async fetchHomeworkRecords(\n everydayReleaseId: number,\n userId: string,\n homeworkIds: number[]\n ): Promise {\n return AppUtil.httpGET('/v2/homework/student/record/list', {\n everyday_release_id: everydayReleaseId,\n user_id: userId,\n homework_ids: homeworkIds,\n })\n }\n\n static async fetchHomeworkRecordsWeekly(\n userId: string,\n startDate: string,\n scopeCover: 'gymnastics' | null = null\n ): Promise {\n return AppUtil.httpGET('/cel/homework/weekly/stu_record/list', {\n user_id: userId,\n start_date: startDate,\n scope_cover: scopeCover,\n })\n }\n\n static async sendComment(releaseId: number, userIds: string[], comments: string) {\n const params = {\n user_ids: userIds,\n everyday_release_id: releaseId,\n comments,\n }\n\n return AppUtil.httpPOST('/v2/homework/add/comment', params)\n }\n\n static async fetchCommentTemplates(): Promise {\n return AppUtil.httpGET('/v2/homework/review_tpl')\n }\n\n static async fetchCommentTemplatesOfGrades(): Promise {\n return AppUtil.httpGET('/v2/homework/review_tpl/grades')\n }\n\n static async switchGradeCommentStatus(scope: number, status: boolean) {\n return AppUtil.httpPOST('/v2/homework/review_tpl/status', { scope, status })\n }\n\n static async addCommentTemplate(text: string, scope: number | null = null) {\n return AppUtil.httpPOST('/v2/homework/review_tpl', { txt: text, scope })\n }\n\n static async removeCommentTemplate(text: string, scope: number | null = null) {\n return AppUtil.httpDelete('/v2/homework/review_tpl', { txt: text, scope })\n }\n\n static async like(everydayReleaseId: number, userIds: string[]): Promise {\n const params = {\n user_ids: userIds,\n }\n\n return AppUtil.httpPOST(`/async/v2/homework/touch/like?everyday_release_id=${everydayReleaseId}`, params)\n }\n\n static async homeworkRecordCorrect(recordId: string, result: string) {\n return AppUtil.httpPOST('/v2/homework/add/record_correct', { record_id: recordId, result })\n }\n\n static async fetchClassesWithWinterHolidayHomeworks(): Promise {\n return AppUtil.httpGET('/cel/v2/homework/class/check/winter_2020')\n }\n\n static async fetchHomeworkReport(date: string): Promise {\n return AppUtil.httpGET('/cel/classes/homework/report', { date })\n }\n\n static async addRemark(everydayReleaseId: number, userId: string, status: string | null, text: string | null) {\n const params = {\n everyday_release_id: everydayReleaseId,\n user_id: userId,\n special_status: status,\n remark: text,\n }\n return AppUtil.httpPOST('/async/v2/homework/add/remark', params)\n }\n\n static async remindUncompleteStudents(everydayReleaseId: number, clazzId: number) {\n return AppUtil.httpGET('/async/homework/notify/uncomplete/stus', {\n everyday_release_id: everydayReleaseId,\n class_id: clazzId,\n })\n }\n\n static async remindUncompleteStudentsToday(clazzId: number) {\n return AppUtil.httpGET('/async/homework/weekly/notify', { class_id: clazzId })\n }\n\n static async remindUncompleteStudentsBatch(everydayReleaseIds: number[]) {\n return AppUtil.httpPOST('/async/homework/notify/classes/uncomplete', { everyday_release_ids: everydayReleaseIds })\n }\n\n static async fetchHomeworkDailyStat(everydayReleaseId: number): Promise {\n return AppUtil.httpGET('/cel/v2/homework/daily/stat', { everyday_release_id: everydayReleaseId })\n }\n\n static async fetchHomeworkWeeklyStat(clazzId: number, startDate: string, scopeCover: 'gymnastics' | null = null) {\n return AppUtil.httpGET('/cel/homework/weekly/summary/stat', {\n class_id: clazzId,\n start_date: startDate,\n scope_cover: scopeCover,\n })\n }\n\n static async fetchHomeworkTemplates(): Promise {\n return AppUtil.httpGET('/v2/homework/config/templates', {}, {}, true)\n }\n\n public static async fetchTemplate(template_id: string): Promise {\n return AppUtil.httpGET('/v2/homework/config/template', { template_id })\n }\n\n static async generateHomeworkPlanByQuestionnaire(questionnaireAnswers: object) {\n return AppUtil.httpPOST('/cel/hw_plan/templates', questionnaireAnswers)\n }\n\n static async publishHomeworkPlanByQuestionnaire(questionnaireAnswers: object, comments: { [index: number]: string }) {\n return AppUtil.httpPOST('/async/hw_plan/create_from_tpl', { ...questionnaireAnswers, grade_message_map: comments })\n }\n\n static async templateList() {\n return AppUtil.httpGET('/cel/hw/custom/tpl/list').then(templateListHandler)\n }\n\n static async rawTemplateList() {\n return AppUtil.httpGET('/cel/hw/custom/tpl/list')\n }\n\n static async fetchTpl(hw_tpl_id: string) {\n return AppUtil.httpGET('/cel/hw/custom/tpl/single', { hw_tpl_id }).then(templateHandler)\n }\n\n static async updateTpl(template: any) {\n return AppUtil.httpPOST('/cel/hw/custom/tpl/single', {\n hw_tpl: {\n id: template.id,\n is_check_wd5: template.fridayChecked,\n title: template.title,\n grades: template.grades || [],\n repeat_type: template.repeatBy,\n description: template.desc,\n message: template.message,\n },\n homework_contents: template.drills\n .map((v: any[], idx: number) => ({\n homework_items: v.map((d) => ({\n drill_id: d.drill_id,\n repeats: d.repeats,\n gender_scope: d.gender_scope,\n stage: d.stage,\n })),\n day_of_week: idx || null,\n }))\n .filter((v: any) => v.homework_items.length > 0),\n })\n }\n\n static async deleteTpl(hw_tpl_id: string) {\n return AppUtil.httpDelete('/cel/hw/custom/tpl/single', { hw_tpl_id })\n }\n\n static async fetchHomeworkDrillDetail(drillId: string): Promise {\n return AppUtil.httpGET('/global/config/drill', { drill_id: drillId })\n }\n\n static async fetchHomeworkIntelligentTargets(): Promise {\n return AppUtil.httpGET('/smart_homework/targets')\n }\n\n static async fetchHomeworkIntelligentRules(\n targetRuleInfo: IHomeworkIntelligentRulePostParams\n ): Promise {\n return AppUtil.httpPOST('/smart_homework/rule', { ...targetRuleInfo })\n }\n\n static checkConflict(class_ids: number[]) {\n return AppUtil.httpPOST('/smart_homework/check', { class_ids })\n }\n\n static publishPost(\n form: HomeworkEditPlan,\n clearTody = false,\n saveTemplate = false,\n cascade = false\n ): Promise<{\n schedule_ids: string[]\n }> {\n return AppUtil.httpPOST('/v2/homework/publish', {\n schedule_id: form.schedule_id,\n class_ids: form.classes,\n message: form.message?.trim() || null,\n start_time: form.startDate ? new DateWrapper(DateUtil.beginningOfDay(form.startDate)).showFullStr : null,\n end_time: form.endDate ? new DateWrapper(DateUtil.endOfDay(form.endDate)).showFullStr : null,\n homework_contents: form.content\n .map((v, idx) => {\n const homeworkItems = v.map((t) => ({\n drill_id: t.id,\n repeats: t.count,\n container_type: t.container,\n homework_desc: t.category,\n gender_scope: t.gender,\n stage: t.stage || '主项目',\n }))\n\n return {\n homework_items: [\n ...homeworkItems.filter((item) => item.stage === '热身'),\n ...homeworkItems.filter((item) => item.stage === '主项目' || !item.stage),\n ...homeworkItems.filter((item) => item.stage === '拉伸'),\n ],\n day_of_week: idx || undefined,\n }\n })\n .slice(...{ day: [0, 1], week: [1], weekend: [6], weekends_only: [6] }[form.type])\n .filter((c) => c.homework_items.length),\n repeat_type: form.type,\n is_record_custom_tpl: saveTemplate,\n is_clear_today: clearTody,\n is_check_wd5: false,\n template_id: null,\n cascade,\n })\n }\n\n static deleteIllegalRecordVideo(record_id: string, reason: string) {\n return AppUtil.httpDelete('/v2/homework/record/video', {\n record_id,\n reason,\n })\n }\n\n static async fetchHomeworkUneditable(): Promise<{ start: number; end: number }> {\n return AppUtil.httpGET('/homework/unavailable_timescope')\n }\n\n static async fetchAutoCorrectionConfig(): Promise {\n return AppUtil.httpGET('/v2/homework/auto_correction_config')\n }\n\n static async setAutoCorrectionConfig(config: IAutoCorrectionConfig): Promise {\n return AppUtil.httpPUT('/v2/homework/auto_correction_config', config)\n }\n}\n\nexport type tplListType = ReturnType\n","import { AppUtil, EnvUtil } from 'kuaidong-lib'\nimport { UserTeacherId, Organization, ILoginResult } from 'kuaidong-model'\n\nexport class ALogin {\n static async sendLoginCode(phone: string) {\n if (EnvUtil.isISC()) {\n return AppUtil.httpGET('/classroom/login', { phone })\n }\n\n return AppUtil.httpPOST(\n `${process.env.VUE_APP_CRAZYROPE_API}/user/send_login_code`,\n { phone },\n {\n 'X-Gkid-Appname': 'h5',\n },\n false,\n false\n )\n }\n\n static async sendLoginCodeV2(phone: string, region = '86') {\n return AppUtil.httpPOST(\n `${process.env.VUE_APP_CRAZYROPE_API}2/user/send_login_code`,\n { phone, region },\n {},\n false,\n false\n )\n }\n\n static async logout() {\n try {\n AppUtil.removeRuquestToken()\n\n if (EnvUtil.isAgency()) {\n document.cookie = 'TRUID=;domain=tiantiantiaosheng.com;path=/;max-age=0'\n }\n\n if (EnvUtil.isCampus() || EnvUtil.isSaas()) {\n document.cookie = 'ttts_user_token=;domain=tiantiantiaosheng.com;path=/;max-age=0'\n document.cookie = 'ttts_user_token_debug=;domain=tiantiantiaosheng.com;path=/;max-age=0'\n\n return await AppUtil.httpGET(`/account/logout`)\n }\n } catch {\n // noop\n }\n }\n\n static async loginByPhone(phone: string, code: string, wx_open_id?: string): Promise {\n if (EnvUtil.isISC()) {\n return AppUtil.httpPOST('/classroom/login', { phone, code }, false, false)\n }\n\n const result = (await AppUtil.httpPOST(\n `${process.env.VUE_APP_CRAZYROPE_API}/user/login_wechat_h5`,\n { phone, sms_code: code, wx_open_id },\n {},\n false,\n EnvUtil.isAgency() ? false : true\n )) as ILoginResult\n\n AppUtil.setRequestToken(result.auth_token)\n\n return result\n }\n\n static async loginTzyByPhone(phone: string, code: string, wx_open_id?: string): Promise {\n if (EnvUtil.isISC()) {\n return AppUtil.httpPOST('/classroom/login', { phone, code }, false, false)\n }\n\n const result = (await AppUtil.httpPOST(\n EnvUtil.isCampus()\n ? `${process.env.VUE_APP_API}/user/login_wechat_h5`\n : `${process.env.VUE_APP_CRAZYROPE_API}/user/login_wechat_h5`,\n { phone, sms_code: code, wx_open_id },\n {},\n false,\n EnvUtil.isAgency() ? false : true\n )) as ILoginResult\n\n AppUtil.setRequestToken(result.auth_token)\n\n return result\n }\n\n static async bindWxWork() {\n await AppUtil.httpPOST(`${process.env.VUE_APP_CRAZYROPE_MANAGE_API}/swk/user/bind_user_id`)\n }\n\n public static async loginByH5Token(): Promise {\n return AppUtil.httpGET('/account/login_by_h5token', {}, {}, true)\n }\n\n static async loginByQrCode(token: string) {\n return (await AppUtil.httpPUT('/account/qrcode_login', { token })).status\n }\n\n static async loginByQrCodeResult(token: string, expiredDays?: number | null): Promise {\n return (await AppUtil.httpPOST('/account/qrcode_login', { token, expires_days: expiredDays })).login\n }\n\n static async loginByQrCodeToken(): Promise {\n return (await AppUtil.httpGET('/account/qrcode_login')).token\n }\n\n // 其他账号系统\n static async loginByAccount(username: string, password: string) {\n return AppUtil.httpPOST('/mgmt/account/login', { login_name: username, password })\n }\n\n static async getOrganizationInfo(): Promise {\n return AppUtil.httpGET('/mgmt/account/login')\n }\n}\n","import { AppUtil } from './AppUtil'\nimport { DateUtil } from './DateUtil'\nimport { StringUtil } from './StringUtil'\nimport { BrowserUtil } from './BrowserUtil'\n\nexport type TrackInfoType = {\n trackId: string\n event: {\n name: string\n convert_id: string\n }\n}\nexport type AccountDetailType = {\n account_id: string\n action_id: string\n}\nexport type AccountConfigType = {\n channel: string\n accounts: AccountDetailType[]\n}\nexport interface TencentGlobal extends Window {\n gdt?: any\n version?: any\n}\ninterface ZhihuGlobal extends Window {\n zhad?: any[]\n}\n\nexport class AdChannel {\n public static isChannel(channel: string, channel_prefix: string): boolean {\n if (channel) {\n return channel.startsWith(channel_prefix)\n } else {\n return false\n }\n }\n\n public static isBaiduChannel(channel: string) {\n return this.isChannel(channel, 'baidu_')\n }\n\n public static isZhihuChannel(channel: string) {\n return this.isChannel(channel, 'zhihu')\n }\n\n public static isTouTiaoChannel(channel: string) {\n return this.isChannel(channel, 'toutiao')\n }\n\n public static isTencentChannel(channel: string) {\n return this.isChannel(channel, 'tencent')\n }\n\n public static isTocChannel(channel: string) {\n return this.isChannel(channel, 'toc_')\n }\n\n public static isTobChannel(channel: string) {\n return this.isChannel(channel, 'tob_')\n }\n\n public static isTobTouTiaoChannel(channel: string) {\n return this.isChannel(channel, 'tob_toutiao')\n }\n\n public static isTouTiaoTyjxChannel(channel: string) {\n return this.isChannel(channel, 'toutiao_tyjx')\n }\n\n public static isTobTencentChannel(channel: string) {\n return this.isChannel(channel, 'tob_tencent')\n }\n\n public static isStuChannel(channel: string) {\n return this.isChannel(channel, 'tostu')\n }\n\n public static isHomeworkChannel(channel: string) {\n return this.isChannel(channel, 'homework')\n }\n\n public static isHomeworkSummerChannel(channel: string) {\n return this.isChannel(channel, 'homework_summer')\n }\n\n public static isHomeworkSummerTencentChannel(channel: string) {\n return this.isChannel(channel, 'homework_summer_tencent')\n }\n\n public static isHomeworkWinterChannel(channel: string) {\n return this.isChannel(channel, 'homework_winter')\n }\n\n public static isHomeworkTouTiaoChannel(channel: string) {\n return this.isChannel(channel, 'homework_toutiao')\n }\n\n public static async channelWithEnv(channel: string) {\n // 1. 如果投放channel存在,则优先传递\n if (channel && channel.trim()) {\n return channel\n }\n // 2. 否则判断是否是 app 环境, 是则传递 channel= app_channel\n if (await AppUtil.isUnderApp()) {\n return 'app_channel'\n }\n // 3. 否则判断是不是 wechat 环境, 是则传递 channel = wechat_channel\n if (await BrowserUtil.isWechat()) {\n return 'wechat_channel'\n }\n // 4.都不满足,则直接返回, 逻辑上不应该执行到,因为此时channel为空或者空格\n return channel\n }\n}\n\nexport class TikTokAd extends AdChannel {\n private static win: any\n\n public static accountInfo: TrackInfoType[] = []\n\n static isDouYinBaseCodeInit: boolean\n\n public static isOcpcPage() {\n const ocpc_pages = ['#/ad-mobile-activity', '#/auth-form', '#/ad-auth-form', '#/ad-pc-activity']\n\n return ocpc_pages.indexOf(location.pathname) > -1 || ocpc_pages.indexOf(location.hash.split('?')[0]) > -1\n }\n\n // (window, document, \"script\", trackid);\n public static douyinTrackInit(r: any, d: Document, s: string, trackid: string) {\n const meteor = (r.meteor = r.meteor || [])\n meteor.methods = ['track', 'off', 'on']\n meteor.factory = function (method: any) {\n return function () {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments)\n args.unshift(method)\n meteor.push(args)\n return meteor\n }\n }\n\n for (let i = 0; i < meteor.methods.length; i++) {\n const key = meteor.methods[i]\n meteor[key] = meteor.factory(key)\n }\n\n meteor.load = function () {\n const fjs: any = d.getElementsByTagName(s)[0]\n const js: any = d.createElement(s)\n js.src = 'https://analytics.snssdk.com/meteor.js/v1/' + trackid + '/sdk'\n fjs.parentNode.insertBefore(js, fjs)\n }\n\n meteor.load()\n if (meteor.invoked) {\n return\n }\n meteor.invoked = true\n meteor.track('pageview')\n }\n\n public static douyinFormSubmit() {\n this.accountInfo.forEach((item) => {\n this.win.meteor.track(item.event.name, { convert_id: item.event.convert_id })\n })\n }\n\n public static douYinChannelInit(ticTokTrackIdInfo: TrackInfoType[]) {\n this.win = window as any\n const meteor = (this.win.meteor = this.win.meteor || [])\n if (Object.prototype.toString.call(meteor) === '[object Object]') {\n // metor 已经初始化\n return false\n }\n ticTokTrackIdInfo.forEach((item) => {\n this.douyinTrackInit(this.win, document, 'script', item.trackId)\n })\n }\n\n public static baseCodeInit() {\n this.isDouYinBaseCodeInit = false\n this.douYinChannelInit(this.accountInfo)\n this.isDouYinBaseCodeInit = true\n }\n\n public static submitForm() {\n if (this.isDouYinBaseCodeInit) {\n this.douyinFormSubmit()\n }\n }\n\n public static validatePhone(phone: string) {\n if (phone.length !== 11) {\n return {\n error: true,\n msg: '请您填写11位手机号',\n }\n }\n const isPhone = StringUtil.validateChinaMobilePhoneNumber(phone)\n if (!isPhone) {\n return {\n error: true,\n msg: '手机号码格式不正确,请检查',\n }\n }\n\n return {\n error: false,\n msg: '',\n }\n }\n}\n\nexport class TencentAd extends AdChannel {\n public static win: TencentGlobal = window\n public static doc: Document = document\n public static tag = 'script'\n public static gdtEventsJs = '//qzonestyle.gtimg.cn/qzone/biz/gdt/dmp/user-action/gdtevent.min.js'\n public static version: any\n public static accountInfo: TrackInfoType[] = []\n\n public static initBaseCode() {\n if (this.win.gdt) return\n this.initVersion()\n this.initScript()\n this.initAccountInfo()\n }\n\n public static initVersion() {\n this.version = this.win.gdt = (...args: any[]) => {\n this.win.gdt.tk\n ? // eslint-disable-next-line prefer-spread\n this.win.gdt.tk.apply(this.win.gdt, args)\n : this.win.gdt.queue.push(args)\n }\n\n this.version.sv = '1.0'\n this.version.bt = 0\n this.version.queue = []\n }\n\n public static initScript() {\n const scriptEle = this.doc.createElement(this.tag) as HTMLScriptElement\n scriptEle.async = !0\n scriptEle.src = this.gdtEventsJs\n const firstScript = this.doc.getElementsByTagName(this.tag)[0]\n if (firstScript && firstScript.parentNode) {\n firstScript.parentNode.insertBefore(scriptEle, firstScript)\n }\n }\n\n public static initAccountInfo() {\n this.accountInfo.forEach((account) => {\n this.win.gdt('init', account.event.convert_id)\n this.win.gdt('track', 'PAGE_VIEW')\n })\n }\n\n public static submitForm() {\n const time = DateUtil.longDateStr(new Date())\n this.win.gdt('track', 'RESERVATION', { time })\n }\n\n public static homeworkSummerBaseCodeInit() {\n this.initBaseCode()\n }\n}\n\nexport class BaiduAd extends AdChannel {\n private static win: any\n static isBaiduBaseCodeInit: boolean\n\n public static baiduOcpcSubmit(): void {\n this.win._agl && this.win._agl.push(['track', ['success', { t: 3 }]])\n }\n\n public static baiduBaseCodeInit(win: any): void {\n win._agl.push(['production', '_f7L2XwGXjyszb4d1e2oxPybgD'])\n ;(function () {\n const agl = document.createElement('script')\n agl.type = 'text/javascript'\n agl.async = true\n agl.src = 'https://fxgate.baidu.com/angelia/fcagl.js?production=_f7L2XwGXjyszb4d1e2oxPybgD'\n const s = document.getElementsByTagName('script')\n if (s && s[0] && s[0].parentNode) {\n s[0].parentNode.insertBefore(agl, s[0])\n }\n })()\n }\n\n public static addOcpcBaseCode() {\n this.win = window as any\n this.win._agl = this.win._agl || []\n this.baiduBaseCodeInit(this.win)\n }\n\n public static pageInit(channel: string) {\n this.isBaiduBaseCodeInit = false\n if (this.isChannel(channel, 'baidu_')) {\n this.addOcpcBaseCode()\n this.isBaiduBaseCodeInit = true\n }\n }\n}\n\nexport class ZhihuAd extends AdChannel {\n private static win: ZhihuGlobal = window\n private static isZhihuBaseCodeInit = false\n private static readonly jsSource = '//unpkg.zhimg.com/@efe/zhad-tracker@1.4.1'\n\n public static addOcpcBaseCode() {\n this.win.zhad = []\n const tag = document.createElement('script')\n tag.type = 'text/javascript'\n tag.async = true\n tag.src = this.jsSource\n tag.onerror = function () {\n const img = new Image()\n img.src = '//sugar.zhihu.com/log_fe?js_url=' + window.encodeURIComponent(tag.src) + '&t=' + +new Date()\n }\n\n const scriptTags = document.getElementsByTagName('script')\n if (scriptTags && scriptTags[0] && scriptTags[0].parentNode) {\n scriptTags[0].parentNode.insertBefore(tag, scriptTags[0])\n }\n }\n\n public static pageInit(channel: string) {\n this.isZhihuBaseCodeInit = false\n if (this.isChannel(channel, 'zhihu')) {\n this.addOcpcBaseCode()\n this.isZhihuBaseCodeInit = true\n }\n }\n\n public static submitForm() {\n ;(this.win.zhad as any[]).push({ eventtype: 'js_submit' })\n }\n}\n","import { AppUtil, TikTokAd, DateUtil, DateRangeUtil } from 'kuaidong-lib'\n\nimport {\n Clazz,\n Teacher,\n TeacherInfo,\n SummaryStats,\n ITeacherForm,\n TeacherAuthForm,\n ITeacherAuthList,\n TeacherAuthRecord,\n UpdateTeacherInfo,\n ITeacherCreateForm,\n} from 'kuaidong-model'\n\nexport class ATeacher {\n public static async find(): Promise {\n return AppUtil.httpGET('/account/teacher_info').then((res) => {\n const school = res?.school\n\n if (school?.verified_start_date && school?.verified_end_date) {\n res.school.verified = DateRangeUtil.in(\n DateUtil.beginningOfDay(),\n school.verified_start_date,\n school.verified_end_date\n )\n }\n\n return res\n })\n }\n\n public static async save(form: ITeacherForm): Promise {\n if (form.user_id) {\n return AppUtil.httpPUT('/teacher/modify', {\n teacher_id: form.teacher_id,\n teacher_user_id: form.user_id,\n teacher_name: form.teacher_name,\n head_img_url: form.head_img_url,\n teacher_role: form.role,\n binding_classes: form.clazzes,\n role_type: form.is_admin ? 'ADMIN' : null,\n })\n } else {\n return AppUtil.httpPOST('/web/teacher_manage/apply/teacher', {\n teacher_name: form.teacher_name,\n classes: form.clazzes,\n phone: form.phone,\n role: form.role,\n })\n }\n }\n\n public static async remove(userId: string) {\n return AppUtil.httpDelete('/teacher/delete', { teacher_user_id: userId })\n }\n\n public static async registerSimple(params: any) {\n return AppUtil.httpPOST(`/cel/operation/ad/register_apply?channel=saas-quick`, params)\n }\n\n public static async applyAuth(teacherAuthForm: TeacherAuthForm, channel: string): Promise {\n const { id, name, province, city, district } = teacherAuthForm.school\n const params = {\n phone: teacherAuthForm.phone,\n channel: teacherAuthForm.channel,\n verify_code: teacherAuthForm.verificationCode,\n invite_code: teacherAuthForm.invite_code,\n form_data: {\n teacher_name: teacherAuthForm.name,\n ...(id ? { school_id: id } : {}),\n school_name: name,\n province,\n city,\n district,\n classes: teacherAuthForm.classes.map(({ gradeNo: grade_no, classNo: class_no, noteName: note_name }) => ({\n grade_no,\n class_no,\n note_name,\n })),\n purpose: teacherAuthForm.purpose,\n identify: teacherAuthForm.identify,\n no_need_code: teacherAuthForm.isWechat,\n },\n }\n\n return AppUtil.httpPOST(`/account/verify?channel=${await TikTokAd.channelWithEnv(channel)}`, params)\n }\n\n public static async applyAuthSimple(params: any): Promise {\n return AppUtil.httpPOST(`/account/verify?channel=${params.channel ? params.channel : 'sass'}`, params)\n }\n\n public static async allAuthRecords(): Promise {\n return AppUtil.httpGET('/account/verify')\n }\n\n static async joinClazz({\n gradeNo,\n classNo,\n noteName,\n teacherId,\n }: {\n gradeNo: number\n classNo?: number\n noteName?: string\n teacherId?: string\n }): Promise {\n const params = {\n bind_classes: [{ grade_no: gradeNo, class_no: classNo, note_name: noteName }],\n teacher_id: teacherId,\n }\n return AppUtil.httpPOST('/clazz/setting/teacher_operation', params)\n }\n\n static async exitClazz(clazzId: number, teacher_id?: string): Promise {\n const params = {\n class_ids: [clazzId],\n teacher_id, //不传就是退出自己\n }\n return AppUtil.httpDelete('/clazz/setting/teacher_operation', params)\n }\n\n static async getStudentInvitationUrl(clazzId: number): Promise {\n return AppUtil.httpGET('/clazz/setting/student_invitation_url', { class_id: clazzId })\n }\n\n static async getStudentInvitationUrlPerSchool(extra_params?: Record): Promise {\n return (await AppUtil.httpPOST('/schools/invite_url', { extra_params })).url\n }\n\n static readonly ShareSceneClazzInvite = 'ClazzInvite' // 班级邀请进班\n\n static async getShareCode(scene: string): Promise {\n const result = await AppUtil.httpGET('/async/teacher/share_code', { scene })\n return result.share_code\n }\n\n static async summaryStats(): Promise {\n return AppUtil.httpGET('/cel/teacher/summary_stat')\n }\n\n static async allClasses(): Promise {\n return AppUtil.httpGET('/cel/teacher/school/clazzes')\n }\n\n static async allTeachers(): Promise<{ teacher_id: string; teacher_name: string }[]> {\n return AppUtil.httpGET('/cel/teacher/school_teachers')\n }\n\n static async ownClasses(): Promise {\n return AppUtil.httpGET('/cel/clazzes/teacher_own')\n }\n\n // 教师头像上传修改 api\n static async fetchTeacherInfo(): Promise {\n return AppUtil.httpGET('/async/teacher/info/update')\n }\n\n static async updateTeacherInfo(updateInfo: UpdateTeacherInfo) {\n return AppUtil.httpPOST('/async/teacher/info/update', updateInfo)\n }\n\n static webApplyAuthTeacher(teachersInfo: ITeacherCreateForm) {\n return AppUtil.httpPOST('/web/teacher_manage/apply/teacher', teachersInfo)\n }\n\n static webFetchAuthTeacherList(): Promise {\n return AppUtil.httpGET('/web/teacher_manage/teachers')\n }\n\n static webClassesExtra(teacher_id: string): Promise> {\n return AppUtil.httpGET('/web/classes/extra', { teacher_id })\n }\n\n static webTeacherPassApply(apply_id: string): Promise {\n return AppUtil.httpPOST('/web/teacher_manage/pass/apply', { apply_id: apply_id })\n }\n\n static webTeacherJoinClazz({\n gradeNo,\n classNo,\n teacherId,\n }: {\n gradeNo: number\n classNo: number\n teacherId: string\n }): Promise {\n const params = {\n bind_classes: [{ grade_no: gradeNo, class_no: classNo }],\n teacher_id: teacherId,\n }\n return AppUtil.httpPOST('/web/teacher_manage/bind/classes', params)\n }\n\n static webTeacherDeleteClazz({ clazzId, teacherId }: { clazzId: number; teacherId: string }): Promise {\n const params = {\n class_ids: [clazzId],\n teacher_id: teacherId,\n }\n return AppUtil.httpDelete('/web/teacher_manage/bind/classes', params)\n }\n\n static webTeacherRejectAuth({ applyId, rejectReason }: { applyId: string; rejectReason: string }): Promise {\n const params = {\n apply_id: applyId,\n reject_reason: rejectReason,\n }\n return AppUtil.httpPOST('/web/teacher_manage/reject/apply', params)\n }\n\n static delTeacherForAdmin(teacher_user_id: string) {\n return AppUtil.httpDelete('/teacher/delete', {\n teacher_user_id,\n })\n }\n\n static assistant(): Promise<{ wechat_url: string }> {\n return AppUtil.httpGET('/teacher/assistant')\n }\n}\n","import { AppUtil, EnvUtil, IReport } from 'kuaidong-lib'\nimport { UserInfo, UserTeacherId, UserRoleInfo } from 'kuaidong-model'\n\nexport class AUser {\n public static async loginByH5Token(): Promise {\n if (EnvUtil.isAgency()) {\n return AppUtil.httpGET('/tr/coach/user/login_by_h5token')\n }\n if (EnvUtil.isOperation()) {\n return {}\n }\n return AppUtil.httpGET('/account/login_by_h5token', {}, {}, true)\n }\n\n public static async getUserInfo(): Promise {\n return AppUtil.httpGET('/account/user_info')\n }\n\n public static async feedback(feedback: { message: string; rate: number }): Promise {\n return AppUtil.httpPOST('/user/feedback', feedback)\n }\n\n public static async getDrillReport(drill_record_id: string): Promise {\n return AppUtil.httpGET(\n process.env.VUE_APP_CRAZYROPE_API + '/user/drill_report_info',\n { drill_record_id },\n {},\n false,\n false\n )\n }\n\n public static async getRoleInfo(): Promise {\n return AppUtil.httpGET('/account/role_info')\n }\n}\n","import { AppUtil } from 'kuaidong-lib'\nimport {\n Clazz,\n IPaperDetail,\n IStudentPrize,\n IChallengeRepoItem,\n IClazzStaticSummary,\n ITrainingListItem,\n IWinter2023Config,\n IWinter2023LessonsQurey,\n IWinter2023Form,\n ISAutumn2022Homework,\n ISAutumn2022ListItem,\n IWinter2023Preview,\n ChallengeConfig,\n IStatusOfWinter2023Awards,\n IStudentStaticSummary,\n IStudentChallengeRecord,\n ICreateExamOrChallengeForm,\n IPaperItem,\n ITeacherPaperExamItem,\n IPaperExamStaticInfo,\n IExamStudentStaticInfo,\n IExamStudentPaper,\n IWinter2023Stat,\n ITeacherPaperExamItemUpdate,\n IYearTopRank,\n IYearTopRankMine,\n IWinter2023UserContribution,\n IWinter2023UserContributionMine,\n IWinter2023UserContributionForm,\n IWinter2023MixSubjectsItem,\n IWinter2023MixSubjectClazzSummary,\n IWinter2023MixSubjectClazzItem,\n IWinter2023MixSubjectStudentItem,\n} from 'kuaidong-model'\n\nexport class AWinter2023 {\n static achieveConfig(): Promise {\n return AppUtil.httpGET('/activity/winter_2022/config')\n }\n\n static achieveClasses(): Promise {\n return AppUtil.httpGET('/activity/winter_2022/classes')\n }\n\n static detailOfSafeLessons(\n query: Pick\n ): Promise<{ course_id: string }> {\n return AppUtil.httpPOST('/activity/winter_2022/preview/online_course', { ...query })\n }\n\n static detailOfPELessons(query: IWinter2023LessonsQurey): Promise {\n return AppUtil.httpPOST('/activity/winter_2022/preview/homework', { ...query })\n }\n\n static detailOfQAOrSkills(\n query: Omit\n ): Promise<{ challenge_id: string }> {\n return AppUtil.httpPOST('/activity/winter_2022/preview/challenge', { ...query })\n }\n\n static create(form: IWinter2023Form): Promise<{ id: string }> {\n return AppUtil.httpPOST('/activity/winter_2022/create', { ...form })\n }\n\n static list(): Promise {\n return AppUtil.httpGET('/activity/winter_2022/list')\n }\n\n static delete(vacation_plan_id: string) {\n return AppUtil.httpDelete('/activity/winter_2022/delete', { vacation_plan_id })\n }\n\n static preview(vacation_plan_id: string): Promise {\n return AppUtil.httpGET('/activity/winter_2022/detail', { vacation_plan_id })\n }\n\n static async paperDetail(paper_id: string): Promise {\n return AppUtil.httpGET('/web/paper/paper_detail', { paper_id })\n }\n\n static challengeItems(challenge_id: string): Promise {\n return AppUtil.httpGET('/web/challenge/challenge_items', { challenge_id }).then((res) => ({\n ...res,\n challenge_id,\n }))\n }\n\n static challengePrizes(challengeId: string): Promise {\n return AppUtil.httpGET('/web/challenge/challenge_award_list', { challenge_id: challengeId })\n }\n\n static challengeOrTrainingList(\n challenge_type: 'KNOWLEDGE' | 'SPECIAL_EXERCISE',\n isUniversity = false\n ): Promise {\n if (isUniversity) {\n return AppUtil.httpGET('/web/challenge/teacher_grade_challenge', {\n challenge_type,\n })\n } else {\n return AppUtil.httpGET('/web/challenge/teacher_challenge', {\n challenge_type,\n })\n }\n }\n\n static challengeRepoList(challenge_type: 'KNOWLEDGE' | 'SPECIAL_EXERCISE'): Promise {\n return AppUtil.httpGET('/web/challenge/challenge_repo_list', {\n challenge_type,\n })\n }\n\n static paperList(): Promise {\n return AppUtil.httpGET('/web/paper/paper_list')\n }\n\n static trainingClassSummary(group_id: string, class_id: number | null = null): Promise {\n return AppUtil.httpGET('/web/challenge/statistic/class_summary', {\n group_id,\n class_id,\n })\n }\n\n static trainingClassSummaryList(group_id: string, class_id: number | null = null): Promise {\n return AppUtil.httpGET('/web/challenge/statistic/class_summary_list', {\n group_id,\n class_id,\n })\n }\n\n static classStudentList(challenge_class_id: string): Promise {\n return AppUtil.httpGET('/web/challenge/statistic/class_student_list', {\n challenge_class_id,\n })\n }\n\n static studentRecord(user_id: string, challenge_class_id: string): Promise {\n return AppUtil.httpGET('/web/challenge/statistic/student_record', {\n user_id,\n challenge_class_id,\n })\n }\n\n static achieveStatusOfAwards(): Promise {\n return AppUtil.httpGET('/activity/winter_2022/reward/teacher/status')\n }\n\n static achieveCourse(course_id: string) {\n return AppUtil.httpPOST('/activity/winter_2022/reward/teacher/teacher_course', { course_id })\n }\n\n static achieveGift() {\n return AppUtil.httpPOST('/activity/winter_2022/reward/teacher/gift_pack')\n }\n\n static achieveCourses(): Promise<{ title: string; id: string }[]> {\n return AppUtil.httpGET('/activity/winter_2022/reward/teacher/teacher_course')\n }\n\n static achieveAwardsOfChallenge(vacation_plan_id: string): Promise {\n return AppUtil.httpGET('/activity/winter_2022/reward/student', { vacation_plan_id })\n }\n\n static createExamOrChallenge(form: ICreateExamOrChallengeForm, isUniversity = false): Promise {\n if (isUniversity) {\n return AppUtil.httpPOST('/web/paper/create_exam_or_challenge', { ...form, class_id_list: null })\n } else {\n return AppUtil.httpPOST('/web/paper/create_exam_or_challenge', { ...form, grade_ids: null })\n }\n }\n\n static teacherPaperExamList(isUniversity = false): Promise {\n if (isUniversity) {\n return AppUtil.httpGET('/web/paper/teacher_grade_paper_exam_list')\n } else {\n return AppUtil.httpGET('/web/paper/teacher_paper_exam_list')\n }\n }\n\n static examStatisticClazzSummary(exam_id: string): Promise {\n return AppUtil.httpGET('/web/exam/statistic/class_summary', {\n exam_id,\n })\n }\n\n static examStatisticStudentSummary(exam_id: string, class_id: number): Promise {\n return AppUtil.httpGET('/web/exam/statistic/student_summary', {\n exam_id,\n class_id,\n })\n }\n\n static examStatisticStudentPaper(online_exam_class_id: string, user_id: string): Promise {\n return AppUtil.httpGET('/web/exam/statistic/student_paper', {\n online_exam_class_id,\n user_id,\n })\n }\n\n static stat(query: { type: string; value: any }): Promise {\n return AppUtil.httpPOST('/activity/winter_2022/stat', { ...query })\n }\n\n static deleteTeacherChallenge(group_id: string) {\n return AppUtil.httpDelete('/web/challenge/teacher_challenge', {\n group_id,\n })\n }\n\n static createTeacherChallenge(form: any) {\n return AppUtil.httpPOST('/web/challenge/teacher_challenge', form)\n }\n\n static updateTeacherChallenge(form: ITrainingListItem) {\n return AppUtil.httpPUT('/web/challenge/teacher_challenge', form)\n }\n\n static deleteTeacherPaperExam(online_exam_id: string) {\n return AppUtil.httpDelete('/web/paper/teacher_paper_exam_list', {\n online_exam_id,\n })\n }\n\n static updatePaperExam(form: ITeacherPaperExamItemUpdate) {\n return AppUtil.httpPUT('/web/paper/teacher_paper_exam_list', form)\n }\n\n static exportExam(exam_id: string) {\n return AppUtil.httpGET('/web/exam/statistic/export', {\n exam_id,\n })\n }\n\n static exportPractice(group_id: string) {\n return AppUtil.httpGET('/web/challenge/statistic/export', {\n group_id,\n })\n }\n\n static onlineExamRemind(online_exam_id?: string) {\n return AppUtil.httpPUT('/web/exam/online_exam_remind', {\n online_exam_id,\n })\n }\n\n static yearTopRank(): Promise {\n return AppUtil.httpGET('/activity/year_top/year_top_rank')\n }\n\n static yearTopRankMine(): Promise {\n return AppUtil.httpGET('/activity/year_top/year_top_rank_mine')\n }\n\n static userContribution(form: IWinter2023UserContributionForm) {\n return AppUtil.httpPOST('/activity/year_top/user_contribution', form)\n }\n\n static userContributionRank(): Promise {\n return AppUtil.httpGET('/activity/year_top/user_contribution_rank')\n }\n\n static userContributionRankMine(): Promise {\n return AppUtil.httpGET('/activity/year_top/user_contribution_rank_mine')\n }\n\n static mixSubjectsList(activity_id: string): Promise {\n return AppUtil.httpGET('/activity/general/inter_subject_practice/list', { activity_id })\n }\n\n static mixSubjectsOverInfo(\n activity_id: string,\n inter_subject_practice_id: string\n ): Promise {\n return AppUtil.httpGET('/activity/general/inter_subject_practice/detail', {\n activity_id,\n inter_subject_practice_id,\n })\n }\n\n static mixSubjectsClassSummary(\n activity_id: string,\n inter_subject_practice_id: string\n ): Promise {\n return AppUtil.httpGET('/activity/general/inter_subject_practice/stat/summary', {\n activity_id,\n inter_subject_practice_id,\n })\n }\n\n static mixSubjectsClassList(\n activity_id: string,\n inter_subject_practice_id: string\n ): Promise {\n return AppUtil.httpGET('/activity/general/inter_subject_practice/stat/classes', {\n activity_id,\n inter_subject_practice_id,\n })\n }\n\n static mixSubjectsStudentSummary(\n activity_id: string,\n inter_subject_practice_id: string,\n class_id: number\n ): Promise {\n return AppUtil.httpGET('/activity/general/inter_subject_practice/stat/summary/class', {\n activity_id,\n inter_subject_practice_id,\n class_id,\n })\n }\n\n static mixSubjectsStudentList(\n activity_id: string,\n inter_subject_practice_id: string,\n class_id: number\n ): Promise {\n return AppUtil.httpGET('/activity/general/inter_subject_practice/stat/students', {\n activity_id,\n inter_subject_practice_id,\n class_id,\n })\n }\n\n static mixSubjectsDownload(activity_id: string, inter_subject_practice_id: string): Promise {\n return AppUtil.httpGET('/activity/general/inter_subject_practice/stat/export', {\n activity_id,\n inter_subject_practice_id,\n })\n }\n}\n","import { AppUtil } from 'kuaidong-lib'\n\nexport class ALog {\n static async json(app: string, key: string, payload: any): Promise {\n const params = {\n app,\n key,\n content: {\n ...payload,\n url: location.href,\n },\n }\n\n return AppUtil.httpPOST('/client_log', params, {}, true)\n }\n}\n","import { ALog } from 'kuaidong-api'\nimport { RawLocation, Route } from 'vue-router'\nimport { Clazz, IStudentNameItem } from 'kuaidong-model'\nimport { Component, Vue } from 'vue-property-decorator'\nimport { TitleBar, LoginTeacherService } from 'kuaidong-service'\nimport {\n UIUtil,\n EnvUtil,\n AppUtil,\n HttpUtil,\n RouterUtil,\n WechatUtil,\n BrowserUtil,\n logger,\n ClazzWrapper,\n StringUtil,\n DateWrapper,\n} from 'kuaidong-lib'\nimport { KDMessageBox } from 'kuaidong-ui'\n\nexport * from 'vue-property-decorator'\n\nComponent.registerHooks(['beforeRouteEnter', 'beforeRouteLeave', 'beforeRouteUpdate'])\n\n@Component\nexport class BaseComponent extends Vue {\n loading = false\n loading1 = false\n loading2 = false\n\n _keepaliveSaveScroll = false // 页面是否需要保存滚动位置,仅keepalive时通过activated方法生效\n _keepaliveScrollValue = 0\n\n logger = logger\n created() {\n if (this.$route?.meta?.keepAlive) {\n // 废弃了, 见 scrollBehavior\n this._keepaliveSaveScroll = false // keepalive的页面需要保存滚动位置\n }\n }\n\n // 消息提示\n toast(msg: string) {\n UIUtil.showToast(msg)\n }\n\n logClick(label: string) {\n this.logEvent('click', label)\n }\n\n logEvent(action: string, label?: string) {\n this._log(action, label)\n }\n\n // 日志记录更加详细的内容,最多能带4个参数\n logDetailEvent(event: string, triggerName: string, value: string, subValue?: string) {\n return this._log(event, triggerName, undefined, value, subValue)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _log(eventName: string, triggerName?: string, teacherId?: string, eventId?: string, eventStep?: string) {\n return this.logger.event(this.$route.name!, eventName, triggerName)\n }\n\n _jsonLog(scene: string, event: string, payload: any = null) {\n return ALog.json(scene, event, payload)\n }\n\n _logToARMS(event: string, quantity = 1) {\n const __bl = (window as any).__bl\n if (__bl) {\n __bl.sum(event, quantity)\n }\n }\n\n _getQuery(key: string, defaultValue?: string | number): string {\n let result = this.$route.query[key]\n result = result ? result.toString() : ''\n if (!result && defaultValue) {\n result = `${defaultValue}`\n }\n return result\n }\n\n _routeReplace(location: RawLocation) {\n return this.$router.replace(location).catch((err) => {\n if (!err.message.includes('Avoided redundant navigation to current location')) {\n // eslint-disable-next-line\n console.error(err)\n }\n })\n }\n\n _isFromAppShare(): boolean {\n return this._getQuery('share') === 'app'\n }\n\n _isFromPush(): boolean {\n return this._getQuery('from') === 'push'\n }\n\n _isFromWeapp(): boolean {\n return this._getQuery('from') === 'weapp'\n }\n\n _pushPath(path: string) {\n this.$router.push(path)\n }\n\n _buildFullUrl(rawLocation: RawLocation) {\n const routeData = this.$router.resolve(rawLocation)\n return `${location.href.split('#')[0]}${routeData.href}`\n }\n\n // 新页面打开, 包括app和web里\n _openNewPage(rawLocation: RawLocation) {\n const url = this._buildFullUrl(rawLocation)\n AppUtil.jumpUrlNewTab(url)\n }\n\n // 页面回退,如果没有任何历史则回到首页\n _goBack(backLevel = -1) {\n // 当前页也会在history.length里,所以大于, 暂时没有考虑backLevel为正值的情况\n if (window.history.length > Math.abs(backLevel)) {\n console.log('in base ' + backLevel)\n this.$router.go(backLevel)\n } else {\n // 没有则回到首页\n this.$router.push('/')\n }\n }\n\n _student_app_name(item: IStudentNameItem) {\n // app里对应的名字\n return item.note_name || item.full_name || item.nick_name\n }\n\n _show_student_name(item: IStudentNameItem) {\n // 最常用的显示学生名字\n return item.note_name || this._student_app_name(item) || '-'\n }\n\n _student_note_name(item: IStudentNameItem) {\n // 老师给学生标注的名字\n return item.note_name || '-'\n }\n\n _student_real_name(item: IStudentNameItem) {\n // 老师给学生标注的名字\n return item.note_name || item.full_name || '-'\n }\n\n _show_clazz_name(item: Clazz) {\n // 显示班级名字\n return new ClazzWrapper(item).name\n }\n\n _show_fulltime(theTime: string | Date) {\n return new DateWrapper(theTime).showFullStr\n }\n\n _show_datetime_short(theTime: string | Date) {\n return new DateWrapper(theTime).showStr\n }\n\n // 执行异步任务,增加loading效果\n async _LoadingAsyncTask(func: () => Promise) {\n UIUtil.showLoading()\n try {\n this.loading = true // 设上对应状态\n await func()\n } finally {\n this.loading = false\n UIUtil.hideLoading()\n }\n }\n\n _checkRoleAndExecute(roleAccess: boolean, func: () => void, toastMsg = '暂无权限,请联系学校管理者操作!') {\n // 判断是否有权限,有权限则执行callback, 否则提示\n // eg this.$p.m.teacherMgt.create\n if (roleAccess) {\n func()\n return true\n } else {\n this.toast(toastMsg)\n return false\n }\n }\n\n activated() {\n // component的activated和deactivated生命周期, 使用keepalive的时候方法会被执行\n // 页面的activated和deactivated 也会被调用,这里会先被调用\n if (this._keepaliveSaveScroll && this._keepaliveScrollValue) {\n window.scroll({ top: this._keepaliveScrollValue })\n }\n }\n\n beforeRouteLeave(to: Route, from: Route, next: () => void) {\n // 离开页面前执行一些操作\n if (this && this._keepaliveSaveScroll) {\n // 使用deactivated的时候,页面scroll值读不到,只用通过beforeRouteLeave来保存\n this._keepaliveScrollValue = window.scrollY\n }\n next()\n }\n\n _toFixedNum(num: number, decimal = 2) {\n return StringUtil.toFixed(num, decimal)\n }\n\n /**\n * 跳转到特定的分享页面,分享页面内容根据配置来, 通过配置id跳转\n * 测试环境配置地址: https://www-test.tiantiantiaosheng.com/admin/#/setting/configs/512905668714303172\n * @param shareConfigId 分享配置id\n */\n _gotoSharePage(shareConfigId: string) {\n this.$router.push({\n path: 'common-share',\n query: {\n id: shareConfigId,\n },\n })\n }\n}\n\n@Component\nexport class BasePage extends BaseComponent {\n pageTitle: string | null = null\n\n _wxShareTitle = ''\n _wxShareDesc = ''\n _wxShareImg = ''\n // Property \"_isUnderApp\" must be accessed with \"$data._isUnderApp\" because properties starting with \"$\" or \"_\" are not proxied in the Vue instance to prevent conflicts with Vue internals. See: https://vuejs.org/v2/api/#data\n _isUnderApp = false\n\n created() {\n if (EnvUtil.isApph5() || EnvUtil.isCampus() || EnvUtil.isAgency()) {\n this._setTitleBar()\n this._setTitle(this.getPageTitle())\n }\n\n if (EnvUtil.isApph5()) {\n this._wxShareTitle = '天天跳绳'\n this._wxShareDesc = '随时随地跳绳,全自动AI计数,跳绳入门训练神器'\n this._wxShareImg =\n 'https://cdn.tiantiantiaosheng.com/dataupload/tool/2021-06-08/dc030dc2-eb3d-480a-a1b0-2586176fb50a/e284643e-a11f-421f-8f2b-0b83f0308a0a.png?x-oss-process=image/resize,h_68,m_lfit'\n } else {\n this._wxShareTitle = EnvUtil.appNameZHCN()\n this._wxShareDesc = EnvUtil.appNameDesc()\n this._wxShareImg =\n 'https://cdn.tiantiantiaosheng.com/dataupload/tool/2021-10-20/5284ef74-a4dc-44cc-9575-85405579c81d/a3c271b0-4b6a-455c-ad6a-febb5e1ea497.png?x-oss-process=image/resize,h_68,m_lfit'\n }\n if (this.$route.query.app === 'tzy') {\n BrowserUtil.updateTitle('体智云')\n this._wxShareTitle = '体智云'\n this._wxShareDesc = '校园体育智慧云平台'\n this._wxShareImg =\n 'https://cdn.tiantiantiaosheng.com/dataupload/tool/2021-10-20/5284ef74-a4dc-44cc-9575-85405579c81d/a3c271b0-4b6a-455c-ad6a-febb5e1ea497.png?x-oss-process=image/resize,h_68,m_lfit'\n }\n\n AppUtil.isUnderApp().then((v) => (this._isUnderApp = v))\n }\n\n mounted() {\n if (!this.$route.meta?.keepAlive) {\n BrowserUtil.fixIosWhiteScreenBug()\n }\n\n this._initWechatShare()\n this._logPageVisit()\n }\n\n // keepalive的组件或页面生命周期\n activated() {\n this._setTitle(this.getPageTitle())\n }\n\n async _getQD() {\n const teacherId = await LoginTeacherService.safeGetTeacherId()\n\n const key = `__${teacherId}_visite_page_qd__`\n\n let qd = (this.$route.query?.qd || '') as string\n if (qd) {\n sessionStorage.setItem(key, qd)\n } else {\n qd = sessionStorage.getItem(key) || ''\n }\n\n return qd\n }\n\n // 更新标题\n _setTitle(title: string) {\n BrowserUtil.updateTitle(title)\n\n if (EnvUtil.isCampus() || EnvUtil.isAgency()) {\n TitleBar.setTitle(title)\n }\n }\n\n _forceAuth() {\n RouterUtil.forceAuth(this.$route, this.$router)\n }\n\n async _logPageVisit() {\n const qd = await this._getQD()\n\n if (EnvUtil.isCampus() || EnvUtil.isSaas() || EnvUtil.isApph5()) {\n // Use route name as the event category to group all events for single page.\n this.logger.event(this.$route.name!, 'visitPage', '访问页面', 1, { qd })\n }\n }\n\n _setTitleBar() {\n TitleBar.clearBackPath()\n\n if (this._isFromPush()) {\n TitleBar.disableBack()\n }\n }\n\n _disableTitleBar() {\n TitleBar.disableBack()\n }\n\n async _initWechatShare(linkUrl?: string) {\n if (BrowserUtil.isWechat()) {\n const wx = await WechatUtil.getInstance()\n // console.log(`init set config ${wx} ${this._wxShareTitle} ${this._wxShareDesc} ${this._wxShareImg}`)\n wx.setShareConfig(this._wxShareTitle, this._wxShareDesc, this._wxShareImg, linkUrl)\n }\n }\n\n async _updateWechatShare(title?: string, desc?: string, imgUrl?: string, linkUrl?: string) {\n if (title) {\n this._wxShareTitle = title\n }\n if (desc) {\n this._wxShareDesc = desc\n }\n if (imgUrl) {\n this._wxShareImg = imgUrl\n }\n // console.log(\n // `init wechat share ${BrowserUtil.isWechat()} ${this._wxShareTitle} ${this._wxShareDesc} ${this._wxShareImg}`\n // )\n return this._initWechatShare(linkUrl)\n }\n\n get backLevel() {\n return this.$route.query.backLevel ? Number(this.$route.query.backLevel) : -1\n }\n\n private getPageTitle() {\n return this.pageTitle || this.$route.meta?.title || TitleBar.defaultTitle\n }\n\n async _share(_url = location.href) {\n if (!(await AppUtil.isUnderApp())) {\n KDMessageBox.alert('请通过微信或者APP内分享!')\n }\n AppUtil.shareLink(_url, this._wxShareTitle, this._wxShareDesc, await HttpUtil.imageProxy(this._wxShareImg))\n }\n\n _matchRoute(raw: RawLocation) {\n const route = this.$router.match(raw)\n // 需要过滤掉默认匹配\n if (route && route.name !== 'page_not_found') {\n console.log(route)\n return route\n } else {\n return null\n }\n }\n}\n","import { EnvUtil } from './EnvUtil'\nimport { BrowserUtil } from './BrowserUtil'\nimport { EventEmitter } from './EventEmitter'\n\nexport enum JSBridgeUtilEvent {\n BeforeFunctionCall = 'beforeFunctionCall',\n AfterFunctionCall = 'afterFunctionCall',\n}\n\nfunction setupWebViewJavascriptBridge(callback: any) {\n // 小程序内不加载https://__bridge_loaded__\n if (BrowserUtil.isWeapp() || EnvUtil.isISC() || !BrowserUtil.isUnderApp()) {\n return\n }\n\n const currentWindow = window as any\n if (currentWindow.WebViewJavascriptBridge) {\n return callback(currentWindow.WebViewJavascriptBridge)\n }\n if (currentWindow.WVJBCallbacks) {\n return currentWindow.WVJBCallbacks.push(callback)\n }\n currentWindow.WVJBCallbacks = [callback]\n\n const WVJBIframe = document.createElement('iframe')\n WVJBIframe.style.display = 'none'\n WVJBIframe.src = 'https://__bridge_loaded__'\n document.documentElement.appendChild(WVJBIframe)\n setTimeout(() => {\n document.documentElement.removeChild(WVJBIframe)\n }, 0)\n}\n\n// ========= android =====\n// https://www.jianshu.com/p/ae3a241b3f68\n// 参数一:调用java中的方法 submitFromWeb是方法名,必须和Android中注册时候的方法名称保持一致\n// 参数二:返回给Android端的数据,可以为字符串,json等信息\n// 参数三:js接收到Android传递过来的数据之后的相应处理逻辑\n\n// JS注册事件监听\nfunction androidConnectWebViewJavascriptBridge(callback: any) {\n const currentWindow = window as any\n if (currentWindow.WebViewJavascriptBridge) {\n callback(currentWindow.WebViewJavascriptBridge)\n } else {\n document.addEventListener(\n 'WebViewJavascriptBridgeReady',\n function () {\n callback(currentWindow.WebViewJavascriptBridge)\n },\n false\n )\n }\n}\n\n// 注册回调函数,第一次连接时调用 初始化函数\n\nclass JSBridgeUtil {\n public static eventEmitter = new EventEmitter()\n\n public static on(type: JSBridgeUtilEvent, handler: Function) {\n this.eventEmitter.on(type, handler)\n }\n\n public static once(type: JSBridgeUtilEvent, handler: Function) {\n this.eventEmitter.once(type, handler)\n }\n\n public static fire(type: JSBridgeUtilEvent) {\n this.eventEmitter.fire(type)\n }\n\n public static remove(type: JSBridgeUtilEvent, handler: Function) {\n this.eventEmitter.remove(type, handler)\n }\n\n public static _init() {\n // 必须要先初始化\n if (BrowserUtil.isAndroid()) {\n androidConnectWebViewJavascriptBridge((bridge: any) => {\n // 初始化\n bridge.init((message: any, responseCallback: any) => {\n responseCallback(message)\n })\n })\n }\n }\n\n /**\n * 调用原生方法并且可以有回调\n * @param name 原生方法名\n * @param data 调研参数数据\n * @param callback 回调方法\n */\n public static _callHandler(name: string, data: any, callback: any) {\n if (BrowserUtil.isAndroid()) {\n androidConnectWebViewJavascriptBridge((bridge: any) => {\n bridge.callHandler(name, data, callback)\n })\n } else {\n setupWebViewJavascriptBridge(function (bridge: any) {\n bridge.callHandler(name, data, callback)\n })\n }\n }\n\n public static async asyncCall(methodName: string, data: any = null): Promise {\n this.eventEmitter.fire(JSBridgeUtilEvent.BeforeFunctionCall, methodName, data)\n\n return new Promise((resolve: any) => {\n this._callHandler(methodName, data, (result: any) => {\n // finished = true\n // eslint-disable-next-line no-console\n console.log({\n event: 'jsbridge_asyncCall',\n methodName,\n result,\n })\n\n resolve(result)\n\n this.eventEmitter.fire(JSBridgeUtilEvent.AfterFunctionCall, methodName, data)\n })\n })\n }\n\n /**\n * 注册一个方法用户native调用\n * @param name 注册方法名用于native调用\n * @param callback 回调方法\n */\n public static registerHandler(name: string, callback: any) {\n if (BrowserUtil.isAndroid()) {\n androidConnectWebViewJavascriptBridge((bridge: any) => {\n bridge.registerHandler(name, function (data: any, responseCallback: any) {\n callback(data, responseCallback)\n })\n })\n } else {\n setupWebViewJavascriptBridge(function (bridge: any) {\n bridge.registerHandler(name, function (data: any, responseCallback: any) {\n callback(data, responseCallback)\n })\n })\n }\n }\n}\n\nJSBridgeUtil._init()\n\n// After page loaded, disabled android's network error detection.\nif (BrowserUtil.isUnderApp() && BrowserUtil.isAndroid()) {\n JSBridgeUtil.asyncCall('onLoadSuccess').finally(() => {\n // noop\n })\n}\n\nexport { JSBridgeUtil }\n","export class AppJumpXiaoyuUtil {\n static readonly config = {\n user: {\n android: {\n page: 'user_info_dialog',\n params: {},\n },\n ios: {\n page: 'UserViewController',\n params: {\n showUserInfo: true,\n },\n },\n },\n\n dictationRecords: {\n android: {\n page: 'record_list',\n params: {},\n },\n ios: {\n page: 'DictationRecordListViewController',\n params: {},\n },\n },\n }\n}\n","import { ObjectUtil } from './ObjectUtil'\nimport { AppJumpXiaoyuUtil } from './AppJumpXYUtil'\n\nexport interface AppJumpConfig {\n harmony?: { page: string; params?: any }\n android: { page: string; params?: any }\n ios: { page: string; params?: any }\n}\n\nexport class AppJumpUtil {\n // 所有的配置都放这\n public static readonly config = {\n xiaoYu: AppJumpXiaoyuUtil.config,\n\n homepage: {\n android: {\n page: 'com.gkid.crazyrope.ui.home.HomeActivity',\n params: {},\n },\n ios: {\n page: 'MainViewController',\n params: {},\n },\n },\n projects: {\n android: {\n page: 'com.gkid.crazyrope.ui.home.HomeActivity',\n params: { 'home.tab.index': '1' },\n },\n ios: {\n page: 'MyPlanBaseViewController',\n params: {},\n },\n },\n friends: {\n android: {\n page: 'com.gkid.crazyrope.ui.home.HomeActivity',\n params: { selectedType: 'friend' },\n },\n ios: {\n page: 'FriendTabViewController',\n params: { selectedType: 'friend' },\n },\n },\n liveMyAppointments: {\n // 直播课- 我的预约\n android: {\n page: 'com.gkid.crazyrope.ui.live.MyAppointmentsActivity',\n params: {},\n },\n ios: {\n page: 'LiveAppointmentViewController',\n params: {},\n },\n },\n // category: labs,body_fitness,ai_jump_rope,fun_sports,ai_running,gymnastics,dance,balls,ai_course,basketball,fitcat\n fun_sports: {\n // 趣运动\n android: {\n page: 'com.gkid.crazyrope.ui.home.tab1.KingKongContainerActivity',\n params: { TITLE: '趣运动', CATEGORY: 'FunSports' },\n },\n ios: {\n page: 'CRFunSportsDetailViewController',\n params: {},\n },\n },\n ai_running: {\n // 原地跑\n android: {\n page: 'com.gkid.crazyrope.ui.home.HomeActivity',\n params: { 'home.tab.index': '1', 'home.tab.inner.category': 'ai_running' },\n },\n ios: {\n page: 'MyPlanBaseViewController',\n params: { selectedType: 'ai_running' },\n },\n },\n gymnastics: {\n // 广播操\n android: {\n page: 'com.gkid.crazyrope.ui.home.tab1.KingKongContainerActivity',\n params: { TITLE: '广播操', CATEGORY: 'Move' },\n },\n ios: {\n page: 'CRMoveDetailViewController',\n params: {},\n },\n },\n dance: {\n // 合舞团\n android: {\n page: 'com.gkid.crazyrope.ui.home.HomeActivity',\n params: { 'home.tab.index': '1', 'home.tab.inner.category': 'dance' },\n },\n ios: {\n page: 'MyPlanBaseViewController',\n params: { selectedType: 'dance' },\n },\n },\n arena: {\n android: {\n page: 'com.gkid.crazyrope.ui.arena.ArenaActivity',\n params: {},\n },\n ios: {\n page: 'ArenaBaseViewController',\n params: {},\n },\n },\n hallfame: {\n android: {\n page: 'com.gkid.crazyrope.ui.detail.DrillFamersActivity',\n params: {},\n },\n ios: {\n page: 'JumpRopeMasterViewController',\n params: {},\n },\n },\n openURL: {\n harmony: {\n page: 'WebPage',\n params: {},\n },\n android: {\n page: 'com.gkid.crazyrope.ui.base.WebActivity',\n params: {},\n },\n ios: {\n page: 'LLWebViewController',\n params: {},\n },\n },\n rankAuth: {\n android: {\n page: 'com.gkid.crazyrope.ui.settings.SetRankOpActivity',\n params: {},\n },\n ios: {\n page: 'RankAuthorityViewController',\n params: {},\n },\n },\n setting: {\n android: {\n page: 'com.gkid.crazyrope.ui.user.UserProfileEditActivity',\n params: {},\n },\n ios: {\n page: 'UserInfoSettingViewController',\n params: { needPopBack: true },\n },\n },\n qrCodeScanner: {\n android: {\n page: 'com.gkid.crazyrope.ui.settings.ScanActivity',\n params: {},\n },\n ios: {\n page: 'LLQRCodeScanViewController',\n params: {},\n },\n },\n\n // homework: {\n // android: {\n // page: 'com.gkid.crazyrope.ui.homework.WorkMainActivity',\n // params: {},\n // },\n // ios: {\n // page: 'HomeworkMainViewController',\n // params: {},\n // },\n // },\n\n examTest2021: {\n android: {\n page: 'com.gkid.crazyrope.ui.cloudtest.WholePeopleCloudBodyTestActivity',\n params: {},\n },\n ios: {\n page: 'BodyExamEventViewController',\n params: {},\n },\n },\n AddFriend: {\n android: {\n page: 'com.gkid.crazyrope.ui.friends.AddFriendsActivity',\n params: {},\n },\n ios: {\n page: 'AddFriendViewController',\n params: {},\n },\n },\n AppHelpActivity: {\n android: {\n page: 'com.gkid.crazyrope.ui.settings.AppHelpActivity',\n params: {},\n },\n ios: {\n page: 'HelpViewController',\n params: {},\n },\n },\n RopeLevel: {\n android: {\n page: 'com.gkid.crazyrope.ui.ropedans.DanListActivity',\n params: {},\n },\n ios: {\n page: 'RopeLevelViewController',\n params: {},\n },\n },\n plans: {\n // 运动计划页\n android: {\n page: 'com.gkid.crazyrope.ui.plans.PlanConfActivity',\n params: {},\n },\n ios: {\n page: 'PlanListViewController',\n params: {},\n },\n },\n planDetails: {\n android: {\n page: 'com.gkid.crazyrope.ui.thematic.ThematicPlanDetailActivity',\n params: {},\n },\n ios: {\n page: 'AITrainingPlanDetailViewController',\n params: {},\n },\n },\n homeworkHome: {\n android: {\n page: 'com.gkid.crazyrope.ui.homework.HomeworkActivity',\n params: {},\n },\n ios: {\n page: 'HomeworkMainViewController',\n params: {},\n },\n },\n homeworkRank: {\n android: { page: 'com.gkid.crazyrope.ui.homework.HwPunchActivity' },\n ios: { page: 'HomeworkRankViewController' },\n },\n FriendSelector: {\n android: { page: 'com.gkid.crazyrope.ui.friends.SelectSendToFriendActivity' },\n ios: { page: 'FriendChooseViewController' },\n },\n order: {\n android: { page: 'com.gkid.crazyrope.ui.order.CompleteRegistrationInfoActivity' },\n ios: { page: 'SignUpViewController' },\n },\n orderList: {\n android: { page: 'com.gkid.crazyrope.ui.order.OrderListActivity' },\n ios: { page: 'MyOrderListViewController' },\n },\n orderDetail: {\n android: { page: 'com.gkid.crazyrope.ui.order.OrderDetailActivity', params: { id: '' } },\n ios: { page: 'MyOrderDetailViewController', params: { order_id: '' } },\n },\n login: {\n android: { page: 'com.gkid.crazyrope.ui.login.LogInActivity' },\n ios: { page: 'LoginPhoneNumInputViewController', params: { bIsBindPhone: true } },\n },\n rope: {\n android: {\n page: 'com.gkid.crazyrope.ui.home.tab1.KingKongContainerActivity',\n params: { TITLE: '跳绳', CATEGORY: 'AiJumpRope' },\n },\n ios: { page: 'CRRopeDetailViewController' },\n },\n running: {\n android: {\n page: 'com.gkid.crazyrope.ui.home.tab1.KingKongContainerActivity',\n params: { TITLE: '跑步', CATEGORY: 'Run' },\n },\n ios: { page: 'CRRunningDetailViewController' },\n },\n ball: {\n android: {\n page: 'com.gkid.crazyrope.ui.home.tab1.KingKongContainerActivity',\n params: { TITLE: '球类', CATEGORY: 'Balls' },\n },\n ios: { page: 'CRBallDetailViewController' },\n },\n bodyFitness: {\n android: {\n page: 'com.gkid.crazyrope.ui.home.tab1.KingKongContainerActivity',\n params: { TITLE: '体能', CATEGORY: 'PhysicalFitness' },\n },\n ios: { page: 'CRBodyFitnessViewController' },\n },\n drillDetails: {\n android: {\n page: 'com.gkid.crazyrope.ui.detail.DrillDetailActivity',\n params: {}, // drill\n },\n ios: {\n page: 'DrillDetailViewController',\n params: {}, // drill_id\n },\n name: 'drill详情页',\n },\n meta: {\n android: {\n page: 'com.gkid.crazyrope.ui.home.tab1.MetaVerseActivity',\n params: {},\n },\n ios: {\n page: 'MetaverseListViewController',\n params: {},\n },\n name: '元宇宙入口',\n },\n heartRate: {\n android: {\n page: 'com.gkid.crazyrope.ui.home.tab1.KingKongContainerActivity',\n params: { TITLE: '测心率', CATEGORY: 'HeartRate' },\n },\n ios: {\n page: 'HeartBeatsViewController',\n params: {},\n },\n },\n drillRecords: {\n android: {\n page: 'com.gkid.crazyrope.ui.record.TrainingRecordsActivity',\n params: {},\n },\n ios: {\n page: 'VideoCollectionBaseViewController',\n params: {},\n },\n },\n myHonor: {\n android: {\n page: 'com.gkid.crazyrope.ui.honor.MyHonorActivity',\n params: {},\n },\n ios: {\n page: 'AchievementViewController',\n params: {},\n },\n },\n sportTarget: {\n android: {\n page: 'com.gkid.crazyrope.ui.calendar.target.SportTargetActivity',\n params: {},\n },\n ios: {\n page: 'SportTargetViewController',\n params: {},\n },\n },\n energyShop: {\n android: {\n page: 'com.gkid.crazyrope.ui.cloth.ClothAwardActivity',\n params: { key: 'jumprope' },\n },\n ios: {\n page: 'EnergyShopViewController',\n params: {},\n },\n name: '能量豆商店',\n },\n plusMember: {\n android: {\n page: 'com.gkid.crazyrope.ui.member.MemberActivity',\n params: {},\n },\n ios: {\n page: 'LLSPlusMemberViewController',\n params: {},\n },\n name: 'S+会员',\n },\n superGame: {\n android: {\n page: 'com.gkid.crazyrope.ui.arena.ArenaActivity',\n params: {},\n },\n ios: {\n page: 'SuperGameMainViewController',\n params: {},\n },\n },\n pay: {\n android: {\n page: 'com.gkid.crazyrope.ui.order.PayActivityV2',\n params: {},\n },\n ios: {\n page: 'MyOrderSubmitViewController',\n params: {},\n },\n },\n fitcat: {\n android: {\n page: 'com.gkid.crazyrope.ui.funsports.FitCatActivity',\n params: {},\n },\n ios: {\n page: 'FitCatViewController',\n params: {},\n },\n },\n gift2Friends: {\n android: {\n page: 'com.gkid.crazyrope.ui.scard.MemberScardActivity',\n params: {},\n },\n ios: {\n page: 'SPlusCourtesyPresentedViewController',\n params: {},\n },\n },\n unityJump: {\n android: {\n page: 'UnityActivityController',\n params: {},\n },\n ios: {\n page: 'UnityActivityController',\n params: {}, // navigate: changedress 换装, workshop 工坊\n },\n name: 'unity页面跳转',\n },\n drillRank: {\n android: {\n page: 'com.gkid.crazyrope.ui.ranks.RankListActivityV2',\n params: {},\n },\n ios: {\n page: 'RankListViewController',\n params: {},\n },\n },\n dailyReward: {\n android: {\n page: 'com.gkid.crazyrope.ui.home.me.DailyGiftActivity',\n params: {},\n },\n ios: {\n page: 'DailyRewardViewController',\n params: {},\n },\n name: '每日福利',\n },\n sportsShowMall: {\n android: {\n page: 'com.gkid.crazyrope.ui.cloth.ClothActActivity',\n params: {},\n },\n ios: {\n page: 'SportShowStoreMainViewController',\n params: {},\n },\n name: '运动秀商城',\n },\n personalSportsSpace: {\n android: {\n page: 'com.gkid.crazyrope.ui.clazz.ClsMemberInfoActivity',\n params: {},\n },\n ios: {\n page: 'UserSportSpaceViewController',\n params: {},\n },\n },\n drillCourse: {\n android: {\n page: 'com.gkid.crazyrope.ui.novice.NoviceCourseListActivity',\n params: {},\n },\n ios: {\n page: 'FmAllCourseVController',\n params: {},\n },\n },\n // 运动卡\n sportsCards: {\n android: {\n page: 'com.gkid.crazyrope.ui.cardcollecting.SportCardHomeActivity',\n params: {},\n },\n ios: {\n page: 'GachaGameViewController',\n params: {},\n },\n },\n // 运动卡牌商店\n sportsCardStore: {\n android: {\n page: 'com.gkid.crazyrope.ui.cardcollecting.CardShopActivity',\n params: {},\n },\n ios: {\n page: 'SportCardsStoreVController',\n params: {},\n },\n },\n // 体智云原生跳转配置\n tzyHome: {\n android: {\n page: 'com.tizhiyun.app.ui.home.HomeActivity',\n params: {},\n },\n ios: {\n page: 'HomeworkMainController',\n params: {},\n },\n },\n jkcHome: {\n android: {\n page: 'com.gkid.crazyrope.ui.jkc.FollowVideoListActivity',\n params: {},\n },\n ios: {\n page: 'VideoPracticeMainViewController',\n params: {},\n },\n },\n // 头像框\n avatarDecoration: {\n android: {\n page: 'com.gkid.crazyrope.ui.user.AvatarDecorateActivity',\n params: {},\n },\n ios: {\n page: 'AvatarDecorationViewController',\n params: {},\n },\n },\n }\n\n public static getHomepageConfig() {\n return this._buildDict(this.config.homepage)\n }\n\n public static buildDictByName(name: AppNativePageName) {\n return this._buildDict(ObjectUtil.get(this.config, name))\n }\n\n // 打开url需要的\n public static buildOpenURLDict(url: string, title: string): any {\n const cfg = this.config.openURL\n cfg.android.params = { url, title }\n cfg.ios.params = { url, strTitle: title }\n\n if (cfg.harmony?.params) {\n cfg.harmony.params = { url, title }\n }\n\n return this._buildDict(cfg)\n }\n\n public static _buildDict(cfg: AppJumpConfig): any {\n return {\n action: 'jump',\n iOS_page: cfg.ios.page,\n iOS_param: cfg.ios.params || {},\n Android_page: cfg.android.page,\n Android_param: cfg.android.params || {},\n HarmonyOS_page: cfg.harmony?.page || {},\n HarmonyOS_param: cfg.harmony?.params || {},\n }\n }\n}\n\nexport type AppNativePageName =\n | Exclude\n | `xiaoYu.${keyof typeof AppJumpXiaoyuUtil['config']}`\n","import CallApp from 'callapp-lib'\nimport { UIUtil } from './UIUtil'\nimport { EnvUtil } from './EnvUtil'\nimport { HtmlUtil } from './HtmlUtil'\nimport { StringUtil } from './StringUtil'\nimport { AppVersion } from './AppVersion'\nimport { IADConfig } from 'kuaidong-model'\nimport { StorageUtil } from './StorageUtil'\nimport { BrowserUtil } from './BrowserUtil'\nimport { JSBridgeUtil } from './JSBridgeUtil'\nimport { EventEmitter } from './EventEmitter'\nimport { HttpUtil, HttpUtilMethod } from './HttpUtil'\nimport { AppJumpUtil, AppNativePageName } from './AppJumpUtil'\n\nexport * from './AppJumpUtil'\n\n/**\n * 和native app的util方法\n */\nlet requestToken = ''\nlet callApp: CallApp\nlet isUnderAppResult: boolean | null = null\n\nconst RequestTokenKey = 'rtk'\n\nexport enum AppUtilEvent {\n Auth = 'Auth',\n Login = 'Login',\n WebviewActive = 'WebviewActive',\n WebviewInactive = 'WebviewInactive',\n // 返回数据 {\"mode\":\"success\", \"province\": string, city: string, district: string}\n LocationCallback = 'locationCallback',\n rechargeSuccess = 'rechargeSuccess',\n}\n\nexport const RequestTokenQueryKey = '__rtqk__'\n\ntype _OpenDownloadOption = {\n jumpCfg?: any\n commandName?: string\n commandValue?: string | number\n qd?: string // 下载渠道\n tsChannel?: string\n}\n\nexport interface IAppReminderParams {\n title: string\n description: string\n startDate: Date\n endDate: Date\n repeatMode: 0 | 1 | 2 // 仅一次 | 每天 | 每月\n}\n\nexport interface IAppPurchaseParams {\n refer?: string\n sku_code?: string\n promotion_code?: string\n}\n\nexport class AppUtil {\n static eventEmitter = new EventEmitter()\n\n // 打开app所需的命令, 文档见 https://www.tapd.cn/61308320/documents/show/1161308320001001727\n static AppOpenCmd = {\n battle: 'C', // drill挑战, NOTE 没有 'ts://' 前缀 其他都有\n joinClass: 'J', // 加入班级\n liveSeries: 'L', // 直播系列课打开\n liveShareCourse: 'S', // 直播课程分享\n qudao: 'Q', // 渠道的cmd\n channelKey: 'ts_channel', // 渠道query里的参数\n _OldCmds: ['C', 'J'], // 老的命令\n _CmdPrefix: 'G-', // 命令的前缀\n _SplitMultiCmd: '###', // 多个命令的分割线\n _SplitCmd: '##', // 单个命令cmd和value的区分\n _IosCommandPrefix: '1 https://www.tiantiantiaosheng.com/app?', // ios匹配又是数字,又是链接\n }\n\n public static ContactWay = {\n CustomerServicePagePath: '/contact-us', //联系客服页面路径\n CustomerServicePhone: '021-38279915', // 联系电话\n WechatRedirectPageUrl: 'https://work.weixin.qq.com/kfid/kfcc2222f966ea0e6f5', // 用了小倩的, 基本体智云在用\n WechatUrlForPayment: 'https://work.weixin.qq.com/kfid/kfcd4da9c730764369a', // 仅处理支付问题客服\n WechatUrlForAPP: 'https://work.weixin.qq.com/kfid/kfc9fcadc3cdd09f780', // 天天跳绳app客服\n }\n\n public static async init() {\n if (await this.isUnderApp()) {\n this._addAppCallListener('becomeActive', () => {\n this.eventEmitter.fire(AppUtilEvent.WebviewActive)\n })\n this._addAppCallListener('enterBackground', () => {\n this.eventEmitter.fire(AppUtilEvent.WebviewInactive)\n })\n this._addAppCallListener('locationCallback', (v: { province: string; city: string; district: string }) => {\n this.eventEmitter.fire(AppUtilEvent.LocationCallback, this._parseRespData(v))\n })\n this._addAppCallListener('rechargeSuccess', (v: { count: number }) => {\n this.eventEmitter.fire(AppUtilEvent.rechargeSuccess, this._parseRespData(v))\n })\n } else {\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'visible') {\n this.eventEmitter.fire(AppUtilEvent.WebviewActive)\n }\n if (document.visibilityState === 'hidden') {\n this.eventEmitter.fire(AppUtilEvent.WebviewInactive)\n }\n })\n }\n }\n\n public static on(type: AppUtilEvent, handler: Function) {\n this.eventEmitter.on(type, handler)\n }\n\n public static once(type: AppUtilEvent, handler: Function) {\n this.eventEmitter.once(type, handler)\n }\n\n public static fire(type: AppUtilEvent) {\n this.eventEmitter.fire(type)\n }\n\n public static remove(type: AppUtilEvent, handler?: Function) {\n this.eventEmitter.remove(type, handler)\n }\n\n public static keepActive() {\n return AppUtil.isUnderApp().then((res) => {\n if (res) {\n return AppUtil.callGetAppVersion()\n }\n })\n }\n\n public static buildRequestTokenKey() {\n return `__${EnvUtil.appName()}_${RequestTokenKey}__`\n }\n\n public static setRequestToken(_token: string) {\n requestToken = _token\n\n if (BrowserUtil.isWeapp() || EnvUtil.isApph5()) {\n StorageUtil.set(this.buildRequestTokenKey(), _token, 24 * 3600 * 30)\n } else {\n StorageUtil.set(this.buildRequestTokenKey(), _token, 24 * 3600 * 30)\n }\n }\n\n public static getRequestToken() {\n if (!requestToken) {\n requestToken = StorageUtil.get(this.buildRequestTokenKey()) || ''\n }\n\n return requestToken\n }\n\n public static async removeRuquestToken() {\n this.setRequestToken('')\n }\n\n // 判断用户是否已经登录\n public static async isNotLogin(): Promise {\n if (await this.isUnderApp()) {\n return false // app下固定是登录的\n }\n return !this.getRequestToken() // 没有token说明没登录\n }\n\n // app内发起get请求,会带上当前登录用的token信息,登录状态\n public static async httpGET(\n url: string,\n params = {},\n headers = {},\n skipEventEmitter = true,\n withCredentials: boolean | undefined = undefined\n ): Promise {\n headers = await this._appendToken2Header(headers)\n\n return HttpUtil.request(HttpUtilMethod.Get, url, params, headers, skipEventEmitter, withCredentials)\n }\n\n // app内发起请求,请求的是体智云服务器\n public static async httpTzyGET(\n url: string,\n params = {},\n headers = {},\n skipEventEmitter = true,\n withCredentials: boolean | undefined = undefined\n ): Promise {\n url = `${process.env.VUE_APP_CRAZYROPE_MANAGE_API}${url}`\n return this.httpGET(url, params, headers, skipEventEmitter, withCredentials)\n }\n\n // 同 httpGET 方法\n public static async httpPUT(\n url: string,\n params = {},\n headers = {},\n skipEventEmitter = false,\n withCredentials: boolean | undefined = undefined\n ): Promise {\n headers = await this._appendToken2Header(headers)\n\n return HttpUtil.request(HttpUtilMethod.Put, url, params, headers, skipEventEmitter, withCredentials)\n }\n\n // 同 httpGET 方法\n public static async httpPOST(\n url: string,\n params = {},\n headers = {},\n skipEventEmitter = false,\n withCredentials: boolean | undefined = undefined\n ): Promise {\n headers = await this._appendToken2Header(headers)\n\n return HttpUtil.request(HttpUtilMethod.Post, url, params, headers, skipEventEmitter, withCredentials)\n }\n\n // httpTzyGET 方法\n public static async httpTzyPOST(\n url: string,\n params = {},\n headers = {},\n skipEventEmitter = false,\n withCredentials: boolean | undefined = undefined\n ): Promise {\n url = `${process.env.VUE_APP_CRAZYROPE_MANAGE_API}${url}`\n return this.httpPOST(url, params, headers, skipEventEmitter, withCredentials)\n }\n\n public static async httpDelete(\n url: string,\n params = {},\n headers = {},\n skipEventEmitter = false,\n withCredentials: boolean | undefined = undefined\n ): Promise {\n headers = await this._appendToken2Header(headers)\n\n return HttpUtil.request(HttpUtilMethod.Delete, url, params, headers, skipEventEmitter, withCredentials)\n }\n\n public static async httpCache any>(fun: T, ...params: any[]) {\n let result: ReturnType\n\n const key = `__${fun.name}_http_cache_key_${JSON.stringify(params)}__`\n\n const data = localStorage.getItem(key)\n\n if (data) {\n result = JSON.parse(data)\n } else {\n result = await fun.bind(AppUtil)(...params)\n\n localStorage.setItem(key, JSON.stringify(result))\n }\n\n return result\n }\n\n /**\n * 跳转url到新的页面,如果浏览器就打开新页面\n * 如果app内,需要放到返回堆栈里\n * @param url string 前往的url\n */\n public static async jumpUrlNewTab(url: string, title = '天天跳绳') {\n if (await this.isUnderApp()) {\n this.jump2NativeURL(url, title)\n } else {\n BrowserUtil.isWechat() ? (location.href = url) : window.open(url, '_blank')\n }\n }\n\n public static async jumpToNewTab(path: string, title = '天天跳绳') {\n AppUtil.jumpUrlNewTab(`${location.protocol}//${location.host}${location.pathname}${path}`, title)\n }\n\n public static async jumpToNewByRoutePath(path: string, title = '天天跳绳') {\n AppUtil.jumpUrlNewTab(`${location.protocol}//${location.host}${location.pathname}#/${path}`, title)\n }\n\n public static async isUnderApp(): Promise {\n if (isUnderAppResult === null) {\n isUnderAppResult = await this.checkIsUnderApp()\n }\n\n return isUnderAppResult\n }\n\n public static async checkIsUnderApp(): Promise {\n if (BrowserUtil.isUnderApp()) {\n return true\n }\n\n // eslint-disable-next-line\n return new Promise(async (resolve) => {\n setTimeout(() => {\n resolve(false)\n }, 1000)\n\n try {\n await this.getUserToken()\n\n resolve(true)\n } catch (e) {\n resolve(false)\n }\n })\n }\n\n public static openAppAndgotoDL(qd?: string, app?: any) {\n // TODO try open app\n let url = 'https://www.tiantiantiaosheng.com/dl'\n if (app === 'tzy') url = 'https://www.tizhiyun.com/dl'\n\n location.href = url + (qd ? `?qd=${qd}` : '')\n }\n\n /**\n * 确定是否在ios下\n */\n public static async isUnderIos(): Promise {\n // https://stackoverflow.com/questions/37591279/detect-if-user-is-using-webview-for-android-ios-or-a-regular-browser\n const userAgent = window.navigator.userAgent.toLowerCase()\n // safari = /safari/.test(userAgent),\n const ios = /iphone|ipod|ipad/.test(userAgent)\n // 在ios下且不是safari说明在\n // return ios && !safari;\n if (await this.isUnderApp()) {\n return ios\n }\n return false\n }\n\n public static async isUnderAndroid(): Promise {\n const ua = window.navigator.userAgent.toLowerCase()\n if (await this.isUnderApp()) {\n return ua.indexOf('android') > -1 || ua.indexOf('adr') > -1\n }\n return false\n }\n\n /**\n *\n * @param link 页面链接\n * @param title 分享卡片标题\n * @param desc 分享卡片描述\n * @param img 分享卡片图片\n * @returns\n */\n public static async shareLink(link: string, title: string, desc: string, img: string): Promise {\n return JSBridgeUtil.asyncCall('shareLink', {\n link,\n title,\n desc,\n thumb: img,\n })\n }\n\n /**\n * 在系统浏览器打开\n * @param url 打开的地址\n * @returns\n */\n public static async startSystemBrowser(url: string) {\n return JSBridgeUtil.asyncCall('openBrowser', {\n url,\n })\n }\n\n public static async startDrill(\n drillId: string,\n eventType = '',\n eventId = '',\n plateNumber = '',\n reloadCB?: Function,\n params: {\n ext_infos?: {\n navigate?: 'buildFace' | 'dressup'\n select_item?: string\n select_page?: string\n island_user_id?: string\n event_id?: string\n event_type?: string\n }\n sticker_id?: string\n need_record?: 0 | 1\n record_type?: number\n hide_advertise?: boolean\n is361Competition?: boolean\n } = {}\n ) {\n if (eventType === 'sports_work') {\n // 体育运动任务来的,直接跳过广告,校准页的广告\n params['hide_advertise'] = true\n }\n\n if (reloadCB) {\n this._addAppCallListener('reloadCallback', reloadCB)\n }\n\n return JSBridgeUtil.asyncCall('startDrill', {\n drill_id: drillId,\n event_type: eventType,\n event_id: eventId,\n plate_number: plateNumber,\n ...params,\n })\n }\n\n public static async startMultiDrill(\n event_type: string,\n event_id: string,\n need_detect: boolean,\n drills: any[],\n cb?: (res: { response: any[] }) => any\n ) {\n if (cb) {\n this._addAppCallListener('recordCallback', cb)\n }\n\n return JSBridgeUtil.asyncCall('startMultiDrill', {\n event_type,\n event_id,\n need_detect,\n drills,\n })\n }\n\n public static async watchADVideo(\n ids: IADConfig[],\n callBack?: (val: { status: 'show' | 'failed' | 'reward' | 'dismiss' }) => any\n ) {\n const platform = (await this.isUnderAndroid()) ? 'android' : 'ios'\n\n const tobid = ids.find((id) => id.channel === 'tobid' && id.app_platform === platform)\n const gromore = ids.find((id) => id.channel === 'gromore' && id.app_platform === platform)\n\n if (tobid && gromore) {\n return this.watchRewardVideo(tobid.ad_id, gromore.ad_id, callBack)\n }\n\n throw Error('Wrong ad config.')\n }\n\n public static async watchRewardVideo(\n tobid_id: string,\n gromore_id: string,\n callBack?: (val: { status: 'show' | 'failed' | 'reward' | 'dismiss' }) => any\n ) {\n if (callBack) {\n this._addAppCallListener('rewardVideoCallback', (str: any) => callBack(JSON.parse(str)))\n }\n\n return JSBridgeUtil.asyncCall('startLoadingRewardVideo', { tobid_id, gromore_id })\n }\n\n public static readonly PracticeDrillId = 'home_practice_move_2105'\n\n public static async startPractice(\n video_url: string,\n video_size: string,\n key_frame_url: string,\n key_frame_video_width: number,\n key_frame_video_height: number,\n drill_orientation: string,\n\n reloadCB?: Function,\n // need_record = true时会有参数回调\n params: { need_record?: boolean; drill_id?: string } = { need_record: true }\n ) {\n if (reloadCB) {\n this._addAppCallListener('reloadCallback', reloadCB)\n }\n // 默认使用跟练模式\n const drill_id = params.drill_id || this.PracticeDrillId\n\n const startPracticeParams = {\n drill_id,\n video_url,\n video_size,\n key_frame_url,\n key_frame_video_width,\n key_frame_video_height,\n drill_orientation,\n ...params,\n }\n console.log('AppUtil.asyncCall', 'startPractice', startPracticeParams)\n return JSBridgeUtil.asyncCall('startPractice', startPracticeParams)\n }\n\n public static async challenge(token: string): Promise {\n return JSBridgeUtil.asyncCall('challenge', token)\n }\n\n public static async jump2UserSportsSpace(userID: string) {\n const page = AppJumpUtil.buildDictByName('personalSportsSpace')\n page.iOS_param = { userID }\n page.Android_param = { 'clsmate.id': userID }\n return this.jump2NativePage(page)\n }\n\n /**\n * H5退回到APP\n */\n public static async backToApp(): Promise {\n return JSBridgeUtil.asyncCall('finish')\n }\n\n public static async closeCurrentPage(): Promise {\n return this.backToApp()\n }\n\n // 隐藏app的 title Bar\n public static async hideAppTitleBar(): Promise {\n return JSBridgeUtil.asyncCall('hideTitleBar')\n }\n\n // 隐藏底部的bar\n public static async callHideBottomBar(state: 'show' | 'hide' = 'hide'): Promise {\n // 参数为\"show\" 或者 \"hide\"\n return JSBridgeUtil.asyncCall('setNativeViewVisibility', state)\n }\n\n public static async callShowBottomBar(): Promise {\n return this.callHideBottomBar('show')\n }\n\n public static async isAppVersionHigherThan(version: string) {\n const curVersion = this._parseRespData(await this.callGetAppVersion()).version_name\n console.log('curVersion', curVersion, version)\n\n return AppVersion.isEqualOrHigherThan(curVersion, version)\n }\n\n public static async callGetAppVersion(): Promise<{ version_name: string }> {\n // {\"version_name\":\"1.1.8\"}\n return JSBridgeUtil.asyncCall('getAppVersion')\n }\n\n // 版本 1.1.8 变成 10108\n public static async callGetAppVersionNumber(): Promise {\n try {\n const resp = this._parseRespData(await this.callGetAppVersion())\n const items = resp.version_name.split('.')\n if (items.length !== 3) {\n return 0\n } else {\n return parseInt(items[0]) * 10000 + parseInt(items[1]) * 100 + parseInt(items[2])\n }\n } catch (e) {\n // eslint-disable-next-line\n console.error(e)\n return 0\n }\n }\n\n // 判断版本是否高于某个版本 >=\n public static async checkVersionGte(checkVersion: number) {\n return (await this.callGetAppVersionNumber()) >= checkVersion\n }\n\n /**\n * 让app下某个url的内容, 下载完成之后有回调,回调方法为 downloadCallback\n * @param url 需要下载的url, 图片或者视频\n */\n public static async downloadByUrl(url: string, downloadCB?: Function): Promise {\n if (!downloadCB) {\n downloadCB = (args: any) => {\n // {url: string, message?: string, result: string, filePath?: string }\n // eslint-disable-next-line\n console.log(`========done callback default ${args}`)\n }\n }\n this._addAppCallListener('downloadCallback', downloadCB)\n return JSBridgeUtil.asyncCall('download', url)\n }\n\n /**\n * 让app下某个url的内容, 然后掉系统分享出去\n * @param url 需要下载的url, excel文件等等\n */\n public static async downloadAndShareByUrl(url: string, downloadCB?: Function): Promise {\n const version = '1.1.14'\n\n if (await this.isUnderApp()) {\n if (await this.isAppVersionHigherThan(version)) {\n if (!downloadCB) {\n downloadCB = (args: any) => {\n // {url: string, message?: string, result: string, filePath?: string }\n // eslint-disable-next-line\n console.log(`========done downloadV2 default ${args}`)\n }\n }\n\n this._addAppCallListener('downloadV2Callback', downloadCB)\n // ios会将文件进行编码,所以需要解码\n const isIos = await this.isUnderIos()\n if (isIos) {\n try {\n url = decodeURIComponent(url)\n } catch (e) {\n // eslint-disable-next-line\n console.error(e)\n }\n }\n return JSBridgeUtil.asyncCall('downloadV2', url)\n }\n\n return { version }\n } else {\n location.href = url\n }\n }\n\n /**\n * 同downloadByUrl,下载完成之后回调\n */\n public static async asyncDownloadByUrl(url: string): Promise {\n return new Promise((resolve) => {\n this._addAppCallListener('downloadCallback', (resp: any) => {\n resolve(resp)\n })\n JSBridgeUtil.asyncCall('download', url)\n })\n }\n\n /**\n * 跳转参数参考:\n 挑战天天跳绳\n */\n public static async getUserToken(): Promise {\n const result = await JSBridgeUtil.asyncCall('getUserToken')\n return result\n }\n\n public static async getLocalScreenRecord(recordId: string): Promise {\n const result = await JSBridgeUtil.asyncCall('getLocalScreenRecord', recordId)\n BrowserUtil.log(`getLocalScreenRecord ${result} by ${recordId}`)\n return result\n }\n\n // 上传本地视频\n public static async uploadLocalVideo(recordId: string): Promise {\n BrowserUtil.log(`uploadLocalVideo by ${recordId}`)\n const result = await JSBridgeUtil.asyncCall('uploadLocalVideo', recordId)\n BrowserUtil.log(`uploadLocalVideo ${result} by ${recordId}`)\n return result\n }\n\n public static async getVideoPreviewImage(recordId: string): Promise {\n const result = await JSBridgeUtil.asyncCall('getVideoPreviewImage', recordId)\n return result\n }\n\n // app端保存图片到本地\n public static async saveBase64Img(base64Img: string) {\n const result = await JSBridgeUtil.asyncCall('saveImage', {\n image: base64Img,\n })\n return result\n }\n\n // 尝试恢复户外跑中断,如果有中断,会弹出原生提示框, 返回true, 否则返回false\n public static async resumeOutdoorRunningInterrupt(): Promise {\n console.log('resumeOutdoorRunningInterrupt start')\n const result = await JSBridgeUtil.asyncCall('outdoorRunInterruptEvent')\n console.log(`resumeOutdoorRunningInterrupt finish ${result}`)\n return result\n }\n\n // 通过微信分享图片\n // scene: session分享给好友,timeline朋友圈\n public static async wxshareBase64Img(base64Img: string, scene = 'session') {\n const result = await JSBridgeUtil.asyncCall('share', {\n scene: scene,\n type: 'image/web',\n image: base64Img,\n })\n return result\n }\n\n public static async getUserData(): Promise<{\n phone: string\n user_no: number\n token: string\n user_id: string\n }> {\n return JSON.parse(await JSBridgeUtil.asyncCall('getUserData'))\n }\n\n // 判断给定userId是否是当前给用户\n public static async isCurrentUser(userId: string): Promise {\n if (await this.isUnderApp()) {\n const userData = await this.getUserData()\n return userData.user_id === userId\n }\n return false\n }\n\n public static async selectAvatar(cb: (url: string) => void) {\n this._addAppCallListener('selectAvatarComplete', cb)\n\n return JSBridgeUtil.asyncCall('selectAvatar')\n }\n\n public static async getNetworkType(): Promise<'wifi' | 'no_wifi'> {\n if (await this.isUnderApp()) {\n return JSBridgeUtil.asyncCall('checkWifiState')\n }\n\n return (navigator as any)?.connection?.type || 'wifi'\n }\n\n public static async recharge(channel = ''): Promise {\n // 废弃,之前是app内跳跳币充值的,现改为会员充值\n /*\n if (await this.isAppVersionHigherThan('2.0.22'))\n return JSBridgeUtil.asyncCall('recharge').then((v) => {\n const res = JSON.parse(v)\n if (typeof res === 'object') return res\n else throw ''\n })\n */\n if (await this.isAppVersionHigherThan('4.0.12')) {\n const result: { result: number } = await JSBridgeUtil.asyncCall('buyMember', { channel })\n // {result: 1} 表示充值成功\n console.log(result)\n if (result && result.result === 1) {\n // 充值成功之后页面刷新下\n location.reload()\n }\n } else if (await this.isAppVersionHigherThan('2.0.22')) {\n // 之前的版本直接还是直接充值\n return JSBridgeUtil.asyncCall('recharge').then((v) => {\n const res = JSON.parse(v)\n if (typeof res === 'object') return res\n else throw ''\n })\n } else {\n this.openNativePage('never', undefined, true)\n }\n // 不返回,因为不知道跳跳币数量\n // return { count: 0 } // mock下按之前的接口返回数据\n }\n\n /**\n * 获得本地地址,配置事件 LocationCallback,获得地区信息\n */\n public static async applyLocation(): Promise {\n if (await this.isAppVersionHigherThan('2.0.17')) {\n JSBridgeUtil.asyncCall('getLocation')\n return true\n }\n this.openNativePage('never', undefined, true)\n return false\n }\n\n public static async updateLane() {\n if (await this.isUnderAndroid()) {\n JSBridgeUtil.asyncCall('updateLaneInfo')\n }\n }\n\n // 生成一个跳转的schema uri\n public static buildOpenSchemaByName(name: AppNativePageName): string {\n return this.buildOpenSchema(AppJumpUtil.buildDictByName(name))\n }\n\n public static buildOpenSchema(jumpCfg: any): string {\n return `gkid://com.gkid.crazyrope/commonjump?para=${encodeURIComponent(JSON.stringify(jumpCfg))}`\n }\n\n // 打开app,然后打开内嵌的web页面\n public static buildOpenURLSchema(url: string, title: string): string {\n const jumpCfg = AppJumpUtil.buildOpenURLDict(url, title)\n return this.buildOpenSchema(jumpCfg)\n }\n\n public static openByWebUrl(url: string, title: string) {\n this.open(AppJumpUtil.buildOpenURLDict(url, title))\n }\n\n public static openByName(name: AppNativePageName): void {\n this.open(AppJumpUtil.buildDictByName(name))\n }\n\n public static rawOpen(args: any, scheme: string) {\n new CallApp({\n scheme: {\n protocol: scheme,\n },\n appstore: 'http://itunes.apple.com/cn/app/id1531440648',\n timeout: 5000,\n fallback: 'https://dl.tiantiantiaosheng.com/app/crazyrope/android/crazyrope-latest.apk',\n }).open(args)\n }\n\n // 默认打开首页\n public static open(\n jumpCfg: any = AppJumpUtil.getHomepageConfig(),\n downloadQD?: string,\n tsChannel?: string,\n callBack?: Function\n ): void {\n if (downloadQD) {\n callApp = this.getCallAppOrGotoDL(downloadQD, tsChannel)\n } else {\n callApp = this.getCallApp()\n }\n callApp.open({\n path: 'com.gkid.crazyrope/commonjump',\n param: {\n para: encodeURIComponent(JSON.stringify(jumpCfg)),\n },\n callback: callBack ? callBack() : undefined,\n })\n }\n\n public static openOrDownloadAppInH5() {\n if (BrowserUtil.isWechat()) {\n this.openOrDownloadAppByYYB()\n } else {\n this.openByWebUrl(location.href, document?.title || '天天跳绳')\n }\n }\n\n public static openOrDownloadAppByYYB() {\n location.href = 'https://a.app.qq.com/o/simple.jsp?pkgname=com.gkid.crazyrope'\n }\n\n /**\n * 在外部打开app, 直接打开 或者下载(如果没安装)\n * 如果传递了command,客户端进入首页之后会去解析执行,从而实现从某个活动分享页浏览,点击之后打开或者下载, 然后进入到特定活动的过程\n * eg: 对战完成之后分享给同学, 同学看到之后下载app, 安装完成之后app会直接进入对战逻辑\n *\n * @param jumpCfg 跳转页面配置,参考对应方法\n * @param commandName 构建命令名称\n * @param commandValue 构建命令值\n */\n public static openOrDownloadAppWithCommand(options: _OpenDownloadOption = {}): void {\n const defaultParam = {\n jumpCfg: AppJumpUtil.getHomepageConfig(),\n commandName: '',\n commandValue: '',\n qd: '', // 渠道信息\n tsChannel: '',\n }\n const cfg: _OpenDownloadOption = Object.assign(defaultParam, options)\n if (cfg.commandName || cfg.tsChannel || cfg.qd) {\n // 如果设定cmd,构建之后复制到粘贴板\n // 有tsChannel直接用,否则用qd\n HtmlUtil.copyToClipboardSync(this.buildCommand(cfg.commandName!, cfg.commandValue!, cfg.tsChannel || cfg.qd))\n }\n this.open(cfg.jumpCfg, cfg.qd, cfg.tsChannel)\n }\n\n public static copyAppCommand(cmd: string, value: string, ts_channel?: string) {\n const appCmd = this.buildCommand(cmd, value, ts_channel)\n HtmlUtil.copyToClipboardSync(appCmd)\n return appCmd\n }\n\n public static copyAppChannelCommand(ts_channel: string) {\n if (ts_channel) {\n return this.copyAppCommand('', '', ts_channel)\n } else {\n return ''\n }\n }\n\n // 跳转到native页面\n public static async jump2NativeHomePage(): Promise {\n return this.jump2NativePageByName('homepage')\n }\n\n public static async jump2NativeMeta(): Promise {\n if (await this.isAppVersionHigherThan('3.0.4')) return JSBridgeUtil.asyncCall('enterCompetitionRoom')\n return this.jump2NativePageByName('meta')\n }\n\n // 体感派对\n public static async jump2NativeParty() {\n return JSBridgeUtil.asyncCall('enterGatheringRoom')\n }\n\n // 跳转到unity drill\n public static async jump2UnityDrillGame(drillId: string) {\n const page = AppJumpUtil.buildDictByName('unityJump')\n page.iOS_param = {\n drill_id: drillId,\n }\n page.Android_param = {\n drill_id: drillId,\n }\n return this.jump2NativePage(page)\n }\n\n public static async jump2NativeFriendPage(): Promise {\n return this.jump2NativePageByName('friends')\n }\n\n public static async jump2NativeFriendSelector(\n param: { h5_title?: string; h5_url?: string; h5_img_url?: string; event_type?: string; pick_one?: boolean } = {}\n ): Promise {\n const page = AppJumpUtil.buildDictByName('FriendSelector')\n page.iOS_param = param\n page.Android_param = param\n return this.jump2NativePage(page)\n }\n\n public static async jump2NativeGift2Friends(type: number) {\n const page = AppJumpUtil.buildDictByName('gift2Friends')\n page.iOS_param = {\n currentSelectedCardIndex: type,\n }\n page.Android_param = {\n default_index: type,\n }\n return this.jump2NativePage(page)\n }\n\n public static jump2NativeDrillRank(drillID: string) {\n const page = AppJumpUtil.buildDictByName('drillRank')\n page.iOS_param = {\n defaultDrillID: drillID,\n }\n page.Android_param = {\n drill_id: drillID,\n }\n\n return this.jump2NativePage(page)\n }\n\n // 跳转到项目页面\n public static async jump2NativeProjectPage(): Promise {\n return this.jump2NativePageByName('projects')\n }\n\n // 跳转到native 名人堂\n public static async jump2NativeHallFame(): Promise {\n return this.jump2NativePageByName('hallfame')\n }\n\n public static async jump2NativePage(jumpCfg: any): Promise {\n // eslint-disable-next-line\n console.log(jumpCfg)\n return JSBridgeUtil.asyncCall('connectHandler', jumpCfg)\n }\n\n public static async jump2NativeRankAuth(): Promise {\n return this.jump2NativePageByName('rankAuth')\n }\n\n public static async jump2NativeSetting(): Promise {\n return this.jump2NativePageByName('setting')\n }\n\n public static async jump2NativeQRCodeScanner(): Promise {\n return this.jump2NativePageByName('qrCodeScanner')\n }\n\n public static async jump2NativeHomework(): Promise {\n return this.jump2NativePageByName('homeworkHome')\n }\n\n public static async jump2NativeHomeworkHome(): Promise {\n return this.jump2NativePageByName('homeworkHome')\n }\n\n public static async jump2NativeHomeworkRank(): Promise {\n return this.jump2NativePageByName('homeworkRank')\n }\n\n public static async jump2NativeExamTest2021(): Promise {\n return this.jump2NativePageByName('examTest2021')\n }\n\n public static async jump2NativeLogin(): Promise {\n return this.jump2NativePageByName('login')\n }\n\n public static async jump2NativeSuperGame(): Promise {\n return this.jump2NativePageByName('superGame')\n }\n\n public static async jump2NativeRope(): Promise {\n return this.jump2NativePageByName('rope')\n }\n\n public static async jump2NativeRun(): Promise {\n return this.jump2NativePageByName('running')\n }\n\n public static async jump2NativeHeartRate(): Promise {\n return this.jump2NativePageByName('heartRate')\n }\n\n public static async jump2NativeAddFriend(): Promise {\n return this.jump2NativePageByName('AddFriend')\n }\n public static async jump2NativeFitcat(): Promise {\n return this.jump2NativePageByName('fitcat')\n }\n\n public static async jump2NativeOrderPage(params: any): Promise {\n return this.jump2NativePage({\n ...AppJumpUtil._buildDict((AppJumpUtil.config as any)['order']),\n iOS_param: params,\n Android_param: params,\n })\n }\n\n public static async jump2NativeOrderDetail(id: string): Promise {\n return this.jump2NativePage({\n ...AppJumpUtil._buildDict((AppJumpUtil.config as any)['orderDetail']),\n iOS_param: { order_id: id },\n Android_param: { id },\n })\n }\n\n public static async jump2NativePlanDetails(id: string, name: string): Promise {\n return this.jump2NativePage({\n ...AppJumpUtil.buildDictByName('planDetails'),\n iOS_param: { plan_id: id, plan_name: name },\n Android_param: { id },\n })\n }\n\n public static async jump2NativeDrillDetails(id: string) {\n return this.jump2NativePage({\n ...AppJumpUtil.buildDictByName('drillDetails'),\n iOS_param: { drill_id: id },\n Android_param: { 'extra.drill': id },\n })\n }\n\n public static async jump2NativePay(orderId: string, scene?: string) {\n return this.jump2NativePage({\n ...AppJumpUtil.buildDictByName('pay'),\n iOS_param: { order_id: orderId, activity_scene: scene },\n Android_param: { order_id: orderId, activity_scene: scene },\n })\n }\n\n public static async jump2NativeDrillCourse() {\n return this.jump2NativePageByName('drillCourse')\n }\n\n public static async jump2NativePageByName(name: AppNativePageName): Promise {\n return this.jump2NativePage(AppJumpUtil.buildDictByName(name))\n }\n\n public static async jump2NativePageByCfg(cfg: any): Promise {\n return this.jump2NativePage(AppJumpUtil._buildDict(cfg))\n }\n\n // 跳转到原生app的页面, 原生内部调用jsbridge 区别于用schema打开\n public static async jump2NativeURL(url: string, title: string): Promise {\n const jumpCfg = AppJumpUtil.buildOpenURLDict(url, title)\n return this.jump2NativePage(jumpCfg)\n }\n\n // APP功能统一调用方法\n public static async openNativePage(key: string, data?: { [k: string]: any }, showUpdate = false): Promise {\n return JSBridgeUtil.asyncCall('openViewByKey', { key, data, showUpdate })\n }\n\n public static async checkNativePage(keys: (keyof T)[]): Promise> {\n return JSBridgeUtil.asyncCall('checkViewKey', keys)\n }\n\n // 提醒开启订阅\n public static async subscribe() {\n JSBridgeUtil.asyncCall('subscribe')\n }\n\n public static async phoneVerified() {\n try {\n JSBridgeUtil.asyncCall('phoneVerified')\n } catch (e) {\n // noop\n }\n }\n\n // 增加时间回调\n public static async _addAppCallListener(eventName: string, callback: any) {\n if (await this.isUnderApp()) {\n // eslint-disable-next-line no-console\n console.log(`start app event listen ${eventName}`)\n JSBridgeUtil.registerHandler(eventName, callback)\n }\n }\n\n public static async appendToken2Header(headers: any): Promise {\n return this._appendToken2Header(headers)\n }\n\n public static async getAppOrH5Token(): Promise {\n if (await this.isUnderApp()) {\n return await this.getUserToken()\n } else {\n return StorageUtil.get(this.buildRequestTokenKey()) || ''\n }\n }\n\n public static async _appendToken2Header(headers: any): Promise {\n if (!requestToken) {\n if (await this.isUnderApp()) {\n requestToken = await this.getUserToken()\n } else {\n requestToken = StorageUtil.get(this.buildRequestTokenKey()) || ''\n }\n }\n\n if (requestToken) {\n headers.Authorization = `bearer ${requestToken}`\n }\n\n return headers\n }\n\n public static _getCurrentRequestToken(): string {\n return requestToken\n }\n\n public static getCallApp(): CallApp {\n if (!callApp) {\n callApp = new CallApp({\n scheme: {\n protocol: 'gkid',\n },\n appstore: 'http://itunes.apple.com/cn/app/id1531440648',\n timeout: 3000,\n fallback: 'https://dl.tiantiantiaosheng.com/app/crazyrope/android/crazyrope-latest.apk',\n })\n }\n\n return callApp\n }\n\n public static getCallAppOrGotoDL(qd: string, tsChannel?: string): CallApp {\n const downloadUrl = StringUtil.appendQueryString2Url(\n `https://www.tiantiantiaosheng.com/dl`,\n StringUtil.buildQueryString({ qd, ts_channel: tsChannel ? tsChannel : '' })\n )\n if (!callApp) {\n callApp = new CallApp({\n scheme: {\n protocol: 'gkid',\n },\n appstore: downloadUrl,\n timeout: 3000,\n fallback: downloadUrl,\n })\n }\n\n return callApp\n }\n\n public static getDownloadUrl() {\n let baseUrl = `https://www.tiantiantiaosheng.com/dl`\n if (!EnvUtil.isProd()) {\n baseUrl = `https://www-test.tiantiantiaosheng.com/dl`\n }\n return baseUrl\n }\n\n public static buildDownloadUrl(qd: string, ts_channel: string, cfg?: { baseUrl?: string; query?: any }): string {\n // 构建下载页面地址, 会补上渠道信息qd和 channel信息 (channel带有渠道和用户信息)\n let baseUrl = cfg && cfg.baseUrl ? cfg.baseUrl : ''\n const queryObj = cfg && cfg.query ? cfg.query : {}\n if (!baseUrl) {\n baseUrl = this.getDownloadUrl()\n }\n if (qd) {\n queryObj.qd = qd\n }\n if (ts_channel) {\n queryObj.ts_channel = ts_channel\n }\n if (baseUrl.includes('?')) {\n baseUrl = baseUrl + '&' + StringUtil.buildQueryString(queryObj)\n } else {\n baseUrl = baseUrl + '?' + StringUtil.buildQueryString(queryObj)\n }\n return baseUrl\n }\n\n public static buildCommand(name: string, value: string | number, qd = ''): string {\n // 构建一个命令,如果带有渠道,会拼成多命令内容\n let result = this._buildSingleCmd(name, value)\n if (qd) {\n // result 可能为空, 判断 _SplitMultiCmd\n result = `${result}${result ? '&' : ''}${this._buildSingleCmd(this.AppOpenCmd.qudao, qd)}`\n }\n // 除了两个老命令其他都加上前缀\n const commandPrefix = this.AppOpenCmd._IosCommandPrefix\n // if (this.AppOpenCmd._OldCmds.includes(name) && !!value) {\n // commandPrefix = ''\n // }\n return `${commandPrefix}${result}`\n }\n\n public static _buildSingleCmd(cmd: string, value: string | number): string {\n // 构建单个简单命令\n if (!cmd || !value) {\n return ''\n }\n if (cmd === this.AppOpenCmd.qudao) {\n return `ts_channel=${value}`\n } else {\n return `mode=${this.AppOpenCmd._CmdPrefix}${cmd}&token=${value}`\n }\n }\n\n public static _parseRespData(result: any) {\n try {\n if (result) {\n return JSON.parse(result)\n }\n } catch (e) {\n // eslint-disable-next-line\n console.error(e)\n }\n return {}\n }\n\n public static async videoEventCall(eventName: 'play' | 'ended' | 'pause', videoUrl: string): Promise {\n return JSBridgeUtil.asyncCall('videoEvent', {\n event: eventName,\n videoUrl,\n })\n }\n\n // ================ app 主动调用事件 ================\n public static setStopVideoPlayListener() {\n this._addAppCallListener('pauseVideo', () => {\n // eslint-disable-next-line no-console\n console.log('stopVideoEvevnt')\n const videos = document.getElementsByTagName('video')\n for (const v of videos) {\n const ele = v as HTMLVideoElement\n ele.pause()\n }\n })\n }\n\n public static addReminder(_params: IAppReminderParams) {\n return JSBridgeUtil.asyncCall('addReminder', {\n ..._params,\n startDate: _params.startDate.getTime(),\n endDate: _params.endDate.getTime(),\n })\n }\n\n public static enterPKRoom(_params: {\n scene: string\n game_group: string\n round_score: number\n cheered_count: number\n }) {\n return JSBridgeUtil.asyncCall('enterChampionRoom', _params)\n }\n\n public static enterRunning(\n _params: {\n event_type: string\n event_id: string\n max_distance_per_day: number\n min_distance_per_time: number\n min_speed: null | number\n max_speed: number\n },\n cb?: Function\n ) {\n if (cb) {\n this._addAppCallListener('schoolRunCallback', cb)\n }\n\n return JSBridgeUtil.asyncCall('enterSchoolRunPage', _params)\n }\n\n public static readonly VirtualRoom = {\n JumpRope: 'jump_rope', // 跳绳房\n Defend: 'defend', // 保卫运动场\n }\n\n /**\n * 进入对应的运动房, 注意 sports_room_list 是房间列表\n * @param _params jump_rope 跳绳房\n */\n public static enterVirtualRoom(_params: { scene: string }) {\n return JSBridgeUtil.asyncCall('enterVirtualRoom', _params)\n }\n\n // 体感派对\n public static enterGatheringRoom() {\n return JSBridgeUtil.asyncCall('enterGatheringRoom')\n }\n\n // 通过人民币购买(通常是会员,区别于虚拟物品),弹出原生半弹窗,购买成功之后会有返回值true\n public static async buySkuPopup(skuCode: string): Promise {\n return this.applePay(skuCode)\n }\n\n // 新版本已经支持了\n public static async applePay(skuCode: string): Promise {\n if ((await this.isUnderIos()) && !(await this.isAppVersionHigherThan('3.0.47'))) {\n const result = await this.httpGET(`${process.env.VUE_APP_PAY_API}/payment/order/product_everyday_payment_limit`, {\n sku_code: skuCode,\n })\n\n if (result.be_limited) {\n return UIUtil.checkFailed(result.msg)\n }\n }\n\n if ((await this.isUnderAndroid()) && !(await this.isAppVersionHigherThan('3.0.7'))) {\n return this.openNativePage('never', undefined, true)\n }\n\n return JSBridgeUtil.asyncCall('purchaseItem', skuCode).then((res) => !!res)\n }\n\n public static async androidPay(skuCode: string, title: string, desc: string, offerId: string) {\n return JSBridgeUtil.asyncCall('purchaseItem', {\n title,\n desc,\n skuCode,\n offerId,\n })\n }\n\n public static async purchase(_skuCode: string, _params: IAppPurchaseParams = {}) {\n if ((await AppUtil.isUnderIos()) && (await AppUtil.isAppVersionHigherThan('4.0.13'))) {\n return JSBridgeUtil.asyncCall('purchaseItemV2', { sku_code: _skuCode, ..._params }).then((res) => !!res)\n }\n\n return AppUtil.applePay(_skuCode)\n }\n\n /**\n * 通用的让app打开页面的逻辑\n * 如果在app内,则打开页面\n * 否则目前ios通过univeral link的方式会直接打开app并打开页面\n * android会通过schema打开页面(微信里会让打开浏览器,ios微信也能直接打开)\n * 后续看看能否通过应用宝直接打开\n * @param url 需要打开的url\n */\n public static async universalOpenUrlInApp(url: string, title = '天天跳绳', qd = '') {\n if (await this.isUnderApp()) {\n // app内直接打开\n if (location.href !== url) {\n this.openByWebUrl(url, title)\n }\n return\n } else {\n location.href = `${this.getDownloadUrl()}?cr_type=h5&cr_url=${encodeURIComponent(url)}&qd=${qd}`\n }\n }\n\n public static buildMatchUrl(path: string, prefix = '/api'): string {\n if (EnvUtil.isProd()) {\n return `https://api-match.tiantiantiaosheng.com${prefix}${path}`\n } else {\n return `https://api-match-test.tiantiantiaosheng.com${prefix}${path}`\n }\n }\n\n public static buildMatchH5Url(path: string): string {\n let envPrefix = '-test'\n if (EnvUtil.isProd()) {\n envPrefix = ''\n }\n return `https://www${envPrefix}.tiantiantiaosheng.com/apph5/#${path}`\n }\n\n // 构建访问比赛的页面\n public static buildMatchRankUrl(matchId: string): string {\n return this.buildMatchH5Url(`/online-matches/v2/${matchId}/rank`)\n }\n\n public static buildMatchFinalScoreUrl(matchId: string, schoolId: string | number): string {\n return this.buildMatchH5Url(`/online-matches/v2/${matchId}/final-school-score?schoolId=${schoolId}`)\n }\n\n public static buildOssVideoThumbnail(ossVideoUrl: string, offsetMillSeconds = 1000) {\n return `${ossVideoUrl}?x-oss-process=video/snapshot,t_${offsetMillSeconds},m_fast`\n }\n\n // 跳转到微信客服\n public static jumpToWechatCustomerService(wechatJumpUrl?: string) {\n if (BrowserUtil.isHarmony()) {\n // 鸿蒙暂时无法跳转微信,跳转到二维码图片\n location.href = 'https://www.tiantiantiaosheng.com/app/img2?cfg=98bd1d06-e20d-40fd-8ae8-4706ec2690c8.json'\n } else {\n if (!wechatJumpUrl) {\n wechatJumpUrl = AppUtil.ContactWay.WechatUrlForPayment\n }\n location.href = wechatJumpUrl\n }\n }\n}\n","export class AppVersion {\n public version: string\n public segments: number[] = []\n\n constructor(version: string) {\n this.version = version || ''\n this.segments = this.version.split('.').map((segment) => Number(segment))\n }\n\n static isEqualOrHigherThan(current: string, target: string) {\n return new AppVersion(current).isEqualOrHigherThan(new AppVersion(target))\n }\n\n isEqual(version: AppVersion) {\n return this.version === version.version\n }\n\n isHigherThan(version: AppVersion) {\n let i = 0\n\n for (; i < this.segments.length && i < version.segments.length; i++) {\n if (this.segments[i] > version.segments[i]) {\n return true\n }\n if (this.segments[i] < version.segments[i]) {\n return false\n }\n }\n\n return i !== this.segments.length\n }\n\n isEqualOrHigherThan(version: AppVersion) {\n return this.isEqual(version) || this.isHigherThan(version)\n }\n}\n","export class ArrayUtil {\n public static uniqWith(array: T[], key: keyof T, inOppositeDirection = false) {\n const set = new Set()\n const result: T[] = []\n\n function push(item: T) {\n const value = item[key]\n\n if (!set.has(value)) {\n result.push(item)\n\n set.add(value)\n }\n }\n\n if (inOppositeDirection) {\n for (let i = array.length - 1; i >= 0; i--) {\n push(array[i])\n }\n\n result.reverse()\n } else {\n for (let i = 0; i < array.length; i++) {\n push(array[i])\n }\n }\n\n return result\n }\n\n public static calcPlaceholderNum(length: number, numPerGroup: number) {\n const remainder = length % numPerGroup\n\n return remainder && numPerGroup - remainder\n }\n\n static removeByIndex(arr: T[], index: number) {\n if (index < 0) {\n return false\n }\n arr.splice(index, 1)\n return true\n }\n\n static remove(arr: T[], item: T) {\n const idx = arr.indexOf(item)\n if (idx !== -1) {\n this.removeByIndex(arr, idx)\n return true\n } else {\n return false\n }\n }\n\n static clean(arr: T[]) {\n arr.splice(0, arr.length)\n return arr\n }\n\n /**\n * change position of item\n * @param {*} arr list\n * @param {*} item item\n * @param {number} offsetIndex 1就向后调整一个, -1 就向前调整,超出范围不做调整\n */\n static changePosition(arr: T[], item: T, offsetIndex: number) {\n const idx = arr.indexOf(item)\n if (idx !== -1) {\n const newIndex = idx + offsetIndex\n if (newIndex >= 0 && newIndex < arr.length) {\n arr.splice(idx, 1)\n arr.splice(newIndex, 0, item)\n return true\n }\n }\n return false\n }\n\n static changePosition2First(arr: T[], item: T) {\n const idx = arr.indexOf(item)\n return this.changePosition(arr, item, idx * -1)\n }\n\n static changePosition2Last(arr: T[], item: T) {\n const idx = arr.indexOf(item)\n return this.changePosition(arr, item, arr.length - idx - 1)\n }\n\n static equal(arr1: T[], arr2: T[]) {\n if (arr1.length !== arr2.length) {\n return false\n }\n\n for (let i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false\n }\n }\n\n return true\n }\n\n static random(arr: T[]) {\n return arr[Math.floor(Math.random() * arr.length)]\n }\n\n static randomSort(arr: T[]) {\n for (let i = 0; i < arr.length; i++) {\n const j = Math.floor(Math.random() * arr.length)\n const temp = arr[i]\n arr[i] = arr[j]\n arr[j] = temp\n }\n\n return arr\n }\n\n static randomNumber(min = 0, max = 1) {\n return Math.floor(Math.random() * (max - min)) + min\n }\n\n static buildIdMap(ids: string[], initialValue: T = true as any) {\n return ids.reduce((result: { [index: string]: T }, id) => {\n result[id] = initialValue\n return result\n }, {})\n }\n\n static number2Array(n: number, start = 1, step = 1) {\n const result: number[] = []\n\n for (let i = 0, k = 0; k < n; k++, i += step) {\n result.push(start + i)\n }\n\n return result\n }\n\n static buildMapByKey(arr: T[], key: keyof T) {\n return arr.reduce((result: { [index: string]: T }, item) => {\n result[item[key] as any] = item\n return result\n }, {})\n }\n\n static last(arr: T[]) {\n return arr[arr.length - 1]\n }\n\n static join(arr: T[], separator = '', max = 0, postfix = '') {\n if (max <= 0 || arr.length <= max) {\n return arr.join(separator)\n }\n\n return `${arr.slice(0, max).join(separator)}等${arr.length}${postfix}`\n }\n\n static trim(_arr: T[], _filter?: (_v: T) => boolean) {\n this.trimLeft(_arr, _filter)\n this.trimRight(_arr, _filter)\n\n return _arr\n }\n\n static trimLeft(_arr: T[], _filter?: (_v: T) => boolean) {\n const filter =\n _filter ||\n function (_v: T) {\n return !!_v\n }\n\n const idx = _arr.findIndex(filter)\n\n _arr.splice(0, idx >= 0 ? idx : _arr.length)\n\n return _arr\n }\n\n static maxByKey(arr: T[], key: keyof T) {\n let item = arr[0]\n\n for (let i = 0; i < arr.length; i++) {\n if (arr[i][key] > item[key]) {\n item = arr[i]\n }\n }\n\n return item\n }\n\n static sumByKey(arr: T[], key: keyof T) {\n return arr.reduce((result: number, item) => {\n result += item[key] as number\n return result\n }, 0)\n }\n\n static trimRight(_arr: T[], _filter?: (_v: T) => boolean) {\n const filter =\n _filter ||\n function (_v: T) {\n return !!_v\n }\n\n let idx = -1\n for (let i = _arr.length - 1; i >= 0; i--) {\n if (filter(_arr[i])) {\n idx = i\n break\n }\n }\n\n _arr.splice(idx + 1, _arr.length - idx - 1)\n\n return _arr\n }\n\n static groupByKey(_arr: T[], _key: keyof T) {\n const result: Record = {}\n\n _arr.forEach((_item) => {\n const key = _item[_key] as string\n\n if (!result[key]) {\n result[key] = []\n }\n\n result[key].push(_item)\n })\n\n return result\n }\n\n /**\n *\n * @param _arr [[1, 2], [2, 3]]\n * @param needSort\n * @returns [1, 3]\n */\n static mergeRanges(_arr: [number, number][], needSort = true) {\n const arr = [..._arr]\n\n if (arr.length) {\n const result: [number, number][] = []\n\n if (needSort) {\n arr.sort((a1, a2) => {\n if (a1[0] === a2[0]) {\n return a1[0] - a2[0]\n } else {\n return a1[1] - a2[1]\n }\n })\n }\n\n let range = arr[0]\n for (let i = 1; i < arr.length; i++) {\n if (range[1] < arr[i][0]) {\n result.push(range)\n range = arr[i]\n } else {\n range[1] = arr[i][1]\n }\n }\n\n result.push(range)\n\n return result\n }\n\n return arr\n }\n}\n","import CallApp from 'callapp-lib'\nimport { HtmlUtil } from './HtmlUtil'\n\nlet callApp: CallApp | null = null\n\nexport class BrowserUtil {\n public static isHarmony(): boolean {\n return this.getUA().toLocaleLowerCase().indexOf('harmony') > -1\n }\n\n public static isAndroid(): boolean {\n const ua = this.getUA()\n return ua.indexOf('Android') > -1 || ua.indexOf('Adr') > -1\n }\n\n public static isIOS(): boolean {\n if (navigator.vendor) {\n if (navigator.vendor.includes('Apple Computer')) {\n return true\n }\n }\n return !!this.getUA().match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/)\n }\n\n public static isWechat(): boolean {\n const lowerCaseUA = this.getUA().toLowerCase()\n return lowerCaseUA.indexOf('micromessenger') !== -1\n }\n\n public static isWxWork(): boolean {\n const lowerCaseUA = this.getUA().toLowerCase()\n return lowerCaseUA.indexOf('wxwork') !== -1\n }\n\n public static isWeapp(): boolean {\n const lowerCaseUA = this.getUA().toLowerCase()\n return (window as any).__wxjs_environment === 'miniprogram' || lowerCaseUA.indexOf('miniprogram') !== -1\n }\n\n public static isUnderApp(): boolean {\n return (\n this.getUA().includes('com.gkid.crazyrope') ||\n this.getUA().includes('tiantiantiaosheng') ||\n this.getUA().includes('com.tizhiyun') ||\n this.getUA().includes('com.xiaoyu')\n )\n }\n\n public static isUnderUnity(): boolean {\n return this.isUnderApp() && this.getUA().toLowerCase().includes('unity')\n }\n\n public static getUA(): string {\n return navigator.userAgent\n }\n\n public static updateTitle(title: string) {\n document.title = title\n }\n\n public static log(data: any) {\n // eslint-disable-next-line no-console\n console.log(data)\n }\n\n public static logError(e: Error) {\n this.log('========== ERROR =========')\n this.log(e)\n }\n\n // 页面在app里放后台的会后停止所有播放\n public static setStopAllPlayerWhenBackgroundListener() {\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'hidden') {\n this.pauseAllPlayers()\n }\n })\n window.addEventListener(\n 'pagehide',\n (event) => {\n if (event.persisted) {\n this.pauseAllPlayers()\n }\n },\n false\n )\n }\n\n public static pauseAllPlayers() {\n const videos = document.getElementsByTagName('video')\n for (const v of (videos as unknown) as HTMLVideoElement[]) {\n const ele = v\n ele.pause()\n }\n const audios = document.getElementsByTagName('audio')\n for (const v of (audios as unknown) as HTMLAudioElement[]) {\n const ele = v\n ele.pause()\n }\n }\n\n public static setThemeColor(color: string) {\n HtmlUtil.appendMeta('theme-color', color)\n HtmlUtil.appendMeta('msapplication-navbutton-color', color)\n HtmlUtil.appendMeta('apple-mobile-web-app-capable', 'yes')\n HtmlUtil.appendMeta('apple-mobile-web-app-status-bar-style', color)\n }\n\n public static removeThemeColor() {\n this.setThemeColor('')\n }\n\n public static openLink(v: string, qd = '') {\n if (BrowserUtil.isAndroid()) {\n if (BrowserUtil.isWechat()) {\n const mask = document.createElement('div')\n mask.className = 'wx-browser-open-tips-mask'\n mask.addEventListener('click', function () {\n this.remove()\n })\n return document.body.appendChild(mask)\n }\n const fb = `https://www.tiantiantiaosheng.com/dl?qd=${qd}`\n callApp = callApp || new CallApp({ scheme: { protocol: 'gkid' }, appstore: fb, fallback: fb, timeout: 3000 })\n callApp.open({\n path: 'com.gkid.crazyrope/commonjump',\n param: {\n para: encodeURIComponent(\n JSON.stringify({\n action: 'jump',\n Android_page: 'com.gkid.crazyrope.ui.base.WebActivity',\n Android_param: { url: v },\n })\n ),\n },\n })\n } else location.href = `https://www.tiantiantiaosheng.com?cr_type=h5&cr_url=${encodeURIComponent(v)}`\n }\n\n public static fixIosWhiteScreenBug() {\n // trick: https://github.com/vuejs/vue/issues/5533#issuecomment-301982923\n if (this.isIOS()) {\n window.scrollTo(0, 1)\n window.scrollTo(0, 0)\n }\n }\n}\n","import QRCode from 'easyqrcodejs'\nimport { DateUtil } from './DateUtil'\nimport html2canvas from 'html2canvas'\n\n// 客户端通过canvas生成poster的实现\nexport class CanvasPosterUtil {\n static getBase64Image(img: HTMLImageElement): string | null {\n if (!img) {\n return null\n }\n\n const scale = window.devicePixelRatio\n\n const width = img.width * scale\n const height = img.height * scale\n\n const canvas = document.createElement('canvas')\n\n canvas.width = width\n canvas.height = height\n\n const ctx = canvas.getContext('2d')\n\n if (ctx) {\n ctx.drawImage(img, 0, 0, width, height)\n return canvas.toDataURL('image/png')\n }\n\n return null\n }\n\n static async domToImage(el: HTMLElement, quality = 0.5): Promise {\n return html2canvas(el, {\n scrollY: 0,\n useCORS: true,\n scale: 1125 / Math.max(el.getBoundingClientRect().width, 375),\n width: Math.floor(el.getBoundingClientRect().width),\n height: Math.floor(el.getBoundingClientRect().height),\n }).then((canvas: HTMLCanvasElement) => {\n return canvas.toDataURL('image/jpeg', quality)\n })\n }\n}\n\nexport interface Position {\n x: number\n y: number\n}\n\nexport class CanvasPoster {\n // 构建canvas, width, height为背景图片的原始尺寸,建议750宽度\n // 生成的图片原始大小则为750, 但还是可以当成src传给img, img本身可以设置宽高适应界面\n public static async getOrCreateCanvasElement(width: number, height: number): Promise {\n const canvasId = 'canvas_poster_wrapper'\n let ele = document.getElementById(canvasId)\n if (!ele) {\n ele = document.createElement('canvas')\n ele.id = canvasId\n document.body.appendChild(ele)\n }\n ele.style.display = 'none'\n const aele = ele as any\n aele.width = width\n aele.height = height\n // canvas 似乎要一些事件初始化\n await DateUtil.sleep(200)\n return ele as HTMLCanvasElement\n }\n\n protected canvas: HTMLCanvasElement\n protected context: CanvasRenderingContext2D\n\n constructor(canvas: HTMLCanvasElement) {\n this.canvas = canvas\n const context = canvas.getContext('2d')\n if (context) {\n const c = context as any\n c.webkitImageSmoothingEnabled = false\n c.mozImageSmoothingEnabled = false\n context.imageSmoothingEnabled = false\n this.context = context\n } else {\n throw new Error('get context fail')\n }\n }\n\n /**\n * @param resources eg\n * [\n {\n type: 'image',\n image: bg,\n position: { x: 0, y: 0 },\n size: { width: 750, height: 1334 },\n sort: 1\n },\n {\n type: 'text',\n text: this.userInfo.wechat_name || '',\n position: { x: 180, y: 50 },\n styles: {\n font: '35px bold',\n fillStyle: '#000',\n textBaseline: 'top'\n }\n },\n {\n type: 'qrcode',\n url: inviteURL,\n position: { x: 80, y: 1015 },\n width: 500,\n size: { width: 250, height: 250 }\n },\n {\n type: 'roundImage',\n image: require('./assets/default_avatar.png')\n center: { x: 100, y: 80 },\n radius: 60\n }\n ]\n */\n async getPoster(resources: any[]) {\n // 由于真实的绘制是由图片加载时长确定的,为了保证绘制的顺序\n // 将加载好后的图片放进队列,按优先级取出并绘制\n // 顺序有 index 属性确定,如果都没有顺序则按代码的顺序确定\n // 文字始终最后绘制\n const imageLoadedQueue = []\n const allImages = []\n\n // 按 index 排序从大到小排序\n resources.sort((a: any, b: any) => {\n if (!a.sort) a.sort = 0\n if (!b.sort) b.sort = 0\n return b.sort - a.sort\n })\n\n // 获取图片元素\n for (let i = 0; i < resources.length; i++) {\n const resource = resources[i]\n if (resource.type === 'image' || resource.type === 'roundImage') {\n imageLoadedQueue.push(this.loadImage(resource.image))\n allImages.push(resource)\n }\n if (resource.type === 'qrcode') {\n imageLoadedQueue.push(this.createQrcode(resource.url, resource.width))\n allImages.push(resource)\n }\n }\n\n // 图片下载完成后的数组\n const couldDrawImages = await Promise.all(imageLoadedQueue)\n\n // 绘制图片\n allImages.forEach((resource, index) => {\n if (resource.type === 'roundImage') {\n this.drawRoundImage(couldDrawImages[index] as HTMLImageElement, resource.center, resource.radius)\n } else {\n this.drawImage(couldDrawImages[index] as HTMLImageElement, resource.position, resource.size)\n }\n })\n\n // 绘制文字\n resources.forEach((resource: any) => {\n if (resource.type === 'text') {\n this.drawText(resource.text, resource.position, resource.styles)\n }\n })\n return await this.getDataURL()\n }\n\n async getDataURL(): Promise {\n return new Promise((resolve) => {\n window.requestAnimationFrame(() => {\n resolve(this.canvas.toDataURL('image/png'))\n })\n })\n }\n\n /**\n * canvas上绘制图片\n */\n drawImage(image: HTMLImageElement, position = { x: 0, y: 0 }, size = { width: 0, height: 0 }) {\n this.context.drawImage(image, position.x, position.y, size.width, size.height)\n }\n\n // canvas绘制圆形图片\n drawRoundImage(image: HTMLImageElement, center: Position, radius: number) {\n this.context.save()\n this.context.arc(center.x, center.y, radius, 0, 2 * Math.PI, false)\n this.context.clip()\n this.drawImage(\n image,\n {\n x: center.x - radius,\n y: center.y - radius,\n },\n {\n width: 2 * radius,\n height: 2 * radius,\n }\n )\n this.context.restore()\n }\n\n /**\n * 绘制文字\n * @param {String} text 绘制的文字\n * @param {position} position 坐标\n * @param {Object} styles 样式\n */\n drawText(text: string, position: Position, styles: any) {\n this.context.save()\n for (const propName in styles) {\n const c = this.context as any\n c[propName] = styles[propName]\n }\n this.context.fillText(text, position.x, position.y)\n this.context.restore()\n }\n\n async drawQrcode(url: string, width: number, position: Position, size: { width: number; height: number }) {\n const qrcode = await this.createQrcode(url, width)\n this.drawImage(qrcode as HTMLImageElement, position, size)\n }\n\n /**\n * 生成二维码\n * @param {*} url 二维码内容\n * @param {*} options 生成的二维码参数\n */\n async createQrcode(url: string, width: number): Promise {\n const dataURL = await CanvasPoster.createQRCodeImageURL(url, width)\n return this.loadImage(dataURL, false)\n }\n\n static async createQRCodeImageURL(url: string, width = 500, logo?: string, logoWidth = 16): Promise {\n return new Promise((resolve) => {\n const container = document.createElement('div')\n\n new QRCode(container, {\n text: url,\n width: width,\n height: width,\n correctLevel: QRCode.CorrectLevel.M,\n logo,\n logoWidth: logoWidth,\n logoHeight: logoWidth,\n crossOrigin: 'anonymous',\n onRenderingEnd: (_options: any, _dataUrl: string) => {\n resolve(_dataUrl)\n },\n })\n })\n }\n\n // 加载图片\n loadImage(src: string, cross = true) {\n return new Promise((resolve, reject) => {\n const image = new Image()\n cross && (image.crossOrigin = 'Anonymous')\n image.onload = () => {\n resolve(image)\n }\n image.onerror = (e) => {\n reject(e)\n }\n image.src = src\n })\n }\n}\n","/* eslint-disable @typescript-eslint/no-use-before-define */\nimport Vue from 'vue'\nimport { ArrayUtil } from './ArrayUtil'\nimport { StringUtil } from './StringUtil'\nimport { Option, StatusUnstartStartedEnded } from 'kuaidong-model'\nimport { addWeeks, endOfDay, endOfWeek, endOfMonth, format, differenceInCalendarISOWeeks } from 'date-fns'\n\nexport type IDate = Date | string | number\nexport type IDateRange = [Date, Date]\n\nexport class DateWrapper {\n public date: Date\n\n constructor(date: IDate) {\n if (typeof date === 'string') {\n if (date.includes('T')) {\n this.date = new Date(date)\n } else {\n this.date = new Date(date.replace(/-/g, '/'))\n }\n } else if (typeof date === 'number') {\n this.date = new Date(date)\n } else {\n this.date = date\n }\n }\n\n /**\n * 显示 06-23 19:03\n */\n public get showStr(): string {\n return `${StringUtil.padZero(this.date.getMonth() + 1)}-${StringUtil.padZero(\n this.date.getDate()\n )} ${StringUtil.padZero(this.date.getHours())}:${StringUtil.padZero(this.date.getMinutes())}`\n }\n\n /**\n * 显示 06/23 19:03\n */\n public get showStr2() {\n return `${this.showDateStrShort3} ${this.showTimeStr}`\n }\n\n /**\n * 显示 06/23 (周三) 19:03\n */\n public get showStr3() {\n return `${this.showDateStrShort3} (${this.showWeekDayShort}) ${this.showTimeStr}`\n }\n\n public get showStrFullDate(): string {\n return `${this.showDateStr} ${this.showTimeStr}`\n }\n\n public get showFullStr(): string {\n return `${this.showDateStr} ${this.showFullTimeStr}`\n }\n\n /**\n * https://www.notion.so/58c1f47a482645b59b06b0119b1d0340\n *\n */\n public get showCustomStr(): string {\n let result = ''\n if (!this.isToday()) {\n result += `${this.date.getMonth() + 1}月${this.date.getDate()}日 `\n }\n if (this.isCurrentYear()) {\n const hour = this.date.getHours()\n const amPm = hour > 12 ? '下午' : '上午'\n const showHour = hour > 12 ? hour - 12 : hour\n result += `${amPm} ${showHour}:${StringUtil.padZero(this.date.getMinutes(), 2)}`\n } else {\n result = `${this.date.getFullYear()}年 ` + result\n }\n return result\n }\n\n public get showAmOrPm(): string {\n const hour = this.date.getHours()\n const amPm = hour > 12 ? '下午' : '上午'\n return amPm\n }\n\n public get showAmOrPmWithTime(): string {\n if (this.isToday()) {\n return `${this.showAmOrPm} ${this.showTimeStr}`\n } else {\n return this.showStr\n }\n }\n\n public isCurrentYear(): boolean {\n return this.date.getFullYear() === new Date().getFullYear()\n }\n\n public isToday(): boolean {\n return this.showDateStr === new DateWrapper(new Date()).showDateStr\n }\n\n public isYesterday(): boolean {\n return this.showDateStr === new DateWrapper(DateUtil.addDay(new Date(), -1)).showDateStr\n }\n /**\n * 显示 2020-03-12\n */\n public get showDateStr(): string {\n return `${StringUtil.padZero(this.date.getFullYear(), 4)}-${StringUtil.padZero(\n this.date.getMonth() + 1\n )}-${StringUtil.padZero(this.date.getDate())}`\n }\n\n /**\n * 显示 2020.3.12\n */\n public get showDateStr2(): string {\n return `${StringUtil.padZero(this.date.getFullYear(), 4)}.${this.showDateStrShort2}`\n }\n\n public get showMonthDateStr(): string {\n return `${this.date.getMonth() + 1}月${this.date.getDate()}日`\n }\n\n // 2022-6-19 --> 六月\n // 2022-1-7 --> 一月\n public get showMonthOfYearStrCN(): string {\n const month = new DateWrapper(this.date).date.getMonth()\n return DateUtil.MONTHS[month] + '月'\n }\n // 2022-6-19 --> 6月\n // 2022-1-7 --> 7 月\n public get showMonthOfYearStr(): string {\n const month = new DateWrapper(this.date).date.getMonth() + 1\n return month + '月'\n }\n // 2022-6-19 --> 19\n // 2022-1-7 --> 07\n public get showDateOfMonth(): string {\n return StringUtil.padZero(new DateWrapper(this.date).date.getDate())\n }\n\n public get showDateStrCN(): string {\n return `${this.date.getFullYear()}年${this.showDateStrShortCN}`\n }\n\n /**\n * 显示 03-12\n */\n public get showDateStrShort(): string {\n return `${StringUtil.padZero(this.date.getMonth() + 1)}-${StringUtil.padZero(this.date.getDate())}`\n }\n /**\n * 显示 03.12\n */\n public get showDateStrShort2(): string {\n return `${StringUtil.padZero(this.date.getMonth() + 1)}.${StringUtil.padZero(this.date.getDate())}`\n }\n\n /**\n * 显示 03/12\n */\n public get showDateStrShort3(): string {\n return `${StringUtil.padZero(this.date.getMonth() + 1)}/${StringUtil.padZero(this.date.getDate())}`\n }\n\n /**\n * 显示 2020-03-17(周三)\n */\n public get showDateWeekStr(): string {\n return `${this.showDateStr} (${this.showWeekDayShort})`\n }\n\n /**\n * 显示 03-17(周三)\n */\n public get showDateWeekStrShort(): string {\n return `${this.showDateStrShort3} (${this.showWeekDayShort})`\n }\n\n /**\n * 显示 周三 19:03\n */\n public get showWeekTimeStr(): string {\n return `${this.showWeekDayShort} ${this.showTimeStr}`\n }\n\n /**\n * 显示 3月12日\n */\n public get showDateStrShortCN(): string {\n return `${this.date.getMonth() + 1}月${this.date.getDate()}日`\n }\n\n /**\n * 显示分钟 19:03\n */\n public get showTimeStr(): string {\n return `${StringUtil.padZero(this.date.getHours())}:${StringUtil.padZero(this.date.getMinutes())}`\n }\n\n /**\n * 显示分钟和秒 19:03:13\n */\n public get showFullTimeStr(): string {\n return `${this.showTimeStr}:${StringUtil.padZero(this.date.getSeconds())}`\n }\n\n public get showMonthDayStr(): string {\n return `${this.date.getMonth() + 1}月${this.date.getDate()}日`\n }\n\n public get showYearMonthStr(): string {\n return `${this.date.getFullYear()}年${this.date.getMonth() + 1}月`\n }\n\n public get showYearMonthDayStr(): string {\n return `${this.date.getFullYear()}年${this.date.getMonth() + 1}月${this.date.getDate()}日`\n }\n\n public showYearMonthDayTimeStr(symbol = '.'): string {\n return `${this.date.getFullYear()}${symbol}${StringUtil.padZero(\n this.date.getMonth() + 1\n )}${symbol}${StringUtil.padZero(this.date.getDate())} ${this.showTimeStr}`\n }\n\n public get showMonthDayTimeStr(): string {\n return `${this.showDateStrShortCN} ${this.showTimeStr}`\n }\n\n public get showWeekDay(): string {\n return DateUtil.formatWeekday(this.date.getDay() as Weekday, '星期')\n }\n\n public get showWeekDayShort(): string {\n return DateUtil.formatWeekday(this.date.getDay() as Weekday, '周')\n }\n\n public get showWeekDayAbbr(): string {\n return DateUtil.formatWeekday(this.date.getDay() as Weekday)\n }\n\n public get showStr4() {\n if (!this.isCurrentYear()) return this.showYearMonthStr\n if (!this.isToday()) return this.showMonthDateStr\n return this.showTimeStr\n }\n\n public get showTimeSegment() {\n return DateUtil.timeSegmentName(this.date)\n }\n}\n\nexport type Weekday = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7\nexport type WeekdayStr = '日' | '一' | '二' | '三' | '四' | '五' | '六'\n\nexport type Month = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12\nexport type MonthStr = '一' | '二' | '三' | '四' | '五' | '六' | '七' | '八' | '九' | '十' | '十一' | '十二'\n\nexport class DateUtil {\n static WEEKDAYS: Weekday[] = [1, 2, 3, 4, 5, 6, 7]\n static WEEKDAYS_JS: Weekday[] = [0, 1, 2, 3, 4, 5, 6]\n\n static WEEKENDS: Weekday[] = [6, 7]\n static WEEKENDS_JS: Weekday[] = [0, 6]\n\n static WEEKDAYS_STR: WeekdayStr[] = ['一', '二', '三', '四', '五', '六', '日']\n static WEEKDAYS_STR_JS: WeekdayStr[] = ['日', '一', '二', '三', '四', '五', '六']\n\n static MONTHS: MonthStr[] = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二']\n\n static getWeekdaysStr(prefix = ''): string[] {\n return this.WEEKDAYS_STR.map((s) => `${prefix}${s}`)\n }\n\n static getWeekdaysStrJs(prefix = ''): string[] {\n return this.WEEKDAYS_STR_JS.map((s) => `${prefix}${s}`)\n }\n\n static formatWeekday(weekday: Weekday, prefix = '') {\n const s = weekday === 0 ? '日' : this.WEEKDAYS_STR[weekday - 1]\n return `${prefix}${s}`\n }\n\n static buildWeekdayOptions() {\n return this.WEEKDAYS.map((weekday) => ({\n label: this.formatWeekday(weekday, '周'),\n value: weekday,\n }))\n }\n\n // sleep, 传入毫秒\n public static async sleep(mills: number) {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve()\n }, mills)\n })\n }\n\n /**\n * 非标的格式变成Date\n * @param dateStr \"2020-01-01 23:12:23\" 这样的格式\n */\n public static fromString(dateStr: string | any): DateWrapper {\n if (typeof dateStr.getMonth === 'function') {\n // 如果传进来时间至二级处理\n return new DateWrapper(dateStr)\n }\n const splits = dateStr.split(' ')\n // 非标格式转换成iso8601, new Date 的参数在safari等浏览器里有严格限制\n if (dateStr.length === 19 && splits.length === 2) {\n dateStr = `${splits[0]}T${splits[1]}+08:00`\n }\n return new DateWrapper(new Date(dateStr))\n }\n\n /**\n * 统一返回DateWrapper\n * @param dateStr 标准的iso8601或者 如方法 `fromString` 这样的非标数据\n */\n public static parseFromString(dateStr: string): Date {\n if (!dateStr) {\n return new Date()\n }\n if (dateStr.includes('T')) {\n return new Date(dateStr)\n } else {\n return this.fromString(dateStr).date\n }\n }\n\n public static shortDateStr(dt: Date) {\n return new DateWrapper(dt).showStr\n }\n\n public static longDateStr(dt: Date) {\n return new DateWrapper(dt).showFullStr\n }\n\n /**\n * 毫秒转变成 汉化时间格式\n * @param milliseconds\n * return 汉化后的时间信息\n * @Example\n 15 * 1000 15秒\n 30 * 1000 30秒\n 60 * 1000 1分钟\n 62 * 1000 1分钟2秒\n 16200 * 1000 4小时30分钟10秒\n */\n public static ms2StrCN(milliseconds: number, calcDay = false, roundSecond = false): string {\n if (milliseconds === 0) {\n return `0秒`\n }\n\n const seconds = milliseconds / 1000.0\n\n let day = 0\n let hour = Math.floor(seconds / 3600)\n if (calcDay) {\n day = Math.floor(hour / 24)\n hour = hour - day * 24\n }\n\n const minute = Math.floor((seconds - (day * 24 + hour) * 3600) / 60)\n const second = roundSecond ? Math.floor(seconds % 60) : seconds % 60\n\n const formatDay = day ? `${day}天` : ''\n const formatHour = hour ? `${hour}小时` : ''\n const formatMinute = minute ? `${minute}分钟` : ''\n const formatSecond = second ? `${second}秒` : ''\n\n return `${formatDay}${formatHour}${formatMinute}${formatSecond}`\n }\n\n public static ms2Str(millisecond: number, precision = 1, format: 'colon' | 'upper' = 'colon'): string {\n let seconds = millisecond / 1000.0\n let minutes = Math.floor(seconds / 60)\n const hours = Math.floor(minutes / 60)\n\n seconds = seconds - minutes * 60\n minutes = minutes - hours * 60\n\n let result = `${seconds.toFixed(precision).padStart(precision ? precision + 3 : 2, '0')}`\n\n if (hours > 0) {\n result =\n format === 'colon'\n ? `${hours}:${minutes.toFixed(0).padStart(2, '0')}:${result}`\n : `${hours}'${minutes.toFixed(0).padStart(2, '0')}'${result}''`\n } else {\n result = format === 'colon' ? `${minutes}:${result}` : `${minutes}'${result}''`\n }\n\n return result\n }\n\n public static ms2FullStr(millisecond: number, precision = 0): string {\n let seconds = millisecond / 1000.0\n let minutes = Math.floor(seconds / 60)\n const hours = Math.floor(minutes / 60)\n\n seconds = seconds - minutes * 60\n minutes = minutes - hours * 60\n const result = `${seconds.toFixed(precision).padStart(precision ? precision + 3 : 2, '0')}`\n return `${hours.toFixed(0).padStart(2, '0')}:${minutes.toFixed(0).padStart(2, '0')}:${result}`\n }\n\n public static addDay(_dt: IDate, _days = 1) {\n const dt = new DateWrapper(_dt).date\n return new Date(dt.getTime() + _days * 86400000)\n }\n\n public static addMinutes(_dt: Date, _minutes = 1) {\n const dt = new DateWrapper(_dt).date\n return new Date(dt.getTime() + _minutes * 60000)\n }\n\n public static addSeconds(_dt: Date, _seconds = 1) {\n const dt = new DateWrapper(_dt).date\n return new Date(dt.getTime() + _seconds * 1000)\n }\n\n public static isFuture(_dt: IDate, _standardDt?: IDate) {\n const dt = new DateWrapper(_dt).date\n const standardDt = new DateWrapper(_standardDt || new Date()).date\n return dt.getTime() > standardDt.getTime()\n }\n\n public static isInSameMonth(_dt: IDate, _standardDt?: IDate) {\n const dt = new DateWrapper(_dt).date\n const standardDt = new DateWrapper(_standardDt || new Date()).date\n return this.isToday(this.beginningOfMonth(dt), this.beginningOfMonth(standardDt))\n }\n\n public static isInSameWeek(_dt: IDate, _standardDt?: IDate) {\n const dt = new DateWrapper(_dt).date\n const standardDt = new DateWrapper(_standardDt || new Date()).date\n return this.isToday(this.beginningOfWeek(dt), this.beginningOfWeek(standardDt))\n }\n\n public static isToday(_dt: IDate, _standardDt?: IDate) {\n const dt = new DateWrapper(_dt).date\n const standardDt = new DateWrapper(_standardDt || new Date()).date\n\n return (\n dt.getFullYear() === standardDt.getFullYear() &&\n dt.getMonth() === standardDt.getMonth() &&\n dt.getDate() === standardDt.getDate()\n )\n }\n\n public static isPast(_dt: IDate, _standardDt?: IDate) {\n const dt = new DateWrapper(_dt).date\n const standardDt = new DateWrapper(_standardDt || new Date()).date\n return dt.getTime() < standardDt.getTime()\n }\n\n public static beginningOfDay(_dt?: IDate) {\n const dt = new DateWrapper(_dt || new Date()).date\n return new Date(dt.getFullYear(), dt.getMonth(), dt.getDate())\n }\n\n public static beginningOfWeek(_dt?: IDate) {\n const dt = this.beginningOfDay(_dt)\n let days = dt.getDay()\n if (days === 0) {\n days = 7\n }\n return this.addDay(dt, -1 * (days - 1))\n }\n\n public static beginningOfMonth(_dt?: IDate) {\n const dt = this.beginningOfDay(_dt)\n const days = dt.getDate()\n return this.addDay(dt, -1 * (days - 1))\n }\n\n // 获得下个月的月初时间\n public static beginningOfNextMonth(_dt?: IDate) {\n return this.beginningOfMonth(this.addDay(this.beginningOfMonth(_dt), 32))\n }\n\n // 获得下个周的周初时间\n public static beginningOfNextWeek(_dt?: IDate) {\n return this.beginningOfWeek(this.addDay(this.beginningOfWeek(_dt), 8))\n }\n\n public static endOfWeek(_dt?: IDate) {\n const dt = new Date(_dt || new Date())\n return endOfWeek(dt, { weekStartsOn: 1 })\n }\n\n public static endOfMonth(_dt?: IDate) {\n const dt = new Date(_dt || new Date())\n return endOfMonth(dt)\n }\n\n public static endOfDay(_dt?: IDate) {\n const dt = new Date(_dt || new Date())\n return endOfDay(dt)\n }\n\n public static sameDayOfWeek(_dt?: IDate) {\n return this.addDay(this.beginningOfWeek(_dt), (new Date().getDay() || 7) - 1)\n }\n\n public static getRestDayOfWeek(dt: Date = new Date()): number {\n const dayOfWeek = dt.getDay()\n return dayOfWeek === 0 ? 0 : 7 - dayOfWeek\n }\n\n public static isDayInDifferentWeek(left: Date, right: Date) {\n return differenceInCalendarISOWeeks(left, right) !== 0\n }\n\n public static timeSegmentName(date: Date = new Date()): string {\n const hours = date.getHours()\n if (hours < 12) {\n return '上午'\n } else if (hours < 19) {\n return '下午'\n } else {\n return '晚上'\n }\n }\n\n public static second2Minute(seconds: number, precision = 1) {\n return +(seconds / 60).toFixed(precision)\n }\n\n public static second2Hour(seconds: number) {\n return this.millisecond2Hour(seconds * 1000)\n }\n\n public static millisecond2Hour(milliseconds: number, precision = 1) {\n return +(milliseconds / (60 * 60 * 1000.0)).toFixed(precision)\n }\n\n public static second1timeStr(seconds: number) {\n const hour = Math.floor(seconds / 3600)\n const minute = Math.floor((seconds % 3600) / 60)\n const second = Math.floor(seconds % 60)\n\n const result = ArrayUtil.trimLeft([hour, minute, second])\n\n if (result.length === 0) {\n result.push(0, 0)\n }\n if (result.length === 1) {\n result.unshift(0)\n }\n\n return result.map((v) => `${v}`.padStart(2, '0')).join(':')\n }\n\n // 秒转换为时间不保留小数,格式为: '04:00'\n // 时间不大于24小时\n public static second2timeStr(seconds: number) {\n const hour = Math.floor(seconds / 3600)\n .toString()\n .padStart(2, '0')\n const minute = Math.floor((seconds % 3600) / 60)\n .toString()\n .padStart(2, '0')\n return `${hour}:${minute}`\n }\n\n public static second3timeStr(seconds: number) {\n const hour = Math.floor(seconds / 3600)\n .toString()\n .padStart(2, '0')\n const minute = Math.floor((seconds % 3600) / 60)\n .toString()\n .padStart(2, '0')\n const second = Math.round(seconds % 60)\n .toString()\n .padStart(2, '0')\n return `${hour}:${minute}:${second}`\n }\n\n public static second4timeStr(seconds: number) {\n const minute = Math.floor((seconds % 3600) / 60)\n .toString()\n .padStart(2, '0')\n const second = (seconds % 60).toString().padStart(2, '0')\n return `${minute}:${second}`\n }\n\n // 毫秒数变成分钟,保留一位小数\n public static millisecond2minutes(milliseconds: number) {\n if (!milliseconds) {\n return 0\n }\n return Math.round(milliseconds / 1000 / 6) / 10\n }\n\n public static millisecond2rankstr(v: number) {\n return `${~~(v / 60 / 1000)}分${((~~(v / 100) / 10) % 60).toFixed(1).padStart(4, '0')}秒`\n }\n\n // 毫秒转换为时间不保留小数,格式为: '1:30' | '0:30'\n // 时间不大于 1小时\n public static millisecond2timeStr(milliseconds: number) {\n const seconds = Math.floor(milliseconds / 1000)\n if (seconds < 60) {\n return `0:${seconds}`\n } else {\n const minute = Math.floor(seconds / 60)\n const second = Math.floor(seconds % 60)\n const padSecond = second.toString().padStart(2, '0')\n return `${minute}:${padSecond}`\n }\n }\n\n public static buildDateRangePickerOptions() {\n return {\n shortcuts: [\n {\n text: '今天',\n\n onClick(picker: Vue) {\n const date = new Date()\n\n picker.$emit('pick', [date, date])\n },\n },\n {\n text: '昨天',\n\n onClick(picker: Vue) {\n const date = DateUtil.addDay(new Date(), -1)\n\n picker.$emit('pick', [date, date])\n },\n },\n {\n text: '本周',\n\n onClick(picker: Vue) {\n picker.$emit('pick', DateRangeUtil.curWeek())\n },\n },\n {\n text: '本月',\n\n onClick(picker: Vue) {\n picker.$emit('pick', DateRangeUtil.curMonth())\n },\n },\n {\n text: '近7天',\n\n onClick(picker: Vue) {\n picker.$emit('pick', DateRangeUtil.last7Days())\n },\n },\n ],\n\n disabledDate(date: Date) {\n return date > new Date()\n },\n }\n }\n\n public static formatTime(seconds: number): string {\n seconds = Math.round(seconds)\n\n const m = StringUtil.padZero(Math.floor(seconds / 60))\n const s = StringUtil.padZero(Math.floor(seconds % 60))\n\n return `${m}:${s}`\n }\n\n public static formatTimeRound(_date = new Date(), _format = 'HH:mm', _step = 10) {\n const result = format(_date, _format).split(':').map(Number)\n\n result[result.length - 1] = Math.floor(result[result.length - 1] / _step) * _step\n\n return result.map((item) => StringUtil.padZero(item, 2)).join(':')\n }\n\n public static formatDuration(seconds: number): string {\n seconds = Math.round(seconds)\n const s = seconds % 60\n const m = Math.floor(seconds / 60) % 60\n const h = Math.floor(seconds / 60 / 60) % 24\n const d = Math.floor(seconds / 60 / 60 / 24)\n\n return `${d}天${h}小时${m}分${s}秒`\n }\n\n public static formatDurationArr(seconds: number): number[] {\n seconds = Math.round(seconds)\n const s = seconds % 60\n const m = Math.floor(seconds / 60) % 60\n const h = Math.floor(seconds / 60 / 60) % 24\n const d = Math.floor(seconds / 60 / 60 / 24)\n\n return [d, h, m, s]\n }\n\n public static formatMinute(v: number): string {\n const seconds = Math.round(v / 1000)\n const m = Math.floor(seconds / 60) % 60\n const h = Math.floor(seconds / 60 / 60) % 24\n const d = Math.floor(seconds / 60 / 60 / 24)\n\n let result = ``\n result = `${m}分${result}`\n if (h !== 0) {\n result = `${h}小时${result}`\n }\n if (d !== 0) {\n result = `${d}天${result}`\n }\n return result\n }\n\n public static formatShortDuration(seconds: number): string {\n seconds = Math.round(seconds)\n const s = seconds % 60\n const m = Math.floor(seconds / 60) % 60\n const h = Math.floor(seconds / 60 / 60) % 24\n const d = Math.floor(seconds / 60 / 60 / 24)\n\n let result = `${s}秒`\n if (m !== 0) {\n result = `${m}分${result}`\n }\n if (h !== 0) {\n result = `${h}小时${result}`\n }\n if (d !== 0) {\n result = `${d}天${result}`\n }\n return result\n }\n\n public static formatHMSDuration(seconds: number): number[] {\n seconds = Math.round(seconds)\n const s = seconds % 60\n const m = Math.floor(seconds / 60) % 60\n const h = Math.floor(seconds / 60 / 60)\n return [h, m, s]\n }\n\n public static formatTinyDuration(seconds: number): string {\n seconds = Math.round(seconds)\n const s = seconds % 60\n const m = Math.floor(seconds / 60) % 60\n const h = Math.floor(seconds / 60 / 60) % 24\n const d = Math.floor(seconds / 60 / 60 / 24)\n\n if (d !== 0) return `${d}天${h}小时`\n if (h !== 0) return `${h}小时${m}分`\n if (m !== 0) return `${m}分${s}秒`\n return `${s}秒`\n }\n\n public static buildDatesFromRange(startDateStr: IDate, endDateStr: IDate) {\n let startDate = new DateWrapper(startDateStr).date\n const endDate = new DateWrapper(endDateStr).date\n\n const result: Date[] = []\n\n do {\n result.push(startDate)\n startDate = this.addDay(startDate, 1)\n } while (startDate <= endDate)\n\n return result\n }\n\n public static buildWeeksFromRange(startDate: IDate, endDate: IDate) {\n const from = new DateWrapper(startDate).date\n const to = new DateWrapper(endDate).date\n\n let count = 0\n\n const result: { weekno: number; startDate: Date; endDate: Date }[] = []\n\n for (let date = from; date <= to; ) {\n const endOfWeek = DateUtil.endOfWeek(date)\n\n result.push({\n weekno: count++,\n startDate: new DateWrapper(date).date,\n endDate: new DateWrapper(Math.min(endOfWeek.getTime(), to.getTime())).date,\n })\n\n date = DateUtil.beginningOfDay(DateUtil.addDay(endOfWeek, 1))\n }\n\n return result\n }\n\n public static buildWeekdaysFromRange(startDateStr: string, endDateStr: string, isWeekdaysJs = false) {\n const dates = this.buildDatesFromRange(startDateStr, endDateStr)\n\n return dates.map((date) => (isWeekdaysJs ? date.getDay() : date.getDay() || 7))\n }\n\n public static diffInSeconds(startDate: Date, endDate: Date) {\n return Math.floor((endDate.getTime() - startDate.getTime()) / 1000)\n }\n\n public static diffInHour(startDate: Date, endDate: Date) {\n return Math.floor((endDate.getTime() - startDate.getTime()) / (60 * 60 * 1000))\n }\n\n public static diffInMins(startDate: Date, endDate: Date) {\n return Math.floor((endDate.getTime() - startDate.getTime()) / (60 * 1000))\n }\n\n public static diffInDay(startDate: Date, endDate: Date) {\n startDate = this.beginningOfDay(startDate)\n endDate = this.beginningOfDay(endDate)\n\n return Math.floor((endDate.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1000))\n }\n\n public static diffInDayCur(startDate: Date, endDate: Date) {\n return Math.floor((endDate.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1000))\n }\n\n public static diffDayHourMins(startDate: Date, endDate: Date) {\n const day = this.diffInDayCur(startDate, endDate)\n const hours = this.diffInHour(startDate, endDate) - day * 24\n const mins = this.diffInMins(startDate, endDate) - this.diffInHour(startDate, endDate) * 60\n return [day, hours, mins]\n }\n\n public static beginningOfNthWeekOfYear(year: number, week: number) {\n return this.beginningOfWeek(addWeeks(new Date(year, 0, 1), week - 1))\n }\n\n // 给定日期,是当月的第几周, 返回值从1开始, 周的概念,周一开始\n public static weekIndexOfMonth(date: Date): number {\n const monthStart = this.beginningOfMonth(date)\n const endOfFirstWeek = this.endOfWeek(monthStart)\n const targetMonthday = date.getDate()\n if (targetMonthday <= endOfFirstWeek.getDate()) {\n return 1\n } else {\n return Math.floor((targetMonthday - endOfFirstWeek.getDate()) / 7) + 2\n }\n }\n\n public static nthWeekOfYear(date = new Date()) {\n const beginningOfFirstWeek = this.beginningOfWeek(new Date(date.getFullYear(), 0, 1))\n const beginningOfCurrentWeek = this.beginningOfWeek(date)\n\n return Math.floor(this.diffInDay(beginningOfFirstWeek, beginningOfCurrentWeek) / 7) + 1\n }\n\n public static buildTimeOptions(_format = 'HH:mm', _step = 10) {\n const curr = _format.slice(0, 2)\n const next = _format.slice(3)\n\n const result: Option[] = []\n\n let max = 0\n\n if (curr == 'ss' || curr == 'mm') {\n max = 60\n } else if (curr == 'HH') {\n max = 24\n } else if (curr == 'hh') {\n max = 12\n }\n\n const step = next ? 1 : _step\n const children = next ? this.buildTimeOptions(next, _step) : undefined\n\n for (let i = 0; i < max; i += step) {\n const value = StringUtil.padZero(i, 2)\n\n result.push({\n label: value,\n value: value,\n children: children ? JSON.parse(JSON.stringify(children)) : children,\n })\n }\n\n return result\n }\n\n /**\n *\n * @param date new Date(2022-02-03)\n * @param time 10:10\n * @returns 2022-02-03 10:10\n */\n public static mergeDateAndTime(_date: Date, _time: string) {\n const date = this.beginningOfDay(_date)\n\n const [hours, minutes, seconds] = _time.split(':').map(Number)\n\n date.setHours(hours || 0, minutes || 0, seconds || 0)\n\n return date\n }\n\n public static min(...dates: IDate[]) {\n return new DateWrapper(Math.min(...dates.map((d) => new DateWrapper(d).date.getTime()))).date\n }\n\n public static max(...dates: IDate[]) {\n return new DateWrapper(Math.max(...dates.map((d) => new DateWrapper(d).date.getTime()))).date\n }\n\n public static calcStatus(startDate: string | Date, endDate: string | Date, onlyDate = true) {\n const today = new Date()\n\n let fromDate = new DateWrapper(startDate).date\n let toDate = new DateWrapper(endDate).date\n\n if (onlyDate) {\n fromDate = DateUtil.beginningOfDay(fromDate)\n toDate = DateUtil.endOfDay(toDate)\n }\n\n if (today < fromDate) {\n return StatusUnstartStartedEnded.Unstart\n } else if (today <= toDate) {\n return StatusUnstartStartedEnded.Started\n } else {\n return StatusUnstartStartedEnded.Ended\n }\n }\n\n public static groupByWeek(_data: T[], _dateKey: keyof T, _needSort = false, _sortByDesc = true) {\n if (!_data.length) {\n return []\n }\n\n const data = _data\n\n if (_needSort) {\n data.sort((i1, i2) => {\n const d1 = new DateWrapper(i1[_dateKey] as any).date.getTime()\n const d2 = new DateWrapper(i2[_dateKey] as any).date.getTime()\n\n return d1 - d2\n })\n }\n\n const d1 = data[0][_dateKey] as any\n const d2 = data[data.length - 1][_dateKey] as any\n const weeks: Array<\n ReturnType[number] & { items: T[] }\n > = this.buildWeeksFromRange(d1, d2).map((w) => ({\n ...w,\n startDate: DateUtil.beginningOfWeek(w.startDate),\n endDate: DateUtil.endOfWeek(w.endDate),\n items: [],\n }))\n\n if (_sortByDesc) {\n data.reverse()\n weeks.reverse()\n }\n\n for (const week of weeks) {\n for (const item of data) {\n if (DateRangeUtil.in(item[_dateKey] as any, week.startDate, week.endDate)) {\n week.items.push(item)\n }\n }\n }\n\n return weeks.filter((w) => w.items.length)\n }\n}\n\nexport class DateRangeUtil {\n public static in(_date: IDate, _startDate: IDate, _endDate: IDate, _onlyDate = false) {\n const date = new DateWrapper(_date).date\n let startDate = new DateWrapper(_startDate).date\n let endDate = new DateWrapper(_endDate).date\n\n if (_onlyDate) {\n startDate = DateUtil.beginningOfDay(startDate)\n endDate = DateUtil.endOfDay(endDate)\n }\n\n return date >= startDate && date <= endDate\n }\n\n public static lastNDays(n: number, date = new Date()) {\n return [DateUtil.addDay(date, -1 * n), date]\n }\n\n public static last7Days(date = new Date()) {\n return this.lastNDays(7, date)\n }\n\n public static curWeek(): IDateRange {\n return [DateUtil.beginningOfWeek(), new Date()]\n }\n\n public static curMonth(): IDateRange {\n return [DateUtil.beginningOfMonth(), new Date()]\n }\n\n public static lastWeek(): IDateRange {\n const today = new Date()\n const oneWeek = 3600 * 1000 * 24 * 7\n const end = DateUtil.endOfWeek(today)\n const start = DateUtil.beginningOfWeek(today)\n start.setTime(start.getTime() - oneWeek)\n end.setTime(end.getTime() - oneWeek)\n\n return [start, end]\n }\n\n public static lastMonth(): IDateRange {\n const today = new Date()\n const year = today.getFullYear()\n const currentMonth = today.getMonth()\n if (currentMonth > 0) {\n const dateTime = new Date(year, currentMonth - 1)\n const end = DateUtil.endOfMonth(dateTime)\n const start = DateUtil.beginningOfMonth(dateTime)\n return [start, end]\n } else {\n const dateTime = new Date(year - 1, 11)\n const end = DateUtil.endOfMonth(dateTime)\n const start = DateUtil.beginningOfMonth(dateTime)\n return [start, end]\n }\n }\n\n // 判断给定的两个时间范围,日期是否相等\n public static isDateRangeEqual(someDate: IDateRange, otherDate: IDateRange) {\n return (\n new DateWrapper(someDate[0]).showDateStr === new DateWrapper(otherDate[0]).showDateStr &&\n new DateWrapper(someDate[1]).showDateStr === new DateWrapper(otherDate[1]).showDateStr\n )\n }\n\n // 判断给定日期是否处于当年的某段日期范围内\n public static isInDateRangeOfYear(\n someDate: Date,\n start: { month: number; day: number },\n end: { month: number; day: number }\n ): boolean {\n const year = someDate.getFullYear()\n // Date month 参数为 monthIndex , 需要按照实际减一\n const startDate = new Date(year, start.month - 1, start.day)\n const endDate = new Date(year, end.month - 1, end.day)\n return startDate < someDate && someDate < endDate\n }\n}\n","import { createDecorator } from 'vue-class-component'\nimport debounce from 'lodash/debounce'\nimport throttle from 'lodash/throttle'\n\nconst isPromise = function (obj: any) {\n return obj instanceof Promise || (obj && typeof obj.then === 'function')\n}\n\nexport const Debounce = function (\n wait = 300,\n option: {\n leading?: boolean\n trailing?: boolean\n } = {\n leading: true,\n trailing: false,\n }\n) {\n return createDecorator((options: any, key) => {\n const originalMethod = options.methods[key]\n options.methods[key] = debounce(originalMethod, wait, option)\n })\n}\n\nexport const Throttle = function (\n wait = 300,\n option: {\n leading?: boolean\n trailing?: boolean\n } = {\n leading: true,\n trailing: false,\n }\n) {\n return createDecorator((options: any, key) => {\n const originalMethod = options.methods[key]\n options.methods[key] = throttle(originalMethod, wait, option)\n })\n}\n\nexport const Loading = function (loading = 'loading') {\n return function (target: Vue, key: string) {\n return createDecorator(function (componentOptions: any, key) {\n const originalMethod = componentOptions.methods[key]\n componentOptions.methods[key] = function (...args: any[]) {\n this.$data[loading] = true\n const returnValue = originalMethod.apply(this, args)\n if (isPromise(returnValue)) {\n returnValue.finally(() => {\n this.$data[loading] = false\n })\n } else {\n this.$data[loading] = false\n }\n }\n })(target, key)\n }\n}\n\nexport const ValidateFormRule = function (formRef: string) {\n return function (target: Vue, key: string) {\n return createDecorator(function (componentOptions: any, key) {\n const originalMethod = componentOptions.methods[key]\n componentOptions.methods[key] = function (...args: any[]) {\n this.$refs[formRef].validate(async (valid: boolean) => {\n if (valid) {\n originalMethod.apply(this, args)\n }\n })\n }\n })(target, key)\n }\n}\n\nexport const MessageDebug = function (info = 'todo:') {\n return createDecorator((options: any, key) => {\n const originalMethod = options.methods[key]\n options.methods[key] = async function (...args: any[]) {\n await this.$notify({\n title: `调用 ${key}`,\n dangerouslyUseHTMLString: true,\n message: `
${info}
${args\n .filter((item) => {\n return ['string', 'number', 'boolean', 'null', 'undefined'].includes(typeof item)\n })\n .join('-')} `,\n position: 'top-right',\n duration: 4 * 1000,\n })\n originalMethod.apply(this, args)\n }\n })\n}\n\nexport const ToastDebug = function (info = 'todo:') {\n return createDecorator((options: any, key) => {\n const originalMethod = options.methods[key]\n options.methods[key] = async function (...args: any[]) {\n this.toast(`方法名:\\n${key} ==> ${info}`)\n originalMethod.apply(this, args)\n }\n })\n}\n","export class EnvUtil {\n public static isDev() {\n return process.env.VUE_APP_ENV === 'dev'\n }\n\n public static isProd() {\n return process.env.VUE_APP_ENV === 'prod'\n }\n\n public static isStaging() {\n return process.env.VUE_APP_ENV === 'staging'\n }\n\n public static isAPP(name: string) {\n return process.env.VUE_APP_NAME && process.env.VUE_APP_NAME.toLowerCase().includes(name)\n }\n\n public static isISC() {\n return this.isAPP('isc')\n }\n\n public static isSaas() {\n return this.isAPP('shs')\n }\n\n public static isApph5() {\n return this.isAPP('apph5')\n }\n\n public static isCampus() {\n return this.isAPP('campus')\n }\n\n public static isAgency() {\n return this.isAPP('agency')\n }\n\n public static isOperation() {\n return this.isAPP('operation')\n }\n\n public static isJumpStar() {\n return this.isAPP('jumpstar')\n }\n\n public static appName() {\n return process.env.VUE_APP_NAME || ''\n }\n\n public static appNameZHCN() {\n return process.env.VUE_APP_NAME_ZHCN || ''\n }\n\n public static appNameDesc() {\n return process.env.VUE_APP_NAME_DESC || ''\n }\n\n public static buildLogFileName() {\n return `kd${this.appName()}`\n }\n}\n","interface IOnceHandler {\n once?: boolean\n (...params: any[]): void\n}\n\nexport class EventEmitter {\n public listeners: [string, Function | IOnceHandler][] = []\n\n on(_type: string, _handler: Function) {\n this.listeners.push([_type, _handler])\n }\n\n once(_type: string, _handler: Function) {\n const wrapper: IOnceHandler = (..._params: any[]) => {\n _handler(..._params)\n\n this.remove(_type, wrapper)\n }\n\n wrapper.once = true\n\n this.listeners.push([_type, wrapper])\n }\n\n fire(_type: string, ..._params: any[]) {\n this.listeners.forEach(([_listenType, _handler]) => _listenType === _type && _handler(..._params))\n }\n\n remove(_type: string, _handler?: Function) {\n const index = this.listeners.findIndex(\n (listener) =>\n listener[0] === _type && (listener[1] === _handler || !!(listener[1] as IOnceHandler).once || !_handler)\n )\n\n if (index !== -1) {\n this.listeners.splice(index, 1)\n }\n }\n\n removeByType(_type: string) {\n let i = 0\n\n do {\n i = this.listeners.findIndex((l, idx) => idx >= i && l[0] === _type)\n if (i !== -1) {\n this.listeners.splice(i, 1)\n }\n } while (i > 0 && i < this.listeners.length)\n }\n\n removeAllListeners() {\n this.listeners = []\n }\n\n hasListener(_type: string) {\n return this.listeners.findIndex(([_listenType]) => _listenType === _type) !== -1\n }\n}\n","export class HtmlUtil {\n public static buildFullLink(absUrl: string): string {\n return `${location.origin}${absUrl}`\n }\n\n public static appendMeta(name: string, content: string) {\n const meta = document.createElement('meta')\n\n meta.name = name\n meta.content = content\n\n const head = document.head || document.querySelector('head')\n if (head) {\n head.appendChild(meta)\n }\n }\n\n public static appendMetaViewport(\n content = 'width=device-width, initial-scale=1.0,minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover'\n ) {\n // \n this.appendMeta('viewport', content)\n }\n\n public static appendScript(url: string, callback: () => void) {\n const s = document.createElement('script')\n s.type = 'text/javascript'\n if (callback) {\n s.onload = callback\n }\n s.src = url\n document.body.appendChild(s)\n }\n\n public static async asyncAppendScript(url: string) {\n const s = document.createElement('script')\n s.type = 'text/javascript'\n return new Promise((resolve) => {\n s.onload = () => {\n resolve()\n }\n s.src = url\n document.body.appendChild(s)\n })\n }\n\n public static copyToClipboardSync(text: string) {\n return this._fallbackCopyToClipboard(text)\n }\n\n // 复制到粘贴板\n public static async copyToClipboard(text: string) {\n // if (navigator.clipboard) {\n // // https://web.dev/async-clipboard/\n // // 这个API需要用户授权\n // return navigator.clipboard.writeText(text);\n // } else {\n return new Promise((resolve) => {\n resolve(this._fallbackCopyToClipboard(text))\n })\n // }\n }\n\n public static _fallbackCopyToClipboard(value: string) {\n const input = document.createElement('textarea')\n document.body.appendChild(input)\n input.contentEditable = 'true'\n input.readOnly = false\n input.value = value + ''\n input.select()\n\n // 兼容IOS >= 10\n // https://stackoverflow.com/questions/34045777/copy-to-clipboard-using-javascript-in-ios\n const range = document.createRange()\n if (range) {\n range.selectNodeContents(input)\n\n const selection = window.getSelection()\n if (selection) {\n selection.removeAllRanges()\n selection.addRange(range)\n }\n\n input.setSelectionRange(0, input.value.length)\n }\n\n try {\n return document.execCommand('copy')\n } catch (e) {\n return false\n } finally {\n document.body.removeChild(input)\n }\n }\n\n public static getVideoBase64(url: string) {\n return new Promise(function (resolve) {\n const video = document.createElement('video')\n video.setAttribute('crossOrigin', 'anonymous') //处理跨域\n video.setAttribute('src', url)\n video.setAttribute('width', '750') /// TODO: set size\n video.setAttribute('height', '540')\n video.setAttribute('preload', 'auto')\n video.addEventListener('loadeddata', function () {\n const canvas = document.createElement('canvas')\n canvas.width = video.width\n canvas.height = video.height\n canvas.getContext('2d')?.drawImage(video, 0, 0, video.width, video.height) //绘制canvas\n resolve(canvas.toDataURL('image/jpeg')) //转换为base64\n })\n })\n }\n\n public static image(url: string): Promise {\n return new Promise((resolve, reject) => {\n const image = new Image()\n image.src = url\n image.onload = () => resolve(image)\n image.onerror = () => reject(image)\n })\n }\n\n public static download(url: string, name = '分享海报') {\n const a = document.createElement('a')\n a.download = name\n a.href = url\n a.click()\n }\n}\n","import JSZip from 'jszip'\nimport { EnvUtil } from './EnvUtil'\nimport { DateUtil } from './DateUtil'\nimport axios, { AxiosResponse } from 'axios'\nimport { EventEmitter } from './EventEmitter'\n\ntype ObjectFit = 'lfit' | 'mfit' | 'fill' | 'pad' | 'fixed'\n\nexport class HttpError extends Error {\n constructor(message: string, public code: number, public data: string, public serverMessage: string) {\n super(message)\n }\n\n get text() {\n if (this.serverMessage !== 'failed') {\n return this.serverMessage || this.textData || this.message\n }\n\n return this.textData || this.serverMessage || this.message\n }\n\n get textData() {\n return typeof this.data === 'string' ? this.data : ''\n }\n}\n\nexport enum HttpUtilEvent {\n BeforeRequest = 'beforeRequest',\n AfterRequest = 'afterRequest',\n StatusCode401 = '401',\n StatusCode500 = '500',\n}\n\nexport enum HttpUtilMethod {\n Get = 'get',\n Put = 'put',\n Post = 'post',\n Delete = 'delete',\n}\n\nexport enum HttpStatusCode {\n SC41001 = 41001,\n}\n\nexport class HttpUtil {\n static withCredentials = false\n static eventEmitter = new EventEmitter()\n\n // 设定一些全局的处理流程\n static callbackStatus401?: Function\n static callbackStatus500?: Function\n\n public static on(type: HttpUtilEvent, handler: Function) {\n this.eventEmitter.on(type, handler)\n }\n\n public static fire(type: HttpUtilEvent) {\n this.eventEmitter.fire(type)\n }\n\n public static setWithCredentials() {\n this.withCredentials = true\n }\n\n public static setStatus401Callback(callback: Function) {\n this.callbackStatus401 = callback\n }\n\n public static setStatus500Callback(callback: Function) {\n this.callbackStatus500 = callback\n }\n\n public static async request(\n method: HttpUtilMethod,\n url: string,\n params = {},\n headers = {},\n skipEventEmitter = true,\n withCredentials = this.withCredentials\n ): Promise {\n try {\n if (!skipEventEmitter) {\n this.eventEmitter.fire(HttpUtilEvent.BeforeRequest)\n }\n\n const result = await this[method](url, params, headers, withCredentials)\n\n return result\n } catch (e) {\n if ((e as any).response) {\n return this.resolveData((e as any).response)\n } else {\n throw e\n }\n } finally {\n if (!skipEventEmitter) {\n this.eventEmitter.fire(HttpUtilEvent.AfterRequest)\n }\n }\n }\n\n public static async get(\n url: string,\n params = {},\n headers = {},\n withCredentials = this.withCredentials\n ): Promise {\n url = this.buildFullUrl(url)\n const res = await axios.get(url, {\n withCredentials,\n params,\n headers,\n })\n return this.resolveData(res)\n }\n\n public static async plainGet(\n url: string,\n params = {},\n headers = {},\n withCredentials = this.withCredentials\n ): Promise {\n const res = await axios.get(url, {\n withCredentials,\n params,\n headers,\n })\n return res.data\n }\n\n public static async basicGet(\n url: string,\n params = {},\n headers = {},\n withCredentials = this.withCredentials\n ): Promise {\n return await axios.get(url, {\n withCredentials,\n params,\n headers,\n })\n }\n\n public static async post(\n url: string,\n params = {},\n headers = {},\n withCredentials = this.withCredentials\n ): Promise {\n url = this.buildFullUrl(url)\n const res = await axios.post(url, params, {\n withCredentials,\n headers,\n })\n return this.resolveData(res)\n }\n\n public static async put(\n url: string,\n params = {},\n headers = {},\n withCredentials = this.withCredentials\n ): Promise {\n url = this.buildFullUrl(url)\n const res = await axios.put(url, params, {\n withCredentials,\n headers,\n })\n return this.resolveData(res)\n }\n\n public static async delete(\n url: string,\n params = {},\n headers = {},\n withCredentials = this.withCredentials\n ): Promise {\n url = this.buildFullUrl(url)\n const res = await axios.delete(url, {\n withCredentials,\n params: params,\n headers,\n })\n return this.resolveData(res)\n }\n\n public static imageAvatar(_url: string, _width = 200, _height = 200, _object_fit: ObjectFit = 'pad') {\n if (_url && _url.includes('http')) {\n const url = new URL(_url)\n\n url.searchParams.set(\n 'x-oss-process',\n `image/resize,limit_0,m_${_object_fit},w_${_width.toFixed(0)},h_${_height.toFixed(\n 0\n )}/quality,q_100/auto-orient,1`\n )\n\n return url.href\n }\n\n return _url\n }\n\n public static async fileDownload(url: string): Promise {\n return axios.get(`${process.env.VUE_APP_CRAZYROPE_MANAGE_API}/global/img_proxy?img=${encodeURIComponent(url)}`, {\n responseType: 'blob',\n })\n }\n\n public static async fileProxy(url: string): Promise {\n return this.fileDownload(url).then((r) => URL.createObjectURL(r.data))\n }\n\n public static async imageProxy(url: string): Promise {\n let result = url\n\n if (this.isCrossOrigin(url)) {\n try {\n result = await this.doImageProxy(\n `${process.env.VUE_APP_CRAZYROPE_MANAGE_API}/global/img_proxy?img=${encodeURIComponent(url)}`\n )\n } catch (e) {\n result = url\n }\n }\n\n return result\n }\n\n public static doImageProxy(url: string): Promise {\n return axios\n .get(url, { responseType: 'arraybuffer' })\n .then(\n (response) =>\n 'data:image/png;base64,' +\n btoa(new Uint8Array(response.data).reduce((data, byte) => data + String.fromCharCode(byte), ''))\n )\n }\n\n public static buildFullUrl(path: string): string {\n if (path.includes('http')) {\n return path\n }\n\n if (EnvUtil.isAgency() || EnvUtil.isSaas()) {\n if (location.origin.includes('tiantiantiaosheng.com')) {\n return `${process.env.VUE_APP_API_OLD}${path}`\n }\n }\n\n return `${process.env.VUE_APP_API}${path}`\n }\n\n public static resolveData(res: AxiosResponse): any {\n const data = res.data\n\n if (res.status === 401 || (data && (data.code === 401 || data.error_code === 401))) {\n this.eventEmitter.fire(HttpUtilEvent.StatusCode401, res)\n\n if (this.callbackStatus401) {\n this.callbackStatus401(res)\n }\n }\n\n if (res.status === 500) {\n this.eventEmitter.fire(HttpUtilEvent.StatusCode500, res)\n\n if (this.callbackStatus500) {\n this.callbackStatus500(res)\n }\n }\n\n if (!data) {\n if (EnvUtil.isOperation()) {\n return data\n } else {\n throw new HttpError('request fail', 0, '', '')\n }\n }\n\n if ('isOk' in data) {\n if (data.isOk) {\n return data\n } else {\n throw new HttpError(`request fail ${data.message}`, data.status_code, data, data.message)\n }\n } else if ('code' in data) {\n if (data.code === 0) {\n return data.data\n } else {\n if (EnvUtil.isApph5() && data.code === HttpStatusCode.SC41001) {\n this.eventEmitter.fire(HttpUtilEvent.StatusCode401, res)\n }\n\n throw new HttpError(`request fail ${data.msg}`, data.code, data.data, data.msg)\n }\n } else {\n if (data.code === undefined) {\n return data\n } else {\n throw new HttpError(`request fail ${data.msg}`, data.code, data.data, data.msg)\n }\n }\n }\n\n /**\n * 单例请求,避免同一时间多次访问\n * _singletonBlockMap 存一些正在请求的标记\n */\n public static _singletonBlockMap: { [key: string]: boolean } = {}\n public static async singletonRequestBlock(blockName: string, requestFN: Function) {\n for (let i = 0; i < 10; i++) {\n if (this._singletonBlockMap[blockName]) {\n await DateUtil.sleep(400)\n } else {\n break\n }\n }\n this._singletonBlockMap[blockName] = true\n await requestFN()\n this._singletonBlockMap[blockName] = false\n }\n\n /**\n * 缓存20秒内相关请求不发送了,注意使用的时候需要拿到返回值\n */\n public static _cacheSingletonBlockMap: { [key: string]: any } = {}\n public static _cacheSingletonBlockMapFire: { [key: string]: boolean } = {}\n public static _cacheSingletonBlockMapTime: { [key: string]: Date } = {}\n public static async cacheSingletonRequestBlock(blockName: string, requestFN: Function): Promise {\n for (let i = 0; i < 10; i++) {\n if (this._cacheSingletonRequestBlockCheckHasValue(blockName)) {\n return this._cacheSingletonBlockMap[blockName]\n }\n if (this._cacheSingletonBlockMapFire[blockName]) {\n await DateUtil.sleep(400)\n } else {\n break\n }\n }\n this._cacheSingletonBlockMapFire[blockName] = true\n const result = await requestFN()\n this._cacheSingletonBlockMap[blockName] = result\n this._cacheSingletonBlockMapTime[blockName] = new Date()\n this._cacheSingletonBlockMapFire[blockName] = false\n return result\n }\n\n public static _cacheSingletonRequestBlockCheckHasValue(blockName: string) {\n const value = this._cacheSingletonBlockMap[blockName]\n const setTime = this._cacheSingletonBlockMapTime[blockName]\n if (value && setTime) {\n return new Date().getTime() - setTime.getTime() < 20_000 // 缓存时间为20秒\n }\n return false\n }\n\n public static isCrossOrigin(url: string): boolean {\n return (\n url.startsWith('http') &&\n !url.startsWith(window.origin || location.origin || `${location.protocol}://${location.host}`)\n )\n }\n\n public static batchDownload(sources: { url: string; title: string; type?: string }[]) {\n const zip = new JSZip()\n const promises: Promise[] = []\n\n sources.forEach((s) => {\n const p = this.fileDownload(s.url).then((res) => {\n const temp = s.url.split('.')\n const suffix = temp[temp.length - 1]\n zip.file(s.title + '.' + (s.type ? s.type : suffix), res.data, { binary: true })\n })\n\n promises.push(p)\n })\n\n return Promise.all(promises).then(() => {\n return zip.generateAsync({\n type: 'blob',\n compression: 'DEFLATE',\n compressionOptions: {\n level: 9,\n },\n })\n })\n }\n}\n","// eslint-disable\nimport Vue from 'vue'\nimport axios from 'axios'\nimport { AppUtil } from './AppUtil'\nimport { EnvUtil } from './EnvUtil'\nimport { ThorWeblog } from '@gkid/thor'\nimport { StringUtil } from './StringUtil'\n\nconst sender = {\n async send(data: any) {\n const result = await axios.post('https://api.tiantiantiaosheng.com/api/ext/client_log', data, {\n headers: { Authorization: 'clientlog' },\n })\n return result.status === 200\n },\n}\n\nexport class Logger extends ThorWeblog {\n constructor(siteName: string) {\n super(window, sender, siteName, {\n NODE_ENV: process.env.VUE_APP_ENV || process.env.PUB_ENV,\n })\n }\n\n async log(\n eventName: string,\n triggerName?: string,\n namespace?: string,\n teacherId?: string,\n eventId?: string,\n eventStep?: string\n ) {\n // 默认带上 gkidno 作为 user_id 的key\n // 默认会带上 G_event_namespace 作为 页面名称\n // G_event, G_event_trigger 传递进来的参数\n // 其他可用\n // G_event_id, G_event_step, G_event_content 等\n try {\n if (EnvUtil.isCampus()) {\n this.appendDefaultParam('gkidno', teacherId)\n }\n\n this.appendDefaultParam('G_event_namespace', namespace) // 固定作为页面\n\n const eventContent = { id: eventId, step: eventStep }\n this.trigger(eventName, triggerName, eventContent)\n } catch {\n return\n }\n }\n}\n\nexport class LoggerUtil {\n public static log(message: any, ...rest: any[]) {\n // eslint-disable-next-line\n console.log(message, ...rest)\n }\n\n public static warn(message: any, ...rest: any[]) {\n // eslint-disable-next-line\n console.warn(message, ...rest)\n }\n\n public static error(message: any, ...rest: any[]) {\n // eslint-disable-next-line\n console.error(message, ...rest)\n }\n}\n\nexport function codelessTrackingImg(_e: Event, _logger: typeof BaseLogger, _vue: Vue) {\n try {\n const target = _e.target as HTMLImageElement\n if (target?.tagName?.toLocaleLowerCase() === 'img') {\n _logger.event(_vue.$route.name!, 'click', target.alt || target.src)\n return true\n }\n } catch (e) {\n // noop\n }\n}\n\nexport function codelessTrackingButton(_e: Event, _logger: typeof BaseLogger, _vue: Vue) {\n try {\n const target = _e.target as HTMLButtonElement\n if (target?.tagName?.toLowerCase() === 'button') {\n _logger.event(_vue.$route.name!, 'click', target.textContent || target.className)\n return true\n }\n } catch (e) {\n // noop\n }\n}\n\nexport class BaseLogger {\n public static userIdKey = BaseLogger.buildUserIdKey()\n\n public static unionIdKey = '__logger_union_id_key__'\n\n public static async init() {\n if (await AppUtil.isUnderApp()) {\n this.setUserId((await AppUtil.getUserData()).user_id)\n }\n }\n\n public static event(_category: string, _action: string, _label?: string, _value?: number) {}\n\n public static getUserId() {\n let userId = localStorage.getItem(this.userIdKey)\n\n if (!userId) {\n userId = StringUtil.buildUuid()\n this.setUserId(userId)\n }\n\n return userId\n }\n\n public static setUserId(_userId: string) {\n localStorage.setItem(this.userIdKey, _userId)\n }\n\n public static getUnionId() {\n let unionId = localStorage.getItem(this.unionIdKey)\n\n if (!unionId) {\n unionId = StringUtil.buildUuid()\n this.setUnionId(unionId)\n }\n\n return unionId\n }\n\n public static setUnionId(_unionId: string) {\n localStorage.setItem(this.unionIdKey, _unionId)\n }\n\n public static buildURL(_url: string) {\n let url = _url\n\n if (!_url?.startsWith('/')) {\n url = this.buildURLFromEvent(_url)\n }\n\n return url\n }\n\n public static buildUserIdKey() {\n return `__${EnvUtil.appName()}_logger_user_id_key__`\n }\n\n public static buildURLFromEvent(_event: string) {\n return `/__custom_event__/${_event}`\n }\n\n public static installCodelessTracking(_vue: Vue) {\n window.addEventListener(\n 'click',\n (e) => {\n codelessTrackingImg(e, this, _vue) || codelessTrackingButton(e, this, _vue)\n },\n { capture: true, passive: true }\n )\n }\n}\n\nexport class BDTJLogger extends BaseLogger {\n public static _logger = (window as any)._hmt || []\n\n public static event(_category: string, _action: string, _label?: string, _value?: number) {\n this._logger.push(['_trackEvent', _category, _action, _label, _value])\n }\n\n public static pageview(_url: string) {\n this._logger.push(['_trackPageview', this.buildURL(_url)])\n }\n}\n\nexport class ARMSLogger extends BaseLogger {\n public static __logger = (window as any).__bl || {}\n\n public static event(_category: string, _action: string, _label?: string, _value?: number): void {\n const keys = []\n\n if (_category) {\n keys.push(_category)\n }\n if (_action) {\n keys.push(_action)\n }\n if (_label) {\n keys.push(_label)\n }\n\n this.__logger.sum(keys.join('_'), _value)\n }\n\n public static pageview(_url: string) {\n this.__logger.sum(this.buildURL(_url))\n }\n}\n\nexport class TTTSLogger extends BaseLogger {\n public static _log(_category: string, _action: string, _label?: string, _value?: number, _meta?: any) {\n let url = ''\n\n if (EnvUtil.isProd()) {\n url = 'https://client-log.tiantiantiaosheng.com/log'\n } else {\n url = 'https://client-log.tiantiantiaosheng.com/log'\n }\n\n const body = {\n env: process.env.VUE_APP_ENV,\n app: EnvUtil.appName(),\n url: location.href,\n date: new Date().getTime(),\n agent: navigator.userAgent,\n userId: this.getUserId(),\n unionId: this.getUnionId(),\n // event\n category: 'webClientLog',\n eventCategory: _category,\n action: _action,\n label: _label,\n value: _value,\n meta: _meta,\n }\n\n return navigator.sendBeacon?.(url, JSON.stringify(body)) || axios.post(url, body)\n }\n\n public static event(_category: string, _action: string, _label?: string, _value?: number, _meta?: any): void {\n this._log(_category, _action, _label, _value, _meta)\n }\n\n public static pageview(_url: string, _meta?: any) {\n this._log('nav', 'click', this.buildURL(_url), undefined, _meta)\n }\n}\n\nexport const logger = TTTSLogger\n","export class ObjectUtil {\n public static get(obj: any, key: string) {\n try {\n return (key || '').split('.').reduce((result, k) => {\n return result[k]\n }, obj)\n } catch (e) {\n return\n }\n }\n\n public static deepClone(obj: T): T {\n return JSON.parse(JSON.stringify(obj))\n }\n}\n","import VueRouter, { Route, RouteConfig } from 'vue-router'\n\nexport class RouterUtil {\n public static forceAuthFlag = '__force_auth__'\n\n public static isRoute(hash: string, route: RouteConfig, router?: VueRouter) {\n if (hash) {\n let path = hash\n\n const queryPos = hash.indexOf('?')\n if (queryPos !== -1) {\n path = hash.slice(0, queryPos)\n }\n\n return path === this.buildPathFromRoute(route, router)\n }\n\n return false\n }\n\n public static isCurRoute(route: RouteConfig, router?: VueRouter) {\n return this.isRoute(location.hash, route, router)\n }\n\n public static isUrlRoute(url: string, route: RouteConfig, router?: VueRouter) {\n return this.isRoute(this.getHashFromUrl(url), route, router)\n }\n\n public static isForceAuth(_route: Route) {\n return !!(_route.query && this.forceAuthFlag in _route.query)\n }\n\n public static forceAuth(route: Route, router: VueRouter) {\n return router.replace({ path: route.path, query: { ...route.query, [this.forceAuthFlag]: null } })\n }\n\n public static unforceAuth(route: Route, router: VueRouter) {\n return router.replace({ path: route.path, query: this.removeForceAuthFlagFromRoute(route).query })\n }\n\n public static getHashFromUrl(url: string) {\n const a = document.createElement('a')\n\n a.href = url\n\n return a.hash\n }\n\n public static buildQuery(url: string) {\n return new URL(url.replace(/#\\//, '')).searchParams\n }\n\n public static buildQueryStr(query: { [index: string]: any }) {\n let queryStr = ''\n\n for (const key in query) {\n if (queryStr) {\n queryStr += '&' + key + '=' + query[key]\n } else {\n queryStr += '?' + key + '=' + query[key]\n }\n }\n\n return queryStr\n }\n\n public static buildQueryObj(url: string) {\n const result: Record = {}\n const query = this.buildQuery(url)\n\n for (const e of query.entries()) {\n result[e[0]] = e[1]\n }\n\n return result\n }\n\n public static appendQuery(_url: string, _query: Record) {\n const query = this.buildQuery(_url)\n for (const key of Object.keys(_query)) {\n query.append(key, _query[key])\n }\n\n let url = _url\n const questionMarkIndex = _url.indexOf('?')\n if (questionMarkIndex !== -1) {\n url = _url.substring(0, questionMarkIndex)\n }\n\n return `${url}?${query.toString()}`\n }\n\n public static buildUrlFromRoute(\n route: { name?: string | null; path?: string | null },\n query: { [index: string]: string | undefined | null | (string | null)[] } | null = null,\n router?: VueRouter\n ) {\n const url = `${location.origin}${location.pathname}${this.buildPathFromRoute(route, router)}`\n\n if (query) {\n return `${url}${this.buildQueryStr(query)}`\n }\n\n return url\n }\n\n public static buildPathFromRoute(route: { name?: string | null; path?: string | null }, router?: VueRouter) {\n return router && route.name ? router.resolve({ name: route.name }).href : `#${route.path}`\n }\n\n public static removeForceAuthFlagFromUrl(_url: string) {\n const url = new URL(_url)\n\n url.searchParams.delete(this.forceAuthFlag)\n\n return url.href\n }\n\n public static removeForceAuthFlagFromRoute(_route: Route) {\n const route: Route = { ..._route, query: { ..._route.query } }\n\n delete route.query[this.forceAuthFlag]\n\n return route\n }\n\n public static cloneRoutes(\n routes: RouteConfig[],\n prefix: string,\n title: string,\n props: { [index: string]: string },\n roles?: string[]\n ) {\n const result: RouteConfig[] = []\n\n for (const route of routes) {\n result.push({\n ...route,\n path: RouterUtil.cloneRoutePath(route.path, prefix),\n name: `${prefix}_${route.name}`,\n meta: {\n ...(route.meta || {}),\n roles: roles ? [...roles] : route.meta?.roles,\n title,\n messageTarget: '',\n },\n props: (_route) => {\n if (typeof route.props === 'function') {\n return {\n ...route.props(_route),\n ...props,\n }\n }\n\n return props\n },\n redirect: route.redirect\n ? RouterUtil.cloneRouteRedirect(route.redirect as RouteConfig, prefix, title, props)\n : route.redirect,\n children: route.children ? RouterUtil.cloneRoutes(route.children, prefix, title, props, roles) : undefined,\n })\n }\n\n return result\n }\n\n public static cloneRoutePath(_path: string, _prefix: string) {\n if (_path.startsWith('/')) {\n const path = [..._path]\n\n path.splice(_path.lastIndexOf('/') + 1, 0, `${_prefix}-`)\n\n return path.join('')\n }\n\n return _path\n }\n\n public static cloneRouteRedirect(\n _redirect: RouteConfig | string,\n prefix: string,\n title: string,\n props: { [index: string]: string }\n ) {\n if (typeof _redirect === 'string') {\n return `${prefix}-${_redirect}`\n } else {\n return RouterUtil.cloneRoutes([_redirect], prefix, title, props)[0]\n }\n }\n}\n","import { DateUtil, DateWrapper } from './DateUtil'\n\ninterface Item {\n value: string\n expireAt: number\n}\n\nexport class StorageUtil {\n public static set(key: string, value: string, ttl: number) {\n const item = {\n value,\n expireAt: new Date().getTime() + ttl * 1000,\n }\n\n localStorage.setItem(key, JSON.stringify(item))\n }\n\n public static get(key: string) {\n try {\n const itemStr = localStorage.getItem(key)\n\n if (itemStr) {\n const item: Item = JSON.parse(itemStr)\n\n if (this.isExpired(item.expireAt)) {\n localStorage.removeItem(key)\n } else {\n return item.value\n }\n }\n\n return null\n } catch {\n return null\n }\n }\n\n public static getAndRemove(key: string) {\n const value = this.get(key)\n this.remove(key)\n return value\n }\n\n public static ttl(date: string | number | Date) {\n return (new DateWrapper(date).date.getTime() - new Date().getTime()) / 1000\n }\n\n public static ttlExpireAtEndOfToday() {\n return this.ttl(DateUtil.endOfDay(new Date()))\n }\n\n public static remove(key: string) {\n localStorage.removeItem(key)\n }\n\n public static isExpired(expireAt: number) {\n return new Date().getTime() > expireAt\n }\n\n public static isExistsAndRemove(key: string) {\n return !!this.getAndRemove(key)\n }\n\n public static isExistsOrMarkIsExists(key: string) {\n const value = this.get(key)\n\n if (!value) {\n this.set(key, '1', 365 * 24 * 60 * 60)\n }\n\n return !!value\n }\n}\n","export class StringUtil {\n static OrientationLandscape = 'landscape'\n static OrientationPortrait = 'portrait'\n static Orientations = [StringUtil.OrientationLandscape, StringUtil.OrientationPortrait]\n\n public static toFixed(num: number, fixedSize = 2): string {\n num = parseFloat(num.toFixed(fixedSize)) // 避免那些 0.00 的情况\n return Number.isInteger(num) ? num.toString() : num.toFixed(fixedSize)\n }\n\n /***\n * 数字变成string\n * 1k以下正常\n * 1k以上 1100 以下显示 1k\n * 1234 显示 1.2k, 依次类推\n */\n public static numberToShortK(num: number): string {\n if (num < 1000) {\n return `${num}`\n } else {\n const hundred = Math.floor(num / 100)\n const k = Math.floor(hundred / 10)\n const minor = hundred % 10\n // console.log(minor)\n let minorStr = ''\n if (minor > 0) {\n minorStr = `.${minor}`\n }\n return `${k}${minorStr}k`\n }\n }\n\n public static buildUuid(): string {\n // generate uuid\n // https://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0\n const v = c === 'x' ? r : (r & 0x3) | 0x8\n return v.toString(16)\n })\n }\n\n public static padZero(num: number, size = 2): string {\n const numSize = `${num}`.length\n if (numSize > size) {\n size = numSize\n }\n return `0000000${num}`.slice(-1 * size)\n }\n\n // 生成几位数字\n public static randomNum(size = 4) {\n let result = ''\n for (let i = 0; i < size; i++) {\n result += Math.floor(Math.random() * 10)\n }\n return result\n }\n\n public static capitalizeFirstLetter(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n }\n\n public static isIncludedEmoji(value: string) {\n return value.match(/\\p{Emoji_Presentation}/gu)\n }\n\n public static isHasSpecialCharacter(value: string) {\n return value.match(new RegExp(\"[`~!@#$^&*()=|{}':;',\\\\[\\\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]\"))\n }\n\n public static onlyIncludedLetters(value: string) {\n return value.match(/^[a-z]+$/i)\n }\n\n public static onlyIncludedNumbers(value: string) {\n return value.match(/^[0-9]+$/)\n }\n\n public static onlyIncludedLettersAndNumbers(value: string) {\n return value.match(/^[a-z0-9]+$/i)\n }\n\n public static validClazzNoteName(value: string) {\n return value === '' ? true : value.match(new RegExp('^[\\u4E00-\\u9FA5A-Za-z0-9.]+$'))\n }\n\n public static validChineseCharacter(value: string) {\n return value === '' ? true : value.match(new RegExp('^[\\u4E00-\\u9FA5]'))\n }\n\n public static validateChinaMobilePhoneNumber(phone: string) {\n // see: https://github.com/VincentSit/ChinaMobilePhoneNumberRegex\n return /^(?:\\+?86)?1(?:3\\d{3}|5[^4\\D]\\d{2}|8\\d{3}|7(?:[0-35-9]\\d{2}|4(?:0\\d|1[0-2]|9\\d))|9[0-35-9]\\d{2}|6[2567]\\d{2}|4[579]\\d{2})\\d{6}$/.test(\n phone\n )\n }\n\n public static validateIdentityCardNumber(idCard: string) {\n return /^[0-9X]{18}$/.test(idCard)\n }\n\n public static validateUniformSocialCreditCode(code: string) {\n return /^[0-9A-Z]{18}$/.test(code)\n }\n\n /**\n * 判断带星的手机号和原始手机号是否相同\n * @param plainPhone 原始手机号\n * @param briefPhone 简要手机号中间5位是星\n * @returns 除星之外其他是否相同\n */\n public static isSamePhone(plainPhone: string, briefPhone: string): boolean {\n return plainPhone.slice(0, 2) === briefPhone.slice(0, 2) && plainPhone.slice(7) === briefPhone.slice(7)\n }\n\n public static formatBriefPhone(plainPhone: string) {\n return plainPhone\n .split('')\n .map((w, i) => (i > 2 && i < 7 ? '*' : w))\n .join('')\n }\n\n // 判断是否手机号\n public static isPhone(plainPhone: string): boolean {\n return !!plainPhone && plainPhone.length === 11\n }\n\n // 构建query内容\n public static buildQueryString(obj: any): string {\n return Object.keys(obj)\n .map((key) => {\n // if (!obj[key]) {\n // return ''\n // }\n return this.encodeRFC3986URIComponent(key) + '=' + this.encodeRFC3986URIComponent(obj[key])\n }) // .filter(Boolean)\n .join('&')\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent#encoding_for_rfc3986\n // 对于一些字符的修复\n public static encodeRFC3986URIComponent(str: string) {\n return encodeURIComponent(str).replace(/[!'()*]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`)\n }\n\n // 构建url\n public static appendQueryString2Url(url: string, queryString: string): string {\n if (!queryString) {\n return url\n }\n if (url.includes('?')) {\n return url + '&' + queryString\n } else {\n return url + '?' + queryString\n }\n }\n\n public static textOverflowEllipsis(text: string, maxLength: number) {\n if (text) {\n let textArray = [...text]\n\n if (textArray.length > maxLength) {\n textArray = textArray.slice(0, maxLength)\n textArray.push('...')\n }\n\n return textArray.join('')\n }\n\n return text\n }\n\n public static shortShownOfArray(items: string[], suffix: string, none = '无') {\n if (!items.length) return none\n if (items.length === 1) return items[0]\n return `${items[0]}等${items.length}个${suffix}`\n }\n\n /**\n *\n * @param num 0 ~ 25\n * @returns A ~ Z\n */\n public static number2Alphabet(num: number) {\n return String.fromCharCode(num + 65)\n }\n\n /**\n *\n * @param tpl 'xxx{{ pos1 }}xxx'\n * @param obj { pos1: value1 }\n * @returns 'xxxvalue1xxx'\n */\n public static buildStrFromTemplate(tpl: string, obj: Record) {\n const segments = tpl.split(/{{|}}/)\n\n for (let i = 1; i < segments.length; i += 2) {\n segments[i] = obj[segments[i].trim()]\n }\n\n return segments.join('')\n }\n\n public static splitByNumberBoundary(text: string) {\n const result: string[] = []\n\n const numbers = [...(text.match(/\\d+(\\.\\d+)?/g) || [])]\n\n if (!numbers.length) {\n return [text]\n }\n\n const strings = text.split(new RegExp(numbers.join('|')))\n\n for (let i = 0; i < strings.length; i++) {\n result.push(strings[i] || '')\n result.push(numbers[i] || '')\n }\n\n // remove empty string from the tail.\n for (let i = result.length - 1; i >= 0; i--) {\n if (!result[i]) {\n result.splice(i, 1)\n } else {\n break\n }\n }\n\n return result\n }\n\n public static formatNumberWithCommas(number: number) {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n }\n}\n","import { Toast, Indicator } from 'mint-ui'\n\nlet loadingCounter = 0\n\nexport class UIUtil {\n public static showToast(message: string) {\n Toast(message)\n }\n\n public static checkFailed(message: string, returnValue: T | boolean = false): T {\n this.showToast(message)\n\n return returnValue as T\n }\n\n public static showLoading(text?: string, updateText = false) {\n if (!loadingCounter && !updateText) {\n Indicator.open(text)\n }\n\n this.updateLoadingText(text)\n\n if (!updateText) {\n loadingCounter++\n }\n if (loadingCounter > 1) {\n loadingCounter = 1 // 修复多次show的情况\n }\n }\n\n public static hideLoading() {\n loadingCounter--\n\n if (!loadingCounter) {\n Indicator.close()\n }\n if (loadingCounter < 0) {\n loadingCounter = 0 // 修复多次hide的情况\n }\n }\n\n public static updateLoadingText(text?: string) {\n const indicator = document.querySelector('.mint-indicator-text')\n if (indicator) {\n indicator.textContent = text || ''\n }\n }\n}\n","export class UnitUtil {\n public static sign(value: number, showNegtiveSign = false) {\n return value > 0 ? '+' : showNegtiveSign && value < 0 ? '-' : ''\n }\n\n public static yuan(fen: number, precision = 2) {\n return +(fen / 100.0).toFixed(precision)\n }\n\n public static rate(amount: number, totalAmount: number) {\n return amount / (totalAmount || 1.0)\n }\n\n public static percent(decimal: number, precision = 2) {\n return +(decimal * 100).toFixed(precision)\n }\n\n public static toFixed(value: number, precision = 2) {\n return +(value || 0).toFixed(precision)\n }\n\n public static division(amount: number, base: number, precision = 2) {\n return this.toFixed(this.rate(amount, base), precision)\n }\n\n public static transform(amount: number, base: number, unit: string, precision = 2) {\n return amount && amount > base ? `${this.division(amount, base, precision)}${unit}` : amount\n }\n\n public static ratePercent(amount: number, totalAmount: number, precision = 2) {\n return this.percent(this.rate(amount, totalAmount), precision)\n }\n\n public static roundRatePercent(amount: number, totalAmount: number, precision = 1) {\n const rate = this.rate(amount, totalAmount)\n if (rate <= 0) return 0\n if (rate >= 100) return 100\n return this.percent(rate, precision)\n }\n}\n","import { logger } from './LogUtil'\nimport { EnvUtil } from './EnvUtil'\nimport { HtmlUtil } from './HtmlUtil'\nimport { UnitUtil } from './UnitUtil'\nimport { onLCP, onFID, onCLS, onINP, onFCP, onTTFB, Metric } from 'web-vitals'\n\nimport Vue from 'vue'\nimport VueRouter, { RawLocation } from 'vue-router'\n\nlet _targetWidth = 375\n\n// import * as Sentry from '@sentry/vue'\n// import { Integrations } from '@sentry/tracing'\n// import { init as initApmRum } from '@elastic/apm-rum'\n\n/**\n * vue 系统的util方法, 系统级的方法处理\n */\nexport class VueUtil {\n static _vconsole: any = null\n static _hasVConsole = false\n\n /**\n * 七鱼客服系统\n */\n public static addYsf() {\n HtmlUtil.appendScript('https://qiyukf.com/script/c5ca1c320f435755744f93689d4ea0f6.js', () => {\n // do nothing\n })\n }\n\n /**\n * 打开七鱼默认对话框\n */\n public static openYsf() {\n ;(window as any).ysf('open')\n }\n\n /**\n * 加上console\n */\n public static addVConsole(): boolean {\n // 尽量快速点击屏幕左上角, 3秒内超过8次就打开/关闭console\n let clickCache: { [key: string]: number } = {}\n\n document.addEventListener('click', (evt: MouseEvent) => {\n if (evt.clientX < 100 && evt.clientY < 30) {\n const ts = `${Math.ceil(new Date().getTime() / 3000)}`\n if (!clickCache[ts]) {\n clickCache[ts] = 0\n }\n clickCache[ts] += 1\n\n if (clickCache[ts] > 8) {\n if (this._hasVConsole) {\n this.doRemoveVConsole()\n } else {\n this.doAddVConsole()\n }\n\n clickCache[ts] = 0\n }\n\n // 10s钟后清空数据\n setTimeout(() => {\n clickCache = {}\n }, 10000)\n }\n })\n\n if (EnvUtil.isProd()) {\n return false\n } else {\n this.doAddVConsole()\n return true\n }\n }\n\n protected static doAddVConsole() {\n if (!this._hasVConsole) {\n this._hasVConsole = true\n HtmlUtil.appendScript('https://cdn.tiantiantiaosheng.com/site/assets/commons/vconsole-3.2.0.min.js', () => {\n // eslint-disable-next-line\n this._vconsole = new (window as any).VConsole()\n })\n }\n }\n\n protected static doRemoveVConsole() {\n if (this._hasVConsole) {\n this._vconsole?.destroy()\n this._vconsole = null\n this._hasVConsole = false\n document\n .querySelector('script[src=\"https://cdn.tiantiantiaosheng.com/site/assets/commons/vconsole-3.2.0.min.js\"]')\n ?.remove()\n document.querySelector('#__vconsole')?.remove()\n }\n }\n\n /**\n * 设定一个标准的rem的px\n * @param targetWidth 目标屏幕尺寸大小 默认为 375px\n * @param baseFontSize 标准字体大小, 默认为 targetWidth下的 12px\n */\n public static setRem(targetWidth = 375, baseFontSize = 12.0) {\n return this.setRemByMainEleId(undefined, targetWidth, baseFontSize)\n }\n\n public static setRemByMainEleId(mainEleId = 'app', targetWidth = 375, baseFontSize = 12.0) {\n _targetWidth = targetWidth\n\n // 设定一个1rem的宽度,所有的内容都以rem为标准\n const deviceWidth = this.getActualClientWidth(mainEleId)\n\n document.documentElement.style.fontSize = (deviceWidth * baseFontSize) / targetWidth + 'px'\n }\n\n public static setRemFixedAspectRatio(mainEleId = '', targetAspectRatio = 375 / 812, baseFontSize = 12.0) {\n const deviceWidth = this.getActualClientWidth(mainEleId)\n const deviceHeight = this.getActualClientHeight(mainEleId)\n\n let targetWidth = 375\n\n if (deviceWidth / deviceHeight > targetAspectRatio) {\n targetWidth = Math.max(targetWidth, deviceHeight * targetAspectRatio)\n }\n\n this.setRem(targetWidth, baseFontSize)\n }\n\n public static getActualClientHeight(mainEleId = 'app') {\n let deviceHeight = document.documentElement.clientHeight\n\n if (mainEleId) {\n const ele = document.getElementById(mainEleId)\n if (ele) {\n deviceHeight = ele.clientHeight\n }\n }\n\n return deviceHeight\n }\n\n public static getActualClientWidth(mainEleId = 'app') {\n let deviceWidth = document.documentElement.clientWidth\n\n if (mainEleId) {\n const ele = document.getElementById(mainEleId)\n if (ele) {\n deviceWidth = ele.clientWidth\n }\n }\n\n return deviceWidth\n }\n\n public static getActualPx(px: number, mainEleId = 'app', targetWidth = _targetWidth) {\n const deviceWidth = this.getActualClientWidth(mainEleId)\n\n return (deviceWidth / targetWidth) * px\n }\n\n /**\n * 集成APM\n * @param serviceName\n */\n public static addAPM(/* serviceName: string */) {\n // Optimize build, remove APM.\n // if (EnvUtil.isProd()) {\n // initApmRum({\n // // Set required service name (allowed characters: a-z, A-Z, 0-9, -, _, and space)\n // serviceName: serviceName,\n // // Set custom APM Server URL (default: http://localhost:8200)\n // serverUrl: 'https://apm-server.tiantiantiaosheng.com',\n // // Set service version (required for sourcemap feature)\n // serviceVersion: '1.0.0',\n // })\n // }\n }\n\n /**\n * 集成Sentry\n */\n public static addSentry(/* dsn: string */) {\n // Optimize build, remove Sentry.\n // if (EnvUtil.isProd() || EnvUtil.isStaging()) {\n // Sentry.init({\n // Vue,\n // dsn,\n // logErrors: true,\n // environment: process.env.VUE_APP_ENV,\n // integrations: [new Integrations.BrowserTracing()],\n // tracesSampleRate: 0.002,\n // })\n // }\n }\n\n /**\n * 将错误报告到ELK\n */\n public static reportErrorToELK() {\n // noop\n }\n\n /**\n * 类似router.push,但直接跳转到新的tab\n * @param router vuerouter\n * @param rawLocation vue router location参数\n */\n public static route2BlankTab(router: VueRouter, rawLocation: RawLocation) {\n const routeData = router.resolve(rawLocation)\n window.open(routeData.href, '_blank')\n }\n\n public static async ensureImagesAreLoaded(vm: Vue) {\n await vm.$nextTick()\n\n const imageUrls = [...vm.$el.querySelectorAll('img')].map(\n (image: HTMLImageElement) => image.src || image.dataset.src\n )\n\n const promises = imageUrls.filter(Boolean).map((url) => {\n return new Promise((resolve) => {\n const image = new Image()\n\n image.onload = resolve\n image.onerror = resolve\n image.src = url as string\n image.crossOrigin = 'anonymous'\n\n return image\n })\n })\n\n return promises\n }\n\n public static async setARMSConfig(config: { uid?: string; environment?: string; release?: string }) {\n const __bl = (window as any).__bl\n if (__bl) {\n __bl.setConfig(config)\n ;[onLCP, onFID, onCLS, onINP, onFCP, onTTFB].forEach((f) =>\n f((e: Metric) => {\n __bl.avg(e.name, UnitUtil.toFixed(e.value, 2))\n\n if (f === onCLS && e.value >= 0.1) {\n logger.event('Performance', 'CWV', f.name, e.value, e)\n }\n })\n )\n }\n }\n}\n","import { HttpUtil } from './HttpUtil'\nimport { HtmlUtil } from './HtmlUtil'\nimport { IWXPayParams } from 'kuaidong-model'\n\nconst _window = window as any\n\nexport class WechatUtil {\n protected wxInstance: any\n\n constructor(wxInstance: any) {\n this.wxInstance = wxInstance\n }\n\n public static availableApiList: string[] = []\n\n public static _instance: WechatUtil\n\n public static async getInstance(): Promise {\n if (this._instance) {\n return this._instance\n }\n\n const wxJS = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js'\n\n await HtmlUtil.asyncAppendScript(wxJS)\n\n const jsApiList = [\n 'updateAppMessageShareData', // 分享到朋友圈\n 'onMenuShareWechat',\n 'updateTimelineShareData',\n 'onMenuShareTimeline', // 分享到朋友圈\n 'onMenuShareAppMessage', // 分享到朋友\n 'onMenuShareQQ', // 分享到qq\n 'onMenuShareWeibo', // 分享到腾讯微博\n 'onMenuShareQZone', // 分享到qq空间\n 'chooseWXPay', // 微信支付\n ]\n\n const openTagList = ['wx-open-launch-app']\n\n const url = `https://api.tiantiantiaosheng.com/api/wx/jssdk?url=${encodeURIComponent(location.href)}`\n let config = (await HttpUtil.plainGet(url)) as any\n config = config.data as any\n config.jsApiList = jsApiList\n const wx = (window as any).wx\n\n wx.config({\n debug: false,\n appId: config.AppId,\n timestamp: config.timestamp,\n nonceStr: config.nonceStr,\n signature: config.signature,\n jsApiList: jsApiList,\n openTagList: openTagList,\n })\n\n return new Promise((resolve, reject) => {\n wx.ready(() => {\n this._instance = new WechatUtil(wx)\n wx.checkJsApi({\n jsApiList: [\n 'updateAppMessageShareData', // 分享到朋友圈\n 'updateTimelineShareData',\n 'onMenuShareWechat',\n 'onMenuShareTimeline', // 分享到朋友圈\n 'onMenuShareAppMessage', // 分享到朋友\n 'onMenuShareQQ', // 分享到qq\n 'onMenuShareWeibo', // 分享到腾讯微博\n 'onMenuShareQZone', // 分享到qq空间\n ], // 需要检测的JS接口列表\n openTagList,\n success: (res: any) => {\n this.availableApiList = Object.entries(res.checkResult)\n .filter((v) => v[1])\n .map((v) => v[0])\n resolve(this._instance)\n },\n })\n })\n wx.error((err: any) => {\n console.log(err)\n reject(err)\n })\n })\n }\n\n public async pay(params: IWXPayParams) {\n return new Promise((resolve, reject) => {\n this.wxInstance['chooseWXPay']({\n ...params,\n success: resolve,\n fail: reject,\n })\n })\n }\n\n public async setShareConfig(title: string, desc: string, imgUrl?: string, linkUrl?: string) {\n if (!linkUrl) {\n linkUrl = location.href\n }\n\n if (!imgUrl) {\n imgUrl = 'https://www.tiantiantiaosheng.com/icon_512.png'\n }\n\n const shareInfo = {\n title,\n desc,\n link: linkUrl,\n imgUrl,\n success: () => {\n // noop\n // console.log('set share success')\n },\n fail: (err: any) => {\n console.log(err)\n },\n }\n\n WechatUtil.availableApiList.map((v) => {\n this.wxInstance[v]?.(shareInfo)\n })\n }\n\n public static ensureBridgeIsReady() {\n return new Promise((resolve, reject) => {\n if (_window.WeixinJSBridge) {\n resolve()\n } else {\n document.addEventListener('WeixinJSBridgeReady' as any, resolve)\n }\n\n setTimeout(() => {\n reject({ text: '请在微信客户端打开链接进行支付' })\n }, 2000)\n })\n }\n\n public static async pay(params: IWXPayParams) {\n await this.ensureBridgeIsReady()\n\n return new Promise((resolve, reject) => {\n _window.WeixinJSBridge.invoke('getBrandWCPayRequest', params, (res: any) => {\n if (res.err_msg == 'get_brand_wcpay_request:ok') {\n resolve(true)\n } else {\n reject({ text: '支付失败' })\n }\n })\n })\n }\n}\n","import { Clazz, Student, Teacher, ISCollegeTeachingClazz } from 'kuaidong-model'\n\nclass Wrapper {\n constructor(public value: T) {}\n\n map any>(func: Func) {\n return func(this.value)\n }\n}\n\nfunction formatClass(classNo: number) {\n if (classNo > 0) {\n return `${classNo}班`\n } else {\n return ''\n }\n}\n\nconst gradeInZHCN = ['一', '二', '三', '四', '五', '六', '七', '八', '九']\n\nfunction formatGrade(gradeNo: number): string {\n if (gradeNo === 7) {\n return '小班'\n } else if (gradeNo === 8) {\n return '中班'\n } else if (gradeNo === 9) {\n return '大班'\n } else if (gradeNo === 10) {\n return '入学前'\n } else if (gradeNo >= 31 && gradeNo <= 33) {\n return `高${gradeInZHCN[gradeNo - 31]}`\n } else if (gradeNo >= 61 && gradeNo <= 64) {\n return `大${gradeInZHCN[gradeNo - 61]}`\n } else if (gradeNo >= 11 && gradeNo <= 19) {\n return `${gradeInZHCN[gradeNo - 11]}年级`\n } else if (gradeNo >= 71 && gradeNo <= 74) {\n return `研${gradeInZHCN[gradeNo - 71]}`\n } else if (gradeNo === 80) {\n return '博士'\n }\n\n return '其他年级'\n}\n\nfunction formatClassWithGrade(gradeNo: number, classNo: number) {\n const formattedGrade = formatGrade(gradeNo)\n if (!formattedGrade) {\n return ''\n }\n return `${formatGrade(gradeNo)}${formatClass(classNo)}`\n}\n\nexport class ClazzWrapper extends Wrapper {\n get id() {\n return this.value.id\n }\n\n get name() {\n if (this.isUniversityClazz) {\n return this.universityName\n } else {\n return this._showName\n }\n }\n\n get _showName() {\n return this.value.note_name || this.value.name || formatClassWithGrade(this.value.grade_no, this.value.class_no)\n }\n\n get universityName() {\n return this.enrollmentYear ? this.enrollmentYearShown + '级' + this._showName : this._showName\n }\n\n get teacherNames() {\n return this.value.teachers.map((t) => t.teacher_name)\n }\n\n get showTeacherStr() {\n return this.teacherNames.length === 0\n ? ''\n : this.teacherNames.length === 1\n ? this.teacherNames[0]\n : `${this.teacherNames[0]}等${this.teacherNames.length}位老师`\n }\n\n get studentAmount() {\n return this.value.student_amount === undefined ? this.value.students.length : this.value.student_amount\n }\n\n get collegeSubject() {\n return this.value.college\n }\n\n get collegeSubjectShown() {\n return this.collegeSubject ? this.collegeSubject.name : ''\n }\n\n get collegeMajor() {\n return this.value.major\n }\n\n get collegeMajorShown() {\n return this.collegeMajor ? this.collegeMajor.name : ''\n }\n\n get enrollmentYear() {\n return this.value.enrollment_year\n }\n\n get enrollmentYearShown() {\n return this.enrollmentYear ? (this.enrollmentYear!.toString().slice(2) as any) : ''\n }\n\n // 是否大学班级\n get isUniversityClazz() {\n return !!this.value.college\n }\n\n isTeaching(id?: string) {\n return typeof this.value.is_teaching === 'undefined'\n ? !!(id && this.value.teachers.map((t) => t.teacher_id).includes(id))\n : !!this.value.is_teaching\n }\n}\n\nexport class UniversityTeachingClazzWrapper extends Wrapper {\n get name() {\n return this.value.name\n }\n\n get fullName() {\n return this.value.enrollment_year ? this.value.enrollment_year.toString().slice(2) + '级' + this.name : this.name\n }\n}\n\nexport class StudentWrapper extends Wrapper {\n get name() {\n return this.value.note_name || this.value.full_name || this.value.nick_name\n }\n\n get className() {\n return (\n this.value.clazz!.note_name ||\n this.value.clazz!.nick_name ||\n this.value.clazz!.name ||\n formatClassWithGrade(this.value.clazz!.grade_no, this.value.clazz!.class_no)\n )\n }\n\n get id() {\n return this.value.user_id\n }\n\n get gender() {\n return this.value.gender\n }\n\n get code() {\n return this.value.student_no || '-'\n }\n\n get avatar() {\n return this.value.head_img_url\n }\n\n get enrollmentYear() {\n return this.value.enrollment_year\n }\n}\n\nexport class TeacherWrapper extends Wrapper {\n get avatar() {\n return this.value.head_img_url\n }\n\n get name() {\n return this.value.teacher_name\n }\n\n get id() {\n return this.value.teacher_id\n }\n}\n","import { DateUtil } from '../DateUtil'\nimport { HtmlUtil } from '../HtmlUtil'\n\nexport const CONTAINER_TYPE_RUNNING = 'running'\n\nexport const DrillMetricUnitCount = 'count'\nexport const DrillMetricUnitSecond = 'second'\nexport const DrillMetricUnitScore = 'score'\nexport const DrillMetricUnitFree = 'free' // drill_type里有这个值,把它当count, 自由跳绳\nexport const DrillMetricUnitDistance = 'millimeter' // 距离,毫米计\nexport const DrillMetricUnitDuration = 'duration'\n\nexport const PlayingTypeMove = 'move' // move 类型\n\nexport type DrillMetricUnit = 'count' | 'second' | 'score' | 'free' | 'millimeter'\n\nexport interface IUserInfo {\n user_no?: number\n user_id?: string\n nick_name: string\n head_img_url: string\n jump_rope_hall_of_frame?: boolean\n level_no?: number\n gender?: string\n school_info?: {\n school: string\n class_grade: number\n class_no: number\n class_grade_str?: string\n }\n}\n\nexport interface IDrill {\n drill_id: string\n display_name: string\n container_type: string\n metric_unit: DrillMetricUnit\n}\n\nexport interface Drill {\n name: string\n display_name: string\n container_type: string\n desc: string\n background_picture: string\n desc_time: string\n drill_type: DrillMetricUnit\n playing_type: string\n is_exam_drill: boolean // 是否体测\n finish_type: string\n metric_type: string\n display_metric_base: number\n display_metric_unit: string\n can_challenge: boolean\n}\n\nexport interface DrillUnit {\n unit: string\n label: string\n}\n\nexport type DrillRecordVideoModel =\n | 'record_video_model_full'\n | 'record_video_model_only_video'\n | 'record_video_model_no_video'\n | ''\n\nexport interface IReport {\n app_version: string\n record_id: string\n record_video_model?: DrillRecordVideoModel\n score: number\n score_count: number\n success_count: number\n fail_count?: number\n duration: number\n score_duration: number\n metric_amount: number\n record_time: string\n score_grade: string\n video_url: string\n thumbed_counts: number // 点赞数\n current_user_thumbed: boolean // 当前用户是否点赞\n burned_calories: number // 用户消耗卡路里\n challenge_info: any\n detection_has_rope: string\n detection_fake_people: '' | 'Fake'\n is_deleted: number\n is_double_jump: boolean // 是否是双跳\n record_screen: boolean\n rank_authority?: string // 用户是否关闭上传视频\n apply_hall_status?: string // 名人堂申请\n event_id: string\n event_type: string\n speed_rate: number\n target_speed: number | null\n max_combo_count: number\n interrupt_count: number\n perfect_count: number\n nice_count: number\n miss_count: number\n single_leg_perc: number\n double_leg_perc: number\n official_grade?: string\n\n // 无绳申诉和结果\n no_rope_appeal_status?: {\n status: string\n treatment_summary: string\n }\n\n drill_info: Drill\n video_info: {\n video_url: string\n video_cover_url: string\n height: number\n width: number\n }\n user_info: IUserInfo\n\n room_score_info: {\n score: number\n user_info: IUserInfo\n }[]\n interactions_power: any[]\n is_limit_try: boolean\n\n golf_extra_info?: {\n good_count: number // 不错杆数\n normal_count: number // 正常杆数\n perfect_count: number // 完美杆数\n\n prepare_posture: number // 准备站姿 - 分数\n\n batting_posture: number // 击球姿势 - 分数\n batting_swing_height: 0 | 1 // 挥杆高度 0:标准,1:不足\n batting_rotation_range: 0 | 1 | 2 // 躯干旋转幅度 0:标准,1:不足,2:过大\n\n batting_strength: number // 击球强度 - 分数\n batting_swing_speed: 0 | 1 // 挥杆速度 0:标准,1:不足\n }\n}\n\n/**\n * drill 相关可以服用的逻辑\n */\nexport class DrillUtil {\n public static readonly AiLabelNormal = 'normal' // 正常\n public static readonly AiLabelNormalCn = '正常'\n public static readonly AiLabelFakePeople = 'fake_people' // ai标签假人\n public static readonly AiLabelFakePeopleCn = '假人'\n public static readonly AiLabelNoRope = 'no_rope' // ai标签 无绳\n public static readonly AiLabelNoRopeCn = '无绳'\n public static readonly AiLabelDoubleJump = 'double_jump' // ai标签 双跳\n public static readonly AiLabelDoubleJumpCn = '双跳'\n\n public static buildAiLabelCn(aiLabel: string) {\n if (aiLabel === this.AiLabelFakePeople) {\n return this.AiLabelFakePeopleCn\n } else if (aiLabel === this.AiLabelNoRope) {\n return this.AiLabelNoRopeCn\n } else if (aiLabel === this.AiLabelDoubleJump) {\n return this.AiLabelDoubleJumpCn\n } else {\n return '' // 默认返回空,页面显示需要\n }\n }\n\n public static calcScore(metric_count: number, type: string) {\n if (type === DrillMetricUnitDuration) {\n return DateUtil.ms2Str(metric_count)\n }\n if (type === DrillMetricUnitDistance) {\n return metric_count / 10 // 临时按厘米计算\n }\n if (type === DrillMetricUnitSecond) {\n return this.getDurationInMinStr(metric_count)\n }\n if (type === DrillMetricUnitCount || type === DrillMetricUnitFree) {\n // https://www.notion.so/d14079a6395b435eb6980631bacc3a70\n return metric_count\n }\n\n return metric_count\n }\n\n public static calcUnit(type: string) {\n if (type === DrillMetricUnitCount || type === DrillMetricUnitCount || type === DrillMetricUnitFree) {\n return '个'\n }\n\n if (type === DrillMetricUnitDuration) {\n return 'cm'\n }\n\n return ''\n }\n\n public static getScore(score: number, drill: Drill): number {\n // 跑步记录的厘米\n if (drill.container_type === CONTAINER_TYPE_RUNNING) {\n return score / 100\n } else {\n return score\n }\n }\n\n /**\n * 把毫秒数转换成显示时间\n * 如果小于1分钟,保留一位小数,如 0:23.6\n *\n * @param durationMilliSeconds 毫秒数\n * @returns 显示的时间内容\n */\n public static getDurationInMinStr(durationMilliSeconds: number): string {\n return DateUtil.ms2Str(durationMilliSeconds)\n }\n\n public static isDistanceDrill(data: IReport): boolean {\n // 特殊的举例显示drill\n return data.drill_info && this.isDistanceDrillId(data.drill_info.name)\n }\n\n public static isDistanceDrillId(dirllId: string): boolean {\n return ['long_jump_physical_test_2103', 'sit_and_reach_physical_test_2103'].includes(dirllId)\n }\n\n public static getScoreShow(data: IReport): number | string {\n if (!data.drill_info) {\n return data.score\n }\n if (this.isDistanceDrill(data)) {\n return `${data.score / 10}cm`\n }\n if (DrillMetricUnitDistance === data.drill_info.drill_type) {\n return `${data.score / 10}cm` // 临时按厘米计算\n } else if (DrillMetricUnitSecond === data.drill_info.drill_type) {\n return this.getDurationInMinStr(data.score_duration)\n } else if (\n DrillMetricUnitCount === data.drill_info.drill_type ||\n DrillMetricUnitFree === data.drill_info.drill_type\n ) {\n // https://www.notion.so/d14079a6395b435eb6980631bacc3a70\n return `${data.score_count}个`\n } else if (DrillMetricUnitScore === data.drill_info.drill_type) {\n return `${data.score}分`\n } else {\n return data.score\n }\n }\n\n public static getHumanScore(score: number, metric_unit?: string, drill_id?: string): number | string {\n if (drill_id && DrillUtil.isDistanceDrillId(drill_id)) {\n return `${score / 10}cm`\n }\n if (DrillMetricUnitSecond === metric_unit) {\n return this.getDurationInMinStr(score)\n } else {\n return score\n }\n }\n\n public static buildReportFullUrl(recordId: string) {\n return HtmlUtil.buildFullLink(`/apph5/#/crazyrope/drill-report?id=${recordId}`)\n }\n\n public static isRestDrill(drill: { drill_id: string }) {\n return drill.drill_id.startsWith('rest')\n }\n\n public static isMoveType(drill: Drill) {\n // 包括广播操等\n return !!(drill && drill.playing_type && drill.playing_type.startsWith('move'))\n }\n\n public static formatOrientation(orientation?: string) {\n return orientation === 'landscape' ? '横屏' : '竖屏'\n }\n}\n","export class SchoolUtil {\n static gradeNoFinished = 21 // 已经结束了\n static gradeNoBeforeSchool = 10 // 入学前\n static gradeNoGradeOne = 11\n static gradeNoDoctor = 80\n\n static gradeMap: { [key: number]: string } = {\n 7: '小班',\n 8: '中班',\n 9: '大班',\n 10: '入学前',\n 11: '一年级',\n 12: '二年级',\n 13: '三年级',\n 14: '四年级',\n 15: '五年级',\n 16: '六年级',\n 17: '七年级',\n 18: '八年级',\n 19: '九年级',\n 21: '其他年级',\n 31: '高一',\n 32: '高二',\n 33: '高三',\n 61: '大一',\n 62: '大二',\n 63: '大三',\n 64: '大四',\n 71: '研一',\n 72: '研二',\n 73: '研三',\n 74: '研四',\n 80: '博士',\n }\n\n // 判断是否是暑假期间,暑假期间为7月1日到8月31日\n public static get isInSummerHoliday(): boolean {\n const now = new Date()\n return now.getMonth() >= 6 && now.getMonth() <= 7\n // return now.getMonth() >= 1 && now.getMonth() <= 7\n }\n\n public static get gradeNos(): number[] {\n return Object.keys(this.gradeMap)\n .map((key) => parseInt(key))\n .sort((a, b) => a - b)\n }\n\n // 按顺序活动下一个年级\n public static getNextGradeNo(gradeNo: number): number {\n if (gradeNo === this.gradeNoFinished) {\n return this.gradeNoFinished\n }\n if (gradeNo === this.gradeNoBeforeSchool) {\n return this.gradeNoGradeOne // 入学前升1年级\n }\n if (gradeNo === this.gradeNoDoctor) {\n return this.gradeNoDoctor // 博士升博士\n }\n // 排除掉入学前, 入学前的概念需要去掉,直接用大班等正常年级\n const gradeNos: number[] = this.gradeNos.filter((item) => item !== this.gradeNoBeforeSchool)\n const idx = gradeNos.findIndex((item) => item === gradeNo)\n let result = gradeNos[idx + 1]\n if (result === this.gradeNoFinished) {\n return 31 // 初中升高中\n }\n if (!result) {\n result = 11\n }\n return result\n }\n\n public static get nameGradeMap(): { [key: string]: number } {\n // 对gradeMap进行key和value的互换\n const result: { [key: string]: number } = {}\n Object.keys(this.gradeMap).forEach((key) => {\n result[this.gradeMap[parseInt(key)]] = parseInt(key)\n })\n return result\n }\n\n public static buildGradeOptions(maxGradeNo = 80, minGradeNo = 7, grades: number[] = []) {\n const gradeNos = Object.keys(this.gradeMap).map((key) => parseInt(key))\n\n return gradeNos\n .filter((gradeNo) => {\n return gradeNo <= maxGradeNo && gradeNo >= minGradeNo && (!grades.length || grades.includes(gradeNo))\n })\n .map((gradeNo) => ({\n value: gradeNo,\n label: this.gradeMap[gradeNo],\n }))\n }\n\n public static buildClazzName(gradeNo: number, classNo: number): string {\n let gradeName = this.gradeMap[gradeNo]\n if (!gradeName) {\n gradeName = ''\n }\n return `${gradeName}(${classNo})班`\n }\n\n // 生成年级名称,暑假的时候特殊 如:小班(升中班)\n public static buildGradeName(\n gradeNo: number,\n options: { disabledSummerName: boolean } = {\n disabledSummerName: false,\n }\n ): string {\n let gradeName = this.gradeMap[gradeNo]\n // if (gradeNo === this.gradeNoBeforeSchool) {\n // // 大班或者入学前\n // gradeName = this.gradeMap[gradeNoBeforeSchool]\n // }\n if (!options.disabledSummerName && this.isInSummerHoliday) {\n if (gradeNo === 9 || gradeNo === 10) {\n gradeName = '大班/入学前'\n }\n const getNextGradeNo = this.getNextGradeNo(gradeNo)\n return `${gradeName}(升${this.gradeMap[getNextGradeNo]})`\n } else {\n return gradeName\n }\n }\n\n public static buildUpGradeClazzName(gradeNo: number, classNo: number): string {\n const nextGradeNo = this.getNextGradeNo(gradeNo)\n let gradeName = this.gradeMap[nextGradeNo]\n if (gradeNo === 33) {\n gradeName = '高中毕业'\n }\n if (!gradeName) {\n gradeName = ''\n }\n return `${gradeName}(${classNo})班`\n }\n\n // 通过已有的带有班级名称的数组,对班级名称进行排序\n public static sortItemByClazzName(classNameItems: T[], nameKey: string): T[] {\n const clazzNameGradeMap = this.nameGradeMap\n return [...classNameItems].sort((a: any, b: any) =>\n clazzNameGradeMap[a[nameKey]] > clazzNameGradeMap[b[nameKey]] ? 1 : -1\n )\n }\n}\n","import { School } from './school'\nimport { Teacher } from './teacher'\nimport { Student } from './student'\n\nexport * from './universityClazz'\n\nexport const MAX_GRADE_CLAZZ_SIZE = 300 // 一个年级最多300个班级\n\n// 加入班级时,班级信息\nexport interface IGradeClazzJoin {\n class_limit: number // 班级上限, -1表示不限, 默认300\n grade_no: number // 对应的年级\n custom_class_name_map: {\n [key: string]: string // 自定义班级名称, 注意key为class_no,但是类型是str\n }\n}\nexport interface Clazz {\n id: number\n name: string\n note_name: string | null\n grade_id: number\n grade_no: number\n class_no: number\n student_amount: number\n is_teaching: boolean\n\n school?: School | null\n school_id?: number | null\n\n students: Array\n teachers: Array\n\n locked: boolean // 是否禁止加入班级\n need_key: boolean // 是否需要班级口令\n extra_info: {\n fnReq?: boolean\n enter_class_key?: string\n } // 班级口令等额外信息\n created_time: string\n updated_time: string\n\n college?: {\n id: string\n school_id: string\n name: string\n }\n\n major?: {\n id: string\n school_id: string\n name: string\n }\n\n enrollment_year?: number\n\n available?: boolean\n is_class_manager?: boolean\n}\n\nexport interface ISportsTeam {\n id: number\n name: string\n grade_id: number\n grade_no: number\n school_id: number\n class_no: number\n locked: boolean\n need_key: boolean\n student_amount: number\n is_teaching: boolean\n school: {\n id: number\n school_name: string\n province: string\n city: string\n district: string\n school_type: string\n amap_poi_id: string\n longitude: number\n latitude: number\n }\n note_name: string\n img_url: string\n}\n\nexport interface IClazzSimple {\n class_id: number\n class_no: number\n class_name: string\n grade_id: number\n grade_no: number\n note_name: string\n}\n\nexport interface IQueryClazz {\n name?: string | null\n grades?: number[] | null\n}\n\nexport enum ClazzAvailableType {\n ExamPractice = 'exam_practice',\n BroadcastGymnastics = 'move_hw',\n}\n\nexport interface IEditClazzNoteForm {\n class_id: number | null\n note_name: string | null\n}\n\nexport interface IGradeClazzSelectOption {\n label: string\n value: number\n children: {\n label: string\n value: number\n }[]\n}\n\nexport interface IClazzTreeGradeOption {\n id: number\n name: string\n grade_no?: number\n children: Clazz[]\n}\n\nexport interface IStudentCodeOverView {\n student_count: number\n verified_count: number\n wait_verify_count: number\n unverified_count: number\n verify_rate: number\n}\n\nexport interface IStudentAccountOverView {\n student_count: number\n activated_count: number\n wait_activate_count: number\n activated_rate: number\n}\n\nexport interface IStudentTableItemForStudentCode {\n student_code: string\n name: string\n gender: string\n phone: string\n school_roll_no: string\n verification_status: boolean\n student_vo: IStudentTableStudent\n class_vo: Clazz\n}\n\nexport interface IStudentTableItemForStudentAccount {\n name: string\n gender: string\n // 学校账号\n login_name: string\n phone: string\n activate_status: boolean\n school_roll_no: string\n student_vo: IStudentTableStudent\n class_vo: Clazz\n}\n\nexport interface IStudentTableStudent {\n user_id: string\n user_no: number\n gender: string\n nick_name: string\n head_img_url: string\n verified: string\n}\n\nexport interface IPaginationStudentTableItem {\n count: number\n items: IStudentTableItemForStudentCode[]\n}\n\nexport interface IPaginationStudentTableItemForStudentAccount {\n count: number\n items: IStudentTableItemForStudentAccount[]\n}\nexport interface IQueryForStudentList {\n class_id: number | null\n limit: number\n offset: number\n name: string | null\n}\n\nexport type StudentTableActionType =\n | 'delStudentCode'\n | 'unBundlingStudentCode'\n | 'changeClass'\n | 'delAllStudentList'\n | 'exportFile'\n | 'delClass'\n | 'quitClass'\n | 'settingAuth'\n | string\n\nexport interface IClazzListTableAction {\n action: StudentTableActionType\n row: Clazz\n}\n\nexport interface IStudentTableAction {\n action: StudentTableActionType\n row: IStudentTableItemForStudentCode\n}\nexport interface IStudentAccountTableAction {\n action:\n | 'resetPassword'\n | 'changeClass'\n | 'downLoadStudentAccount'\n | 'unBundlingStudentPhone'\n | 'delStudentAccount'\n | 'downLoadStudentAccountIncludePassword'\n | 'delClass'\n | 'quitClass'\n | 'settingAuth'\n\n row: IStudentTableItemForStudentAccount\n}\nexport interface IAddStudentCodeForm {\n name: string\n class_id: number | null\n gender: '男' | '女'\n school_roll_no: string\n}\n\nexport interface IAddStudentAccountForm {\n name: string\n class_id: number | null\n gender: '男' | '女'\n school_roll_no: string\n login_name: string\n password: string\n}\n\nexport interface ClazzListForSchoolRollNoItem {\n class_vo: Clazz\n student_count: number\n verified_count: number\n verify_rate: number\n}\n\nexport interface IClazzListForStudentAccountTableItem {\n student_count: number\n activated_count: number\n activated_rate: number\n class_vo: Clazz\n}\n\nexport interface IClazzListForStudentAccountTable {\n count: number\n items: IClazzListForStudentAccountTableItem\n}\n","import { Student } from './student'\nimport { Teacher } from './teacher'\n\nexport enum CompetitionMode {\n Video = 'video',\n Online = 'normal',\n}\n\nexport enum CompetitionListTabItemName {\n School = 'school',\n Online = 'online',\n RegionAvailable = 'regionAvailable',\n RegionParticipated = 'regionParticipated',\n}\n\nexport enum CompetitionRegionDetailsTabItemName {\n None = 'none',\n Stats = 'stats',\n General = 'general',\n}\n\nexport interface CompetitionType {\n competition_type_id: number\n category: string\n item_name: string\n item_tag: string\n title: string\n description: string\n rules: string[]\n head_img_url: string\n}\n\n// 'own_grades' 用于支持所在年级的选择,服务端不存在该值。\n// 它是 custom 的一个子集,即 clazzes 为空的情况。\n// 注意在保存和编辑的时需要进行转换。\nexport type CompetitionScopeType = 'all_school' | 'own_grades' | 'own_classes' | 'custom'\n\nexport interface CompetitionScopeSchool {\n school_id: number\n}\n\nexport interface CompetitionScopeGrade {\n grade_id: number\n grade_no: number\n grade_name: string\n}\n\nexport interface CompetitionScopeClazz {\n id: number\n class_no: number\n grade_id: number\n grade_no: number\n name: string\n note_name: string | null\n}\n\nexport interface CompetitionScope {\n type: CompetitionScopeType\n schools: CompetitionScopeSchool[]\n grades: CompetitionScopeGrade[]\n clazzes: CompetitionScopeClazz[]\n}\n\nexport interface CompetitionScopeConfig {\n schools: CompetitionScopeSchool[]\n own_simple_classes: CompetitionScopeClazz[]\n all_school_classes: CompetitionScopeClazz[]\n all_grades: CompetitionScopeGrade[]\n}\n\ntype CompetitionStatus = 'on' | 'off' | 'draft'\ntype TimeState = 'started' | 'un_start' | 'ended'\n\nexport interface Competition {\n competition: {\n competition_id: number\n competition_type: CompetitionType\n create_teacher: Teacher\n theme_title: string\n start_time: string\n end_time: string\n description: string\n status: CompetitionStatus\n time_state: TimeState\n take_part_limits: number\n }\n competition_scope: CompetitionScope\n}\n\nexport interface CompetitionForm {\n competition: {\n competition_id?: number\n competition_type: CompetitionType\n create_teacher?: Teacher\n theme_title?: string\n start_time?: string\n end_time?: string\n description?: string\n status?: CompetitionStatus\n time_state?: TimeState\n take_part_limits?: number\n }\n competition_scope?: CompetitionScope\n}\n\nexport interface CreateCompetitionForm {\n competition_id?: number | null\n competition_type_id: number | null\n theme_title: string | null\n title?: string | null\n start_time: string | Date | null\n end_time: string | Date | null\n take_part_limits: number | null\n description: string | null\n scope_type: string | null\n scope_school_ids: number[]\n scope_grade_ids: number[]\n scope_class_ids: number[]\n}\n\nexport enum CompetitionCategory {\n RANK = '竞技排名赛',\n SCORE = '打卡积分赛',\n TEAM = '团体目标赛',\n}\n\nexport interface CompetitionBaseConfig {\n id: string\n type: string\n title: string\n img_url: string\n description: string | null\n gender: string | null\n difficult_level: string\n orientation: string\n tag?: string\n subTag?: string\n}\n\nexport interface CompetitionRankConfig extends CompetitionBaseConfig {\n total_take_limits: number | null\n}\n\nexport interface CompetitionScoreConfig extends CompetitionBaseConfig {\n finish_score: number\n limit_score: number\n}\n\nexport interface CompetitionTeamConfig extends CompetitionBaseConfig {\n target_score: number\n take_part_limits: number | null\n}\n\nexport interface CompetitionLaunchPreview {\n name: string\n category: CompetitionCategory\n introduce: string | null\n startTime: string | Date | null\n endTime: string | Date | null\n scope: string\n items: string[]\n limitScore: number\n targetScore: number\n takePartLimits: number | null\n}\n\nexport type CompetitionConfigUion = CompetitionRankConfig & CompetitionScoreConfig & CompetitionTeamConfig\n\nexport interface CompetitionItem {\n name: T\n config: U[]\n introduce: string | null\n game_type: string | null\n}\n\nexport type CompetitionConfig =\n | CompetitionItem\n | CompetitionItem\n | CompetitionItem\n\nexport interface LaunchCompetitionForm {\n match_type: string\n introduce: string | null\n scope_type: string | null\n scope_school_ids: number[]\n scope_grade_ids: number[]\n scope_class_ids: number[]\n theme_title: string | null\n start_time: string | Date | null\n end_time: string | Date | null\n config: CompetitionConfig\n}\n\nexport interface CompetitionOptions {\n title: CompetitionCategory\n describe: string\n img: string\n}\n\ntype OnlineAddConfig = {\n competition_name: string | null\n name_check: boolean\n limits_check: boolean\n target_check: boolean\n}\n\nexport type CompetitionOnlineConfig = {\n rank: CompetitionItem\n score: CompetitionItem\n team: CompetitionItem\n}\n\nexport type OnlineLaunchCompetitionForm = Omit & {\n config: CompetitionOnlineConfig\n rule: string | null\n stamp: string | null\n company: string | null\n match_img_url: string | null\n}\n\nexport function formatScope(competition: Competition): string {\n const { competition_scope: scope } = competition\n const result = []\n\n if (scope.type === 'all_school') {\n result.push('全校')\n } else {\n scope.grades.forEach((g) => {\n result.push(`${g.grade_name}全部`)\n })\n\n scope.clazzes.forEach((c) => {\n result.push(c.name)\n })\n }\n\n return result.join('、')\n}\n\nexport function formatTakePartLimits(competition: Competition): string {\n const takePartLimits = competition.competition.take_part_limits\n if (takePartLimits) {\n return `${takePartLimits}次`\n }\n\n return '不限'\n}\n\nexport enum CompetitionRankingPeriod {\n All = 'all',\n Weekly = 'weekly',\n Monthly = 'monthly',\n}\n\nexport interface CompetitionRankingItem {\n user_id: string\n count: number | string\n record_id: string\n clazz: { id: number; name: string; grade_id: number }\n}\n\nexport interface CompetitionRankingBoard {\n students: { [key: string]: Student }\n students_stats: CompetitionRankingItem[]\n competition: { rank_h5_url: string }\n}\n\nexport function getRankingUserInfo(rankingBoard: CompetitionRankingBoard, userId: string, key: keyof Student) {\n return rankingBoard?.students[userId]?.[key]\n}\n\nexport interface CompetitionStatItem {\n student_amount: number\n participant: number\n participant_rate: number\n best_score: number\n}\n\nexport interface CompetitionGradeStat {\n grades: { grade_id: number; grade_no: number; grade_name: string }[]\n grades_stats: {\n [key: number]: CompetitionStatItem\n }\n}\n\nexport function getGradeStatValue(\n stat: CompetitionGradeStat,\n gradeId: number,\n key: keyof CompetitionStatItem\n): number | null {\n return stat.grades_stats[gradeId]?.[key]\n}\n\nexport interface CompetitionClassStat {\n classes: { id: number; name: string }[]\n classes_stats: {\n [key: number]: CompetitionStatItem\n }\n}\n\nexport function getClassStatValue(\n stat: CompetitionClassStat,\n classId: number,\n key: keyof CompetitionStatItem\n): number | null {\n return stat.classes_stats[classId]?.[key]\n}\n","import { Clazz } from './clazz'\nimport { Student } from './student'\nimport { IQueryPagination } from './query'\nimport { ITeacherCreateForm } from './teacherAuth'\n\nexport interface ICourseLiveCoach {\n id: string\n name: string\n avatar: string\n}\n\nexport enum CourseLiveStatus {\n Open = 'being_open',\n InProgress = 'processing',\n Ended = 'ending',\n}\n\nexport interface ICourseContentItem {\n item_type: string\n item_title: string\n exercise_strength: string\n phone_style: string | null\n img_url: string | null\n drill_id: string\n}\n\nexport interface ICourseDetail {\n energy: number\n items_count: number\n tags: string[]\n video_url: string\n class_list: Clazz[]\n course_template: string\n\n items: ICourseContentItem[]\n}\n\nexport interface ICourseLive {\n id: string\n title: string\n intro: string\n start_time: string\n end_time: string\n duration: number\n live_status: CourseLiveStatus\n coach: ICourseLiveCoach\n marked: boolean\n difficult_level: string\n sponsor: string\n description: string\n detail?: ICourseDetail\n}\n\nexport interface ICourseLiveCountPerDay {\n date: string\n count: number\n}\nexport interface ICourseStatisticsStudentInfo {\n user: Student\n entered: boolean\n complete_status: string\n score_grade: number\n class_vo: Clazz\n}\n\nexport interface IDrillProgressUserInfo {\n user_id: string | null\n head_img_url: string\n}\nexport interface ICourseLiveDrillProgressInfo {\n drill_id: string\n item_title: string\n completed: IDrillProgressUserInfo[]\n no_started: IDrillProgressUserInfo[]\n ongoing: IDrillProgressUserInfo[]\n item_completed_count: number\n item_no_started_count: number\n item_ongoing_count: number\n}\n\nexport interface ICourseLiveStatsSummary {\n own_class_count: number\n student_count: number\n entered_student_count: number\n not_entered_student_count: number\n completed_count: number\n uncompleted_count: number\n ongoing_count: number\n no_started_count: number\n items_list: ICourseLiveDrillProgressInfo[]\n}\n\nexport type IQueryCourseLiveStudent = IQueryPagination & { entered: boolean | null; current_date: Date }\n\nexport interface ICourseLiveParticipateForm {\n title: string\n date: Date\n end_date: Date\n class_ids: number[]\n}\n\nexport interface IQueryCourse {\n limit: number\n offset: number\n}\n\nexport interface ICourseResourceTagOption {\n id: string\n tag_name: string\n tag_group: string\n}\n\nexport interface ICourseResourceGradeTag {\n 幼儿园: string\n 小学: string\n 初中: string\n 高中: string\n 大学: string\n 通用: string\n}\n\nexport const ICourseResourceGradeTagClassMap: ICourseResourceGradeTag = {\n 幼儿园: 'kid',\n 小学: 'primary',\n 初中: 'junior',\n 高中: 'senior',\n 大学: 'university',\n 通用: 'general',\n}\n\nexport interface ICourseLiveComment {\n comments_id: string\n comments_time: Date\n comments: string\n}\n\nexport interface ICourseLiveUserDetail {\n drill_id: string\n live_rank_id: string\n record_id: string | null\n video_url: string | null\n item_title: string\n completion_status: string\n score: number\n score_count: number\n play_count: number\n remark: string\n completion_time: Date\n energy: number\n like: boolean\n score_duration: number\n comments: ICourseLiveComment[]\n}\n\nexport interface ICourseCommentTemplate {\n txt: string\n state: 0 | 1\n}\n\n// 新在线课\nexport interface IOnlineCourseTag {\n tag_id: string\n tag_name: string\n}\n\nexport interface IOnlineCourseRepo {\n repository_id: string\n name: string\n category: string\n description: string\n difficult_level: string\n have_homework: boolean\n img_url: string\n tag_list: string[]\n repo_item_id_list: string[]\n online_course_count: number\n course_cycle: 1 | 7 | null\n}\n\nexport interface ICourseRepoDetail extends IOnlineCourseRepo {\n repo_item_list: ICourseRepoDetailItem[]\n tpl_serial_id?: string\n}\n\nexport interface ICourseRepoDetailItem {\n course_item_id?: string\n repo_item_id: string\n title: string\n duration: number\n energy: number\n drill_number: number\n video_url: string\n difficult_level: string\n description: string\n repo_item_drills: ICourseRepoDetailItemDrill[]\n current_datetime?: string\n homework_template_id: string | null\n}\n\nexport interface ICourseRepoDetailItemDrill {\n id: string\n drill_id: string\n drill_type: string\n drill_title: string\n phone_style: string\n exercise_strength: string\n}\n\nexport interface ICreateCourseForm {\n repository_id: string | null\n repo_item_id?: string\n title: string\n start_datetime: Date\n course_cycle: number | null\n week_no: number | null\n class_id_list: number[]\n course?: ICourseRepoDetail\n modified_repo_item_list?: {\n repo_item_id: string\n current_datetime: string\n }[]\n}\n\nexport type ICourseResourcePreview = {\n repository_id: string\n title: string\n start_datetime: string\n course_cycle: number\n week_no: number\n repo_item_list: ICourseResourcePreviewRepoItem[]\n class_id_list: number[]\n}\n\nexport type ICourseResourcePreviewRepoItem = {\n repo_item_id: string\n title: string\n duration: number\n energy: number\n drill_number: number\n video_url: string\n difficult_level: string\n description: string\n repo_item_drills: ICourseRepoDetailItemDrill[]\n current_datetime: string\n course_item_id?: string\n homework_template_id: string | null\n}\n\nexport interface IQueryScheduleForm {\n name: string | null\n current_datetime: Date | null\n class_id: number | null\n}\n\nexport interface ICourseScheduleItem {\n online_course_id: string\n online_course_name: string\n item_id: string\n item_title: string\n current_datetime: string\n old_course: boolean\n\n duration: number\n energy: number\n drill_number: string\n\n class_ids: number[]\n class_infos: Clazz[]\n teacher_user: ITeacherCreateForm\n teacher_user_id: string\n}\n\nexport interface ICourseSummaryItem {\n item_id: string\n item_title: string\n current_datetime: string\n duration: number\n energy: number\n drill_number: number\n completion_rate: number\n}\n\nexport interface IStudentCourseStatus {\n student_vo: IStudentCourseStatusStudentInfo\n class_vo: IStudentCourseStatusClazzInfo\n completion_status: string\n}\nexport interface IStudentCourseStatusStudentInfo {\n user_id: string\n user_no: number\n gender: string\n nick_name?: any\n full_name?: any\n head_img_url?: any\n verified?: any\n student_no?: any\n note_name?: any\n}\nexport interface IStudentCourseStatusClazzInfo {\n id: number\n name: string\n grade_id: number\n grade_no: number\n school_id: number\n class_no: number\n locked: boolean\n need_key: boolean\n school?: any\n note_name?: any\n}\n\nexport interface ILiveCourseDetail {\n repository_id: string\n name: string\n course_cycle: number\n category: string\n description: string\n difficult_level: string\n have_homework: boolean\n img_url: string | null\n tag_list: string[]\n repo_item_id_list: string[]\n online_course_count: number\n online_course_item_list: ICourseRepoDetailItem[]\n repo_item_list?: ICourseRepoDetailItem[]\n online_course_title: string\n online_course_id: string\n start_datetime: string\n end_datetime: string\n class_vo_list: Clazz[]\n tpl_serial_id: string\n homework_id: string\n}\n\nexport interface IStudentLessonFinishDetail {\n drill_id: string\n live_rank_id: string\n record_id: string\n drill_title: string\n completion_status: string\n video_url: string\n current_datetime: string\n}\n\nexport interface IOnlineCourseClassSummary {\n students_count: number\n completion_count: number\n uncompleted_count: number\n completion_rate: number\n class_vo: Clazz\n}\n\nexport interface ILiveCourseDrillReport {\n drill_id: string\n record_id: string\n record_time: string\n duration: number\n score: number\n score_count: number\n score_duration: number\n score_grade: number\n score_rate: number\n success_count: number\n fail_count: number\n interrupt_count: number\n max_combo_count: number\n video_url: string\n burned_calories: number\n}\n\nexport interface ILiveCourseRecord {\n drill_id: string\n live_rank_id: string\n drill_title: string\n completion_status: string\n score?: any\n score_duration?: any\n score_count?: any\n score_grade?: any\n record_id?: any\n video_url?: any\n current_datetime?: string\n}\n","export enum ExamRecordStandardDetailsTab {\n Weight = 'weight',\n Measure = 'measure',\n}\n\nexport interface IExamRecordStandard {\n rule_id: string\n rule_name: string\n available: boolean | null\n source: string\n template_type: string\n}\n\nexport interface IExamRecordStandardDetails extends IExamRecordStandard {\n male_mapping: IExamRecordStandardDetailsMapping\n female_mapping: IExamRecordStandardDetailsMapping\n}\n\nexport interface IExamRecordStandardDetailsMapping {\n support_grades: number[]\n body_exam_items: Array<{\n body_exam_item_name: string\n body_exam_item_type: string\n rules: Array<{\n weight: number\n mappings: {\n extra_mappings: Array<{\n grade: string\n original_value: number\n standard_score: number\n }>\n standard_mappings: Array<{\n grade: string\n original_value: number\n standard_score: number\n }>\n }\n grade_no: number\n }>\n }>\n exclude_visible_body_exam_item_types: string[]\n}\n\n// 处理逻辑, 按行分割, 数字开头的标题, *开头的重点, . 开头列表\nexport const ExamRecordStandardHint: { [key: string]: string } = {\n 年级编号: `1、年级编号仅可以为以下数字\n 小学1~6年级:11、12、13、14、15、16\n 初中7~9年级:21、22、23\n 高中1~3年级:31、32、33\n 大一~大四:41、42、43、44`,\n 班级编号: `1、班级编号仅可以为0~9数字\n 正常班级编号最后两位数字为班号,\n 例如:222102,为 22年的初一02班。初一的年级编号为21。\n 如班级名称和班级编号都无法识别班号,则会导入错误,请手动修改`,\n 班级名称: `1、班级名称包含特殊字母\n 班级名称仅支持数字0~9+中文组合。\n 例如:一年级309班,为09号班。系统会识别【班】前的数字后两位,作为班号。\n 如班级名称和班级编号都无法识别班号,则会导入错误,请手动修改`,\n 学籍号: `1、学籍号包含特殊字符\n 学籍号仅支持数字0~9+英文字母组合。\n 2、学籍号重复\n 本校内学籍号唯一,表格中不可出现重复学籍号。\n 学籍号正常为G或者L+身份证号,全国唯一。\n *本平台承诺,该信息仅本校可查看,本平台不会利用或者泄漏学籍号信息。`,\n 姓名: `1、姓名号包含特殊字符\n 仅支持中文、英文、以及符号·。`,\n 性别: `1、性别包含特殊字符\n 录入男、女,1=男、2=女。`,\n 身高: `1、身高包含特殊字符\n .单位:cm\n .三位数值为厘米,154为厘米\n .数值范围:50~300`,\n 体重: `1、体重包含特殊字符\n .单位为kg\n .数值范围:10-300`,\n 肺活量: `1、肺活量包含特殊字符\n .单位:ml\n .数值范围:500~9999`,\n 坐位体前屈: `1、坐位体前屈包含特殊字符\n .单位:厘米\n .数值范围:-30~40\n .允许1位小数录入`,\n 一分钟跳绳: `1、一分钟跳绳号包含特殊字符\n .单位:个\n .数值范围 :0-300\n .整数`,\n 仰卧起坐: `1、仰卧起坐包含特殊字符\n .数值范围 0~99\n .整数`,\n '50米跑': `1、50米跑包含特殊字符\n .数值范围:5.0~20.0\n .1位小数\n .单位:秒\n .秒的符号为【.】或者【″】`,\n '50米*8': `1、50米*8别包含特殊字符\n .单位:秒\n .数值范围 >0\n .格式 3′45″ (″(秒号)可省略) 或者3′45″ (″(双引号)可省略 )`,\n '800米': `1、800米包含特殊字符\n .单位:秒\n .数值范围 >0\n .格式 3′45″ (″(秒号)可省略) 或者3′45″ (″(双引号)可省略 )`,\n '1000米': `1、1000米包含特殊字符\n .单位:秒\n .数值范围 >0\n .格式 3′45″ (″(秒号)可省略) 或者3′45″ (″(双引号)可省略 )`,\n 立定跳远: `1、立定跳远包含特殊字符\n .单位:厘米\n .数值范围:50~400cm`,\n 引体向上: `1、引体向上包含特殊字符\n .数值范围 0~99\n .整数`,\n}\n\nexport function buildExamRecordStandardHintLines(colName: string) {\n const txt = ExamRecordStandardHint[colName]\n if (!txt) {\n return null\n }\n const reasonLines: { cssClass: string; content: string }[] = [\n {\n cssClass: 'title',\n content: `${colName}错误可能为以下原因`,\n },\n ]\n const lines = txt.split('\\n')\n for (let line of lines) {\n line = line.trim()\n if (line.startsWith('.')) {\n reasonLines.push({ cssClass: 'list', content: line.slice(1) })\n } else if (line.startsWith('*')) {\n reasonLines.push({ cssClass: 'strong', content: line.slice(1) })\n } else if (/\\d、.*/.test(line)) {\n reasonLines.push({ cssClass: 'item', content: line })\n } else {\n reasonLines.push({ cssClass: '', content: line })\n }\n }\n return reasonLines\n}\n","import { IDrillSimple } from './drill'\nimport { TeacherRoleType } from './teacher'\n\nexport enum GlobalConfigRouteMetaEnum {\n All = 'needConfigAll',\n Drills = 'needConfigDrills',\n Homework = 'needConfigHomework',\n CompetitionType = 'needCompetitionType',\n DrillCategories = 'needConfigDrillCategories',\n}\n\nexport interface MetricUnit {\n name: string\n title: string\n default: number\n min: number\n max: number\n step: number\n}\n\nexport interface ContainerTypeConfigItem {\n name: string\n title: string\n metric_units: MetricUnit[]\n}\n\nexport interface HomeworkSelectScopeDrill {\n drill_id: string\n title: string\n default: number\n min: number\n max: number\n img_url?: string\n equipments?: string[]\n duration_seconds?: number\n difficult_level?: string\n orientation?: string\n record_type: 'score_distance' | 'score_duration' | 'score_count' | 'score'\n action_type?: string\n}\n\nexport interface HomeworkSelectScopeItem {\n name: string\n title: string\n drills: HomeworkSelectScopeDrill[]\n default_drill_id: string\n}\n\nexport interface HomeworkTemplateItem {\n name: string\n title: string\n drill: HomeworkSelectScopeDrill\n}\n\nexport interface GlobalConfig {\n container_types: ContainerTypeConfigItem[]\n homework_select_scope: HomeworkSelectScopeItem[]\n default_homework: HomeworkTemplateItem[]\n drills_info?: { [k: string]: any }\n winter_holiday_homework_template: {\n [key: string]: HomeworkTemplateItem[]\n }\n}\n\nexport interface IGlobalConfigDrills {\n [index: string]: IDrillSimple\n}\n\nexport interface IGlobalConfigHomework {\n default_homework: HomeworkTemplateItem[]\n homework_select_scope: HomeworkSelectScopeItem[]\n}\n\nexport interface ISubCategory {\n label: string\n name: string\n drill_ids: string[]\n}\n\nexport interface IFirstCategory {\n label: string\n name: string\n children: ISubCategory[]\n}\n\nexport type MenuRole = Record>>\n","import { Grade } from './grade'\nimport { Clazz } from './clazz'\nimport { Drill } from './drill'\nimport { Student } from './student'\nimport { IQueryMultiplePagination } from './query'\nimport { HomeworkStudentSmartCheck } from './homework'\n\nexport enum HomeworkStatsType {\n ByGrade = 'byGrade',\n ByClazz = 'byClazz',\n ByDrill = 'byDrill',\n ByClock = 'byClock',\n ByStudent = 'byStudent',\n}\n\nexport enum HomeworkStatsPeriodType {\n Daily = 'daily',\n Weekly = 'weekly',\n}\n\nexport interface IHomeworkStatsParam {\n type: HomeworkStatsType\n icon: string\n title: string\n query: IQueryMultiplePagination\n periodType?: HomeworkStatsPeriodType\n description: string\n}\n\nexport interface IHomeworkStatByGradeByClazzBase {\n homework_count: number\n total_duration: number\n avg_duration: number\n total_play_count: number\n avg_play_count: number\n student_count: number\n exceptional_count: number\n completed_student_count: number\n participated_student_count: number\n}\n\nexport interface IHomeworkStatByGradeBase extends IHomeworkStatByGradeByClazzBase {\n grade: Grade\n}\n\nexport interface IHomeworkStatByGradeDaily extends IHomeworkStatByGradeBase {\n homework_date: string\n}\n\nexport interface IHomeworkStatByGradeWeekly extends IHomeworkStatByGradeBase {\n homework_start_date: string\n homework_end_date: string\n}\n\nexport interface IHomeworkStatByClazzBase extends IHomeworkStatByGradeByClazzBase {\n clazz: Clazz\n}\n\nexport interface IHomeworkStatByClazzDaily extends IHomeworkStatByClazzBase {\n homework_date: string\n}\n\nexport interface IHomeworkStatByClazzWeekly extends IHomeworkStatByClazzBase {\n homework_start_date: string\n homework_end_date: string\n}\n\nexport interface IHomeworkStatByStudentBase {\n clazz: Clazz\n student: Student\n total_duration: number\n homework_item_count: number\n completed_item_count: number\n}\n\nexport interface IHomeworkStatByStudentDaily {\n homework_type: string\n homework_date: string\n status: string\n ai_detection: HomeworkStudentSmartCheck\n completed_at: string\n}\n\nexport interface IHomeworkStatByStudentWeekly {\n homework_types: string[]\n homework_count: number\n completed_homework_count: number\n homework_start_date: string\n homework_end_date: string\n}\n\nexport interface IHomeworkStatByClock {\n clazz: Clazz\n student: Student\n homework_count: number\n done_count: number\n un_start_count: number\n uncompleted_count: number\n exceptional_count: number\n delayed_done_count: number\n status_by_day: Array<{\n date: string\n status: string\n rating: string | null\n }>\n}\n\nexport interface IHomeworkStatByDrill {\n clazz: Clazz\n student: Student\n drill: Drill\n completed_at: string\n ai_detection: HomeworkStudentSmartCheck\n play_duration: number\n rating: string\n score: number\n}\n","export enum LoginMethod {\n ByPhone = 'by-phone',\n ByQrCode = 'by-qrcode',\n ByAccount = 'by-account',\n}\n\nexport enum LoginAccountType {\n Sports = 'sports', // 运动号\n Cooperation = 'cooperation', // 合作号\n}\n\nexport interface ILoginResult {\n auth_token: string\n}\n","import { SchoolRule } from './schoolManage'\n\n// 3: 付费学校, 4: 付费且添加学校的 , 其余目前没有功能支持\nexport enum ISchoolOperateType {\n OfficialAuth = 1,\n Paid = 3,\n PaidExport = 4,\n}\n\nexport interface School {\n id?: number\n province: string\n school_pos: string\n city: string\n district: string\n location: string\n school_id: number\n school_name: string\n school_type: number\n school_length: SchoolRule | null\n operate_type: ISchoolOperateType\n verified: boolean\n verified_start_date: string\n verified_end_date: string\n verify_method: 'student_code' | 'account'\n is_tzy_university_version?: boolean\n}\n","export enum StatusUnstartStartedEnded {\n Unstart = 'unstart',\n Started = 'started',\n Ended = 'ended',\n}\n","import { Clazz } from './clazz'\nimport { School } from './school'\nimport { Teacher } from './teacher'\nimport { HomeworkContent } from './homework'\nimport { CompetitionType } from './competition'\nimport { StatusUnstartStartedEnded } from './status'\nimport { HomeworkPlanTemplate } from './homeworkTemplate'\n\nexport enum VacationHomeworkType {\n WinterVacation2021 = 'winter_hw_2021',\n SummerVacation2022 = 'activity_summer_2022',\n SpringSemester2022Homework = 'activity_start_term_202202_homework',\n SpringSemester2022Competition = 'activity_start_term_202202_competition',\n}\n\nexport enum VacationHomeworkPlanItemTopicEnum {\n Exam = 'exam',\n Homework = 'homework',\n Competition = 'competition',\n}\n\nexport interface IVacationHomeworkConfig {\n name: string\n label: string\n activityName: string\n topics: [boolean, boolean, boolean]\n startDate: Date\n endDate: Date\n}\n\nexport interface IVacationHomeworkPlan {\n id: string\n title: string\n message: string\n start_date: string\n end_date: string\n classes: Clazz[]\n teacher: Teacher\n status: StatusUnstartStartedEnded\n}\n\nexport interface IVacationHomeworkPlanDetails extends IVacationHomeworkPlan {\n hw_type: VacationHomeworkType\n schools: School[]\n items: IVacationHomeworkPlanItem[]\n}\n\nexport interface IVacationHomeworkPlanItem {\n weekno: number\n homework?: {\n title: string\n template_id: string\n is_check_wd5: boolean\n message: string\n biz_items: { id: string; title: string | null }[]\n homework_contents: HomeworkContent[]\n }\n competition?: {\n title: string\n biz_items: { id: string; title: string | null }[]\n take_part_limits: number | null\n competition_type_id: number\n }\n body_exam?: {\n title: string\n body_exam_drill_ids: string[]\n }\n}\n\nexport interface IVacationHomeworkPlanItemDataItem {\n week: number\n label: string\n plan: {\n exam?: { title: string } | null\n homework?: { title: string; homework_contents: HomeworkContent[]; message: string } | null\n competition?: {\n title: string\n competition_type_id: number\n biz_items: { id: string; title: string | null }[]\n } | null\n }\n startDate: Date\n endDate: Date\n dateRange: string\n}\n\nexport enum VacationHomeworkPlanTemplateScope {\n Official = 1,\n None = 2,\n}\n\nexport interface IVacationHomeworkPlanTemplate {\n id: string\n icon: string\n title: string\n subtitle: string\n scope: VacationHomeworkPlanTemplateScope\n grades: number[]\n start_time: string\n end_time: string\n}\n\nexport interface IVacationHomeworkPlanTemplateDetails extends IVacationHomeworkPlanTemplate {\n items: IVacationHomeworkPlanTemplateDetailsItem[]\n}\n\nexport interface IVacationHomeworkPlanTemplateDetailsItem {\n weekno: number\n competition_type: CompetitionType\n homework_template: HomeworkPlanTemplate\n}\n\nexport interface IVacationHomeworkParticipant {\n identify_id: string\n teacher_name: string\n school_name: string\n province: string\n city: string\n district: string\n attend_time: string\n}\n","import { Teacher } from './teacher'\nimport { Clazz } from './clazz'\nimport { Student } from './student'\nimport { IGradeUniversity } from './grade'\n\nexport enum Winter2023ConfigCategory {\n SAFELESSON = 'online_course',\n PELESSON = 'homework',\n QAQRSKILLS = 'challenge',\n MIX = 'inter_subject_practice',\n}\n\nexport interface IWinter2023Config {\n id: string\n type: Winter2023ConfigCategory\n title: string\n subtitle: string\n icon: string\n icon_thumb: string\n multiple: false\n options: {\n id: string\n title: string\n description: string\n type: 'detailed' | 'custom'\n tags: string[]\n subjects?: string[]\n }[]\n groups: {\n option_ids: string[]\n title: string\n }[]\n}\n\nexport interface IWinter2023LessonsQurey {\n task_id: string\n option_id: string\n grade_no: number\n start_date: string | Date\n end_date: string | Date\n}\n\nexport interface IWinter2023Form {\n id: string | null\n title: string\n start_date: string | Date\n end_date: string | Date\n class_ids: number[]\n tasks: {\n task_id: string\n options: {\n option_id: string\n title?: string\n subjects?: string[]\n description?: string\n }[]\n }[]\n}\n\nexport interface IWinter2023Preview {\n id: string\n title: string\n start_date: string | Date\n end_date: string | Date\n teacher: {\n teacher_id: string\n user_id: string\n teacher_name: string\n brief_phone: string\n head_img_url: string\n }\n class_ids: number[]\n tasks: {\n task_id: string\n options: {\n option_id: string\n title?: string\n subjects?: string[]\n description?: string\n }[]\n }[]\n}\n\nexport interface IPaperDetail {\n title: string\n paper_type: number\n total_score: number\n single_countdown_seconds: number\n questions: IPaperQuestion[]\n}\nexport interface IPaperQuestionOptions {\n id: string\n content: string\n is_right: boolean\n seq: number\n}\n\nexport interface IPaperQuestion {\n id: string\n category: string\n question_type: number\n subject: string\n score: number\n seq: number\n difficulty_level: string\n explanation: string\n options: IPaperQuestionOptions[]\n}\n\nexport interface IChanlengeItem {\n name: string\n item_type: number\n item_type_str: string\n item_biz_no: string\n level_no: number\n difficulty_level: string\n description: string\n}\n\nexport enum ExamQuestionType {\n TestByPractice = 'testByPractice',\n TestByExam = 'testByExam',\n}\n\nexport interface ChallengeConfig {\n name: string\n challenge_id: string\n challenge_type: number\n challenge_type_str: 'SPECIAL_EXERCISE' | 'KNOWLEDGE'\n data: IPaperDetail[] | IChanlengeItem[]\n}\n\nexport interface IStatusOfWinter2023Awards {\n vacation_plan_created: boolean\n course_received: boolean\n gift_pack_received: boolean\n target_of_invitee: number\n invited: number\n total_gift_packs_today: number\n remaining_gift_packs_today: number\n tracking_company_name: string\n tracking_no: string\n}\n\nexport interface ITrainingListItem {\n name: string\n class_vo_list: Clazz[]\n grade_scope_list: IGradeUniversity[]\n teacher_vo: Teacher\n start_datetime: Date\n end_datetime: Date\n group_id: string\n paper_id: string\n}\n\nexport interface IChallengeRepoItem {\n id: string\n name: string\n challenge_tye: number\n challenge_type_str: string\n total_level_no: number\n img_url: string\n}\n\nexport interface IClazzStaticSummary {\n students_count: number\n completion_count: number\n uncompleted_count: number\n completion_rate: string\n challenge_class_id: null | number\n class_vo: Clazz | null\n challenge_id: string\n paper_id: string\n}\n\nexport interface IStudentStaticSummary {\n student_vo: Student\n class_vo: Clazz\n challenge_user_score_id: string\n current_level_no: number\n total_level_no: number\n star_score: string\n completion_status: string\n}\n\nexport interface IStudentPrize {\n reward_item_id: string\n name: string\n min_day?: number\n min_star?: number\n pic: string\n}\n\nexport interface IStudentChallengeRecord {\n student_vo: Student\n class_vo: Clazz\n score: string\n item_records: IChallengeRecords[]\n}\n\nexport interface IChallengeRecords {\n challenge_item_user_score_id: string\n level_no: number\n name: string\n item_type: number\n drill_records: IChallengeDrillRecord[]\n max_paper_record: IChallengeMaxPaperRecord\n}\n\nexport interface IChallengeDrillRecord {\n name: string\n drill_record_id: string\n duration: number\n star_score: number\n ai_detect_label: string\n time: string\n}\n\nexport interface IChallengeMaxPaperRecord {\n correct_quantity: number\n wrong_quantity: number\n undo_quantity: number\n total_quantity: number\n star_score: number\n questions: IStudentChallengeRecordQuestion[]\n}\n\nexport interface IStudentChallengeRecordQuestion {\n subject: string\n status: number\n explanation: string | null\n user_option_ids: string[]\n right_option_ids: string[]\n options: IStudentQuestionOptions[]\n}\n\nexport interface ICreateExamOrChallengeForm {\n paper_id: string\n paper_type: string\n name: string\n start_datetime: Date\n end_datetime: Date | null\n question_score: number | null\n class_id_list: number[]\n grade_ids: number[]\n}\n\nexport interface IPaperItem {\n paper_id: string\n title: string\n paper_type: 1 | 2\n author: string\n}\n\nexport interface IPaperExamStaticInfo {\n exam: ITeacherPaperExamItem\n class_total_summary: IPaperExamStaticInfoSummary\n class_summary_list: IPaperExamStaticInfoSummary[]\n}\n\nexport interface ITeacherPaperExamItem {\n online_exam_id: string\n paper_id: string\n snapshot_paper_id: string\n title: string\n start_datetime: Date\n end_datetime: Date\n status: string\n class_vo_list: Clazz[]\n grade_scope_list: IGradeUniversity[]\n teacher_vo: Teacher\n}\n\nexport interface ITeacherPaperExamItemUpdate {\n online_exam_id: string\n name: string\n start_datetime: Date\n end_datetime: Date\n}\n\nexport interface IPaperExamStaticInfoSummary {\n students_count: number\n attending_count: number\n un_start_count: number\n completion_count: number\n class_vo: Clazz\n avg_score: number\n online_exam_class_id: string\n}\n\nexport interface IExamSummaryItem {\n online_exam_id: string\n paper_id: string\n snapshot_paper_id: string\n title: string\n start_datetime: string\n end_datetime: string\n status: string\n class_vo_list: Clazz\n teacher_vo: Teacher\n}\n\nexport interface IExamStudentStaticInfo {\n exam: ITeacherPaperExamItem\n class_total_summary: IPaperExamStaticInfoSummary\n student_summary_list: IExamStudentStaticItem[]\n}\n\nexport interface IExamStudentStaticItem {\n online_exam_class_id: string\n question_count: number\n answer_count: number\n paper_status: 0 | 1 | 2\n correct_quantity: number\n score: number\n student_vo: Student\n class_vo: Clazz\n}\n\nexport interface IExamStudentPaper {\n title: string\n correct_quantity: number\n wrong_quantity: number\n undo_quantity: number\n total_quantity: number\n star_score: number\n questions: IStudentChallengeRecordQuestion[]\n class_vo: Clazz\n student_vo: Student\n}\n\nexport interface IPaperQuestion {\n id: string\n category: string\n question_type: number\n subject: string\n score: number\n seq: number\n difficulty_level: string\n options: IPaperQuestionOptions[]\n}\n\nexport interface IStudentQuestionOptions {\n id: string\n content: string\n is_right: boolean\n}\n\nexport interface IStudentQuestion {\n subject: string\n status: number\n explanation: string\n user_option_ids: string[]\n right_option_ids: string[]\n options: IStudentQuestionOptions[]\n}\n\nexport interface IWinter2023Stat {\n overview: {\n sum_duration: number\n sum_completed: number\n avg_duration: number\n sum_record_count: number\n }\n task_stats: {\n task: {\n id: string\n type: Winter2023ConfigCategory\n title: string\n subtitle: string\n icon: string\n icon_thumb: string\n }\n sum_record_count: number\n sum_completed: number\n avg_duration: number\n completion_rate: number\n avg_score: number\n }[]\n}\n\nexport interface IDatetime {\n time: string\n date: Date\n}\n\nexport interface IYearTopRank {\n school_name: string\n locate: string\n drill_number: number\n}\n\nexport interface IYearTopRankMine {\n ranking: number\n school_name: string\n locate: string\n drill_number: number\n}\n\nexport interface IWinter2023UserContributionForm {\n name: string\n url: string\n source: string\n}\n\nexport interface IWinter2023UserContribution {\n name: string\n url: string\n heat: string\n}\n\nexport interface IWinter2023UserContributionMine {\n name: string\n url: string\n heat: number\n ranking: number\n}\n\nexport interface IWinter2023MixSubjectsItem {\n id: string\n title: string\n start_date: string\n end_date: string\n classes: Clazz[]\n teacher: Teacher\n online: boolean\n}\n\nexport interface IWinter2023MixSubjectClazzSummary {\n student_count: number\n completed: number\n unstarted: number\n}\n\nexport interface IWinter2023MixSubjectClazzItem {\n clazz: Clazz\n student_count: number\n completed: number\n}\n\nexport interface IWinter2023MixSubjectStudentItem {\n student: Student\n gender: string\n progress: number\n}\n","export class BaseService {\n get cls() {\n return Object.getPrototypeOf(this).constructor\n }\n}\n\nexport class BaseModelService extends BaseService {\n public model!: T\n\n constructor(model: T) {\n super()\n\n this.setModel(model)\n }\n\n setModel(model: T) {\n this.model = model\n }\n}\n","import sortBy from 'lodash/sortBy'\nimport { Clazz, IGradeClazzSelectOption, Option, ISportsTeam, IGradeClazzJoin } from 'kuaidong-model'\nimport { AClazz, ASchool, ATeacher } from 'kuaidong-api'\nimport groupBy from 'lodash/groupBy'\nimport { loginStore } from 'kuaidong-store'\nimport { SchoolUtil } from 'kuaidong-lib'\nimport { Form, Register } from './FormService'\n\nexport const CLASS_PER_GRADE = 300\n\ntype OptionCbOfClazz = (clazz: Clazz) => { label: string; value: any; disabled?: boolean; meta?: any }\n\nconst DEFAULT_GRADES: Option[] = [\n { value: 7, label: '小班' },\n { value: 8, label: '中班' },\n { value: 9, label: '大班' },\n { value: 10, label: '入学前' },\n { value: 11, label: '一年级' },\n { value: 12, label: '二年级' },\n { value: 13, label: '三年级' },\n { value: 14, label: '四年级' },\n { value: 15, label: '五年级' },\n { value: 16, label: '六年级' },\n { value: 17, label: '七年级' },\n { value: 18, label: '八年级' },\n { value: 19, label: '九年级' },\n { value: 31, label: '高一' },\n { value: 32, label: '高二' },\n { value: 33, label: '高三' },\n { value: 61, label: '大一' },\n { value: 62, label: '大二' },\n { value: 63, label: '大三' },\n { value: 64, label: '大四' },\n { value: 71, label: '研一' },\n { value: 72, label: '研二' },\n { value: 73, label: '研三' },\n { value: 74, label: '研四' },\n { value: 80, label: '博士' },\n].map((grade) => ({ value: grade.value, label: SchoolUtil.buildGradeName(grade.value) }))\n\nexport class ClassService {\n static ALL_GRADES = -2\n static ALL_CLASSES = -3\n\n static formatClass(classNo: number) {\n if (classNo === ClassService.ALL_CLASSES) {\n return '所有班级'\n } else if (classNo > 0) {\n return `${classNo}班`\n } else {\n return ''\n }\n }\n\n static formatGrade(gradeNo: number): string {\n if (gradeNo === ClassService.ALL_GRADES) {\n return '所有年级'\n }\n\n const gradeInZHCN = ['一', '二', '三', '四', '五', '六', '七', '八', '九']\n\n if (gradeNo === 7) {\n return '小班'\n } else if (gradeNo === 8) {\n return '中班'\n } else if (gradeNo === 9) {\n return '大班'\n } else if (gradeNo === 10) {\n return '入学前'\n } else if (gradeNo >= 31 && gradeNo <= 33) {\n return `高${gradeInZHCN[gradeNo - 31]}`\n } else if (gradeNo >= 61 && gradeNo <= 64) {\n return `大${gradeInZHCN[gradeNo - 61]}`\n } else if (gradeNo >= 11 && gradeNo <= 19) {\n return `${gradeInZHCN[gradeNo - 11]}年级`\n } else if (gradeNo >= 71 && gradeNo <= 74) {\n return `研${gradeInZHCN[gradeNo - 71]}`\n } else if (gradeNo === 80) {\n return '博士'\n }\n\n return '其他年级'\n }\n\n // 体质测试专用\n static formatGradeOfExam(gradeNo: number): string {\n const gradeInZHCN = ['一', '二', '三', '四', '五', '六', '七', '八', '九']\n\n if (gradeNo >= 31 && gradeNo <= 33) {\n return `高${gradeInZHCN[gradeNo - 31]}`\n } else if (gradeNo >= 41 && gradeNo <= 44) {\n return `大${gradeInZHCN[gradeNo - 41]}`\n } else if (gradeNo >= 11 && gradeNo <= 16) {\n return `${gradeInZHCN[gradeNo - 11]}年级`\n } else if (gradeNo >= 21 && gradeNo <= 23) {\n return `${gradeInZHCN[gradeNo - 15]}年级`\n } else if (gradeNo >= 51 && gradeNo <= 54) {\n return `研${gradeInZHCN[gradeNo - 51]}`\n } else if (gradeNo === 60) {\n return '博士'\n }\n\n return '其他年级'\n }\n\n static formatClassWithGrade(gradeNo: number, classNo: number) {\n const formattedGrade = this.formatGrade(gradeNo)\n if (!formattedGrade) {\n return ''\n }\n return `${this.formatGrade(gradeNo)}${this.formatClass(classNo)}`\n }\n\n static buildGradeOptions(clazzes: Clazz[]) {\n return Array.from(new Set(clazzes.map((clazz) => clazz.grade_no)))\n .sort((a, b) => a - b)\n .map((grade) => ({\n label: this.formatGrade(grade),\n value: grade,\n }))\n }\n\n static buildClassOptionWithGradeNoClazzNo(clases: Clazz[]) {\n const res: IGradeClazzSelectOption[] = []\n const groupByGradeNo = groupBy(clases, 'grade_no')\n\n for (const grade_no in groupByGradeNo) {\n const curGrade: IGradeClazzSelectOption = {\n label: SchoolUtil.buildGradeName(Number(grade_no)) || '其他年级',\n value: Number(grade_no),\n children: groupByGradeNo[grade_no].map((clz) => {\n return {\n label: clz.name,\n value: clz.class_no,\n }\n }),\n }\n res.push(curGrade)\n }\n return res\n }\n\n static buildClassOptions(classes: Clazz[], allGrades = false, allClasses = false, standardClazzName = false) {\n const sorted = sortBy(classes, ['grade_no', 'class_no'])\n const result: Option[] = []\n\n if (allGrades) {\n result.push({\n value: this.ALL_GRADES,\n label: this.formatGrade(this.ALL_GRADES),\n children: [\n {\n value: this.ALL_CLASSES,\n label: this.formatClass(this.ALL_CLASSES),\n },\n ],\n })\n }\n\n function lastGradeNo(gradeId: number) {\n const clazz = classes.find((c) => c.grade_id === gradeId)\n if (clazz) {\n return clazz.grade_no\n }\n }\n\n sorted.forEach((clazz) => {\n const last = result.length ? result[result.length - 1] : null\n\n if (last && lastGradeNo(last.value) === clazz.grade_no) {\n last.children!.push({\n value: clazz.id,\n label: clazz.note_name || (standardClazzName ? clazz.name : this.formatClass(clazz.class_no)),\n })\n } else {\n result.push({\n value: clazz.grade_id,\n label: this.formatGrade(clazz.grade_no),\n children: [\n ...(allClasses\n ? [\n {\n value: this.ALL_CLASSES,\n label: this.formatClass(this.ALL_CLASSES),\n },\n ]\n : []),\n {\n value: clazz.id,\n label: clazz.note_name\n ? clazz.note_name\n : standardClazzName\n ? clazz.name\n : this.formatClass(clazz.class_no),\n },\n ],\n })\n }\n })\n\n return result\n }\n\n static buildDefaultClassOptionsOld() {\n // 排除入学前\n return DEFAULT_GRADES.filter((x) => x.value !== 10).map((grade) => ({\n ...grade,\n children: Array.from(Array(CLASS_PER_GRADE).keys()).map((x) => {\n return { value: x + 1, label: `${x + 1}班` }\n }),\n }))\n }\n\n static async buildDefaultClassOptionsWithNoteName() {\n // console.log('buildDefaultClassOptionsWithNoteName')\n const schoolClazzInfos = await AClazz.clazzesOptions()\n return schoolClazzInfos.map((x) => this.buildClassOptionsByGradeClazzJoinInfo(x))\n /*\n let result = []\n // 是否是合作校\n if (schoolClazzInfo.type === 'class_limited') {\n // 合作校根据返回列表构建选项\n const groupByGradeNo = groupBy(schoolClazzInfo.classes, 'grade_no')\n // console.log(groupByGradeNo)\n result = DEFAULT_GRADES.filter((item) => Object.keys(groupByGradeNo).includes(String(item.value))).map(\n (grade) => {\n return {\n ...grade,\n children: groupByGradeNo[grade.value].map((clazz) => ({\n label: clazz.note_name !== null ? `${clazz.class_no}班(${clazz.note_name})` : `${clazz.class_no}班`,\n value: clazz.class_no,\n })),\n }\n }\n )\n } else if (schoolClazzInfo.type === 'grade_limited') {\n // 过期合作校根据返回列表构建选项,不限制班级\n const groupByGradeNo = groupBy(schoolClazzInfo.classes, 'grade_no')\n result = DEFAULT_GRADES.filter((item) => Object.keys(groupByGradeNo).includes(String(item.value))).map(\n (grade) => {\n return {\n ...grade,\n children: Array.from(Array(CLASS_PER_GRADE).keys()).map((x) => {\n const curGradeNo = grade.value\n const curClazzNo = x + 1\n let noteName = null\n if (groupByGradeNo[curGradeNo] !== undefined) {\n const clazzInfo = groupByGradeNo[curGradeNo].find((clazz) => {\n return clazz.class_no === curClazzNo\n })\n if (clazzInfo) {\n noteName = clazzInfo.note_name\n }\n }\n\n return {\n value: curClazzNo,\n label: noteName !== null ? `${curClazzNo}班(${noteName})` : `${curClazzNo}班`,\n }\n }),\n }\n }\n )\n } else {\n // 非合作校,构建全部选项\n let schoolAllClassInfo = await AClazz.all()\n schoolAllClassInfo = schoolAllClassInfo.filter((clazz) => {\n return clazz.note_name !== null\n })\n const groupByGradeNo = groupBy(schoolAllClassInfo, 'grade_no')\n result = DEFAULT_GRADES.map((grade) => ({\n ...grade,\n children: Array.from(Array(CLASS_PER_GRADE).keys()).map((x) => {\n const curGradeNo = grade.value\n const curClazzNo = x + 1\n let noteName = null\n if (groupByGradeNo[curGradeNo] !== undefined) {\n const clazzInfo = groupByGradeNo[curGradeNo].find((clazz) => {\n return clazz.class_no === curClazzNo\n })\n if (clazzInfo) {\n noteName = clazzInfo.note_name\n }\n }\n\n return { value: curClazzNo, label: noteName !== null ? `${curClazzNo}班(${noteName})` : `${curClazzNo}班` }\n }),\n }))\n }\n\n // 构建暑假班级选项\n const targetGrades = await AClazz.getSchoolGrades()\n const existsGrade = result.map((item) => item.value)\n const summerGrades = targetGrades.filter((item) => !existsGrade.includes(item))\n if (summerGrades.length > 0) {\n result = [this.buildGradeFullClassOptions(summerGrades[0]), ...result]\n }\n return result\n */\n }\n\n // 构建默认的班级选项\n static buildGradeFullClassOptions(gradeNo: number) {\n return {\n label: SchoolUtil.buildGradeName(gradeNo, { disabledSummerName: true }),\n value: gradeNo,\n children: Array.from(Array(CLASS_PER_GRADE).keys()).map((x) => {\n const curClazzNo = x + 1\n return { value: curClazzNo, label: `${curClazzNo}班` }\n }),\n }\n }\n\n static buildClassOptionsByGradeClazzJoinInfo(\n joinInfo: IGradeClazzJoin,\n options: { disabledSummerName?: boolean } = {\n disabledSummerName: false,\n }\n ) {\n // 班级数量上限\n const clazzSize = joinInfo.class_limit > 0 ? joinInfo.class_limit : CLASS_PER_GRADE\n const result = {\n label: SchoolUtil.buildGradeName(joinInfo.grade_no, {\n disabledSummerName: options.disabledSummerName || false,\n }),\n value: joinInfo.grade_no,\n children: Array.from(Array(clazzSize).keys()).map((x) => {\n const curClazzNo = x + 1\n const noteName = joinInfo.custom_class_name_map[String(curClazzNo)]\n return { value: curClazzNo, label: noteName ? `${curClazzNo}班(${noteName})` : `${curClazzNo}班` }\n }),\n }\n return result\n }\n\n static async buildDefaultClassOptions() {\n return loginStore.isAuthed ? await this.buildDefaultClassOptionsWithNoteName() : this.buildDefaultClassOptionsOld()\n }\n\n static buildClassOptionsWithDisabled(classes: Clazz[], allGrades = false, allClasses = false) {\n const result = this.buildClassOptions(classes, allGrades, allClasses)\n\n const clazzDisabledMap = classes.reduce((result, clazz) => {\n result[clazz.id] = !clazz.available\n return result\n }, {} as { [index: number]: boolean })\n\n for (const grade of result) {\n let count = 0\n\n for (const clazz of grade.children || []) {\n clazz.disabled = clazzDisabledMap[clazz.value]\n\n if (clazz.disabled) {\n count++\n }\n }\n\n grade.disabled = count === (grade.children?.length || 0)\n }\n\n return result\n }\n\n static buildClassOptionsWithNoteName(clazzs: Clazz[], useGradeNo = false) {\n const clazzGroupByGrade = groupBy(clazzs, 'grade_no')\n return Object.keys(clazzGroupByGrade).map((gradeNo) => {\n return {\n label: SchoolUtil.buildGradeName(+gradeNo),\n value: useGradeNo ? +gradeNo : clazzs.find((item) => item.grade_no === +gradeNo)?.grade_id,\n children: clazzGroupByGrade[gradeNo as keyof typeof clazzGroupByGrade]\n .map((clazz) => {\n return {\n label: clazz.note_name || clazz.name || SchoolUtil.buildClazzName(+gradeNo, clazz.class_no),\n value: clazz.id,\n class_no: clazz.class_no,\n }\n })\n .sort((a, b) => a.class_no - b.class_no),\n }\n })\n }\n\n static buildClassOptionsWithCb(\n classes: Clazz[],\n gradeCb: OptionCbOfClazz = (clazz: Clazz) => ({\n value: clazz.grade_id,\n label: this.formatGrade(clazz.grade_no),\n }),\n clazzCb: OptionCbOfClazz = (clazz: Clazz) => ({\n label: clazz.note_name || clazz.name,\n value: clazz.id,\n })\n ) {\n const sorted = sortBy(classes, ['grade_no', 'class_no'])\n return sorted.reduce((grdOps: Option[], clz: Clazz) => {\n const grdOp = gradeCb(clz)\n const clzOp = clazzCb(clz)\n const found = grdOps.find((grd) => grd.value === grdOp.value)\n if (found) {\n found.children!.push(clzOp)\n } else {\n grdOps.push({ ...grdOp, children: [clzOp] })\n }\n return grdOps\n }, [])\n }\n\n public static formatClazzNoteNameAndStudentAmounts(noteName: string | null, amount: number) {\n const studentsInfo = amount !== undefined ? `${amount}位学生` : ''\n const noteNameInfo = noteName ? `${noteName} · ` : ''\n return noteName !== null ? `${noteNameInfo}${studentsInfo}` : `${studentsInfo}`\n }\n\n public static formatClazzNoteName(clazzInfo: Pick) {\n return clazzInfo.note_name !== null ? `${clazzInfo.note_name}` : `${clazzInfo.name}`\n }\n}\n\ninterface IClazzDescribe {\n id: number | string\n count: number\n name: string\n avatar: string\n isMine: boolean\n note_name: string\n grade_no: number\n class_no: number\n}\n\nclass ClazzDescribe implements IClazzDescribe {\n constructor(\n public id: number,\n public count: number,\n public name: string,\n public avatar: string,\n public isMine: boolean,\n public note_name: string,\n public grade_no: number,\n public class_no: number\n ) {}\n}\n\nclass BaseClazzList {\n public filter = '' // 根据名字filter\n // public static readonly FilterOption = 'all' // 仅 all的时候触发filter\n constructor(public items: T[]) {}\n\n get myItemsLength() {\n return this.showItems('mine').length\n }\n\n showItems(op: 'mine' | 'all' = 'all') {\n let items = this.items.filter((item) => op === 'all' || item.isMine)\n if (this.searchFilter) {\n items = items.filter(\n (x) =>\n this.makeFilterableContent(x.name).includes(this.searchFilter) ||\n this.makeFilterableContent(x.note_name).includes(this.searchFilter)\n )\n }\n return items\n }\n\n get searchFilter() {\n return this.makeFilterableContent(this.filter)\n }\n\n studentsAmount(op: 'mine' | 'all' = 'all') {\n return this.showItems(op).reduce((total, item) => total + item.count, 0)\n }\n\n clazzesAmount(op: 'mine' | 'all' = 'all') {\n return this.showItems(op).length\n }\n\n // 去掉中英文括号, 英文都变成大写\n makeFilterableContent(content: string) {\n if (!content) {\n content = ''\n }\n return content.replace('(', '').replace('(', '').replaceAll(')', '').replaceAll(')', '').toUpperCase()\n }\n}\n\nconst avatars: { url: string; name: string }[] = [\n {\n url:\n 'https://cdn.tiantiantiaosheng.com/dataupload/tool/2022-11-27/non_prod/8c153c63-7c60-4f24-a91a-bd0ed3927f7a/rope.png',\n name: '跳绳队',\n },\n {\n url:\n 'https://cdn.tiantiantiaosheng.com/dataupload/tool/2022-11-27/non_prod/7eb44c31-f35d-468f-b081-f15c4ecaab0e/football.png',\n name: '足球队',\n },\n {\n url:\n 'https://cdn.tiantiantiaosheng.com/dataupload/tool/2022-11-27/non_prod/973b0b30-cbcd-4ccc-9273-5db6cfa76d1e/basketball.png',\n name: '篮球队',\n },\n {\n url:\n 'https://cdn.tiantiantiaosheng.com/dataupload/tool/2022-11-27/non_prod/83828175-8069-4625-bb68-bd854ecbd288/volleyball.png',\n name: '排球队',\n },\n {\n url:\n 'https://cdn.tiantiantiaosheng.com/dataupload/tool/2022-11-27/non_prod/2d6b4b1a-2761-4d86-aaa4-cc5a442ace5d/cheers.png',\n name: '啦啦队',\n },\n {\n url:\n 'https://cdn.tiantiantiaosheng.com/dataupload/tool/2022-11-30/non_prod/3edc551a-fde5-43a0-a373-9edbe735a681/flag.png',\n name: '升旗队',\n },\n {\n url:\n 'https://cdn.tiantiantiaosheng.com/dataupload/tool/2023-01-29/non_prod/ba932ed7-6b22-4386-9588-ee6151884a4b/cc4a4be0-f02f-4fea-9573-0a4ae4a77773.png',\n name: '田径队',\n },\n {\n url:\n 'https://cdn.tiantiantiaosheng.com/dataupload/tool/2022-11-27/non_prod/2028f41c-836f-4dd9-a7fe-b1d5918f3ddf/badminton.png',\n name: '羽毛球队',\n },\n]\n\nclass SportsTeamCreateForm extends Form {\n static avatars = avatars\n\n name: string | null = null\n avatar: string | null = null\n\n @Register.registerRule('name')\n checkName() {\n if (!this.name) throw new Error('请填写运动会名称')\n return true\n }\n\n @Register.registerRule('avatar')\n checkAvatar() {\n if (!this.avatar) throw new Error('请选择运动会头像')\n return true\n }\n\n buildForm(): { note_name: string; img_url: string } {\n return {\n note_name: this.name!,\n img_url: this.avatar!,\n }\n }\n}\n\nclass ClassServiceHelper {\n static createClazz(clz: Clazz, isCollege = false) {\n const studentsAmount = clz.student_amount\n const name = clz.note_name ? clz.note_name : clz.name\n const clzName = isCollege ? name + `(${ClassServiceHelper.achieveClazzCode(clz)})` : name\n const avartar =\n 'https://cdn.tiantiantiaosheng.com/dataupload/tool/2022-11-27/non_prod/cda40639-a10d-4ec9-ba97-17f7b3dbb963/bc7a25aa-9de7-49ee-ab72-67c2e0144587.png'\n return new ClazzDescribe(\n clz.id,\n studentsAmount,\n clzName,\n avartar,\n clz.is_teaching,\n clz.note_name!,\n clz.grade_no,\n clz.class_no\n )\n }\n\n static createSportsTeam(clz: ISportsTeam) {\n const studentsAmount = clz.student_amount\n const name = clz.note_name ? clz.note_name : clz.name\n const clzName = name + ` (${ClassServiceHelper.achieveClazzCode(clz as any)})`\n const avartar = clz.img_url\n return new ClazzDescribe(\n clz.id,\n studentsAmount,\n clzName,\n avartar,\n clz.is_teaching,\n clz.note_name!,\n clz.grade_no,\n clz.class_no\n )\n }\n\n static createClazzList(clazzes: Clazz[], isCollege = false) {\n const clzs = clazzes.map((clz) => ClassServiceHelper.createClazz(clz, isCollege))\n return new BaseClazzList(clzs)\n }\n\n static createSportsTeamList(teams: ISportsTeam[]) {\n const ts = teams.map((team) => ClassServiceHelper.createSportsTeam(team))\n return new BaseClazzList(ts)\n }\n\n static achieveClazzCode(clazz: Clazz) {\n return `${clazz.grade_no > 70 || clazz.grade_no < 60 ? clazz.grade_no : clazz.grade_no - 20}${\n clazz.class_no < 100 ? (clazz.class_no < 10 ? '00' + clazz.class_no : '0' + clazz.class_no) : clazz.class_no\n }`\n }\n\n static createSportsTeamCreateForm() {\n return new SportsTeamCreateForm()\n }\n}\n\nexport { BaseClazzList, ClazzDescribe, ClassServiceHelper, SportsTeamCreateForm }\n\nexport type { IClazzDescribe }\n","import { DateUtil, DateWrapper, SchoolUtil, StringUtil, Weekday } from 'kuaidong-lib'\nimport {\n Clazz,\n CourseLiveStatus,\n ICourseLive,\n ICourseResourceGradeTag,\n ICourseResourceGradeTagClassMap,\n ICourseScheduleItem,\n ILiveCourseDetail,\n IOnlineCourseRepo,\n IOnlineCourseTag,\n ICourseResourcePreview,\n ICourseResourcePreviewRepoItem,\n ICourseRepoDetailItemDrill,\n ICourseRepoDetailItem,\n} from 'kuaidong-model'\nimport { TeacherService } from './TeacherService'\nimport groupBy from 'lodash/groupBy'\nimport cloneDeep from 'lodash/cloneDeep'\n\nexport class CourseLiveService {\n constructor(public model: ICourseLive) {}\n\n get courseClazzCount() {\n return this.model.detail?.class_list.length || '-'\n }\n get timeRange() {\n const courseStartTime = new DateWrapper(this.model.start_time)\n const courseEndTime = new DateWrapper(courseStartTime.date.getTime() + this.model.duration * 60 * 1000)\n return `${courseStartTime.showTimeStr}~${courseEndTime.showTimeStr}`\n }\n\n get dateRange() {\n const courseStartTime = new DateWrapper(this.model.start_time)\n const courseEndTime = new DateWrapper(this.model.end_time)\n return `${courseStartTime.showDateStr}~${courseEndTime.showDateStr}`\n }\n\n get startDateStr() {\n return new DateWrapper(this.model.start_time).showStrFullDate\n }\n\n get endDateStr() {\n return new DateWrapper(this.model.end_time).showStrFullDate\n }\n\n get isParticipated() {\n return this.model.marked\n }\n\n get liveStatusLabel() {\n switch (this.model.live_status) {\n case CourseLiveStatus.Open:\n return '未开始'\n case CourseLiveStatus.InProgress:\n return '进行中'\n case CourseLiveStatus.Ended:\n return '已结束'\n default:\n throw new Error('Wrong live status.')\n }\n }\n\n get isLiveStatusInProgress() {\n return this.model.live_status === CourseLiveStatus.InProgress\n }\n\n get classNameList() {\n return (this.model.detail?.class_list || [])\n .map((clazzInfo: Clazz) => {\n return clazzInfo.name\n })\n .join('、')\n }\n get coachName() {\n return TeacherService.buildName(this.model.coach.name)\n }\n}\n\nexport class NewCourseLiveService {\n public static showCourseCycleType(cycle: number) {\n if (cycle === 1) {\n return '每日一节'\n } else if (cycle === 7) {\n return '每周一节'\n }\n return null\n }\n\n public static showLessonLength(courseDetail: ILiveCourseDetail | null) {\n if (courseDetail) {\n return (\n (courseDetail.repo_item_id_list && courseDetail.repo_item_id_list.length) ||\n (courseDetail && courseDetail.online_course_item_list.length)\n )\n } else {\n return null\n }\n }\n public static getGradeClass(gradeTag: string) {\n return ICourseResourceGradeTagClassMap[gradeTag as keyof ICourseResourceGradeTag]\n }\n\n public static formatPlanIndex(index: number) {\n return StringUtil.padZero(index + 1, 2)\n }\n\n public static buildTagOptions(tags: IOnlineCourseTag[]) {\n return tags.map((item) => {\n return {\n label: item.tag_name,\n value: item.tag_name,\n }\n })\n }\n\n public static buildCategoryFromRepoList(liveCourseRepoList: IOnlineCourseRepo[]) {\n return Array.from(new Set(liveCourseRepoList.map((repo) => repo.category)))\n }\n\n public static filterRepoListByCourseNameAndTag(\n liveCourseRepoList: IOnlineCourseRepo[],\n filterCondition: { course_name: string; tag: string }\n ) {\n const generalCourseRepoList = liveCourseRepoList.filter((item) => {\n item.tag_list.includes('通用')\n })\n\n let res =\n filterCondition.course_name === ''\n ? liveCourseRepoList\n : liveCourseRepoList.filter((item) => {\n return item.name.includes(filterCondition.course_name)\n })\n\n res = filterCondition.tag === '' ? res : res.filter((item) => item.tag_list.includes(filterCondition.tag))\n\n return [...generalCourseRepoList, ...res]\n }\n\n // 显示课节开始时间\n public static buildLessonStartDate(dt: string | Date) {\n const dateWrapper = new DateWrapper(dt)\n if (dateWrapper.isCurrentYear()) {\n return `${StringUtil.padZero(dateWrapper.date.getMonth() + 1)}/${StringUtil.padZero(dateWrapper.date.getDate())}`\n } else {\n return `${dateWrapper.date.getFullYear()}/${StringUtil.padZero(\n dateWrapper.date.getMonth() + 1\n )}/${StringUtil.padZero(dateWrapper.date.getDate())}`\n }\n }\n public static buildLessonStartDateCN(dt: string) {\n const dateWrapper = new DateWrapper(dt)\n if (dateWrapper.isCurrentYear()) {\n return `${StringUtil.padZero(dateWrapper.date.getMonth() + 1)}月${StringUtil.padZero(\n dateWrapper.date.getDate()\n )}日`\n } else {\n return `${dateWrapper.date.getFullYear()}年${StringUtil.padZero(\n dateWrapper.date.getMonth() + 1\n )}月${StringUtil.padZero(dateWrapper.date.getDate())}日`\n }\n }\n // 构建课程表\n public static buildLessonScheduleDateList(scheduleItems: ICourseScheduleItem[]) {\n const sortLessons = scheduleItems.sort((a, b) => {\n return new Date(b.current_datetime).getTime() - new Date(a.current_datetime).getTime()\n })\n const res = sortLessons.map((item) => {\n return {\n ...item,\n date: this.buildLessonStartDateCN(item.current_datetime),\n }\n })\n return groupBy(res, 'date')\n }\n\n // 课程布置方式\n public static buildCourseStartLabel(weekNo: Weekday, courseCycle: number | null) {\n if (courseCycle === 7) {\n return DateUtil.formatWeekday(weekNo, '每周')\n } else if (courseCycle === 1) {\n return '每日'\n } else {\n return null\n }\n }\n // 显示课程上课时间\n public static buildCourseStartTime(dt: string | Date, courseCycle: number | null) {\n if (courseCycle === null) {\n return `${this.buildLessonStartDate(dt)} ${new DateWrapper(dt).showTimeStr}`\n } else {\n return new DateWrapper(dt).showTimeStr\n }\n }\n\n // 显示课程上课时间标签颜色\n public static buildCourseStartTimeLabel(dt: string) {\n const dw = new DateWrapper(dt)\n const now = new DateWrapper(new Date())\n if (dw.isToday()) {\n return 'today'\n } else if (DateUtil.beginningOfDay(now.date) > DateUtil.endOfDay(dw.date)) {\n return 'pass'\n } else {\n return 'future'\n }\n }\n\n // 构建课程详情中的课程信息\n public static buildLessonInfo(courseDetail: ILiveCourseDetail | null) {\n if (courseDetail) {\n return [\n {\n label: '开课日期',\n value: new DateWrapper(courseDetail.start_datetime).showDateStr,\n },\n {\n label: '结束日期',\n value: new DateWrapper(courseDetail.end_datetime).showDateStr,\n },\n {\n label: '上课时间',\n value: new DateWrapper(courseDetail.start_datetime).showTimeStr,\n },\n {\n label: '课程节数',\n value: `${courseDetail.repo_item_id_list && courseDetail.repo_item_id_list.length}节`,\n },\n ]\n } else {\n return []\n }\n }\n\n // 获取当前课程的班级范围\n public static buildClazzRangeList(classList?: Clazz[]) {\n if (classList && classList.length) {\n return classList.map((item) => {\n return {\n label: item.note_name || item.name || SchoolUtil.buildClazzName(item.grade_no, item.class_no),\n value: item.id,\n }\n })\n } else {\n return []\n }\n }\n // 构建课程详情班级信息\n public static buildClazzInfoGroupByGrade(clazzList: Clazz[]) {\n const clazzMap = clazzList.map((item) => {\n return {\n ...item,\n gradeName: SchoolUtil.buildGradeName(item.grade_no),\n }\n })\n const groups = groupBy(clazzMap, 'gradeName')\n const gradeNames = Object.keys(groups)\n const gradeInfo: {\n gradeName: string\n clazzName: string[]\n }[] = []\n gradeNames.forEach((gradeName) => {\n gradeInfo.push({\n gradeName: gradeName,\n clazzName: groups[gradeName].map((clazz) => {\n return clazz.note_name ? clazz.note_name : `${clazz.class_no}班`\n }),\n })\n })\n return gradeInfo\n }\n\n public static participatedRateColor(percent: number) {\n if (percent > 100) {\n percent = percent / 100\n }\n\n if (percent >= 0 && percent <= 20) {\n return {\n color: '#F24B53',\n }\n } else if (percent > 20 && percent <= 50) {\n return {\n color: '#FE9647',\n }\n } else {\n return {\n color: '#3BB528',\n }\n }\n }\n\n public static showClazzName(clazzInfos: Clazz[]) {\n const clazzName = clazzInfos.length ? clazzInfos[0].note_name || clazzInfos[0].name : ''\n return clazzInfos.length > 1 ? `${clazzName}等${clazzInfos.length}个班级` : clazzName\n }\n\n public static showAllClazzName(clazzInfos: Clazz[]) {\n return clazzInfos\n .map((item) => {\n return item.note_name || item.name\n })\n .join('、')\n }\n}\n\nabstract class OnlineCourseLesson {\n date: Date\n\n constructor(date: Date) {\n this.date = date\n }\n\n createMemento(): Date {\n return this.date\n }\n\n restore(date: Date): void {\n this.date = date\n }\n}\n\nexport class OnlineCourseLessonUnderAssign extends OnlineCourseLesson {\n repo_item_id: string\n title: string\n duration: number\n energy: number\n drill_number: number\n video_url: string\n difficult_level: string\n description: string\n repo_item_drills: ICourseRepoDetailItemDrill[]\n homework_template_id: string | null\n constructor(item: ICourseResourcePreviewRepoItem) {\n super(new Date(item.current_datetime))\n this.repo_item_id = item.repo_item_id\n this.title = item.title\n this.duration = item.duration\n this.energy = item.energy\n this.drill_number = item.drill_number\n this.video_url = item.video_url\n this.difficult_level = item.difficult_level\n this.description = item.description\n this.repo_item_drills = item.repo_item_drills\n this.homework_template_id = item.homework_template_id\n }\n\n buildItem(): ICourseResourcePreviewRepoItem {\n return {\n repo_item_id: this.repo_item_id,\n title: this.title,\n duration: this.duration,\n energy: this.energy,\n drill_number: this.drill_number,\n video_url: this.video_url,\n difficult_level: this.difficult_level,\n description: this.description,\n repo_item_drills: this.repo_item_drills,\n current_datetime: this.date.toISOString(),\n homework_template_id: this.homework_template_id,\n }\n }\n}\n\nexport class OnlineCourseLessonAfterAssign extends OnlineCourseLesson {\n course_item_id: string\n title: string\n duration: number\n energy: number\n drill_number: number\n video_url: string\n difficult_level: string\n description: string\n\n constructor(item: ICourseRepoDetailItem) {\n super(new Date(item.current_datetime!))\n this.course_item_id = item.course_item_id!\n this.title = item.title\n this.duration = item.duration\n this.energy = item.energy\n this.drill_number = item.drill_number\n this.video_url = item.video_url\n this.difficult_level = item.difficult_level\n this.description = item.description\n }\n}\n\nexport class OnlineCourseLessonsCollections {\n items: OnlineCourseLesson[]\n updatePosition: null | number = null\n step = 7\n\n constructor(items: OnlineCourseLesson[], step?: number) {\n this.items = items\n if (step) this.step = step\n const pre = cloneDeep(this.items[0])\n pre.date = DateUtil.addDay(this.items[0].date, -this.step)\n this.items.unshift(pre)\n }\n\n get isTailPosition() {\n return this.updatePosition === this.items.length - 1\n }\n\n updatePre(date: Date) {\n this.items[0].date = DateUtil.addDay(date, -this.step)\n }\n\n insertLessonByDate(lesson: OnlineCourseLesson) {\n const index = this.items.slice(1).findIndex((item) => item.date >= lesson.date)\n if (index === -1) {\n this.items.push(lesson)\n this.updatePosition = this.items.length - 1\n } else {\n this.items.splice(index + 1, 0, lesson)\n this.updatePosition = index + 1\n }\n this.updatePre(this.items[1].date)\n }\n\n removeLesson(index: number) {\n const lesson = this.items[index]\n this.items.splice(index, 1)\n this.updatePosition = index - 1\n if (this.updatePosition === 0) {\n this.updatePre(lesson.date)\n }\n return lesson\n }\n\n updateLesson(index: number) {\n const lesson = this.removeLesson(index)\n this.insertLessonByDate(lesson)\n }\n\n updateDateOflessons() {\n const target = this.items[this.updatePosition!]\n if (this.updatePosition === 0) {\n for (let i = 1; i < this.items.length; i++) {\n const date = this.items[i].date\n const hours = date.getHours()\n const minutes = date.getMinutes()\n this.items[i].date = DateUtil.mergeDateAndTime(\n DateUtil.addDay(target.date, i * this.step),\n `${hours}:${minutes}`\n )\n }\n } else {\n for (let i = this.updatePosition! + 1; i < this.items.length; i++) {\n this.items[i].date = DateUtil.addDay(target.date, (i - this.updatePosition!) * this.step)\n }\n }\n }\n}\n\nexport class OnlineCoursePreviewInfo {\n repository_id: string\n title: string\n start_datetime: string\n course_cycle: number\n week_no: number\n class_id_list: number[]\n lessons: OnlineCourseLessonsCollections\n constructor(info: ICourseResourcePreview) {\n this.repository_id = info.repository_id\n this.title = info.title\n this.start_datetime = info.start_datetime\n this.course_cycle = info.course_cycle\n this.week_no = info.week_no\n this.class_id_list = info.class_id_list\n this.lessons = new OnlineCourseLessonsCollections(\n info.repo_item_list.map((item) => new OnlineCourseLessonUnderAssign(item)),\n this.course_cycle\n )\n }\n\n createModifiedItems(): {\n repo_item_id: string\n current_datetime: string\n }[] {\n return this.lessons.items.slice(1).map((item) => ({\n repo_item_id: (item as OnlineCourseLessonUnderAssign).repo_item_id,\n current_datetime: item.date.toISOString(),\n }))\n }\n}\n\nexport class OnlineCourseUpdateInfo {\n online_course_id: string\n start_datetime: string\n course_cycle: number\n lessons: OnlineCourseLessonsCollections\n\n constructor(info: ILiveCourseDetail) {\n this.online_course_id = info.online_course_id\n this.start_datetime = info.start_datetime\n this.course_cycle = info.course_cycle\n this.lessons = new OnlineCourseLessonsCollections(\n info.online_course_item_list.map((item) => new OnlineCourseLessonAfterAssign(item)),\n this.course_cycle\n )\n }\n\n createInfoAfterUpdate(): {\n online_course_id: string\n course_items: {\n course_item_id: string\n current_datetime: string\n }[]\n } {\n return {\n online_course_id: this.online_course_id,\n course_items: this.lessons.items.slice(1).map((item) => ({\n course_item_id: (item as OnlineCourseLessonAfterAssign).course_item_id,\n current_datetime: item.date.toISOString(),\n })),\n }\n }\n}\n","import { AGlobalConfig, ATeacher } from 'kuaidong-api'\nimport { AppUtil, CanvasPoster, VueUtil } from 'kuaidong-lib'\nexport class DownloadService {\n static async buildBase64QrCodeUrl(\n scene: string,\n options: { width: number; logo?: string; logoWidth?: number; noLogo?: boolean; baseUrl?: string },\n qd?: string\n ): Promise {\n const url = await this.buildDownloadUrl(scene, { baseUrl: options.baseUrl }, qd)\n const result = await CanvasPoster.createQRCodeImageURL(\n url,\n VueUtil.getActualPx(options.width),\n options.noLogo ? undefined : options.logo,\n // undefined,\n VueUtil.getActualPx(options.logoWidth || 10)\n )\n return result\n }\n\n static async buildDownloadUrl(\n scene: string,\n cfg?: { baseUrl?: string; query?: any; keep_long_url?: boolean },\n qd?: string\n ): Promise {\n const shareCode = await ATeacher.getShareCode(scene)\n // eslint-disable-next-line prefer-const\n let url = AppUtil.buildDownloadUrl(\n qd || '',\n shareCode,\n cfg\n ? {\n baseUrl: cfg.baseUrl,\n query: cfg.query,\n }\n : undefined\n )\n // 生成短地址\n if (!cfg || !cfg.keep_long_url) {\n url = await AGlobalConfig.buildShortUrl(url)\n }\n return url\n }\n}\n","import { DrillService } from './DrillService'\nimport {\n AppUtil,\n SchoolUtil,\n BrowserUtil,\n DateUtil,\n StringUtil,\n DrillUtil,\n IReport,\n AppVersion,\n DateWrapper,\n} from 'kuaidong-lib'\n\nexport interface IUserInfo {\n user_no?: number\n user_id?: string\n nick_name: string\n head_img_url: string\n jump_rope_hall_of_frame?: boolean\n school_info?: {\n school: string\n class_grade: number\n class_no: number\n }\n}\n\nexport type AppealReasonType = 'appeal_norope' | 'double_jump' | 'appeal_fake_people'\nexport const NOROPE_STATUS_INIT = 'init'\nexport const NOROPE_STATUS_IN_PROGRESS = 'inProgress'\nexport const NOROPE_STATUS_DONE = 'done'\nexport const NOROPE_TREATMENT_ACCEPT = 'accept'\nexport const NOROPE_TREATMENT_REJECT = 'reject'\n\n// 用户排行榜设定\nexport const RANK_AUTHORITY_PUBLIC = 'public' // 完全公开\nexport const RANK_AUTHORITY_SCHOOL_PUBLIC = 'school_public' // 学校公开\nexport const RANK_AUTHORITY_PRIVATE = 'private' // 私有,不公开\nexport const RANK_AUTHORITY_CLOSE_VIDEO = 'close_video' // 用户主动关闭了视频上传\n\n// 名人堂的常量\nexport const HALL_CAN_NOT_APPLY = 'can_not_apply' // 不能申请\nexport const HALL_ALREADY_IN_HALL = 'already_in_hall' // 已经在名人堂\nexport const HALL_RECORD_REJECTED = 'record_rejected' // 该报告申请被拒绝\nexport const HALL_RECORD_APPLIED = 'record_applied' // 该报告已申请\nexport const HALL_OTHER_RECORD_APPLIED = 'other_record_applied' // 其他报告已申请,审核中\nexport const HALL_CAN_APPLY = 'can_apply' // 可以申请\n\n// 报告的场景\nexport const SCENE_TYPE_PUBLIC = 'scene_public' // 来自全局排行榜\nexport const SCENE_TYPE_SCHOOL = 'scene_school' // 来自学校榜\nexport const SCENE_TYPE_GRADE = 'scene_grade' // 来自年级榜\nexport const SCENE_TYPE_CLASS = 'scene_class' // 来自班级榜\nexport const SCENE_TYPE_SELF = 'scene_self' // 来自全局排行榜\nexport const SCENE_TYPE_UNDER_SCHOOL = [SCENE_TYPE_SCHOOL, SCENE_TYPE_GRADE, SCENE_TYPE_CLASS] // 在学校范围内\n\nexport const CrazyRopeJumpRopeDrills = [\n 'jump_rope_free',\n 'jump_rope_time',\n 'jump_rope_landscape_2007',\n 'jump_rope_30sec',\n]\n\nexport class ReportResult {\n public data: IReport\n public reportId: string\n public currentUserId?: string\n public isUnderApp: boolean\n public from_scene_type = '' // 来自场景,默认为空\n\n public static async getRemoteOrLocalVideo(\n recordId: string,\n remoteUrl: string,\n remoteCover: string\n ): Promise<{ video: string; cover: string }> {\n if (remoteUrl) {\n return { video: remoteUrl, cover: remoteCover }\n }\n let url = ''\n // 本地文件file:// 安全问题肯定不可行\n try {\n if (await AppUtil.isUnderApp()) {\n url = await AppUtil.getLocalScreenRecord(recordId)\n if (!remoteCover) {\n remoteCover = await AppUtil.getVideoPreviewImage(recordId)\n }\n }\n } catch (e) {\n BrowserUtil.logError(e as any)\n }\n\n return { video: url, cover: remoteCover }\n }\n\n constructor(reportId: string, report: IReport) {\n this.reportId = reportId\n this.data = report\n this.isUnderApp = false // 默认设定false\n }\n\n public get appVersion(): AppVersion {\n return new AppVersion(this.data.app_version)\n }\n\n public get schoolName(): string {\n if (this.data.user_info.school_info && this.data.user_info.school_info.school) {\n return this.data.user_info.school_info.school\n } else {\n return ''\n }\n }\n\n public get clazzName(): string {\n if (this.data.user_info.school_info && this.data.user_info.school_info.class_grade) {\n return SchoolUtil.buildClazzName(\n this.data.user_info.school_info.class_grade,\n this.data.user_info.school_info.class_no\n )\n } else {\n return ''\n }\n }\n\n public get avatarUrl(): string {\n let result = this.data.user_info.head_img_url\n if (!result) {\n result = 'https://www.tiantiantiaosheng.com/icon_512.png'\n }\n return result\n }\n\n // drill的代号\n public get drill(): string {\n if (this.data.drill_info) {\n return this.data.drill_info.name\n } else {\n return ''\n }\n }\n\n // drill对应的单位,得分/次数\n public get drillUnit(): string {\n let result = '得分'\n if (this.data.drill_info) {\n if (this.data.drill_info.drill_type === 'count') {\n result = '次数'\n }\n }\n return result\n }\n\n // 判断是否是云上运动会\n public get isCloudSportMetting(): boolean {\n return (\n this.data.event_type === 'activity' &&\n ['athletics_official', 'athletics_official_free', 't_athletics_official', 't_athletics_official_free'].includes(\n this.data.event_id\n )\n )\n }\n\n // 判断是否疯狂跳绳中的跳绳项目,有可能是非跳绳项目\n public get isCrazyJumpRope(): boolean {\n return !!this.drill && this.drill.startsWith('jump_rope_')\n }\n\n public get isGolf(): boolean {\n return !!this.drill && this.drill.startsWith('golf_')\n }\n\n public get isBoxing(): boolean {\n return !!this.drill && this.data.drill_info.container_type === 'boxing'\n }\n\n public get isSportQA(): boolean {\n return !!this.drill && this.data.drill_info.playing_type === 'qa_sports_science'\n }\n\n public get isTXPVideo(): boolean {\n return !!this.drill && this.drill === 'txp_video_lesson_2206'\n }\n\n public get userName(): string {\n return this.data.user_info.nick_name\n }\n\n public get scroeInfo(): string {\n if (!this.data.official_grade) return ''\n return `${this.data.user_info.school_info?.class_grade_str}|${this.data.user_info.gender === 'M' ? '男' : '女'}`\n }\n\n public get showCalories(): number {\n if (this.data.burned_calories) {\n return Math.round(this.data.burned_calories / 100) / 10\n } else {\n return 0\n }\n }\n\n public get hasCalo(): boolean {\n if (DrillUtil.isDistanceDrill(this.data)) {\n return true\n }\n return this.showCalories > 0\n }\n\n public get userLevel(): number {\n return this.data.user_info.level_no || 0\n }\n\n public get score(): number | string {\n return DrillService.buildScoreStr(\n this.data.metric_amount,\n this.data.drill_info.display_metric_base,\n this.data.drill_info.metric_type,\n this.data.drill_info.display_metric_unit\n )\n }\n\n public get videoUrl(): string {\n if (this.data.video_info) {\n return this.data.video_info.video_url\n } else {\n return this.data.video_url\n }\n }\n\n public get videoPoster(): string {\n if (this.data.video_info) {\n return this.data.video_info.video_cover_url\n } else {\n return ''\n }\n }\n\n // 判断视频是横屏还是竖屏\n public get isLandscapeVideo(): boolean {\n if (this.data.video_info) {\n if (this.data.video_info.height > this.data.video_info.width) {\n return false\n }\n }\n return true\n }\n\n public get isMoveType(): boolean {\n return DrillUtil.isMoveType(this.data.drill_info)\n }\n\n /**\n * 获取远程的地址,如果远程的为空,获取本地的,都没有给个默认的\n */\n public async getRemoteOrLocalVideo(): Promise {\n if (this.hasClosedVideo) {\n return ''\n }\n\n let url = ''\n\n // 本地文件file:// 安全问题肯定不可行\n try {\n if (await AppUtil.isUnderApp()) {\n url = await AppUtil.getLocalScreenRecord(this.reportId)\n if (!this.data.video_info.video_cover_url)\n this.data.video_info.video_cover_url = await AppUtil.getVideoPreviewImage(this.reportId)\n }\n } catch (e) {\n BrowserUtil.logError(e as any)\n }\n\n return url || this.videoUrl\n }\n\n // 耗时的逻辑\n public get duration(): number {\n let millseconds = this.data.duration\n if (this.data.score_duration > 0) {\n millseconds = this.data.score_duration\n }\n return Math.round(millseconds / 1000)\n }\n\n public get durationInMinStr(): string {\n return DateUtil.ms2Str(this.data.score_duration || this.data.duration)\n }\n\n public get drillName(): string {\n return this.data.drill_info.display_name\n }\n\n public get drillType(): string {\n return this.data.drill_info.drill_type\n }\n\n public get showTime(): string {\n return DateUtil.fromString(this.data.record_time).showCustomStr\n }\n\n public get recordTime(): Date {\n return DateUtil.fromString(this.data.record_time).date\n }\n\n public get isExpired(): boolean {\n return new DateWrapper(this.data.record_time).date < DateUtil.addDay(new Date(), -14)\n }\n\n public get isDeleted(): boolean {\n return !!this.data.is_deleted\n }\n\n // 关闭了上传视频\n public get isCloseUploadVideo(): boolean {\n // return this.data.rank_authority === RANK_AUTHORITY_CLOSE_VIDEO\n return !this.isPermissionShowVideo\n }\n\n // 是否用户设置权限是否打开视频\n public get isPermissionShowVideo(): boolean {\n if (this.isCurrentUserReport()) {\n // 自己的视频一直可以打开\n return true\n }\n if (this.isUnderApp) {\n // 有优先级的关系,需要理清楚再改\n if (this.from_scene_type === SCENE_TYPE_SELF) {\n // 自己查看使用是true\n return true\n }\n if (this.data.rank_authority === RANK_AUTHORITY_CLOSE_VIDEO) {\n // 关闭了视频,始终不显示视频\n return false\n }\n if (this.from_scene_type === SCENE_TYPE_PUBLIC) {\n // 全局排行榜, 只显示那些公开视频的\n return this.data.rank_authority === RANK_AUTHORITY_PUBLIC\n }\n // 如果在全局排行榜下始终显示视频\n if (this.data.rank_authority === RANK_AUTHORITY_PUBLIC) {\n return true\n }\n if (this.data.rank_authority === RANK_AUTHORITY_SCHOOL_PUBLIC) {\n return this.isUnderSchoolRank()\n }\n if (!this.from_scene_type) {\n // 没有任何场景信息可以显示视频\n return true\n }\n if (this.data.rank_authority === RANK_AUTHORITY_PRIVATE) {\n return false\n }\n }\n return true\n }\n\n public isUnderSchoolRank() {\n // 是否在学校榜单内\n return SCENE_TYPE_UNDER_SCHOOL.includes(this.from_scene_type)\n }\n\n // 当前报告各种原因关闭了视频\n public get hasClosedVideo(): boolean {\n return this.isDeleted || this.isCloseUploadVideo\n }\n\n /**\n * 是否录制视频了\n */\n public get hasRecordVideo(): boolean {\n return true // this.data.record_screen;\n }\n\n // 成功次数\n public get successCount(): number {\n return this.data.success_count\n }\n\n public get failCount(): number {\n return this.data.fail_count || 0\n }\n\n public get avgCountPerMin(): number {\n return Math.round((60 * this.successCount) / this.duration)\n }\n\n // ============ 对战相关 =============\n public get showBattleScore(): boolean {\n return this.data.room_score_info && this.data.room_score_info.length > 0\n }\n\n public get orderedScoreInfo(): {\n idx: number\n user_info: IUserInfo\n score: number\n }[] {\n const scoreInfos = this.data.room_score_info\n // return [\n // {\n // idx: 1,\n // user_info: {\n // nick_name: \"test\",\n // head_img_url: \"https://cdn.gkid.com/static/data/images/icon_76pt.png\"\n // },\n // score: 99\n // },\n // {\n // idx: 2,\n // user_info: {\n // nick_name: \"test\",\n // head_img_url: \"https://cdn.gkid.com/static/data/images/icon_76pt.png\"\n // },\n // score: 98\n // }\n // ];\n\n return scoreInfos.map((x: any, idx: number) => {\n x.idx = idx + 1\n return x\n })\n }\n\n public get canChallenge() {\n // 体测或者广播操 不能挑战\n return (\n this.data.drill_info.playing_type !== 'move' &&\n !this.data.drill_info.is_exam_drill &&\n this.data.drill_info.can_challenge &&\n (!this.data.speed_rate || this.data.speed_rate === 1)\n )\n }\n\n public async isMine(): Promise {\n if (await AppUtil.isUnderApp()) {\n const userData = await AppUtil.getUserData()\n\n return this.data.user_info.user_id === userData.user_id\n }\n\n return false\n }\n\n // ============= 无绳相关 ============\n public get showAppeal() {\n return false\n // return true;\n }\n\n public get hasNoRope(): boolean {\n return this.data.detection_has_rope.toUpperCase() === 'N'\n }\n\n public get appealType() {\n if (this.hasUsedDummy) {\n return 'appeal_fake_people'\n } else if (this.hasNoRope) {\n return 'appeal_norope'\n } else if (this.isDoubleJump) {\n return 'double_jump'\n }\n\n return null\n }\n\n // 当前能否申诉\n public get noRopeCanAppeal(): boolean {\n if (this.isCurrentUserReport()) {\n // 如果是自己的报告,当前 无绳状态 或者 双跳 状态, 且没有任何申诉记录时,可申诉\n if (this.isNoRopeOrDoubleJump && this.data.no_rope_appeal_status) {\n return this.data.no_rope_appeal_status.status === NOROPE_STATUS_INIT\n }\n }\n return false\n }\n\n // 当前是否正在申诉中\n public get inAppealProgress(): boolean {\n if (this.isNoRopeOrDoubleJump && this.data.no_rope_appeal_status) {\n return this.data.no_rope_appeal_status.status === NOROPE_STATUS_IN_PROGRESS\n }\n return false\n }\n\n // 申诉已经完成\n public get appealDone(): boolean {\n if (this.isNoRopeOrDoubleJump && this.data.no_rope_appeal_status) {\n return this.data.no_rope_appeal_status.status === NOROPE_STATUS_DONE\n }\n return false\n }\n\n public async doAppeal(isValid: boolean, reasonType: AppealReasonType): Promise {\n const result = await AppUtil.httpPOST('/user/drill_record/appeal_no_rope', {\n record_id: this.data.record_id,\n is_valid: isValid,\n reason_type: reasonType,\n })\n return result\n }\n\n // =============== 名人堂相关 ==============\n // 是否能申请\n public get hallCanApply(): boolean {\n if (this.isCurrentUserReport()) {\n // 只有当前用户才可以\n return this.data.apply_hall_status === HALL_CAN_APPLY\n }\n return false\n }\n\n // 申请中\n public get hallUnderApply(): boolean {\n if (this.isCurrentUserReport()) {\n // 只有当前用户才可以\n return this.data.apply_hall_status === HALL_RECORD_APPLIED\n }\n return false\n }\n\n // 是否名人堂人员\n public get isJumpRopeHallFamer() {\n return !!this.data.user_info.jump_rope_hall_of_frame\n }\n\n public get showApplyCard(): boolean {\n return this.hallCanApply || this.hallUnderApply\n }\n\n public async doApplyHall(): Promise {\n const result = await AppUtil.httpPOST('/hall_of_frame/apply', {\n record_id: this.data.record_id,\n })\n return result\n }\n\n public get hasUsedDummy() {\n return this.data.detection_fake_people === 'Fake'\n }\n\n public get isDoubleJump(): boolean {\n // 是否双跳\n return !!this.data.is_double_jump\n }\n\n public get isNoRopeOrDoubleJump(): boolean {\n return this.isDoubleJump || this.hasNoRope || this.hasUsedDummy\n }\n\n // ============== 跳转路径 =============\n public get reportPath(): string {\n return `/crazyrope/drill-report?id=${this.data.record_id}`\n }\n\n public get appealChoosePath(): string {\n return `/crazyrope/appeal-choose?id=${this.data.record_id}`\n }\n\n public get appealSuccessPath(): string {\n return `/crazyrope/appeal-success?id=${this.data.record_id}`\n }\n // 校园云比赛视频报告信息\n get competitionDrillInfo() {\n return this.buildCompetitionScoreInfo()\n }\n\n // ============= 当前用户相关 =============\n public async syncLoginUserId(): Promise {\n if (await AppUtil.isUnderApp()) {\n const userData = await AppUtil.getUserData()\n if (userData && userData.user_id) {\n this.currentUserId = userData.user_id\n }\n }\n return this.currentUserId\n }\n\n // 当前报告是否是当前登录用户的\n public isCurrentUserReport() {\n if (this.currentUserId) {\n return this.currentUserId === this.data.user_info.user_id\n }\n return false\n }\n\n public async ossFrozenUnlock() {\n // 构建video key\n const videoOssKey = new URL(this.videoUrl).pathname.replace(/^\\//, '')\n return AppUtil.httpPOST(\n `${process.env.VUE_APP_CRAZYROPE_API}/oss/video_restore`,\n {\n video_key: videoOssKey,\n },\n {},\n false,\n false\n )\n }\n\n public get battleResult() {\n return this.buildBattleResult()\n }\n\n public buildBattleResult(): any {\n return null\n }\n\n public buildCompetitionScoreInfo() {\n const duration = this.data.score_duration || this.data.duration\n\n return [\n { label: '评价:', val: this.data.score_grade },\n { label: '时间:', val: DateUtil.ms2Str(duration) },\n ...(this.data.drill_info?.name.startsWith('jump_rope_')\n ? [\n { label: '中断次数:', val: this.data.interrupt_count },\n { label: '最多连续:', val: this.data.max_combo_count },\n {\n label: '速度(分钟):',\n val: Math.round((this.data.success_count * 60000) / duration),\n },\n ]\n : [{ label: '次数:', val: this.data.success_count }]),\n { label: '热量(大卡):', val: Math.round((this.data.burned_calories || 0) / 100) / 10 },\n ]\n }\n}\n\nexport class ReportService {\n static _currentResult?: ReportResult\n\n /**\n * 获得报告内容\n * @param reportId 报告id\n * @param scene_type 场景, server会根据场景返回对应的视频权限\n * @returns 报告内容\n */\n public static async getReportById(reportId: string, scene_type?: string): Promise {\n // eslint-disable-next-line no-console\n // console.log(`start get record ${reportId}`);\n let url = `${process.env.VUE_APP_CRAZYROPE_API}/user/drill_report_info?drill_record_id=${reportId}`\n if (scene_type) {\n url = `${url}&scene_type=${scene_type}`\n }\n\n const result: IReport = await AppUtil.httpGET(url, {}, {}, false, false)\n\n // eslint-disable-next-line no-console\n // console.log(`finish get record ${reportId} - ${JSON.stringify(result)}`);\n const resp = new ReportResult(reportId, result)\n resp.isUnderApp = await AppUtil.isUnderApp()\n await resp.syncLoginUserId()\n this._currentResult = resp\n return resp\n }\n\n // 本都读缓存或者远程去获取\n public static async getCachedReportById(reportId: string): Promise {\n if (this._currentResult) {\n return this._currentResult\n }\n const result = await this.getReportById(reportId)\n await result.syncLoginUserId()\n return result\n }\n}\n\n/**\n * 报告点赞逻辑\n **/\nexport class ReportLikeService {\n constructor(public reportResult: ReportResult) {}\n\n get likeCount() {\n // 当前点赞数\n return this.reportResult.data.thumbed_counts\n }\n\n get likeCountStr() {\n return StringUtil.numberToShortK(this.likeCount)\n }\n\n get hasLiked() {\n // 当前用户是否已经点赞\n return this.reportResult.data.current_user_thumbed\n }\n\n async doLike() {\n this.reportResult.data.thumbed_counts += 1\n this.reportResult.data.current_user_thumbed = true\n // 请求\n return await this._callLike(true)\n }\n\n async cancelLike() {\n if (this.reportResult.data.thumbed_counts > 0) {\n this.reportResult.data.thumbed_counts -= 1\n }\n this.reportResult.data.current_user_thumbed = false\n // 请求\n return await this._callLike(false)\n }\n\n async _callLike(thumbed: boolean) {\n return await AppUtil.httpPOST(\n `${process.env.VUE_APP_CRAZYROPE_API}/user/drill_record/thumb`,\n {\n record_id: this.reportResult.data.record_id,\n thumbed,\n },\n {},\n false,\n false\n )\n }\n}\n\nexport class JkcReportService {\n public static readonly KeyPrefix = 'ttts.jck.pub.'\n // 设定发布\n public static setPubed(recordId: string) {\n localStorage.setItem(`${this.KeyPrefix}${recordId}`, new Date().getTime() + '')\n }\n\n // 判断是否已经发布\n public static isPubed(recordId: string): boolean {\n return !!localStorage.getItem(`${this.KeyPrefix}${recordId}`)\n }\n}\n","import map from 'lodash/map'\nimport remove from 'lodash/remove'\nimport sortBy from 'lodash/sortBy'\nimport cloneDeep from 'lodash/cloneDeep'\nimport intersection from 'lodash/intersection'\nimport forEachRight from 'lodash/forEachRight'\nimport { globalConfigStore } from 'kuaidong-store'\nimport { UnitUtil, DateUtil, Drill } from 'kuaidong-lib'\nimport { IFirstCategory, CompetitionType } from 'kuaidong-model'\n\nconst DrillMetricType2UnitMap = {\n score: {\n unit: '分',\n label: '得分',\n },\n count: {\n unit: '个',\n label: '个数',\n },\n millimeter: {\n unit: 'cm',\n label: '距离',\n },\n}\n\nconst DrillFinishType2UnitMap = {\n score: {\n unit: '分',\n label: '得分',\n },\n count: {\n unit: '个',\n label: '个数',\n },\n distance: {\n unit: 'cm',\n label: '距离',\n },\n}\n\nexport class DrillService {\n constructor(public model: Drill) {}\n\n get isRunning() {\n return this.model.playing_type === 'running'\n }\n\n get isKayaking2p() {\n return this.model.playing_type === 'Kayaking_2p'\n }\n\n public static isJumpRope(drillId: string) {\n return !!(drillId && drillId.startsWith('jump_rope_'))\n }\n\n public static buildScoreStr(amount: number, base: number, type: string, unit: string) {\n if (type === 'duration') {\n return DateUtil.ms2Str(amount)\n }\n\n return `${UnitUtil.division(amount, base)}${unit}`\n }\n\n public static buildScoreStr2(type: string, drill: { score_count: number; score_duration: number; score: number }) {\n if (type === 'count') return drill.score_count + '个'\n if (type === 'second') return DateUtil.ms2Str(drill.score_duration)\n if (type === 'score') return drill.score + '分'\n return drill.score\n }\n\n public static buildMetricNameEn(type: string) {\n switch (type) {\n case 'duration':\n return 'time'\n default:\n return type\n }\n }\n\n public static buildScoreStrEn(type: string, score: number, duration: number) {\n switch (type) {\n case 'score':\n return score + ' points'\n case 'count':\n return score\n case 'distance':\n return UnitUtil.toFixed(score / 1000, 2) + ' m'\n case 'duration':\n return DateUtil.ms2Str(duration)\n default:\n return score\n }\n }\n\n public static buildScoreStr3(type: string, score: number) {\n switch (type) {\n case 'score':\n return score + '分'\n case 'score_count':\n return score + '个'\n case 'score_distance':\n return UnitUtil.toFixed(score / 1000, 2) + '米'\n case 'score_duration':\n return DateUtil.ms2Str(score)\n default:\n return score\n }\n }\n\n public static buildScoreStr4(drillId: string, score: number) {\n if (globalConfigStore && globalConfigStore.drills) {\n const drillInfo = globalConfigStore.drills[drillId]\n\n if (drillInfo) {\n return DrillService.buildScoreStr3(drillInfo.record_type, score)\n }\n }\n\n return score\n }\n\n public calcUnit() {\n if (this.model.metric_type !== 'duration') {\n return DrillMetricType2UnitMap[this.model.metric_type as keyof typeof DrillMetricType2UnitMap]\n } else {\n return DrillFinishType2UnitMap[this.model.finish_type as keyof typeof DrillFinishType2UnitMap]\n }\n }\n\n public static buildDrillOptions() {\n return globalConfigStore.drillItemOptions\n }\n\n public static defaultDrillOption() {\n const type = globalConfigStore.containerTypes[0]\n const drill = globalConfigStore.findDefaultDrill(type.name)\n\n return {\n containerType: type.name,\n drillId: drill?.drill_id,\n }\n }\n\n public static option2Name(option: any) {\n return globalConfigStore.findDrill(option.containerType, option.drillId)?.title\n }\n\n public static findOptionByDrillId(drillId: string) {\n const options = globalConfigStore.drillItemOptions\n\n for (const option of options) {\n for (const drill of option.children) {\n if (drill.value === drillId) {\n return {\n containerType: option.value,\n drillId: drill.value,\n }\n }\n }\n }\n\n return null\n }\n\n public static calcScoreChart(score: number, type: string) {\n if (score === -1) {\n return 0\n }\n\n if (type === 'score_duration') {\n return DateUtil.millisecond2minutes(score)\n }\n\n return score\n }\n\n public static calcScore(score: number, type: string) {\n if (score === -1) {\n return '-'\n }\n\n if (type === 'score_duration') {\n return DateUtil.ms2Str(score)\n }\n\n return score\n }\n\n public static calcScoreUnit(type: string) {\n if (type === 'score_duration') {\n return '分钟'\n }\n\n if (type === 'score_count') {\n return '个'\n }\n\n return '分'\n }\n\n /**\n * According to buildScoreStr2.\n * @param type\n * @param drill1\n * @param drill2\n * @returns\n */\n public static scoreSortMethod2(\n type: string,\n drill1: { score_count: number; score_duration: number; score: number },\n drill2: { score_count: number; score_duration: number; score: number }\n ) {\n if (type === 'count') return drill2.score_count - drill1.score_count\n if (type === 'second') return drill1.score_duration - drill2.score_duration\n if (type === 'score') return drill2.score - drill1.score\n return drill2.score - drill1.score\n }\n}\n\nexport class DrillTagConfigService {\n public filterTag: IFirstCategory[] = []\n public firstTags: string[] = []\n public drillCategoryConfig: IFirstCategory[] = []\n public allCompetitionDrillIds: string[] = []\n\n constructor(public drillItemList: any[]) {}\n\n public async loadDrillConfig() {\n await globalConfigStore.ensureDrillCategoriesIsLoaded()\n this.drillCategoryConfig = globalConfigStore.drillCategories || []\n return this.drillCategoryConfig\n }\n\n public async filterConfigByDrillKey(keyName: string) {\n const drillIds = [...new Set(map(this.drillItemList, keyName))]\n const drillTagConfigClone = cloneDeep(await this.loadDrillConfig())\n drillTagConfigClone.forEach((item) => {\n if (item.children.length > 0) {\n forEachRight(drillTagConfigClone, (item) => {\n if (item.children.length > 0) {\n forEachRight(item.children, (subItem) => {\n if (intersection(drillIds, subItem.drill_ids).length === 0) {\n remove(item.children, subItem)\n if (item.children.length === 0) {\n remove(drillTagConfigClone, item)\n }\n }\n })\n }\n })\n } else {\n remove(drillTagConfigClone, item)\n }\n })\n this.filterTag = drillTagConfigClone\n this.firstTags = ['全部'].concat(\n this.filterTag.map((item) => {\n return item.name\n })\n )\n return this.filterTag\n }\n\n public getAllCompetitionDrillIDs() {\n if (this.allCompetitionDrillIds.length === 0) {\n ;(globalConfigStore.drillCategories || []).forEach((firstTag) => {\n firstTag.children.forEach((subTag) => {\n this.allCompetitionDrillIds.push(...subTag.drill_ids)\n })\n })\n }\n\n return this.allCompetitionDrillIds\n }\n\n public filterCompetitionList(\n currentTag: string,\n currentDrill: {\n name: string\n label: string\n drill_ids: string[]\n }\n ): any {\n if (currentTag === '全部') {\n return this.sortCompetitionDrill(this.getAllCompetitionDrillIDs(), this.drillItemList)\n }\n if (currentTag !== '全部' && currentDrill.name === '全部') {\n const allSubDrills: string[] = []\n ;(this.filterTag.find((item) => {\n return item.name === currentTag\n }) as IFirstCategory).children.forEach((item) => allSubDrills.push(...item.drill_ids))\n return this.sortCompetitionDrill(allSubDrills, this.drillItemList)\n } else {\n return this.sortCompetitionDrill(currentDrill.drill_ids, this.drillItemList)\n }\n }\n\n public sortCompetitionDrill(drillIds: string[], competitionList: CompetitionType[]) {\n let res = competitionList.filter((item) => {\n return drillIds.includes(item.item_name)\n })\n res = sortBy(res, (drillItem) => {\n return drillIds.indexOf(drillItem.item_name)\n })\n return res\n }\n\n public getSecondTags(currentTag: string) {\n if (currentTag === '全部') {\n return null\n } else {\n const currentFirstTag = this.filterTag.find((item) => item.name === currentTag)\n if (currentFirstTag && !currentFirstTag.children.find((item) => item.name === '全部')) {\n const allDrillIds: string[] = []\n currentFirstTag.children.forEach((item) => {\n allDrillIds.push(...item.drill_ids)\n })\n currentFirstTag.children.unshift({ name: '全部', label: '全部', drill_ids: allDrillIds })\n }\n return currentFirstTag ? currentFirstTag.children : []\n }\n }\n}\n","import debounce from 'lodash/debounce'\nimport { AppUtil, UIUtil } from 'kuaidong-lib'\n\nexport class FileExportService {\n static exportFile(api: Function, ...params: any[]) {\n return debounce(\n async () => {\n UIUtil.showLoading()\n\n const url = await api(...params)\n\n UIUtil.hideLoading()\n\n if (url) {\n const result = await AppUtil.downloadAndShareByUrl(url)\n if (result && result.version) {\n UIUtil.showToast(`当前版本太低,请先升级到${result.version}及以上版本~`)\n }\n }\n },\n 2000,\n { leading: true, trailing: false }\n )\n }\n}\n","/**\n * Form类功能\n * 1.存储数据\n * 2.数据交互\n * 3.数据状态判断\n * 3.创建合适的数据结构传给后端\n */\n\n// Check类是一个容器,配合装饰器使用,装饰器将判断函数存储在Check类里集中管理\nclass Check {\n checkMap: Map true | Error)[]> = new Map()\n\n check(context: Form, keys: string[]): true | Error\n check(context: Form): true | Error\n check(context: Form, args?: unknown): true | Error {\n if (Array.isArray(args)) {\n args.forEach((arg) => {\n const fns = this.checkMap.get(arg)\n if (fns) {\n fns.forEach((fn) => fn.call(context))\n }\n })\n return true\n } else {\n this.checkMap.forEach((fns) => fns.forEach((fn) => fn.call(context)))\n return true\n }\n }\n\n appendRule(key: string, fn: () => true | Error) {\n const fns = this.checkMap.get(key)\n if (fns) {\n fns.push(fn)\n } else {\n this.checkMap.set(key, [fn])\n }\n }\n}\n\n// 装饰器类,专门用于给Form类的原型的checker注入判断函数\nexport class Register {\n private static register(target: Form) {\n target.checker = new Check()\n }\n\n static registerRule(key: string) {\n return function (target: Form, methodName: string) {\n if (!target.hasOwnProperty.call(target, 'checker')) {\n Register.register(target)\n }\n ;(target.checker as Check).appendRule(key, target[methodName as keyof Form] as () => true | Error)\n }\n }\n}\n\nexport abstract class Form {\n checker: Check | null = null\n private __proto__: any\n\n //1.存储数据\n constructor() {\n //如果使用装饰器注入了判断函数,那么就可以使用checker来集中管理判断\n let proto = this.__proto__\n if (proto.checker) this.checker = new Check()\n while (proto.checker) {\n if (proto.hasOwnProperty.call(proto, 'checker')) {\n ;(proto.checker.checkMap as Map true | Error)[]>).forEach((value, key) => {\n value.forEach((fn) => this.checker!.appendRule(key, fn))\n })\n }\n proto = proto.__proto__\n }\n }\n\n //3.数据状态判断\n check(keys: string[]): true | Error\n check(): true | Error\n check(args?: unknown): true | Error | void {\n if (!this.checker) return\n return this.checker.check(this, args as any)\n }\n\n //4.创建合适的数据结构传给后端\n abstract buildForm(): any\n}\n","import { Teacher } from 'kuaidong-model'\nimport { ATeacher, AUser } from 'kuaidong-api'\nimport { AppUtil, EnvUtil } from 'kuaidong-lib'\nimport { TeacherService } from './TeacherService'\n\n/**\n * 当前登录用户的状态和信息获取\n */\nexport class LoginTeacherService {\n static hasFetchedTeacher = false // 是否已经尝试拿到登录用户信息\n static loginTeacher: Teacher | null = null\n static loginTeacherId: string | null\n\n public static async getLoginTeacherId(): Promise {\n if (!this.loginTeacherId) {\n if (!EnvUtil.isApph5() && !EnvUtil.isISC()) {\n this.loginTeacherId = (await AUser.loginByH5Token()).teacher_id || ''\n } else {\n if (await AppUtil.isUnderApp()) {\n this.loginTeacherId = await (await AppUtil.getUserData()).user_id\n }\n }\n }\n\n return this.loginTeacherId || ''\n }\n\n public static async getLoginTeacher(): Promise {\n if (!this.loginTeacher) {\n this.hasFetchedTeacher = true\n this.loginTeacher = await ATeacher.find()\n }\n return this.loginTeacher\n }\n\n // 判断的当前用户是否已经登录\n public static async isLoged(): Promise {\n const teacher = await this.getLoginTeacher()\n return !!teacher\n }\n\n // 确保得到登录用户,没登录则报错\n public static async forceGetLoginTeacher(): Promise {\n const teacher = await this.getLoginTeacher()\n if (!teacher) {\n throw new Error('teacher not login!')\n } else {\n return teacher\n }\n }\n\n public static async forceGetLoginTeacherId(): Promise {\n const teacher = await this.forceGetLoginTeacher()\n return teacher.teacher_id\n }\n\n public static async getCallName(): Promise {\n const ts = new TeacherService(await this.forceGetLoginTeacher())\n return ts.callName\n }\n\n // 不会多次发送请求,且保证返回 string\n public static async safeGetTeacherId(): Promise {\n try {\n return this.getLoginTeacherId()\n } catch (e) {\n return ''\n }\n }\n}\n","import { ObjectUtil, StringUtil } from 'kuaidong-lib'\nimport { ISchoolOperateType, MenuRole, Teacher, TeacherRoleType, UserRoleInfo } from 'kuaidong-model'\n\nexport class SchoolPermissionService {\n constructor(public teacher: Teacher | null = null) {}\n\n public static buildSchoolVerifyPath(returnFullPath: string) {\n const queryStr = StringUtil.buildQueryString({\n verify: true,\n returnPath: returnFullPath,\n })\n return `/school-manage-annually-init/school-basic?${queryStr}`\n }\n\n // 是否是付费校\n get isPaid() {\n return (\n this.teacher?.school.operate_type === ISchoolOperateType.Paid ||\n this.teacher?.school.operate_type === ISchoolOperateType.PaidExport\n )\n }\n\n // 付费校且开启导出名单功能\n get isPaidExport() {\n return this.teacher?.school.operate_type === ISchoolOperateType.PaidExport\n }\n\n // Enable university.\n get isUniversity() {\n return !!this.teacher?.school.is_tzy_university_version\n }\n\n // 是否是官方认证校\n // @deprecated\n get isOfficialAuh() {\n return !!this.teacher?.school.verified\n }\n\n // 是否是官方认证校\n get isOfficialAuthed() {\n return !!this.teacher?.school.verified\n }\n\n // 是否是官方认证校且到验证方式是通过学籍号\n get isVerifyByStudentCode() {\n return this.teacher?.school.verify_method === 'student_code'\n }\n\n // 是否是官方认证校且验证方式为合作账号\n get isVerifyByAccount() {\n return this.teacher?.school.verify_method === 'account'\n }\n\n // 是否是运动会校\n get isSportMeetingSchool() {\n return this.teacher?.school_sport_meet\n }\n\n get canVisitStudentCodePage() {\n return this.isOfficialAuthed && this.isVerifyByStudentCode\n }\n\n get canVisitStudentAccountPage() {\n return this.isOfficialAuthed && this.isVerifyByAccount\n }\n\n get canVisitUserAccountPage() {\n return !!this.teacher?.user_account_permission\n }\n}\n\nexport class TeacherPermissionService {\n constructor(public userRoleInfo: UserRoleInfo | null = null, public teacher: Teacher | null = null) {}\n get role() {\n return this.teacher?.role || 'others'\n }\n\n // 是否是管理员\n get isAdmin() {\n return !!this.userRoleInfo?.is_admin\n }\n\n // 超级管理员\n get isSuperAdmin() {\n return !!this.userRoleInfo?.is_super_admin\n }\n\n get isSuperAdminOrAdmin() {\n return this.isAdmin || this.isSuperAdmin\n }\n\n // 普通教师\n get isNormal() {\n return !this.isSuperAdminOrAdmin\n }\n\n get isRolePeManager() {\n return this.teacher?.role === 'pe_manager'\n }\n\n get isRoleSchoolManager() {\n return this.teacher?.role === 'school_manager'\n }\n\n get isPeTeacher() {\n return this.teacher?.role === 'pe_teacher'\n }\n\n get isOtherTeacher() {\n return this.teacher?.role === 'others'\n }\n\n // 体智云大学版的老师\n get isCollegeTeacher() {\n return !!(this.teacher && this.teacher.school.is_tzy_university_version)\n }\n\n isPermittedRole(roles: TeacherRoleType[]) {\n return !!roles.find((role) => role === this.teacher?.role)\n }\n}\n\nexport class PagePermissionService {\n schoolPermissionService: SchoolPermissionService\n teacherPermissionService: TeacherPermissionService\n\n constructor(\n userRoleInfo: UserRoleInfo | null = null,\n teacher: Teacher | null = null,\n public menuRole: MenuRole | null = null\n ) {\n this.schoolPermissionService = new SchoolPermissionService(teacher)\n this.teacherPermissionService = new TeacherPermissionService(userRoleInfo, teacher)\n }\n\n get competitionManagePage() {\n return {\n showExportBtn: true,\n }\n }\n // 学生管理页面\n get studentAuthPage() {\n return {\n // 当前管理员和普通用户都可以上传\n canAdjustStudentClass: true,\n\n canUploadStudentCodeList: true,\n\n canExportExcel: true,\n\n canDeleteOrUnbindStudentCode: this.teacherPermissionService.isSuperAdminOrAdmin,\n\n canDeleteAccountOrUnbindPhone: this.teacherPermissionService.isSuperAdminOrAdmin,\n\n canAddStudentAccount: true,\n canDelStudentAccount: this.teacherPermissionService.isSuperAdminOrAdmin,\n canUnBundlingStudentPhone: this.teacherPermissionService.isSuperAdminOrAdmin,\n canResetPassword: true,\n canChangeClass: true,\n }\n }\n\n // 班级管理\n get classManageListPage() {\n return {\n // 添加单个学生名单\n canAddStudentCodeList: true,\n canDelClass: !!this.teacherPermissionService.isSuperAdminOrAdmin,\n\n // 加入班级\n canJoinClass: true,\n // 创建班级\n canCreateClass: this.schoolPermissionService.isOfficialAuthed\n ? this.teacherPermissionService.isSuperAdminOrAdmin\n : true,\n }\n }\n\n // 体质测试\n get examPage() {\n if (this.menuRole === null) return null\n const examConfig = this.menuRole['体质测试']\n const schoolExam = examConfig['学校跟测']\n return {\n schoolExam: {\n addStudent: this.hasRole(schoolExam['创建学生']),\n\n addExam: this.hasRole(schoolExam['创建测试']),\n delExam: this.hasRole(schoolExam['删除测试']),\n editExam: this.hasRole(schoolExam['修改测试']),\n viewExam: this.hasRole(schoolExam['查看测试']),\n\n inputScore: this.hasRole(schoolExam['录入成绩']),\n editScore: this.hasRole(schoolExam['修改成绩']),\n downLoad: this.hasRole(schoolExam['下载数据']),\n\n viewReport: this.hasRole(schoolExam['查看报告']),\n canPublish: this.hasRole(schoolExam['发布给家长']),\n },\n studentExam: {\n all: true,\n },\n }\n }\n\n // 判断是否有角色权限\n hasRole(roles: TeacherRoleType[] | undefined) {\n if (roles === undefined) {\n return true\n }\n // 管理员或者残疾管理员默认拥有所有操作权利\n if (this.teacherPermissionService.isSuperAdminOrAdmin) {\n return true\n }\n\n if (this.teacherPermissionService.teacher && this.teacherPermissionService.teacher.role) {\n return roles.includes(this.teacherPermissionService.teacher.role)\n }\n\n return false\n }\n}\n\nexport class ModulePermissionService {\n constructor(private tps: TeacherPermissionService, private roleConfig: MenuRole = {}) {}\n\n get clazzMgt() {\n const rolesMap = this.getRolesMap('校园管理.班级管理')\n\n return {\n edit: this.hasPermission(rolesMap['编辑']),\n create: this.hasPermission(rolesMap['新建']),\n remove: this.hasPermission(rolesMap['解散班级']),\n updateSettings: this.hasPermission(rolesMap['设置班级数量']),\n }\n }\n\n get schoolMgt() {\n const rolesMap = this.getRolesMap('校园管理.学校管理')\n\n return {\n view: this.hasPermission(rolesMap['查看']),\n edit: this.hasPermission(rolesMap['编辑']),\n }\n }\n\n get teacherMgt() {\n const rolesMap = this.getRolesMap('校园管理.教师管理')\n\n return {\n view: this.hasPermission(rolesMap['查看']),\n viewDetails: this.hasPermission(rolesMap['查看明细']),\n edit: this.hasPermission(rolesMap['编辑其他人']),\n editMine: this.hasPermission(rolesMap['编辑自己']),\n editRole: this.hasPermission(rolesMap['修改角色']),\n create: this.hasPermission(rolesMap['添加教师']),\n remove: this.hasPermission(rolesMap['删除教师']),\n }\n }\n\n get studentAuthMgt() {\n const rolesMap = this.getRolesMap('校园管理.学生认证管理')\n\n return {\n enable: this.hasPermission(rolesMap['开启认证']),\n disable: this.hasPermission(rolesMap['关闭认证']),\n addStudent: this.hasPermission(rolesMap['新增学生']),\n changeClazz: this.hasPermission(rolesMap['调整班级']),\n unbindRollNo: this.hasPermission(rolesMap['解除绑定']),\n removeRollNo: this.hasPermission(rolesMap['删除名单']),\n removeRollNoAll: this.hasPermission(rolesMap['删除全校名单']),\n import: this.hasPermission(rolesMap['导入名单']),\n export: this.hasPermission(rolesMap['导出数据']),\n }\n }\n\n get gymnasticsCustom() {\n const rolesMap = this.getRolesMap('广播体操.自编操')\n\n return {\n view: this.hasPermission(rolesMap['查看']),\n create: this.hasPermission(rolesMap['布置']),\n upload: this.hasPermission(rolesMap['上传']),\n remove: this.hasPermission(rolesMap['删除其他']),\n removeMine: this.hasPermission(rolesMap['删除自己']),\n }\n }\n\n get officalActivity() {\n const rolesMap = this.getRolesMap('活动管理.官方活动')\n\n return {\n create: this.hasPermission(rolesMap['新建']),\n updateMine: this.hasPermission(rolesMap['修改自己']),\n updateOthers: this.hasPermission(rolesMap['修改他人']),\n deleteMine: this.hasPermission(rolesMap['删除自己']),\n deleteOthers: this.hasPermission(rolesMap['删除他人']),\n }\n }\n\n get processEvaluation() {\n const rolesMap = this.getRolesMap('体育成绩评价.方案配置')\n\n return {\n check: this.hasPermission(rolesMap['查看']),\n create: this.hasPermission(rolesMap['新增']),\n delete: this.hasPermission(rolesMap['删除']),\n update: this.hasPermission(rolesMap['修改']),\n }\n }\n\n get semesterConfig() {\n const rolesMap = this.getRolesMap('体育成绩评价.学期设置')\n\n return {\n check: this.hasPermission(rolesMap['查看']),\n create: this.hasPermission(rolesMap['新增']),\n delete: this.hasPermission(rolesMap['删除']),\n update: this.hasPermission(rolesMap['修改']),\n }\n }\n\n get evaluationSource() {\n const rolesMap = this.getRolesMap('体育成绩评价.数据来源')\n\n return {\n check: this.hasPermission(rolesMap['查看']),\n update: this.hasPermission(rolesMap['修改']),\n }\n }\n\n get homeworkPermission() {\n const rolesMap = this.getRolesMap('体育作业.作业设置')\n\n return {\n redo: this.hasPermission(rolesMap['补作业']),\n }\n }\n\n public getRoles(key: string): TeacherRoleType[] | undefined {\n return ObjectUtil.get(this.roleConfig, key) || []\n }\n\n public getRolesMap(key: string): { [index: string]: TeacherRoleType[] | undefined } {\n return ObjectUtil.get(this.roleConfig, key) || {}\n }\n\n public hasPermission(roles?: TeacherRoleType[]) {\n if (!roles) {\n return true\n }\n\n if (this.tps.isSuperAdminOrAdmin) {\n return true\n }\n\n if (this.tps.teacher?.role) {\n return roles.includes(this.tps.teacher.role)\n }\n\n return false\n }\n}\n\nexport interface IPermission {\n Teacher: TeacherPermissionService\n School: SchoolPermissionService\n Page: PagePermissionService\n t: TeacherPermissionService\n s: SchoolPermissionService\n m: ModulePermissionService\n}\n\nexport class PermissionService {\n teacherPermissionService: TeacherPermissionService\n schoolPermissionService: SchoolPermissionService\n modulePermissionService: ModulePermissionService\n pagePermissionService: PagePermissionService\n\n constructor(\n userRoleInfo: UserRoleInfo | null = null,\n teacher: Teacher | null = null,\n menuRole: MenuRole | null = null\n ) {\n this.teacherPermissionService = new TeacherPermissionService(userRoleInfo, teacher)\n this.schoolPermissionService = new SchoolPermissionService(teacher)\n this.modulePermissionService = new ModulePermissionService(this.teacherPermissionService, menuRole || {})\n this.pagePermissionService = new PagePermissionService(userRoleInfo, teacher, menuRole)\n }\n\n buildPermissions(): IPermission {\n return {\n Teacher: this.teacherPermissionService,\n School: this.schoolPermissionService,\n Page: this.pagePermissionService,\n t: this.teacherPermissionService,\n s: this.schoolPermissionService,\n m: this.modulePermissionService,\n }\n }\n}\n\ninterface IVue {\n toast(text: string): void\n $p: IPermission\n}\n\nexport function teacherRole(roles: TeacherRoleType[], reject: ((roles: TeacherRoleType[]) => void) | null = null) {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n const fun = target[propertyKey]\n descriptor.value = function (...args: any) {\n if ((this as IVue).$p.Teacher.isPermittedRole(roles)) {\n fun.apply(this, args)\n } else {\n if (reject) {\n reject.call(this, roles)\n } else {\n ;(this as IVue).toast('您暂无更改权限')\n }\n }\n }\n }\n}\n","import { BaseModelService } from './BaseService'\nimport { Teacher, TeacherRoleType } from 'kuaidong-model'\n\nexport class TeacherService extends BaseModelService {\n get name() {\n return this.model.teacher_name\n }\n\n get callName() {\n return TeacherService.buildName(this.model.teacher_name)\n }\n\n public static role(teacherRole: TeacherRoleType = 'others') {\n return this.roleValueToName(teacherRole)\n }\n\n public static roleValueMap = {\n pe_teacher: '体育老师',\n head_teacher: '班主任',\n others: '其他老师',\n school_manager: '学校管理者',\n pe_manager: '体育组长',\n grade_manager: '年级组长',\n gov: '教育行政部门',\n }\n\n public static authValueMap = {\n normal: '普通',\n admin: '管理员',\n }\n\n public static roleValueToName(value: TeacherRoleType = 'others', isUniversity = false) {\n return isUniversity && value === 'head_teacher' ? '辅导员' : this.roleValueMap[value]\n }\n\n public static roleNameToValue(name: string): TeacherRoleType {\n return this.buildRoleOptions().find((o) => o.label === name)?.value || 'others'\n }\n\n public static authValueToName(value: 'normal' | 'admin' = 'normal') {\n return this.authValueMap[value]\n }\n\n public static buildName(name?: string | null) {\n if (name) {\n return name.includes('老师') ? name : `${name}老师`\n }\n\n return '老师'\n }\n\n public static buildRoleOptions(isUniversity = false) {\n return Object.keys(this.roleValueMap).map((k: any) => {\n return {\n value: k,\n label: this.roleValueToName(k, isUniversity),\n }\n })\n }\n\n public static buildSystemRoleOptions() {\n return [\n {\n value: false,\n label: '普通',\n },\n {\n value: true,\n label: '管理员',\n },\n ]\n }\n\n public static showSystemRole(teacherRole: { admin?: string }) {\n if (teacherRole.admin === 'super_admin') {\n return '超级管理员'\n } else if (teacherRole.admin === 'admin') {\n return '管理员'\n } else {\n return '普通'\n }\n }\n\n public static buildRoleStr(options: { isSuperAdmin?: boolean; isAdmin?: boolean }) {\n if (options.isSuperAdmin) {\n return 'super_admin'\n } else if (options.isAdmin) {\n return 'admin'\n } else {\n return ''\n }\n }\n}\n","import { AppUtil, EventEmitter, EnvUtil, BrowserUtil } from 'kuaidong-lib'\n\nconst eventEmitter = new EventEmitter()\n\nexport enum TitleBarActionEnum {\n Share = 'share',\n About = 'about',\n}\n\nexport class TitleBar {\n static hidedAppBar = false\n static defaultTitle = EnvUtil.appNameZHCN()\n static pathConfig = {\n hideBack: false,\n title: '',\n path: '',\n backLevel: -1,\n eventEmitter: eventEmitter,\n }\n\n public static async init() {\n if ((await AppUtil.isUnderApp()) || BrowserUtil.isWeapp()) {\n await AppUtil.hideAppTitleBar()\n this.hidedAppBar = true\n return this.hidedAppBar\n } else {\n return false\n }\n }\n\n public static setTitle(title: string) {\n this.pathConfig.title = title\n }\n\n public static getTitle() {\n return this.pathConfig.title ? this.pathConfig.title : this.defaultTitle\n }\n\n public static delayDisableBack() {\n setTimeout(() => {\n TitleBar.disableBack()\n }, 50)\n }\n\n public static disableBack() {\n this.clearBackPath()\n this.pathConfig.hideBack = true\n }\n\n public static clearBackPath() {\n this.pathConfig.hideBack = false\n this.pathConfig.path = ''\n this.pathConfig.title = ''\n this.pathConfig.backLevel = -1\n }\n\n public static setBackPath(path: string) {\n this.pathConfig.path = path\n this.pathConfig.path = path\n }\n\n public static setBackLevel(level: number) {\n this.pathConfig.backLevel = level\n }\n\n public static on(action: TitleBarActionEnum, handler: Function) {\n this.pathConfig.eventEmitter.on(action, handler)\n }\n\n public static fire(action: TitleBarActionEnum) {\n this.pathConfig.eventEmitter.fire(action)\n }\n\n public static removeAllActions() {\n this.pathConfig.eventEmitter.removeAllListeners()\n }\n}\n","import store from './store'\nimport { ACompetition } from 'kuaidong-api'\nimport { CompetitionType } from 'kuaidong-model'\nimport { getModule, Module, Mutation, VuexModule, Action } from 'vuex-module-decorators'\n@Module({\n namespaced: true,\n dynamic: true,\n store,\n name: 'competition',\n})\nclass CompetitionModule extends VuexModule {\n types: CompetitionType[] = []\n currentCompetitionTitle = ''\n curV2CompetitionId = ''\n currentCompetitionDrillTitle = ''\n typesPromise: Promise | null = null\n\n @Mutation\n reset() {\n this.types = []\n }\n\n @Mutation\n setTypes(types: CompetitionType[]) {\n this.types = types\n }\n\n @Mutation\n setTypesPromise(typesPromise: Promise) {\n this.typesPromise = typesPromise\n }\n\n @Mutation\n setCurrentCompetitionTitle(title: string) {\n this.currentCompetitionTitle = title\n }\n @Mutation\n setCurrentV2CompetitionID(id: string) {\n this.curV2CompetitionId = id\n }\n @Mutation\n setCurrentCompetitionDrillTitle(title: string) {\n this.currentCompetitionDrillTitle = title\n }\n\n @Action\n async loadTypes() {\n const typesPromise = ACompetition.fetchTypes()\n\n this.context.commit('setTypesPromise', typesPromise)\n\n this.context.commit('setTypes', await typesPromise)\n }\n\n @Action\n async ensureTypesIsLoaded() {\n if (this.typesPromise === null) {\n this.loadTypes()\n }\n\n return this.typesPromise\n }\n\n get typeIdTypeMap() {\n return this.types.reduce((result: { [index: string]: CompetitionType }, type) => {\n result[type.competition_type_id] = type\n return result\n }, {})\n }\n\n get drillIdTypeMap() {\n return this.types.reduce((result: { [index: string]: CompetitionType }, type) => {\n result[type.item_name] = type\n return result\n }, {})\n }\n}\n\nexport default getModule(CompetitionModule)\n","import store from './store'\nimport { AGlobalConfig } from 'kuaidong-api'\nimport { getModule, Module, Mutation, VuexModule, Action } from 'vuex-module-decorators'\n\nimport {\n ISubCategory,\n IFirstCategory,\n IGlobalConfigDrills,\n IGlobalConfigHomework,\n HomeworkTemplateItem,\n HomeworkSelectScopeItem,\n HomeworkSelectScopeDrill,\n} from 'kuaidong-model'\n\n@Module({\n namespaced: true,\n dynamic: true,\n store,\n name: 'global-config',\n})\nclass GlobalConfigModule extends VuexModule {\n firstTag: string | null = null\n\n subDrill: ISubCategory | null = null\n\n drills: IGlobalConfigDrills | null = null\n\n homework: IGlobalConfigHomework | null = null\n\n drillCategories: IFirstCategory[] | null = null\n\n drillsPromise: Promise | null = null\n\n homeworkPromise: Promise | null = null\n\n drillCategoriesPromise: Promise | null = null\n summerCompetition2022Promise: Promise<{ unread_count: number }> | null = null\n isHasNewSummerCompetition2022 = false\n\n @Mutation\n reset() {\n this.firstTag = null\n this.subDrill = null\n\n this.drills = null\n this.homework = null\n this.drillCategories = null\n\n this.drillsPromise = null\n this.homeworkPromise = null\n this.drillCategoriesPromise = null\n }\n\n @Action\n async ensureConfigIsLoaded() {\n return Promise.all([\n this.ensureDrillsIsLoaded(),\n this.ensureHomeworkIsLoaded(),\n this.ensureDrillCategoriesIsLoaded(),\n ])\n }\n\n @Action\n async ensureDrillsIsLoaded() {\n if (this.drillsPromise === null) {\n this.loadDrills()\n }\n\n return this.drillsPromise\n }\n\n @Action\n async ensureHomeworkIsLoaded() {\n if (this.homeworkPromise === null) {\n this.loadHomework()\n }\n\n return this.homeworkPromise\n }\n\n @Action\n async ensureDrillCategoriesIsLoaded() {\n if (this.drillCategoriesPromise === null) {\n this.loadDrillCategories()\n }\n\n return this.drillCategoriesPromise\n }\n\n @Action\n async loadDrills() {\n const drillsPromise = AGlobalConfig.allDrills()\n\n this.context.commit('setDrillsPromise', drillsPromise)\n\n this.context.commit('setDrills', await drillsPromise)\n }\n\n @Action\n async loadHomework() {\n const homeworkPromise = AGlobalConfig.homework()\n\n this.context.commit('setHomeworkPromise', homeworkPromise)\n\n this.context.commit('setHomework', await homeworkPromise)\n }\n\n @Action\n async loadDrillCategories() {\n const drillCategoriesPromise = AGlobalConfig.getDrillCategory()\n\n this.context.commit('setDrillCategoriesPromise', drillCategoriesPromise)\n\n this.context.commit('setDrillCategories', await drillCategoriesPromise)\n }\n\n @Mutation\n setDrills(drills: IGlobalConfigDrills) {\n this.drills = drills\n }\n\n @Mutation\n setHomework(homework: IGlobalConfigHomework) {\n this.homework = homework\n }\n\n @Mutation\n setDrillCategories(drillCategories: IFirstCategory[]) {\n this.drillCategories = drillCategories\n }\n\n @Mutation\n setDrillsPromise(drillsPromise: Promise) {\n this.drillsPromise = drillsPromise\n }\n\n @Mutation\n setHomeworkPromise(homeworkPromise: Promise) {\n this.homeworkPromise = homeworkPromise\n }\n\n @Mutation\n setDrillCategoriesPromise(drillCategoriesPromise: Promise) {\n this.drillCategoriesPromise = drillCategoriesPromise\n }\n\n @Mutation\n updateFirstTag(tag: string) {\n this.firstTag = tag\n }\n\n @Mutation\n updateSubDrill(subDrill: ISubCategory) {\n this.subDrill = subDrill\n }\n\n @Mutation\n deleteDrillTag() {\n this.firstTag = null\n this.subDrill = null\n }\n\n get containerTypes(): HomeworkSelectScopeItem[] {\n return this.homework?.homework_select_scope || []\n }\n\n get containerTypeOptions(): { value: string; label: string }[] {\n return this.containerTypes.map(({ name, title }) => ({\n value: name,\n label: title,\n }))\n }\n\n get drillOptions(): (item: HomeworkSelectScopeItem) => { value: string; label: string }[] {\n return (item) =>\n item.drills.map(({ drill_id, title }) => ({\n value: drill_id,\n label: title,\n }))\n }\n\n get repeatOptions(): (item: HomeworkSelectScopeDrill) => { value: number; label: string }[] {\n return (item) =>\n new Array(item.max - item.min + 1).fill(item.min).map((d, i) => ({ value: i + d, label: `${i + d}组` }))\n }\n\n get drillItemOptions() {\n return this.containerTypeOptions.map((containerTypeOption) => {\n const containerType = this.findContainerType(containerTypeOption.value)\n const children = containerType\n ? this.drillOptions(containerType).map((drillOption) => {\n const drill = this.findDrill(containerTypeOption.value, drillOption.value)\n return {\n ...drillOption,\n childDefaultValue: drill?.default,\n }\n })\n : []\n\n return {\n ...containerTypeOption,\n children,\n childDefaultValue: containerType?.default_drill_id,\n }\n })\n }\n\n get homeworkItemOptions() {\n return this.containerTypeOptions.map((containerTypeOption) => {\n const containerType = this.findContainerType(containerTypeOption.value)\n const children = containerType\n ? this.drillOptions(containerType).map((drillOption) => {\n const drill = this.findDrill(containerTypeOption.value, drillOption.value)\n const children = drill ? this.repeatOptions(drill) : []\n return {\n ...drillOption,\n children,\n childDefaultValue: drill?.default,\n }\n })\n : []\n\n return {\n ...containerTypeOption,\n children,\n childDefaultValue: containerType?.default_drill_id,\n }\n })\n }\n\n get drillIdContainerTypeMap() {\n return this.drillItemOptions.reduce((result: { [index: string]: string }, container) => {\n for (const drill of container.children) {\n result[drill.value] = container.value\n }\n\n return result\n }, {})\n }\n\n get findContainerType(): (name: string) => HomeworkSelectScopeItem | undefined {\n return (name) => this.containerTypes.find((item) => item.name === name)\n }\n\n get findDrill(): (containerType: string, drillId: string) => HomeworkSelectScopeDrill | undefined {\n return (containerType, drillId) => {\n const item = this.findContainerType(containerType)\n return item ? item.drills.find((d) => d.drill_id === drillId) : undefined\n }\n }\n\n get findDrillById(): (drillId: string) => HomeworkSelectScopeDrill | undefined {\n return (drillId) => {\n for (const type of this.containerTypes) {\n for (const drill of type.drills) {\n if (drill.drill_id === drillId) {\n return drill\n }\n }\n }\n }\n }\n\n get findDefaultDrill(): (containerType: string) => HomeworkSelectScopeDrill | null {\n return (containerType) => {\n const item = this.findContainerType(containerType)\n if (!item || !item.drills.length) {\n return null\n }\n return (item.default_drill_id && item.drills.find((x) => x.drill_id === item.default_drill_id)) || item.drills[0]\n }\n }\n\n get findDefaultTemplateItems(): () => HomeworkTemplateItem[] {\n return () => {\n return this.homework?.default_homework || []\n }\n }\n\n get isRestDrill(): (drill: Pick) => boolean {\n return (drill) => drill.drill_id.startsWith('rest')\n }\n\n get allHomeworkDrills() {\n return this.drills\n ? this.allHomeworkDrillIds.filter((drillId) => !!this.drills![drillId]).map((drillId) => this.drills![drillId])\n : []\n }\n\n get allHomeworkDrillIds() {\n return (\n this.homework?.homework_select_scope.reduce((result: string[], container) => {\n result.push(...container.drills.map((drill) => drill.drill_id))\n return result\n }, []) || []\n )\n }\n\n get drillIdCategoriesMap() {\n return (\n this.drillCategories?.reduce(\n (result: { [index: string]: [string, string] }, category) => {\n category.children.forEach((subCategory) => {\n subCategory.drill_ids.forEach((drillId) => {\n result[drillId] = [category.name, subCategory.name]\n })\n })\n\n return result\n },\n { rest_2007: ['休息', ''] }\n ) || { rest_2007: ['休息', ''] }\n )\n }\n\n get drillItemOptionsCategory() {\n return (\n this.drillCategories?.map((category) => {\n const children = category.children.map((subCategory) => {\n const drills = subCategory.drill_ids\n .filter((drillId) => !!this.drills![drillId])\n .map((drillId) => {\n const drill = this.drills![drillId]!\n\n return {\n label: drill.display_name,\n value: drill.drill_id,\n }\n })\n\n return {\n label: subCategory.label,\n value: subCategory.name,\n children: drills,\n }\n })\n\n return {\n label: category.label,\n value: category.name,\n children,\n }\n }) || []\n )\n }\n}\n\nexport default getModule(GlobalConfigModule)\n","import store from './store'\nimport { AUser, ALogin } from 'kuaidong-api'\nimport { Organization, UserTeacherId } from 'kuaidong-model'\nimport { Module, getModule, VuexModule, Mutation, MutationAction } from 'vuex-module-decorators'\n\n@Module({\n namespaced: true,\n dynamic: true,\n store,\n name: 'login',\n})\nclass LoginModule extends VuexModule {\n organization: Organization | null = null\n\n userTeacherId: UserTeacherId | null = null\n\n get isAuthed() {\n return !!this.userTeacherId?.teacher_id\n }\n\n get isLogined() {\n return !!this.userTeacherId?.user_id\n }\n\n get isLoginedByOrganization() {\n return !!this.organization\n }\n\n get userId() {\n return this.userTeacherId?.user_id || ''\n }\n\n get teacherId() {\n return this.userTeacherId?.teacher_id || ''\n }\n\n @Mutation\n reset() {\n this.organization = null\n this.userTeacherId = null\n }\n\n @MutationAction\n async loadUserTeacherId() {\n const userTeacherId = await AUser.loginByH5Token()\n\n return { userTeacherId, organization: null as any }\n }\n\n @MutationAction\n async loadOrganization() {\n const organization = await ALogin.getOrganizationInfo()\n\n return { organization, userTeacherId: { user_id: organization.id, teacher_id: organization.id } as UserTeacherId }\n }\n}\n\nexport default getModule(LoginModule)\n","import store from './store'\nimport { AGlobalConfig } from 'kuaidong-api'\nimport { getModule, Module, Mutation, VuexModule, Action } from 'vuex-module-decorators'\n\nimport { MenuRole } from 'kuaidong-model'\n\n@Module({\n namespaced: true,\n dynamic: true,\n store,\n name: 'menu-role',\n})\nclass MenuRoleModule extends VuexModule {\n menuRole: MenuRole | null = null\n menuRolePromise: Promise | null = null\n\n @Mutation\n reset() {\n this.menuRole = null\n this.menuRolePromise = null\n }\n\n @Action\n async ensureMenuRoleConfigIsLoaded() {\n if (this.menuRolePromise === null) {\n this.loadMenuRole()\n }\n return this.menuRolePromise\n }\n\n @Action\n async loadMenuRole() {\n const menuRolePromise = AGlobalConfig.menuRoles()\n this.context.commit('setMenuRolePromise', menuRolePromise)\n this.context.commit('setMenuRole', await menuRolePromise)\n }\n\n @Mutation\n setMenuRolePromise(menuRolePromise: Promise) {\n this.menuRolePromise = menuRolePromise\n }\n\n @Mutation\n setMenuRole(menuRole: MenuRole) {\n this.menuRole = menuRole\n }\n}\n\nexport default getModule(MenuRoleModule)\n","import Vue from 'vue'\nimport { EnvUtil } from 'kuaidong-lib'\nimport Vuex, { createLogger } from 'vuex'\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n modules: {},\n strict: EnvUtil.isDev(),\n plugins: EnvUtil.isDev() ? [createLogger()] : [],\n actions: {\n reset() {\n for (const key in this.state as any) {\n this.commit(`${key}/reset`)\n }\n },\n },\n})\n","import store from './store'\nimport { ATeacher, AUser } from 'kuaidong-api'\nimport { ISchoolOperateType, ITeacherForm, Teacher, UserRoleInfo } from 'kuaidong-model'\nimport { getModule, Module, Mutation, MutationAction, VuexModule } from 'vuex-module-decorators'\n\n@Module({\n namespaced: true,\n dynamic: true,\n store,\n name: 'teacher',\n})\nclass TeacherModule extends VuexModule {\n teacher: Teacher | null = null\n\n userRoleInfo: UserRoleInfo | null = null\n\n get isAdmin() {\n return !!this.userRoleInfo?.is_admin\n }\n\n get hasUserAccountPermission() {\n return !!this.teacher?.user_account_permission\n }\n\n get isPaidSchool() {\n return (\n this.teacher?.school.operate_type === ISchoolOperateType.Paid ||\n this.teacher?.school.operate_type === ISchoolOperateType.PaidExport\n )\n }\n\n get isVerifiedSchool() {\n return this.teacher?.school.verified\n }\n\n get isPaidExportSchool() {\n return this.teacher?.school.operate_type === ISchoolOperateType.PaidExport\n }\n\n get isSportMeetingSchool() {\n return this.teacher?.school_sport_meet\n }\n\n get buildKey(): (key: string) => string {\n return (key: string) => {\n return `__${this.teacher!.user_id}_${key}__`\n }\n }\n\n @Mutation\n reset() {\n this.teacher = null\n this.userRoleInfo = null\n }\n\n @MutationAction\n async loadTeacher() {\n const teacher = await ATeacher.find()\n return { teacher }\n }\n\n @Mutation\n update(teacherInfo: Partial) {\n this.teacher = {\n ...(this.teacher || ({} as Teacher)),\n ...teacherInfo,\n }\n }\n\n @Mutation\n updateFromForm(form: ITeacherForm) {\n this.teacher = {\n ...(this.teacher || ({} as any)),\n teacher_name: form.teacher_name,\n head_img_url: form.head_img_url,\n role: form.role,\n }\n }\n\n @MutationAction\n async loadUserRoleInfo() {\n const userRoleInfo = await AUser.getRoleInfo()\n return { userRoleInfo }\n }\n}\n\nexport default getModule(TeacherModule)\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.show)?_c('div',{staticClass:\"kd-message-box__mask\",on:{\"click\":_vm.close,\"scroll\":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:\"kd-message-box\",class:_vm.customClass,on:{\"click\":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:\"kd-message-box__title\"},[_vm._v(_vm._s(_vm.title))]),_c('div',{staticClass:\"kd-message-box__content\"},[_vm._t(\"default\",function(){return [(_vm.html)?_c('p',{staticClass:\"kd-message-box__message\",domProps:{\"innerHTML\":_vm._s(_vm.message)}}):_c('p',{staticClass:\"kd-message-box__message\"},[_vm._v(_vm._s(_vm.message))])]})],2),_c('div',{staticClass:\"kd-message-box__footer\"},[(_vm.showCancelButton)?_c('kd-button',{attrs:{\"type\":_vm.cancelButtonType,\"round\":\"\"},on:{\"click\":_vm.cancel}},[_vm._v(\" \"+_vm._s(_vm.cancelButtonText)+\" \")]):_vm._e(),(_vm.showConfirmButton)?_c('kd-button',{attrs:{\"type\":_vm.confirmButtonType,\"round\":\"\"},on:{\"click\":_vm.confirm}},[_vm._v(\" \"+_vm._s(_vm.confirmButtonText)+\" \")]):_vm._e()],1)])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageBox.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageBox.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./MessageBox.vue?vue&type=template&id=44d6fdd3\"\nimport script from \"./MessageBox.vue?vue&type=script&lang=ts\"\nexport * from \"./MessageBox.vue?vue&type=script&lang=ts\"\nimport style0 from \"./MessageBox.vue?vue&type=style&index=0&id=44d6fdd3&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import MessageBox from './MessageBox.vue'\nimport { IKDMessageBoxOptions as Options } from 'kuaidong-model'\n\nexport default class {\n public result: Promise\n\n private options: Partial = {\n title: '提示',\n message: '',\n html: false,\n showConfirmButton: true,\n showCancelButton: false,\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n confirmButtonType: 'primary',\n cancelButtonType: 'secondary',\n closeOnClickModal: true,\n }\n\n private instance: Vue\n\n constructor(options?: Partial) {\n this.options = Object.assign({}, this.options, options)\n\n this.instance = new MessageBox({\n el: document.createElement('div'),\n data: this.options,\n })\n\n this.result = new Promise((resolve) => {\n this.instance.$on('cancel', () => resolve(false))\n this.instance.$on('confirm', () => resolve(true))\n })\n\n document.body.appendChild(this.instance.$el)\n }\n\n public close() {\n this.instance.$destroy()\n }\n\n public static alert(message?: string, title = '提示', options?: Partial): Promise {\n return new this(Object.assign({}, options, { title, message, showCancelButton: false })).result\n }\n\n public static confirm(message?: string, title = '提示', options?: Partial): Promise {\n return new this(Object.assign({}, options, { title, message, showCancelButton: true })).result\n }\n}\n","import { Component, Vue } from 'vue-property-decorator'\n\n@Component\nexport class BaseComponent extends Vue {}\n\n@Component\nexport class BasePage extends BaseComponent {}\n\nexport * from 'vue-property-decorator'\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('el-dialog',{staticClass:\"competition-of-drill-type-remove-dialog-dialog\",attrs:{\"visible\":_vm.show,\"title\":\"比赛视频下榜处理\",\"top\":\"0\",\"center\":\"\",\"append-to-body\":\"\",\"close-on-click-modal\":false},on:{\"update:visible\":function($event){_vm.show=$event}}},[_c('el-form',{attrs:{\"model\":_vm.form,\"rules\":_vm.rule,\"inline\":\"\"}},[_c('el-form-item',{attrs:{\"label\":\"下榜原因\",\"prop\":\"reason\"}},[_c('el-select',{model:{value:(_vm.form.reason),callback:function ($$v) {_vm.$set(_vm.form, \"reason\", $$v)},expression:\"form.reason\"}},_vm._l((_vm.reasonOptions),function(option,index){return _c('el-option',{key:index,attrs:{\"label\":option,\"value\":option}})}),1)],1)],1),_c('div',{staticClass:\"tip\"},[_vm._v(\"被下榜的参赛选手,其比赛成绩将被取消\")]),_c('div',{staticClass:\"operation-box\"},[_c('el-button',{attrs:{\"type\":\"info\",\"plain\":\"\"},on:{\"click\":_vm.handleCancel}},[_vm._v(\" 取消 \")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.handleSubmit}},[_vm._v(\" 确认 \")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./CompetitionOfDrillTypeRemoveDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./CompetitionOfDrillTypeRemoveDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CompetitionOfDrillTypeRemoveDialog.vue?vue&type=template&id=30ead6d2\"\nimport script from \"./CompetitionOfDrillTypeRemoveDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./CompetitionOfDrillTypeRemoveDialog.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CompetitionOfDrillTypeRemoveDialog.vue?vue&type=style&index=0&id=30ead6d2&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.icon && _vm.icon.startsWith('data:image'))?_c('img',{staticClass:\"cs-icon-image\",attrs:{\"src\":_vm.icon,\"width\":\"24\",\"height\":\"24\",\"alt\":\"\"}}):(_vm.icon && _vm.icon.startsWith('el-icon'))?_c('i',_vm._g({class:_vm.icon},_vm.$listeners)):(_vm.icon && _vm.icon.startsWith('i-'))?_c('i',_vm._g({class:['el-icon-', 'icon', _vm.icon]},_vm.$listeners)):_c('svg',_vm._g({staticClass:\"cs-icon-comp cs-icon el-icon-\",attrs:{\"aria-hidden\":\"true\"}},_vm.$listeners),[_c('use',{attrs:{\"xlink:href\":_vm.iconName}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./CsIcon.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./CsIcon.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CsIcon.vue?vue&type=template&id=19ec4aca\"\nimport script from \"./CsIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./CsIcon.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CsIcon.vue?vue&type=style&index=0&id=19ec4aca&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('button',_vm._g(_vm._b({staticClass:\"cs-icon-button\",class:{ selected: _vm.selected, disabled: _vm.disabled }},'button',_vm.$attrs,false),_vm.$listeners),[_c('cs-icon',{attrs:{\"icon\":_vm.icon}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./CsIconButton.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./CsIconButton.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CsIconButton.vue?vue&type=template&id=d6186dc8\"\nimport script from \"./CsIconButton.vue?vue&type=script&lang=ts\"\nexport * from \"./CsIconButton.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CsIconButton.vue?vue&type=style&index=0&id=d6186dc8&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('el-select',_vm._g(_vm._b({ref:\"select\",staticClass:\"cs-select\",scopedSlots:_vm._u([(_vm.label)?{key:\"prefix\",fn:function(){return [_c('span',{ref:\"prefix\"},[_vm._v(_vm._s(_vm.label)+\":\")])]},proxy:true}:null],null,true)},'el-select',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./CsSelect.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./CsSelect.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CsSelect.vue?vue&type=template&id=8f55e356\"\nimport script from \"./CsSelect.vue?vue&type=script&lang=ts\"\nexport * from \"./CsSelect.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CsSelect.vue?vue&type=style&index=0&id=8f55e356&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.reportResult)?_c('div',{staticClass:\"homework-drill-report\"},[(_vm.error)?_c('h5',[_vm._v(_vm._s(_vm.error))]):(_vm.ossFileFrozen)?_c('div',{staticClass:\"frozen\"},[_c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.ossFileFrozen),expression:\"ossFileFrozen\"}],staticClass:\"spinner\"}),_c('div',[_vm._v(\"视频长时间未播放,正在查找恢复中\")]),_c('div',[_vm._v(\"可能需要几分钟的时间\")])]):_c('video',{attrs:{\"controlsList\":\"nodownload\",\"controls\":\"\",\"src\":_vm.videoSrc},on:{\"error\":_vm.errorHandle}}),_c('div',{staticClass:\"user\"},[_c('el-avatar',{attrs:{\"src\":_vm.reportResult.data.user_info.head_img_url}}),_c('div',{staticClass:\"user-info-box\"},[_vm._v(\" \"+_vm._s(_vm.reportResult.data.user_info.nick_name)+\" \"),(_vm.rankDownErrorPermissions && _vm.showIllegalBtn)?_c('span',{on:{\"click\":_vm.openIllegalVideoProcessDialog}},[_c('img',{attrs:{\"src\":_vm.warningIcon}}),_vm._v(\" 违规处理 \")]):_vm._e(),(_vm.showRankDownBtn && _vm.rankDownErrorPermissions)?_c('el-button',{staticClass:\"del-video-btn\",attrs:{\"size\":\"mini\"},on:{\"click\":_vm.openRankDownOfDrillDialogVisible}},[_vm._v(\" 下榜 \")]):_vm._e()],1),_c('p',{staticClass:\"desc light\"},[_vm._v(\" \"+_vm._s(_vm.reportResult.showTime)+\" \"),_c('span',[_vm._v(\"完成了\"+_vm._s(_vm.reportResult.drillName)+\",成绩\"+_vm._s(_vm.reportResult.score))])])],1),(_vm.isCompetitionType)?_c('div',{staticClass:\"competition-title\"},[_vm._v(\"比赛成绩\")]):_vm._e(),_c('div',{staticClass:\"info light\",class:{ competition: _vm.isCompetitionType }},_vm._l((_vm.reportResult.competitionDrillInfo),function(item){return _c('div',{key:item.label,staticClass:\"item\"},[_vm._v(\" \"+_vm._s(item.label)),_c('span',[_vm._v(_vm._s(item.val))])])}),0),(_vm.isCompetitionType)?_c('el-divider'):_vm._e(),(_vm.isCompetitionType)?_c('div',{staticClass:\"competition-title\"},[_vm._v(\"参赛信息\")]):_vm._e(),(_vm.isCompetitionType)?_c('div',{staticClass:\"info light competition\"},[_c('div',{staticClass:\"competition-item item\"},[_vm._v(\" 比赛排名: \"),_c('span',[_vm._v(_vm._s(_vm.competitionInfo.rank))])]),_c('div',{staticClass:\"item competition-item\"},[_vm._v(\" 参赛分组: \"),_c('span',[_vm._v(_vm._s(_vm.competitionInfo.group))])]),_c('div',{staticClass:\"item competition-item\"},[_vm._v(\" 比赛项目:\"),_c('span',[_vm._v(_vm._s(_vm.competitionInfo.drill_name))])]),_c('div',{staticClass:\"item competition-item\"},[_vm._v(\" 参赛单位:\"),_c('span',[_vm._v(_vm._s(_vm.competitionInfo.school))])])]):_vm._e(),_c('el-dialog',{attrs:{\"visible\":_vm.illegalVideoProcessDialogVisible,\"title\":\"视频内容违规处理\",\"align\":\"center\",\"width\":\"584px\",\"close-on-click-modal\":false},on:{\"update:visible\":function($event){_vm.illegalVideoProcessDialogVisible=$event}}},[_c('el-form',{ref:\"illegalVideoFormRef\",attrs:{\"model\":_vm.illegalVideoReasonForm,\"rules\":_vm.rules}},[_c('el-form-item',{attrs:{\"prop\":\"reason\",\"label\":\"违规原因\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择违规原因\",\"clearable\":\"\"},model:{value:(_vm.illegalVideoReasonForm.reason),callback:function ($$v) {_vm.$set(_vm.illegalVideoReasonForm, \"reason\", $$v)},expression:\"illegalVideoReasonForm.reason\"}},_vm._l((_vm.illegalVideoReasons),function(reason){return _c('el-option',{key:reason,attrs:{\"value\":reason,\"label\":reason}})}),1)],1)],1),_c('span',{staticClass:\"tip\"},[_vm._v(\"为避免潜在的不良影响,我们将即刻删除该违规视频\")]),_c('div',{staticClass:\"operation-box\"},[_c('el-button',{on:{\"click\":function($event){_vm.illegalVideoProcessDialogVisible = false}}},[_vm._v(\"取消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.deleteIllegalVideo}},[_vm._v(\"确认\")])],1)],1),_c('competition-of-drill-type-remove-dialog',{attrs:{\"visible\":_vm.rankDownOfDrillDialogVisible},on:{\"update:visible\":function($event){_vm.rankDownOfDrillDialogVisible=$event},\"submit\":_vm.handleRankDownSubmit,\"cancel\":_vm.handleRankDownCancel}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./DrillReport.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./DrillReport.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./DrillReport.vue?vue&type=template&id=65fc6fc2\"\nimport script from \"./DrillReport.vue?vue&type=script&lang=ts\"\nexport * from \"./DrillReport.vue?vue&type=script&lang=ts\"\nimport style0 from \"./DrillReport.vue?vue&type=style&index=0&id=65fc6fc2&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"list-page-comp\"},[_vm._t(\"header\"),_c('el-table',_vm._b({attrs:{\"data\":_vm.currData,\"header-cell-style\":_vm.headerCellStyle,\"tooltip-effect\":\"light\",\"stripe\":\"\"},on:{\"sort-change\":_vm.sortChange}},'el-table',_vm.$attrs,false),[_vm._t(\"default\")],2),(_vm.showPagination)?_c('el-pagination',{attrs:{\"total\":_vm.total,\"page-size\":_vm.size,\"layout\":\"total, sizes, ->, prev, pager, next, jumper\"},on:{\"size-change\":_vm.sizeChange,\"current-change\":_vm.pageChange}}):_vm._e(),_vm._t(\"footer\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./ListPage.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./ListPage.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ListPage.vue?vue&type=template&id=7dd64282\"\nimport script from \"./ListPage.vue?vue&type=script&lang=ts\"\nexport * from \"./ListPage.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ListPage.vue?vue&type=style&index=0&id=7dd64282&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('el-dropdown',{staticClass:\"dropdown-menu-comp\",attrs:{\"trigger\":_vm.trigger}},[_c(_vm.menuType,{tag:\"component\",staticClass:\"el-dropdown-link\"},[_vm._t(\"menu\",function(){return [_vm._v(\" \"+_vm._s(_vm.menu)+\" \"),_c('i',{staticClass:\"el-icon-arrow-down el-icon--right\"})]})],2),_c('el-dropdown-menu',{staticClass:\"operation-dropdown-menu\",attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('el-dropdown-item',_vm._l((_vm.dropDownItems),function(item,index){return _c('div',{key:index,staticClass:\"item\",class:item.type === 'dangerous' ? 'dangerous-teacher-btn' : '',on:{\"click\":function($event){return _vm.submitAction(item)}}},[_vm._v(\" \"+_vm._s(item.label)+\" \")])}),0)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./DropdownMenu.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./DropdownMenu.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./DropdownMenu.vue?vue&type=template&id=602caaa4\"\nimport script from \"./DropdownMenu.vue?vue&type=script&lang=ts\"\nexport * from \"./DropdownMenu.vue?vue&type=script&lang=ts\"\nimport style0 from \"./DropdownMenu.vue?vue&type=style&index=0&id=602caaa4&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"title-bar-comp\"},[(_vm.back)?_c('cs-icon-button',{attrs:{\"icon\":\"i-back\"},on:{\"click\":function($event){return _vm.$router.back()}}}):_vm._e(),_c('h1',{staticClass:\"bold\"},[_vm._v(_vm._s(_vm.title))]),(_vm.showCenter)?_c('div',{staticClass:\"center\"},[_vm._t(\"center\")],2):_vm._e(),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./TitleBar.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./TitleBar.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TitleBar.vue?vue&type=template&id=1db774a2\"\nimport script from \"./TitleBar.vue?vue&type=script&lang=ts\"\nexport * from \"./TitleBar.vue?vue&type=script&lang=ts\"\nimport style0 from \"./TitleBar.vue?vue&type=style&index=0&id=1db774a2&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"progress-status-tag-comp\",class:[_vm.progress, _vm.type]},[(_vm.type === 'point')?_c('div',{staticClass:\"flag\"}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.progressLabel)+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressTag.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressTag.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ProgressTag.vue?vue&type=template&id=12e1db81\"\nimport script from \"./ProgressTag.vue?vue&type=script&lang=ts\"\nexport * from \"./ProgressTag.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ProgressTag.vue?vue&type=style&index=0&id=12e1db81&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"html-poster\"},[_c('div',{ref:\"poster\",staticClass:\"poster-container\"},[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./HtmlPoster.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./HtmlPoster.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./HtmlPoster.vue?vue&type=template&id=64d6903a\"\nimport script from \"./HtmlPoster.vue?vue&type=script&lang=ts\"\nexport * from \"./HtmlPoster.vue?vue&type=script&lang=ts\"\nimport style0 from \"./HtmlPoster.vue?vue&type=style&index=0&id=64d6903a&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isTtts)?_c('poster-footer-ttts',_vm._b({scopedSlots:_vm._u([{key:\"left\",fn:function(){return [_vm._t(\"ttts-left\")]},proxy:true}],null,true)},'poster-footer-ttts',_vm.$attrs,false)):_c('poster-footer-tzy',_vm._b({scopedSlots:_vm._u([{key:\"left\",fn:function(){return [_vm._t(\"tzy-left\")]},proxy:true}],null,true)},'poster-footer-tzy',_vm.$attrs,false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"poster-footer-tzy-comp\"},[_vm._t(\"left\",function(){return [_vm._m(0)]}),_c('img',{staticClass:\"qrcode\",attrs:{\"src\":require(\"./images/img_wechat_official_qrcode@2x.png\"),\"width\":_vm.px(66),\"height\":_vm.px(66),\"alt\":\"\"}})],2)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"left\"},[_c('div',{staticClass:\"slogan\"},[_vm._v(\"智能运动记录,提高体育成绩\")]),_c('div',{staticClass:\"tips\"},[_vm._v(\"扫码关注「体智云服务号」\")])])\n}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PosterFooterTzy.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PosterFooterTzy.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PosterFooterTzy.vue?vue&type=template&id=7141c07d\"\nimport script from \"./PosterFooterTzy.vue?vue&type=script&lang=ts\"\nexport * from \"./PosterFooterTzy.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PosterFooterTzy.vue?vue&type=style&index=0&id=7141c07d&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"poster-footer-ttts-comp\"},[_vm._t(\"left\",function(){return [_vm._m(0)]}),_c('img',{staticClass:\"qrcode\",attrs:{\"src\":_vm.qrcode,\"width\":_vm.px(81),\"height\":_vm.px(81),\"alt\":\"\"},on:{\"load\":function($event){return _vm.$emit('poster-ready')}}})],2)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"left\"},[_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"./images/icon_logo_ttts_red@2x.png\")}}),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"tips\"},[_vm._v(\"天天跳绳\")]),_c('div',{staticClass:\"slogan\"},[_vm._v(\"扫码下载,完成学校作业安排\")])])])\n}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PosterFooterTtts.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PosterFooterTtts.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PosterFooterTtts.vue?vue&type=template&id=11698b08\"\nimport script from \"./PosterFooterTtts.vue?vue&type=script&lang=ts\"\nexport * from \"./PosterFooterTtts.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PosterFooterTtts.vue?vue&type=style&index=0&id=11698b08&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PosterFooter.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./PosterFooter.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PosterFooter.vue?vue&type=template&id=707051fc\"\nimport script from \"./PosterFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./PosterFooter.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('button',_vm._b({staticClass:\"kd-button\",class:[\n _vm.typeClassName,\n _vm.sizeClassName,\n _vm.roundClassName,\n _vm.arrowClassName,\n _vm.plainClassName,\n _vm.strokeClassName,\n _vm.borderClassName,\n _vm.disabledClassName,\n _vm.useDisabledMaskClassName,\n ],attrs:{\"type\":_vm.buttonType},on:{\"click\":_vm.onclick}},'button',_vm.$attrs,false),[(_vm.$slots.prefix)?_vm._t(\"prefix\"):_vm._e(),_vm._t(\"default\",function(){return [_vm._v(\"确定\")]}),(_vm.$slots.suffix)?_vm._t(\"suffix\"):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KdButton.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../../node_modules/.pnpm/thread-loader@3.0.4_webpack@5.94.0/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/.pnpm/babel-loader@8.3.0_@babel+core@7.25.2_webpack@5.94.0/node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/.pnpm/ts-loader@9.5.1_typescript@5.5.4_webpack@5.94.0/node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.47.0/node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/index.js??vue-loader-options!./KdButton.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./KdButton.vue?vue&type=template&id=27a5607d\"\nimport script from \"./KdButton.vue?vue&type=script&lang=ts\"\nexport * from \"./KdButton.vue?vue&type=script&lang=ts\"\nimport style0 from \"./KdButton.vue?vue&type=style&index=0&id=27a5607d&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/.pnpm/vue-loader@15.11.1_babel-core@7.0.0-bridge.0_css-loader@6.11.0_lodash@4.17.21_prettier@2.2.1__otiqvfz7eqhvmggnysvj2lieaq/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-assistant\",\n \"use\": \"cs-icon-assistant-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-broadcast-gymnastics\",\n \"use\": \"cs-icon-broadcast-gymnastics-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-clean\",\n \"use\": \"cs-icon-clean-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-copy\",\n \"use\": \"cs-icon-copy-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-delete\",\n \"use\": \"cs-icon-delete-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-doc\",\n \"use\": \"cs-icon-doc-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-download\",\n \"use\": \"cs-icon-download-usage\",\n \"viewBox\": \"0 0 16 16\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-draggable\",\n \"use\": \"cs-icon-draggable-usage\",\n \"viewBox\": \"0 0 32 32\",\n \"content\": \"draggable\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-edit-3\",\n \"use\": \"cs-icon-edit-3-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-edit\",\n \"use\": \"cs-icon-edit-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-female\",\n \"use\": \"cs-icon-female-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-filter\",\n \"use\": \"cs-icon-filter-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-flag\",\n \"use\": \"cs-icon-flag-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-homework\",\n \"use\": \"cs-icon-homework-usage\",\n \"viewBox\": \"0 0 32 32\",\n \"content\": \"homework\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-like\",\n \"use\": \"cs-icon-like-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-like_on\",\n \"use\": \"cs-icon-like_on-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-line-chart\",\n \"use\": \"cs-icon-line-chart-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-live\",\n \"use\": \"cs-icon-live-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-male\",\n \"use\": \"cs-icon-male-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-notify\",\n \"use\": \"cs-icon-notify-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-school\",\n \"use\": \"cs-icon-school-usage\",\n \"viewBox\": \"0 0 32 32\",\n \"content\": \"school\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-sent\",\n \"use\": \"cs-icon-sent-usage\",\n \"viewBox\": \"0 0 1047 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-smart-phone\",\n \"use\": \"cs-icon-smart-phone-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-student\",\n \"use\": \"cs-icon-student-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-success\",\n \"use\": \"cs-icon-success-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-teacher\",\n \"use\": \"cs-icon-teacher-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-upload-1\",\n \"use\": \"cs-icon-upload-1-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-upload\",\n \"use\": \"cs-icon-upload-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-warning\",\n \"use\": \"cs-icon-warning-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../../node_modules/.pnpm/svg-baker-runtime@1.4.7/node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../../node_modules/.pnpm/svg-sprite-loader@6.0.11/node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"cs-icon-workbench\",\n \"use\": \"cs-icon-workbench-usage\",\n \"viewBox\": \"0 0 32 32\",\n \"content\": \"workbench\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","const requireAll = (requireContext) => requireContext.keys().map(requireContext)\nconst req = require.context('./', false, /\\.svg$/)\nrequireAll(req)\n","var map = {\n\t\"./assistant.svg\": 89184,\n\t\"./broadcast-gymnastics.svg\": 46208,\n\t\"./clean.svg\": 29139,\n\t\"./copy.svg\": 89911,\n\t\"./delete.svg\": 22681,\n\t\"./doc.svg\": 10,\n\t\"./download.svg\": 30192,\n\t\"./draggable.svg\": 35449,\n\t\"./edit-3.svg\": 55336,\n\t\"./edit.svg\": 37412,\n\t\"./female.svg\": 94976,\n\t\"./filter.svg\": 15342,\n\t\"./flag.svg\": 58254,\n\t\"./homework.svg\": 26782,\n\t\"./like.svg\": 76129,\n\t\"./like_on.svg\": 20183,\n\t\"./line-chart.svg\": 71513,\n\t\"./live.svg\": 2462,\n\t\"./male.svg\": 38679,\n\t\"./notify.svg\": 55107,\n\t\"./school.svg\": 31468,\n\t\"./sent.svg\": 25594,\n\t\"./smart-phone.svg\": 50448,\n\t\"./student.svg\": 28833,\n\t\"./success.svg\": 23873,\n\t\"./teacher.svg\": 82010,\n\t\"./upload-1.svg\": 88109,\n\t\"./upload.svg\": 78795,\n\t\"./warning.svg\": 56428,\n\t\"./workbench.svg\": 91499\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 20527;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + ({\"996\":\"chunk-common\",\"8952\":\"chunk-antv\"}[chunkId] || chunkId) + \".\" + {\"10\":\"679ef3b3\",\"199\":\"d9b5523c\",\"254\":\"805e67ea\",\"363\":\"40a156b8\",\"475\":\"5d068c03\",\"583\":\"74dfb5af\",\"629\":\"6eea1dce\",\"647\":\"172c444f\",\"775\":\"6ca63c89\",\"800\":\"7fa8e440\",\"807\":\"c059b06d\",\"816\":\"1dcb68f7\",\"841\":\"2c5bb486\",\"920\":\"2677aef9\",\"996\":\"fd917747\",\"1191\":\"629caad9\",\"1252\":\"5bd615fc\",\"1268\":\"41e287fb\",\"1400\":\"8de000c5\",\"1466\":\"cf861b82\",\"1472\":\"1727c4f2\",\"1483\":\"8119dc22\",\"1509\":\"bb6512ee\",\"1562\":\"0b41326e\",\"1766\":\"cde193f6\",\"1782\":\"90ae1075\",\"1809\":\"0f05955e\",\"1872\":\"7eab107a\",\"1978\":\"a6dbc671\",\"2008\":\"d6797550\",\"2039\":\"184f1d68\",\"2047\":\"37992b76\",\"2070\":\"76b7c65a\",\"2092\":\"3b793b25\",\"2113\":\"0f165275\",\"2157\":\"00b65124\",\"2195\":\"da8c396d\",\"2325\":\"ac9b1ccf\",\"2516\":\"77a36a81\",\"2528\":\"410cf5c2\",\"2770\":\"539eb6b6\",\"2871\":\"ab09d4b1\",\"2879\":\"a39536f8\",\"2891\":\"de922dcb\",\"2921\":\"69d77a4d\",\"2947\":\"5947c6c6\",\"2973\":\"220b00d2\",\"3039\":\"8e90df69\",\"3094\":\"6f93437d\",\"3219\":\"99ecfd9f\",\"3220\":\"86b6383e\",\"3222\":\"97822947\",\"3266\":\"0e5fed7b\",\"3325\":\"cb1bad3c\",\"3505\":\"a9e9297e\",\"3509\":\"25939e01\",\"3539\":\"4d62352c\",\"3563\":\"a45c5851\",\"3565\":\"196adabf\",\"3691\":\"49ef1f0a\",\"3902\":\"4543b57b\",\"3918\":\"e3728e1e\",\"3921\":\"e194a158\",\"4012\":\"6de2b233\",\"4127\":\"243ae85d\",\"4161\":\"ae421e74\",\"4176\":\"ffa93161\",\"4203\":\"e539b90d\",\"4204\":\"d0518be4\",\"4269\":\"19badd1e\",\"4298\":\"69e0c429\",\"4303\":\"391e84de\",\"4330\":\"6e4d2159\",\"4336\":\"68ca1a43\",\"4409\":\"ea28806c\",\"4455\":\"1e035f9d\",\"4672\":\"fd6c5aa0\",\"4686\":\"457792e9\",\"4772\":\"cf94bb50\",\"4794\":\"db9a3b99\",\"4819\":\"715b5020\",\"4941\":\"175fd671\",\"5040\":\"89304acd\",\"5042\":\"00ba98fb\",\"5074\":\"165e25dc\",\"5094\":\"1003cca8\",\"5221\":\"6f0bab61\",\"5242\":\"6128bd45\",\"5252\":\"e7f39cef\",\"5319\":\"585e03c7\",\"5352\":\"69c64456\",\"5358\":\"f45dc5b9\",\"5377\":\"a837813e\",\"5391\":\"b465d510\",\"5426\":\"4b944bc3\",\"5431\":\"d688d23d\",\"5432\":\"27982b3a\",\"5505\":\"eee7bb6a\",\"5599\":\"20221040\",\"5731\":\"2bdb6cf4\",\"5841\":\"802ef69f\",\"5885\":\"f58a85b1\",\"5926\":\"b996fda9\",\"5933\":\"77eb5f86\",\"5943\":\"01a80313\",\"5945\":\"b68da242\",\"6016\":\"874f8e58\",\"6035\":\"0245efef\",\"6058\":\"bee285e1\",\"6089\":\"5c8875ca\",\"6106\":\"bb535011\",\"6150\":\"48242eaf\",\"6255\":\"84403284\",\"6258\":\"77e5d7a7\",\"6264\":\"41418846\",\"6265\":\"adc4769e\",\"6282\":\"c7eb527a\",\"6335\":\"5c75cf2a\",\"6360\":\"a41929c9\",\"6385\":\"33997eb3\",\"6483\":\"f11c611b\",\"6588\":\"0686cdf0\",\"6590\":\"95702d4d\",\"6681\":\"4256ef11\",\"6770\":\"96c001a9\",\"6820\":\"1988327a\",\"6876\":\"cc15f70e\",\"6927\":\"eb9036b0\",\"6963\":\"efe32ff4\",\"6993\":\"2fd7d35c\",\"7031\":\"e50bdedf\",\"7045\":\"e87af2db\",\"7063\":\"3839c263\",\"7220\":\"fa91bae9\",\"7267\":\"05615eb6\",\"7289\":\"f20d945d\",\"7341\":\"770d4f31\",\"7376\":\"1e24617e\",\"7415\":\"e57f8d17\",\"7471\":\"9ed2de84\",\"7475\":\"b986075b\",\"7506\":\"e4cc66cc\",\"7587\":\"be9b6caf\",\"7674\":\"1d454e5f\",\"7734\":\"a61409d5\",\"7756\":\"5f2be0a7\",\"7825\":\"5c2e87b2\",\"7915\":\"060879b6\",\"7942\":\"a5ad3457\",\"8030\":\"02061c43\",\"8042\":\"fff209bc\",\"8046\":\"4f452e38\",\"8058\":\"c18a3c38\",\"8061\":\"c00e52a6\",\"8105\":\"3daf1e4a\",\"8158\":\"73412df2\",\"8282\":\"5ba5ee86\",\"8331\":\"34e0eea3\",\"8353\":\"285f139f\",\"8364\":\"c615a5e0\",\"8377\":\"3d2be70c\",\"8519\":\"a4b44f9a\",\"8646\":\"d2ab2cc1\",\"8701\":\"a36efc20\",\"8771\":\"9cf6b362\",\"8772\":\"12ef27b6\",\"8819\":\"084458a0\",\"8828\":\"3eb75064\",\"8841\":\"637438f6\",\"8875\":\"4b9c4b85\",\"8952\":\"f6926863\",\"9005\":\"74623cf8\",\"9011\":\"26d2eb9c\",\"9050\":\"eeec6a73\",\"9208\":\"20a61049\",\"9229\":\"aa8d5a70\",\"9259\":\"1090c097\",\"9313\":\"b78b98e7\",\"9408\":\"36a17eb8\",\"9473\":\"97ec47d0\",\"9570\":\"41143045\",\"9677\":\"f9cd0dcd\",\"9858\":\"86f0c0c6\",\"9892\":\"8adb94db\",\"9893\":\"4fe3cea3\",\"9941\":\"5fefd9ab\",\"9944\":\"5b137855\",\"9957\":\"738e4743\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + (chunkId === 996 ? \"chunk-common\" : chunkId) + \".\" + {\"10\":\"75611fee\",\"199\":\"44466de5\",\"363\":\"9b3b44bc\",\"475\":\"d6245553\",\"583\":\"a93e17f3\",\"629\":\"e1276556\",\"647\":\"1c9cbc5d\",\"775\":\"d1441bdb\",\"800\":\"48c76d1a\",\"807\":\"5b34ed13\",\"816\":\"d6e063aa\",\"841\":\"b252363e\",\"920\":\"b3e1403e\",\"996\":\"f6d6ee17\",\"1191\":\"2edb692c\",\"1252\":\"2a0e2713\",\"1268\":\"515d130b\",\"1400\":\"71028973\",\"1466\":\"067ebd35\",\"1472\":\"f056b8a6\",\"1483\":\"9372f570\",\"1562\":\"d3e4864b\",\"1766\":\"38fbbcb9\",\"1782\":\"98ef445d\",\"1809\":\"c4de3793\",\"1872\":\"b771f265\",\"2008\":\"c496f3af\",\"2070\":\"461b43c1\",\"2092\":\"f1d6ae63\",\"2113\":\"2018c3b8\",\"2157\":\"bbd0b131\",\"2195\":\"fb96c9fc\",\"2516\":\"a3e4910c\",\"2528\":\"1f71f545\",\"2770\":\"6701e3d7\",\"2871\":\"f586713d\",\"2921\":\"707d062d\",\"2973\":\"079c3bdc\",\"3094\":\"01de3af2\",\"3219\":\"395eb9ea\",\"3220\":\"1afd2ea2\",\"3222\":\"ad6c1aa8\",\"3266\":\"9a614e4e\",\"3325\":\"fc804841\",\"3505\":\"e2cdb4ea\",\"3509\":\"07bdd819\",\"3539\":\"f3b69de4\",\"3563\":\"bc600cd5\",\"3691\":\"19e314e3\",\"3918\":\"0b13a7ef\",\"3921\":\"d89d7b48\",\"4127\":\"84980eee\",\"4161\":\"327c4e8d\",\"4176\":\"351ef434\",\"4203\":\"325a763c\",\"4204\":\"9f0adc8d\",\"4269\":\"ef7e71a2\",\"4298\":\"f1befc52\",\"4303\":\"00eb537a\",\"4330\":\"c990a605\",\"4336\":\"afe05d99\",\"4409\":\"da285d2f\",\"4455\":\"1267749b\",\"4672\":\"72d8ce71\",\"4686\":\"e9c25a5f\",\"4772\":\"ffb54159\",\"4794\":\"5a65c494\",\"4819\":\"2e7c221b\",\"4941\":\"7676346b\",\"5040\":\"6de33f56\",\"5074\":\"b640e669\",\"5094\":\"a1b41c47\",\"5221\":\"24ce8458\",\"5242\":\"69692451\",\"5252\":\"04289482\",\"5319\":\"59def6e7\",\"5352\":\"d415f552\",\"5358\":\"793058c4\",\"5377\":\"3f141ae5\",\"5391\":\"2015f696\",\"5426\":\"4cd43013\",\"5431\":\"5658cce9\",\"5432\":\"b7fbf748\",\"5505\":\"4aac40e1\",\"5599\":\"aac39311\",\"5731\":\"196eb3c4\",\"5841\":\"9b3ddfbf\",\"5885\":\"5c02a960\",\"5926\":\"54f3baf7\",\"5933\":\"aa8abe1f\",\"5945\":\"16295a39\",\"6016\":\"a5422e08\",\"6035\":\"47be6267\",\"6089\":\"55dc2f40\",\"6106\":\"b408c005\",\"6150\":\"50252a41\",\"6255\":\"2acb6a65\",\"6258\":\"bf119e11\",\"6264\":\"9f4f12e3\",\"6265\":\"72ee80c8\",\"6282\":\"cad3aeb9\",\"6335\":\"ac3c8a26\",\"6360\":\"0f42de69\",\"6385\":\"8e2857d7\",\"6483\":\"9395dee9\",\"6588\":\"f78d5df3\",\"6590\":\"85d824e3\",\"6681\":\"c13f7060\",\"6770\":\"27367bbb\",\"6820\":\"be2db1f2\",\"6876\":\"9c65783e\",\"6927\":\"a006b58d\",\"6963\":\"72be4769\",\"6993\":\"7d7361f8\",\"7031\":\"f4446c9b\",\"7045\":\"ec3e9ece\",\"7063\":\"e207c24c\",\"7220\":\"d3d3c87f\",\"7267\":\"70c839d5\",\"7289\":\"9b3b44bc\",\"7341\":\"5f3d9312\",\"7415\":\"269a5d6d\",\"7471\":\"bb6fac98\",\"7475\":\"e70c23b4\",\"7506\":\"8ba890da\",\"7587\":\"2a3239f6\",\"7674\":\"29cad0b0\",\"7734\":\"a3a0691f\",\"7825\":\"d385b2a2\",\"7915\":\"76ee8aac\",\"7942\":\"74c3c622\",\"8030\":\"6e49c106\",\"8042\":\"2dea8f85\",\"8046\":\"e45c0efc\",\"8058\":\"44bf84eb\",\"8061\":\"72ab2a75\",\"8105\":\"51942a29\",\"8158\":\"03b68908\",\"8282\":\"7e7937d9\",\"8331\":\"ed7bf920\",\"8353\":\"fb77bb60\",\"8364\":\"856cc81f\",\"8377\":\"dd658fa5\",\"8646\":\"e0ae534a\",\"8701\":\"5ee7ebe5\",\"8771\":\"233d8a97\",\"8772\":\"6fa5bad2\",\"8819\":\"510a8ed6\",\"8828\":\"c65719eb\",\"8841\":\"c015b527\",\"8875\":\"76cbfde5\",\"9005\":\"dede0514\",\"9011\":\"ba8d3a19\",\"9050\":\"02f801f8\",\"9208\":\"451c5b66\",\"9229\":\"9099679c\",\"9259\":\"1a2796b8\",\"9313\":\"e059fa61\",\"9408\":\"2eaa13ae\",\"9473\":\"acf37fe6\",\"9570\":\"2dd2ebff\",\"9677\":\"81299c81\",\"9858\":\"3619f0c6\",\"9892\":\"b24f14aa\",\"9893\":\"9861c67b\",\"9944\":\"5d7223ef\",\"9957\":\"d1eb4fe5\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"crazyrope-shs:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t3057: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"10\":1,\"199\":1,\"363\":1,\"475\":1,\"583\":1,\"629\":1,\"647\":1,\"775\":1,\"800\":1,\"807\":1,\"816\":1,\"841\":1,\"920\":1,\"996\":1,\"1191\":1,\"1252\":1,\"1268\":1,\"1400\":1,\"1466\":1,\"1472\":1,\"1483\":1,\"1562\":1,\"1766\":1,\"1782\":1,\"1809\":1,\"1872\":1,\"2008\":1,\"2070\":1,\"2092\":1,\"2113\":1,\"2157\":1,\"2195\":1,\"2516\":1,\"2528\":1,\"2770\":1,\"2871\":1,\"2921\":1,\"2973\":1,\"3094\":1,\"3219\":1,\"3220\":1,\"3222\":1,\"3266\":1,\"3325\":1,\"3505\":1,\"3509\":1,\"3539\":1,\"3563\":1,\"3691\":1,\"3918\":1,\"3921\":1,\"4127\":1,\"4161\":1,\"4176\":1,\"4203\":1,\"4204\":1,\"4269\":1,\"4298\":1,\"4303\":1,\"4330\":1,\"4336\":1,\"4409\":1,\"4455\":1,\"4672\":1,\"4686\":1,\"4772\":1,\"4794\":1,\"4819\":1,\"4941\":1,\"5040\":1,\"5074\":1,\"5094\":1,\"5221\":1,\"5242\":1,\"5252\":1,\"5319\":1,\"5352\":1,\"5358\":1,\"5377\":1,\"5391\":1,\"5426\":1,\"5431\":1,\"5432\":1,\"5505\":1,\"5599\":1,\"5731\":1,\"5841\":1,\"5885\":1,\"5926\":1,\"5933\":1,\"5945\":1,\"6016\":1,\"6035\":1,\"6089\":1,\"6106\":1,\"6150\":1,\"6255\":1,\"6258\":1,\"6264\":1,\"6265\":1,\"6282\":1,\"6335\":1,\"6360\":1,\"6385\":1,\"6483\":1,\"6588\":1,\"6590\":1,\"6681\":1,\"6770\":1,\"6820\":1,\"6876\":1,\"6927\":1,\"6963\":1,\"6993\":1,\"7031\":1,\"7045\":1,\"7063\":1,\"7220\":1,\"7267\":1,\"7289\":1,\"7341\":1,\"7415\":1,\"7471\":1,\"7475\":1,\"7506\":1,\"7587\":1,\"7674\":1,\"7734\":1,\"7825\":1,\"7915\":1,\"7942\":1,\"8030\":1,\"8042\":1,\"8046\":1,\"8058\":1,\"8061\":1,\"8105\":1,\"8158\":1,\"8282\":1,\"8331\":1,\"8353\":1,\"8364\":1,\"8377\":1,\"8646\":1,\"8701\":1,\"8771\":1,\"8772\":1,\"8819\":1,\"8828\":1,\"8841\":1,\"8875\":1,\"9005\":1,\"9011\":1,\"9050\":1,\"9208\":1,\"9229\":1,\"9259\":1,\"9313\":1,\"9408\":1,\"9473\":1,\"9570\":1,\"9677\":1,\"9858\":1,\"9892\":1,\"9893\":1,\"9944\":1,\"9957\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t3057: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkcrazyrope_shs\"] = self[\"webpackChunkcrazyrope_shs\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(34160); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","attrs","staticRenderFns","created","document","addEventListener","$Progress","finish","start","component","Vue","use","ElementUI","VueProgressBar","color","failedColor","thickness","router","beforeEach","LoginService","routerBeforeEachHook","HttpUtil","setWithCredentials","on","HttpUtilEvent","StatusCode401","login","bind","undefined","VueUtil","setARMSConfig","environment","EnvUtil","isProd","CsIcon","config","productionTip","routerHelper","prototype","$routerHelper","mixin","computed","$role","keys","Object","Role","result","forEach","key","_loginStore$organizat","loginStore","organization","role","$p","PermissionService","teacherStore","userRoleInfo","teacher","menuRoleStore","menuRole","buildPermissions","v","store","h","App","$mount","logger","installCodelessTracking","Layout","Intro","Create","List","Detail","createRoute","path","name","props","route","query","meta","title","listRoute","introRoute","detailRoute","autumn2022Route","icon","newTermIcon","iconActive","newTermIconActive","children","LayoutEmpty","Details","DetailsInfo","DetailsStats","ListAvailable","ListParticipated","DetailsGroup","DetailsVideos","DrillDetailsInfo","CompetitionAreaDetail","CompetitionAreaDetailState","drillDetailsInfoRoute","params","detailsInfoRoute","detailsStatsRoute","detailsGroupRoute","detailsVideosRoute","detailsRoute","redirect","GlobalConfigRouteMetaEnum","Drills","Homework","areaDetailsInfoRoute","areaDetailsStatsRoute","listAvailableRoute","listParticipatedRoute","showMenu","messageTarget","areaDetailRoute","areaDetailStatRoute","detailsAreaRoute","listAvailableRouteClone","listParticipatedRouteClone","oldCompetitionRoutes","Landing","Statistics","landingRoute","statisticsRoute","Summer2022Routes","navigateToSummerVacation2022List","push","navigateToSummerVacation2022Edit","navigateToSummerVacation2022Landing","qd","redirectToSummerVacation2022Landing","replace","Login","Dashboard","loginRoute","ignoreLogin","dashboardRoute","navigateToCustomGuangdongLogin","loginMethod","redirectToCustomGuangdongLogin","navigateToCustomGuangdongDashboard","DashboardFull","dashbaordFullRoute","navigateToCustomCompetitionLogin","redirectToCustomCompetitionLogin","navigateToCustomCompetitionDashboard","id","navigateToCustomCompetitionDashboardFull","customCompetitionRouter","RCustomGuandong","RCustomCompetition","Home","homeRoute","homeIcon","homeIconActive","roles","Offical","Edit","Score","JudgeStats","editRoute","scoreRoute","statsRoute","navigateToCompetitionRegionJudgeList","competitionId","navigateToCompetitionRegionJudgeEdit","navigateToCompetitionRegionJudgeDetails","navigateToCompetitionRegionJudgeScore","groupName","scoringTypesId","navigateToCompetitionRegionJudgeStats","groupCode","DetailsVideosInfo","DetailsParticipant","Stats","StatsParticipant","data","JSON","parse","Organization","region","detailsParticipantRoute","detailsVideosInfoRoute","statsParticipantRoute","participantId","Number","judgeListRoute","judgeEditRoute","judgeDetailsRoute","judgeScoreRoute","judgeStatsRoute","navigateToCompetitionRegionStatsOrganization","group_code","navigateToCompetitionRegionDetailsOrganization","rotuer","RouterUtil","cloneRoutes","competitionRegionOrganizationRoutes","mode","CompetitionMode","Video","OrganizationJudge","competitionMenuIcon","competitionMenuIconActive","regionRoutes","videoRegionRoutes","RCompetitionOrganization","RHomeOrganization","slice","Index","DetailInfo","DetailStat","menuIcon","menuIconActive","LayoutUnauth","AuthForm","ContactUs","AuthFormQuick","AuthInProgress","authRoute","contactUsRoute","authFormQuickRoute","authInProgressRoute","navigateToContactUs","window","open","resolve","href","navigateToExamRecordStandardList","navigateToExamRecordStandardDetails","tab","arguments","length","ExamRecordStandardDetailsTab","Measure","PracticeList","PracticeEdit","PracticeCheck","PracticeDetails","ExamRecordStateSchoolList","ExamRecordStateClazzList","ExamRecordStateStudentList","DataSummary","DataClassSummary","DataClassJobs","DataJobs","DataGrades","DataRateSummary","RecordList","RecordDetails","RecordDetailsAdjust","EditRoute","All","DetailRoute","practiceListRoute","practiceEditRoute","practiceCheckRoute","practiceDetailsRoute","dataRoutes","schoolRecordListRoute","clazzDataAnalysisRoute","body_exam_upload_score_id","studentDataAnalysisRoute","class_no","cid","recordListRoute","recordDetailsRoute","recordDetailsAdjustRoute","examMenuIcon","examMenuIconActive","RExamRecordStandard","navigateToExamPracticeEdit","navigateToExamPracticeCheck","examPracticeId","redirectToExamPracticeCheck","navigateToExamPracticeDetails","redirectToExamPracticeDetails","navigateToClazzDataAnalysis","target_school_id","navigateToExamRecordDetails","examRecordId","showUploadDialog","navigateToExamRecordDetailsAdjust","SchoolManage","GradeList","ClazzList","StudentList","StudentAuth","StudentAuthForAccount","StudentAuthForAccountDetail","StudentListManagePage","GradeDetails","ClazzDetails","ClazzDetailsForStudentCode","StudentDetails","StudentDetailsSchoolRollNo","StudentDetailsForSchoolAccount","StudentMatchesInfo","TeacherList","TeacherCreate","TeacherDetail","schoolManageRoute","gradeListRoute","clazzListRoute","gradeNo","studentListRoute","studentAuthRoute","studentAuthAccountRoute","studentAuthAccountDetailRoute","studentManageListRoute","gradeDetailsRoute","gradeId","clazzDetailsRoute","clazzId","clazzDetailsForStudentCodeRoute","studentMatchesInfoRoute","studentDetailsRoute","student","studentDetailsSchoolRollNoRoute","studentDetailsForSchoolAccountRoute","TeacherListRoute","TeacherCreateRoute","TeacherDetailRoute","schoolMenuIcon","schoolMenuIconActive","navigateToWebTeacherList","navigateToGradeDetails","String","navigateToClazzDetails","clazzName","navigateToClazzStudentAccountDetails","navigateToClazzDetailsForStudentCode","navigateToStudentMatchesInfo","navigateToStudentDetails","stringify","navigateToStudentDetailsSchoolRollNo","navigateToStudentDetailsSchoolAccount","navigateToTeacherDetails","navigateToTeacherCreate","GiftPacksActivity","giftPacksRoute","navigateToGiftPacksActivity","routes","navigateToHomeworkTemplateList","navigateToHomeworkTemplateEdit","navigateToHomeworkTemplateDetails","EditChooseTemplate","CompetitionType","editChooseTemplateRoute","map","springSemester2022Routes","type","VacationHomeworkType","SpringSemester2022Homework","navigateToVacationHomeworkPlanEdit","redirectToVacationHomeworkPlanEdit","navigateToVacationHomeworkPlanDetails","redirectToVacationHomeworkPlanDetails","navigateToVacationHomeworkPlanEditChooseTemplate","Check","PlanEdit","PlanList","PlanDetails","PlanEditChooseTemplate","PlanDetailsForLongTerm","StatsDetailsGrade","StatsDetailsClazz","StatsDetailsDrill","StatsDetailsClock","StatsDetailsStudent","IntelligentPlanEdit","IntelligentPlanDetails","statsDetailsGradeRoute","HomeworkStatsType","ByGrade","statsDetailsClazzRoute","ByClazz","statsDetailsDrillRoute","ByDrill","statsDetailsClockRoute","ByClock","statsDetailsStudentRoute","ByStudent","planListRoute","planDetailsRoute","planDetailsForLongTermRoute","planEditRoute","cids","templateId","checkRoute","initialDate","DateWrapper","date","Date","planEditChooseTemplateRoute","IntelligentPlanEditRoute","isEdit","IntelligentPlanDetailsRoute","homeworkMenuIcon","homeworkMenuIconActive","templateRoutes","navigateToHomeworkCheck","showDateStr","navigateToHomeworkPlanList","navigateToHomeworkPlanEdit","classId","redirectToHomeworkPlanEdit","navigateToHomeworkStatsDetails","navigateToHomeworkPlanEditChooseTemplate","redirectToIntelligentPlanEdit","navigateToIntelligentPlanEdit","navigateToHomeworkPlanDetails","navigateToIntelligentHomeworkPlanDetails","navigateToHomeworkPlanLongTermDetails","Collect","Topic","Mine","indexRoute","collectRoute","topicRoute","mineRoute","teachMenuIcon","teachMenuIconActive","Workbench","workbenchIcon","workbenchIconActive","MineCourseDetail","ListMine","ListResource","ListCourseResources","CourseLiveDetail","LiveCourseLessonSchedule","LiveCourseLessonDetail","LiveCourseLessonStatistics","currentDate","mineCourseDetailsRoute","listMineRoute","listResourceRoute","ListCourseResourcesRoute","CourseResourceDetailRoute","LiveCourseLessonScheduleRoute","LiveCourseLessonDetailRoute","LiveCourseLessonStatisticsRoute","IconMenuInactive","IconMenuActive","navigateToLiveCourseDetails","navigateToLiveCourseRepoDetails","navigateToLiveCourseLessonDetail","from","homeworkTemplateId","navigateToLiveCourseLessonStatistics","navigateToLiveCourseTimeTable","CompetitionManagementPage","CompetitionManagementDetailPage","CompetitionManagementDetailStatePage","managementRoute","managementDetailsRoute","managementDetailStateRoute","OnlineGameList","OnlineGameDetail","OnlineGameStatDetail","OnlienGameAwards","onlineGameListRoute","onlineGameDetailRoute","OnlineGameStatDetailRoute","OnlineGameAwardsRoute","drillInfo","awardsStatus","matchDetail","Launch","OnlineLaunch","OnlineIntro","CompetitionIntroPage","CreateSportsMeeting","onlineIntroRoute","launchRoute","onlineLaunchRoute","competitionIntroRoute","createSportsMeetingRoute","managementRouters","onlineGameRouters","sportsFestivalRouters","navigateToWebCreateCompetition","navigateToCompetitionDetailStat","NoticeCenter","noticeCenterRoute","category","navToNoticeCenter","SubjectEvaluationLanding","SportsDigitalPortraitLanding","subjectEvaluationLandingRoute","sportsDigitalPortraitLandingRoute","digitalSportsIcon","digitalSportsIconActive","ClazzResultDetails","StudentResultDetails","CategoryItem","CategoryItemRecord","Config","ClazzResultDetailsRoute","StudentResultDetailsRoute","CategoryItemRecordRoute","CategoryItemRoute","ConfigRoute","CustomEdit","CustomDetail","GymnasticsActivity","listType","t","customIndexRoute","rolesKey","customEditRoute","customDetailRoute","gymnasticActivityRoute","broadcastMenuIcon","broadcastMenuIconActive","navigateToGymActivity","navigateToBroadcastGymnasticsEdit","redirectToBroadcastGymnasticsCheck","broadcastGymnasticsId","navigateToBroadcastGymnasticsDetails","redirectToBroadcastGymnasticsDetails","ExercisePrescriptionList","ExercisePrescriptionClazzDetail","ExercisePrescriptionStudentDetail","ExercisePrescriptionTrainingDetail","EPIntroPage","exercisePrescriptionListRoute","exercisePrescriptionClazzDetailRoute","startDate","endDate","exercisePrescriptionTrainingDetailRoute","exercisePrescriptionStudentDetailRoute","epIntroPage","intelligentClassroomIconInactive","intelligentClassroomIconActive","baseData","moveData","homeworkAssignData","homeworkFinishData","baseDataRoute","moveDataRoute","overviewRoute","homeworkAssignDataRoute","homeworkFinishDataRoute","homeworkRoute","Preview","previewRoute","canUpdate","canDelete","winter2023Route","_setupProxy","staticClass","viewPlan","_v","training","clazzSummaryItems","pageData","limit","scopedSlots","_u","fn","row","_s","class_vo","note_name","students_count","completion_count","style","service","participatedRateColor","completion_rate","formatRate","$event","navToDetail","challenge_class_id","start_datetime","end_datetime","formatDate","teacher_vo","teacher_name","clazzInfo","clazz","join","TrainingOverviewInfo","BaseComponent","orderBy","class_vo_list","dt","format","__decorate","Prop","required","Function","default","showDateStrShort3","Component","components","ProgressStatusTag","value","updateClazzId","_l","option","index","label","_e","info","getValueStyle","TrainingClazzStaticInfo","NewCourseLiveService","rate","UnitUtil","percent","clazzIds","Array","Emit","CsSelect","PracticeClazzDetailPage","BasePage","constructor","staticInfo","summaryItems","count","items","_this$staticInfo","_this$staticInfo2","_this$staticInfo3","uncompleted_count","clazzOptions","item","_item$class_vo","_item$class_vo2","_item$class_vo3","challenge_id","fetchClazzStaticInfo","fetchClazzSummaryList","AWinter2023","trainingClassSummary","group_id","trainingClassSummaryList","challengeClassId","$router","_this$staticInfo4","_this$staticInfo5","navToQuestionDetail","paper_id","TitleBar","ListPage","studentList","class","statusClass","completion_status","user_id","PracticeStudentListPage","offset","currentChallengeClassId","student_vo","_show_student_name","class_name","gender","currentClazz","find","showClazzName","SchoolUtil","buildClazzName","grade_no","status","fetchStudentList","classStudentList","targetClazz","userId","chanllengeClassID","head_img_url","totalScore","record","max_paper_record","drill_records","seq","drillInfos","drill","showDrillReportPopup","drill_record_id","ai_detect_label","formatTime","time","formatDuration","duration","star_score","showDrillReport","currentDrillReportId","PersonalDrillRecordCard","showCustomStr","ms","DateUtil","millisecond2minutes","DrillReport","question","calcQuestionClass","subject","calcStatus","no","content","showRightSeq","explanation","PersonalExamRecordCard","overviewInfo","paperRecord","total_quantity","correct_quantity","wrong_quantity","questionInfo","questions","rightOptionIndex","options","findIndex","is_right","answerStatus","isUserOption","optionId","user_option_ids","includes","PracticeStudentDetailPage","recordDetail","score","records","item_records","fetchStudentRecord","studentRecord","TaskList","TaskDetail","PracticeRoute","TaskRoute","PracticeClazzDetailRoute","PracticeStudentListRoute","PracticeStudentDetailRoute","TaskDetailRoute","SpecialSkillRoute","specialSkillIcon","specialSkillIconActive","navToTaskDetail","imgUrl","model","callback","$$v","$set","expression","slot","exam","navToExamDetail","author","KnowledgeRepoPage","knowledgeRepoList","filterExamList","filter","fetchKnowledgeRepoList","paperList","assign","paperDetail","selectPopupVisible","navToExamOrPracticeAssign","paperName","totalQuestions","assignExamPopupVisible","backTypeSelect","assignPracticePopupVisible","_m","categoryGroup","lowCounts","mediumCounts","highCounts","seqNo","calcDifficultyClass","difficulty_level","showExplanation","QuestionInfo","rightOption","Boolean","QuestionDetailContent","questionGroupByCategory","groupBy","show","proxy","selected","select","text","tip","idx","change","QuestionTypeSelectPopup","ExamQuestionType","TestByPractice","types","type2Label","tips","TestByExam","PropSync","form","multiple","back","AssignExamPopup","paper_type","question_score","class_id_list","grade_ids","clazzes","ClassService","buildClassOptionsWithNoteName","mergeDateAndTime","showTimeStr","durationOption","n","scoreOption","scoreRange","fetchClazzes","AClazz","allMine","showDateWeekStr","split","validate","$message","error","end","createExamOrChallenge","success","e","updateEndTimeByStart","addMinutes","updateEndTimeByDuration","Debounce","Watch","immediate","AssignPracticePopup","endOfDay","updateEndTime","beginningOfDay","KnowledgeExamDetailPage","fetchPaperDetail","detail","examList","handleRemove","showUpdateNamePopup","showUpdatePopup","navToExamSummary","navToRepo","updateTimePopupVisible","updateChallengeTime","selectItem","updateNamePopupVisible","updateName","updateExamName","dropDownItems","handleAction","preventDefault","apply","creator","ExamCard","actionVisible","isUnStart","isEnd","action","actionInfo","changeName","download","viewPractice","FileExportService","exportFile","exportExam","online_exam_id","ToastDebug","DropdownMenu","confirm","UpdateNamePopup","toast","confirmUpdateName","KnowledgeExamListPage","teacherExamList","formatProgress","TeacherService","buildName","navToQuestionBank","showDateStr2","fetchPaperExamList","teacherPaperExamList","examInfo","ok","KDMessageBox","cancelButtonText","confirmButtonText","confirmButtonType","deleteTeacherPaperExam","updateChallenge","updatePaperExam","knowledgeList","navToTrainingStatic","calcStatusLabel","navToTrainingDetail","trainingInfo","PracticeCard","startBegin","now","endTime","isToday","today","buildLessonStartDateCN","clazzInfos","exportPractice","fetchTrainingList","challengeOrTrainingList","deleteTeacherChallenge","updateTeacherChallenge","notifyStudent","formatExamTime","clazzSummaryInfo","calcScoreStatus","avg_score","formatAvgScore","attending_count","un_start_count","navToStudentStatic","examStatisticInfo","invitePosterDialogVisible","base64","posterKey","setImg","grade","buildGradeName","clazzIndex","schoolName","ExamPosterBaseComp","_this$examStatisticIn","school","school_name","gradeInfo","showDateStrShortCN","PosterFooter","KnowledgeExamClazzDetailPage","actions","shareLoading","b64","share","mounted","summaryInfo","class_total_summary","_this$summaryInfo4","_this$summaryInfo5","_this$summaryInfo6","_this$summaryInfo","_this$summaryInfo2","_this$summaryInfo3","class_summary_list","handleClick","avg","toFixed","showStrFullDate","_this$exam","_this$exam2","examId","clazzOption","fetchExamStatisticClazzSummary","examStatisticClazzSummary","HtmlPoster","remindStudent","currentClazzId","mapItems","studentName","correct","finish_progress","navToStudentExamResultDetail","KnowledgeExamStudentDetailPage","clazzPickerVisible","studentStatisticInfo","student_summary_list","answer_count","question_count","formatPaperStatus","paper_status","_this$summaryInfo7","fetchStudentStaticInfo","examStatisticStudentSummary","onlineExamClassId","online_exam_class_id","warning","_this$exam3","onlineExamRemind","updateStudentStaticInfo","studentPaper","StudentQuestionInfo","KnowledgeExamResultForStudentPage","_this$studentPaper","_this$studentPaper2","_this$studentPaper3","_this$studentPaper4","_this$studentPaper5","undo_quantity","fetchStudentPaper","examStatisticStudentPaper","go","transferSummaryItems","navToClazzStudentStatic","KnowledgePracticeClazzDetailPage","navToLiveCourseRecords","KnowledgePracticeStudentDetailPage","filterClazzName","navToStudentStaticsPage","PEKnowledgeRepoRoute","PEKnowledgeExamDetailRoute","PEKnowledgeExamListRoute","PEKnowledgeClazzDetailRoute","PEKnowledgeStudentDetailRoute","PEKnowledgeExamResultForStudentRoute","PEKnowledgePracticeListRoute","KnowledgePracticeListPage","PEKnowledgePracticeClazzDetailRoute","PEKnowledgePracticeStudentDetailRoute","PEKnowledgePracticeResultForStudentRoute","PEKnowledgeRoute","peKnowledgeIcon","peKnowledgeActiveIcon","WorkContestAssessment","WorkContestProjects","workContestDetailRoute","workContestProjectsRoute","HWJudge","VueRouter","RWorkbench","RHome","RNoticeCenter","RDataBoard","RAuth","RPlan","RDigitalSports","RIntelligentClassroom","RWinter2023","RAutumn2022","RHomework","RProcessEvaluation","RResource","RSystem","RCompetition","RExam","RExercisePrescription","RPEKnowledge","RTeachSource","RCourseLive","RBroadcastGymnastics","RUser","ROrganization","RActivity","RLongBreak","RSpecialSkill","RCustom","RSchool","RWorkContest","to","next","isSportMeetingSchool","fullPath","startsWith","isPaidSchool","ignoreLoginRoutes","authRouter","ignoreLoginInBrowserRoutes","ignoreAuthRoutes","currying","helperMethod","_len","_key","buildRouterHelper","methodName","method","RouterService","menuItems","buildMenuItems","permissons","hasRole","_route$meta","_route$meta$roles","hasRoles","some","hasPermission","_route$meta2","Admin","isAdmin","Verified","isVerifiedSchool","UserAccount","hasUserAccountPermission","values","m","getRoles","_route$meta3","routeCopy","LoginEvent","eventEmitter","EventEmitter","WXWebOauthTargetHash","OrganizationTag","organizationRouter","ContestTag","workContestRouter","once","handler","initBeforeLogin","globalConfigStore","ensureConfigIsLoaded","ensureDrillsIsLoaded","ensureHomeworkIsLoaded","DrillCategories","ensureDrillCategoriesIsLoaded","competitionStore","ensureTypesIsLoaded","initAfterAuthed","isLoginedByOrganization","loadTeacher","loadUserRoleInfo","ensureMenuRoleConfigIsLoaded","target","location","routeToAuth","_route","isApplied","_route$query","channel","authRecords","ATeacher","allAuthRecords","isOrganizationPath","url","isCustomGuangdongPath","customRouter","isCustomCompetitionPath","hasWXWebOauthTargetHash","encodeWXWebOauthTargetHash","URL","hash","origin","pathname","substring","decodeWXWebOauthTargetHash","searchParams","has","get","checkWXWebOauthTargetAndRedirect","isCurRoute","AppUtil","isUnderApp","queryStr","BrowserUtil","isWechat","isWxWork","routeName","LoginMethod","ByPhone","ByAccount","needAuth","ignoreAuth","needLogin","_to","_from","_next","userTeacherId","loadOrganization","BaseLogger","setUserId","uid","loadUserTeacherId","isLogined","fire","Logined","isAuthed","all","httpGET","allImported","allClassListForSchoolManagement","allNotOnlyOwnedByTeacher","only_owned_by_teachers","allForAdminOwnForTeacher","allByGradeNo","onlyOwned","addClassManagerSet","add_class_manager_set","classesSportMine","allSportsTeams","allClazzes","clazzesOptions","createSportsTeam","httpPOST","allAvailable","ClazzAvailableType","ExamPractice","summer_homework_id","hw_space_type","findById","findByTeacherId","teacherId","teacher_id","findStudent","class_id","removeStudent","httpDelete","batchRemoveStudent","userIds","clazz_id","user_ids","updateStudent","student_no","fileUploadToken","filename","scene","studentsImport","fileUrl","file_url","studentsAdminImport","setStudentTestFree","student_import_id","test_free","httpPUT","fetchStudentMatches","updateStudentMatches","updateInfo","studentMatchesCheck","schoolStudentMatchesCheck","updateSchoolStudentMatches","updateClazzNoteName","updateStudentMatcher","exportStudents","changeStudentClazz","verifyStudent","unVerifyStudent","studentSchoolRollNoImport","columnMap","column_map","studentSchoolRollNoImportParseTitles","excel_url","studentSchoolRollSummary","unBundlingStudentCode","school_roll_no","deleteStudentCode","deleteAllStudentCode","addStudent","studentInfo","clazzListForStudentSchoolRoll","schoolRollNoImports","SchoolRollNoExportClassExcel","DeleteClassForVerifiedSchool","studentAccountSummary","studentAccountImports","include_password","studentAccountClazzImport","studentListForStudentAccount","delStudentAccount","login_name","unBindStudentAccount","addStudentAccount","studentAccountForm","clazzListForStudentAccount","checkClazzHasDupStudents","getDupStudents","dupStudentProcess","getSchoolGrades","infos","ACompetition","competition_id","fetchCompetitions","fetchTypes","fetchCompetitionScopeConfig","saveCompetition","_ref","competition","competition_scope","competition_type_id","competition_type","theme_title","start_time","end_time","description","take_part_limits","scope_type","scope_school_ids","schools","s","school_id","scope_grade_ids","grades","g","grade_id","scope_class_ids","c","adjustOwnGradesScopeType","createCompetition","launchCompetition","match_type","introduce","match_img_url","limit_score","target_score","game_type","scope_list","updateCompetition","closeCompetition","_ref2","saveDraft","_ref3","deleteDraft","_ref4","fetchCompetitionRankings","exportCompetitionRankings","fetchCompetitionGradeStat","fetchCompetitionClassStat","AGlobalConfig","homework","allDrills","drills_info","getGlobalConfig","getDrillCategory","buildShortUrl","short_url","menuRoles","templateHandler","res","drills","fill","homework_contents","day_of_week","homework_items","d","drill_id","repeats","container_type","homework_desc","gender_scope","stage","hw_tpl_id","desc","message","repeatBy","repeat_type","fridayChecked","is_check_wd5","templateListHandler","hw_tpls","created_time","showFullStr","AHomework","fetchDayClassResult","everyday_release_id","curr_date","fetchWeeklyCount","scopeCover","scope_cover","fetchWeeklyLineData","fetchHomeworkPlans","fetchHomeworkSummaryDaily","target_date","fetchHomeworkSummariesDailyLatest","fetchHomeworkSummariesDaily","start_date","end_date","exportHomeworkSummariesDaily","fetchHomeworkSummariesWeekly","checkHomeworkPlanSave","isShs","class_ids","classes","saveHomeworkPlan","_form$message","clearAndSync","saveTemplate","cascade","schedule_id","groupId","release_id","homeworkContents","trim","expire_time","release_type","releaseType","is_publish_all_class","publishToAllClasses","is_clear_and_sync","template_id","is_modify","is_record_custom_tpl","is_clear_today","checkHomeworkToday","releaseId","removeHomeworkPlan","checked","is_del_curr_homework","checkHomeworkPlanPublish","publish","unpublish","fetchEverydayHomeworkPlan","everydayReleaseId","removeEveryHomeworkPlan","fetchHomeworkStudents","fetchHomeworkStudentsWeekly","fetchHomeworkComments","fetchHomeworkRecord","recordId","fetchHomeworkRecords","homeworkIds","homework_ids","fetchHomeworkRecordsWeekly","sendComment","comments","fetchCommentTemplates","fetchCommentTemplatesOfGrades","switchGradeCommentStatus","scope","addCommentTemplate","txt","removeCommentTemplate","like","homeworkRecordCorrect","record_id","fetchClassesWithWinterHolidayHomeworks","fetchHomeworkReport","addRemark","special_status","remark","remindUncompleteStudents","remindUncompleteStudentsToday","remindUncompleteStudentsBatch","everydayReleaseIds","everyday_release_ids","fetchHomeworkDailyStat","fetchHomeworkWeeklyStat","fetchHomeworkTemplates","fetchTemplate","generateHomeworkPlanByQuestionnaire","questionnaireAnswers","publishHomeworkPlanByQuestionnaire","grade_message_map","templateList","then","rawTemplateList","fetchTpl","updateTpl","template","hw_tpl","deleteTpl","fetchHomeworkDrillDetail","drillId","fetchHomeworkIntelligentTargets","fetchHomeworkIntelligentRules","targetRuleInfo","checkConflict","publishPost","_form$message2","clearTody","homeworkItems","container","day","week","weekend","weekends_only","deleteIllegalRecordVideo","reason","fetchHomeworkUneditable","fetchAutoCorrectionConfig","setAutoCorrectionConfig","ALogin","sendLoginCode","phone","isISC","sendLoginCodeV2","logout","removeRuquestToken","isAgency","cookie","isCampus","isSaas","_unused","loginByPhone","code","wx_open_id","sms_code","setRequestToken","auth_token","loginTzyByPhone","bindWxWork","loginByH5Token","loginByQrCode","token","loginByQrCodeResult","expiredDays","expires_days","loginByQrCodeToken","loginByAccount","username","password","getOrganizationInfo","AdChannel","isChannel","channel_prefix","isBaiduChannel","isZhihuChannel","isTouTiaoChannel","isTencentChannel","isTocChannel","isTobChannel","isTobTouTiaoChannel","isTouTiaoTyjxChannel","isTobTencentChannel","isStuChannel","isHomeworkChannel","isHomeworkSummerChannel","isHomeworkSummerTencentChannel","isHomeworkWinterChannel","isHomeworkTouTiaoChannel","channelWithEnv","TikTokAd","isOcpcPage","ocpc_pages","indexOf","douyinTrackInit","r","trackid","meteor","methods","factory","args","call","unshift","i","load","fjs","getElementsByTagName","js","createElement","src","parentNode","insertBefore","invoked","track","douyinFormSubmit","accountInfo","win","event","convert_id","douYinChannelInit","ticTokTrackIdInfo","toString","trackId","baseCodeInit","isDouYinBaseCodeInit","submitForm","validatePhone","msg","isPhone","StringUtil","validateChinaMobilePhoneNumber","_TikTokAd","TencentAd","initBaseCode","gdt","initVersion","initScript","initAccountInfo","_this","version","tk","queue","sv","bt","scriptEle","doc","tag","async","gdtEventsJs","firstScript","account","longDateStr","homeworkSummerBaseCodeInit","_TencentAd","ZhihuAd","addOcpcBaseCode","zhad","jsSource","onerror","img","Image","encodeURIComponent","scriptTags","pageInit","isZhihuBaseCodeInit","eventtype","_ZhihuAd","verified_start_date","verified_end_date","verified","DateRangeUtil","in","save","teacher_user_id","teacher_role","binding_classes","role_type","is_admin","remove","registerSimple","applyAuth","teacherAuthForm","province","city","district","verify_code","verificationCode","invite_code","form_data","classNo","noteName","purpose","identify","no_need_code","applyAuthSimple","joinClazz","bind_classes","exitClazz","getStudentInvitationUrl","getStudentInvitationUrlPerSchool","extra_params","getShareCode","share_code","summaryStats","allClasses","allTeachers","ownClasses","fetchTeacherInfo","updateTeacherInfo","webApplyAuthTeacher","teachersInfo","webFetchAuthTeacherList","webClassesExtra","webTeacherPassApply","apply_id","webTeacherJoinClazz","webTeacherDeleteClazz","webTeacherRejectAuth","_ref5","applyId","rejectReason","reject_reason","delTeacherForAdmin","assistant","_ATeacher","ShareSceneClazzInvite","AUser","isOperation","getUserInfo","feedback","getDrillReport","process","getRoleInfo","achieveConfig","achieveClasses","detailOfSafeLessons","detailOfPELessons","detailOfQAOrSkills","create","list","delete","vacation_plan_id","preview","challengeItems","challengePrizes","challengeId","challenge_type","isUniversity","challengeRepoList","achieveStatusOfAwards","achieveCourse","course_id","achieveGift","achieveCourses","achieveAwardsOfChallenge","exam_id","stat","createTeacherChallenge","yearTopRank","yearTopRankMine","userContribution","userContributionRank","userContributionRankMine","mixSubjectsList","activity_id","mixSubjectsOverInfo","inter_subject_practice_id","mixSubjectsClassSummary","mixSubjectsClassList","mixSubjectsStudentSummary","mixSubjectsStudentList","mixSubjectsDownload","ALog","json","app","payload","registerHooks","loading","loading1","loading2","_keepaliveSaveScroll","_keepaliveScrollValue","_this$$route","_this$$route$meta","$route","keepAlive","UIUtil","showToast","logClick","logEvent","_log","logDetailEvent","triggerName","subValue","eventName","eventId","eventStep","_jsonLog","_logToARMS","quantity","__bl","sum","_getQuery","defaultValue","_routeReplace","catch","err","console","_isFromAppShare","_isFromPush","_isFromWeapp","_pushPath","_buildFullUrl","rawLocation","routeData","_openNewPage","jumpUrlNewTab","_goBack","backLevel","history","Math","abs","log","_student_app_name","full_name","nick_name","_student_note_name","_student_real_name","_show_clazz_name","ClazzWrapper","_show_fulltime","theTime","_show_datetime_short","showStr","_LoadingAsyncTask","func","showLoading","hideLoading","_checkRoleAndExecute","roleAccess","toastMsg","activated","scroll","top","beforeRouteLeave","scrollY","_toFixedNum","num","decimal","_gotoSharePage","shareConfigId","pageTitle","_wxShareTitle","_wxShareDesc","_wxShareImg","_isUnderApp","isApph5","_setTitleBar","_setTitle","getPageTitle","appNameZHCN","appNameDesc","updateTitle","_this$$route$meta2","fixIosWhiteScreenBug","_initWechatShare","_logPageVisit","_getQD","_this$$route$query","LoginTeacherService","safeGetTeacherId","sessionStorage","setItem","getItem","setTitle","_forceAuth","forceAuth","clearBackPath","disableBack","_disableTitleBar","linkUrl","wx","WechatUtil","getInstance","setShareConfig","_updateWechatShare","_this$$route$meta3","defaultTitle","_share","_url","alert","shareLink","imageProxy","_matchRoute","raw","match","JSBridgeUtilEvent","setupWebViewJavascriptBridge","isWeapp","currentWindow","WebViewJavascriptBridge","WVJBCallbacks","WVJBIframe","display","documentElement","appendChild","setTimeout","removeChild","androidConnectWebViewJavascriptBridge","JSBridgeUtil","_init","isAndroid","bridge","init","responseCallback","_callHandler","callHandler","asyncCall","BeforeFunctionCall","Promise","AfterFunctionCall","registerHandler","_JSBridgeUtil","finally","AppJumpXiaoyuUtil","_AppJumpXiaoyuUtil","user","android","page","ios","showUserInfo","dictationRecords","AppJumpUtil","getHomepageConfig","_buildDict","homepage","buildDictByName","ObjectUtil","buildOpenURLDict","_cfg$harmony","cfg","openURL","strTitle","harmony","_cfg$harmony2","_cfg$harmony3","iOS_page","iOS_param","Android_page","Android_param","HarmonyOS_page","HarmonyOS_param","_AppJumpUtil","xiaoYu","projects","friends","selectedType","liveMyAppointments","fun_sports","TITLE","CATEGORY","ai_running","gymnastics","dance","arena","hallfame","rankAuth","setting","needPopBack","qrCodeScanner","examTest2021","AddFriend","AppHelpActivity","RopeLevel","plans","planDetails","homeworkHome","homeworkRank","FriendSelector","order","orderList","orderDetail","order_id","bIsBindPhone","rope","running","ball","bodyFitness","drillDetails","heartRate","drillRecords","myHonor","sportTarget","energyShop","plusMember","superGame","pay","fitcat","gift2Friends","unityJump","drillRank","dailyReward","sportsShowMall","personalSportsSpace","drillCourse","sportsCards","sportsCardStore","tzyHome","jkcHome","avatarDecoration","callApp","requestToken","isUnderAppResult","RequestTokenKey","AppUtilEvent","_addAppCallListener","WebviewActive","WebviewInactive","LocationCallback","_parseRespData","rechargeSuccess","visibilityState","keepActive","callGetAppVersion","buildRequestTokenKey","appName","_token","StorageUtil","set","getRequestToken","isNotLogin","headers","skipEventEmitter","withCredentials","_appendToken2Header","request","HttpUtilMethod","Get","httpTzyGET","Put","Post","httpTzyPOST","Delete","httpCache","fun","localStorage","jump2NativeURL","jumpToNewTab","protocol","host","jumpToNewByRoutePath","checkIsUnderApp","getUserToken","openAppAndgotoDL","isUnderIos","userAgent","navigator","toLowerCase","test","isUnderAndroid","ua","link","thumb","startSystemBrowser","startDrill","eventType","plateNumber","reloadCB","event_type","event_id","plate_number","startMultiDrill","need_detect","cb","watchADVideo","ids","callBack","platform","tobid","app_platform","gromore","watchRewardVideo","ad_id","Error","tobid_id","gromore_id","str","startPractice","video_url","video_size","key_frame_url","key_frame_video_width","key_frame_video_height","drill_orientation","need_record","PracticeDrillId","startPracticeParams","challenge","jump2UserSportsSpace","userID","jump2NativePage","backToApp","closeCurrentPage","hideAppTitleBar","callHideBottomBar","state","callShowBottomBar","isAppVersionHigherThan","curVersion","version_name","AppVersion","isEqualOrHigherThan","callGetAppVersionNumber","resp","parseInt","checkVersionGte","checkVersion","downloadByUrl","downloadCB","downloadAndShareByUrl","isIos","decodeURIComponent","asyncDownloadByUrl","getLocalScreenRecord","uploadLocalVideo","getVideoPreviewImage","saveBase64Img","base64Img","image","resumeOutdoorRunningInterrupt","wxshareBase64Img","getUserData","isCurrentUser","userData","selectAvatar","getNetworkType","_navigator","_navigator$connection","connection","recharge","reload","openNativePage","applyLocation","updateLane","buildOpenSchemaByName","buildOpenSchema","jumpCfg","buildOpenURLSchema","openByWebUrl","openByName","rawOpen","scheme","CallApp","appstore","timeout","fallback","downloadQD","tsChannel","getCallAppOrGotoDL","getCallApp","param","para","openOrDownloadAppInH5","_document","openOrDownloadAppByYYB","openOrDownloadAppWithCommand","defaultParam","commandName","commandValue","HtmlUtil","copyToClipboardSync","buildCommand","copyAppCommand","cmd","ts_channel","appCmd","copyAppChannelCommand","jump2NativeHomePage","jump2NativePageByName","jump2NativeMeta","jump2NativeParty","jump2UnityDrillGame","jump2NativeFriendPage","jump2NativeFriendSelector","jump2NativeGift2Friends","currentSelectedCardIndex","default_index","jump2NativeDrillRank","drillID","defaultDrillID","jump2NativeProjectPage","jump2NativeHallFame","jump2NativeRankAuth","jump2NativeSetting","jump2NativeQRCodeScanner","jump2NativeHomework","jump2NativeHomeworkHome","jump2NativeHomeworkRank","jump2NativeExamTest2021","jump2NativeLogin","jump2NativeSuperGame","jump2NativeRope","jump2NativeRun","jump2NativeHeartRate","jump2NativeAddFriend","jump2NativeFitcat","jump2NativeOrderPage","jump2NativeOrderDetail","jump2NativePlanDetails","plan_id","plan_name","jump2NativeDrillDetails","jump2NativePay","orderId","activity_scene","jump2NativeDrillCourse","jump2NativePageByCfg","showUpdate","checkNativePage","subscribe","phoneVerified","appendToken2Header","getAppOrH5Token","Authorization","_getCurrentRequestToken","downloadUrl","appendQueryString2Url","buildQueryString","getDownloadUrl","baseUrl","buildDownloadUrl","queryObj","_buildSingleCmd","AppOpenCmd","qudao","commandPrefix","_IosCommandPrefix","_CmdPrefix","videoEventCall","videoUrl","setStopVideoPlayListener","videos","ele","pause","addReminder","_params","getTime","enterPKRoom","enterRunning","enterVirtualRoom","enterGatheringRoom","buySkuPopup","skuCode","applePay","VUE_APP_PAY_API","sku_code","be_limited","checkFailed","androidPay","offerId","purchase","_skuCode","universalOpenUrlInApp","buildMatchUrl","prefix","buildMatchH5Url","envPrefix","buildMatchRankUrl","matchId","buildMatchFinalScoreUrl","schoolId","buildOssVideoThumbnail","ossVideoUrl","offsetMillSeconds","jumpToWechatCustomerService","wechatJumpUrl","isHarmony","ContactWay","WechatUrlForPayment","_AppUtil","battle","joinClass","liveSeries","liveShareCourse","channelKey","_OldCmds","_SplitMultiCmd","_SplitCmd","CustomerServicePagePath","CustomerServicePhone","WechatRedirectPageUrl","WechatUrlForAPP","VirtualRoom","JumpRope","Defend","segments","segment","current","isEqual","isHigherThan","ArrayUtil","uniqWith","array","inOppositeDirection","Set","add","reverse","calcPlaceholderNum","numPerGroup","remainder","removeByIndex","arr","splice","clean","changePosition","offsetIndex","newIndex","changePosition2First","changePosition2Last","equal","arr1","arr2","random","floor","randomSort","j","temp","randomNumber","min","max","buildIdMap","initialValue","reduce","number2Array","step","k","buildMapByKey","last","separator","postfix","_arr","_filter","trimLeft","trimRight","maxByKey","sumByKey","groupByKey","_item","mergeRanges","needSort","sort","a1","a2","range","getUA","toLocaleLowerCase","isIOS","vendor","lowerCaseUA","__wxjs_environment","isUnderUnity","logError","setStopAllPlayerWhenBackgroundListener","pauseAllPlayers","persisted","audios","setThemeColor","appendMeta","removeThemeColor","openLink","mask","className","body","fb","scrollTo","CanvasPosterUtil","getBase64Image","scale","devicePixelRatio","width","height","canvas","ctx","getContext","drawImage","toDataURL","domToImage","el","quality","html2canvas","useCORS","getBoundingClientRect","CanvasPoster","getOrCreateCanvasElement","canvasId","getElementById","aele","sleep","context","webkitImageSmoothingEnabled","mozImageSmoothingEnabled","imageSmoothingEnabled","getPoster","resources","imageLoadedQueue","allImages","a","b","resource","loadImage","createQrcode","couldDrawImages","drawRoundImage","center","radius","position","size","drawText","styles","getDataURL","requestAnimationFrame","x","y","arc","PI","clip","restore","propName","fillText","drawQrcode","qrcode","dataURL","createQRCodeImageURL","logo","logoWidth","QRCode","correctLevel","M","logoHeight","crossOrigin","onRenderingEnd","_options","_dataUrl","cross","reject","onload","padZero","getMonth","getDate","getHours","getMinutes","showStr2","showStr3","showWeekDayShort","showFullTimeStr","isCurrentYear","hour","amPm","showHour","getFullYear","showAmOrPm","showAmOrPmWithTime","isYesterday","addDay","showDateStrShort2","showMonthDateStr","showMonthOfYearStrCN","month","MONTHS","showMonthOfYearStr","showDateOfMonth","showDateStrCN","showDateStrShort","showDateWeekStrShort","showWeekTimeStr","getSeconds","showMonthDayStr","showYearMonthStr","showYearMonthDayStr","showYearMonthDayTimeStr","symbol","showMonthDayTimeStr","showWeekDay","formatWeekday","getDay","showWeekDayAbbr","showStr4","showTimeSegment","timeSegmentName","getWeekdaysStr","WEEKDAYS_STR","getWeekdaysStrJs","WEEKDAYS_STR_JS","weekday","buildWeekdayOptions","WEEKDAYS","mills","fromString","dateStr","splits","parseFromString","shortDateStr","ms2StrCN","milliseconds","calcDay","roundSecond","seconds","minute","second","formatDay","formatHour","formatMinute","formatSecond","ms2Str","millisecond","precision","minutes","hours","padStart","ms2FullStr","_dt","_days","_minutes","addSeconds","_seconds","isFuture","_standardDt","standardDt","isInSameMonth","beginningOfMonth","isInSameWeek","beginningOfWeek","isPast","days","beginningOfNextMonth","beginningOfNextWeek","endOfWeek","weekStartsOn","endOfMonth","sameDayOfWeek","getRestDayOfWeek","dayOfWeek","isDayInDifferentWeek","left","right","differenceInCalendarISOWeeks","second2Minute","second2Hour","millisecond2Hour","second1timeStr","second2timeStr","second3timeStr","round","second4timeStr","millisecond2rankstr","millisecond2timeStr","padSecond","buildDateRangePickerOptions","shortcuts","onClick","picker","$emit","curWeek","curMonth","last7Days","disabledDate","formatTimeRound","_date","_format","_step","formatDurationArr","formatShortDuration","formatHMSDuration","formatTinyDuration","buildDatesFromRange","startDateStr","endDateStr","buildWeeksFromRange","weekno","buildWeekdaysFromRange","isWeekdaysJs","dates","diffInSeconds","diffInHour","diffInMins","diffInDay","diffInDayCur","diffDayHourMins","mins","beginningOfNthWeekOfYear","year","addWeeks","weekIndexOfMonth","monthStart","endOfFirstWeek","targetMonthday","nthWeekOfYear","beginningOfFirstWeek","beginningOfCurrentWeek","buildTimeOptions","curr","_time","setHours","_len2","_key2","onlyDate","fromDate","toDate","StatusUnstartStartedEnded","Unstart","Started","Ended","groupByWeek","_data","_dateKey","_needSort","_sortByDesc","i1","i2","d1","d2","weeks","w","_DateUtil","WEEKDAYS_JS","WEEKENDS","WEEKENDS_JS","_startDate","_endDate","_onlyDate","lastNDays","lastWeek","oneWeek","setTime","lastMonth","currentMonth","dateTime","isDateRangeEqual","someDate","otherDate","isInDateRangeOfYear","isPromise","obj","wait","leading","trailing","createDecorator","originalMethod","debounce","Throttle","throttle","Loading","componentOptions","$data","returnValue","_len4","_key4","isDev","isStaging","isAPP","isJumpStar","buildLogFileName","listeners","_type","_handler","wrapper","_listenType","listener","removeByType","l","removeAllListeners","hasListener","buildFullLink","absUrl","head","querySelector","appendMetaViewport","appendScript","asyncAppendScript","_fallbackCopyToClipboard","copyToClipboard","input","contentEditable","readOnly","createRange","selectNodeContents","selection","getSelection","removeAllRanges","addRange","setSelectionRange","execCommand","getVideoBase64","video","setAttribute","_canvas$getContext","click","HttpStatusCode","HttpError","serverMessage","super","textData","setStatus401Callback","callbackStatus401","setStatus500Callback","callbackStatus500","BeforeRequest","response","resolveData","AfterRequest","buildFullUrl","axios","plainGet","basicGet","post","put","imageAvatar","_width","_height","_object_fit","fileDownload","responseType","fileProxy","createObjectURL","isCrossOrigin","doImageProxy","btoa","Uint8Array","byte","fromCharCode","error_code","StatusCode500","isOk","status_code","SC41001","singletonRequestBlock","blockName","requestFN","_singletonBlockMap","cacheSingletonRequestBlock","_cacheSingletonRequestBlockCheckHasValue","_cacheSingletonBlockMap","_cacheSingletonBlockMapFire","_cacheSingletonBlockMapTime","batchDownload","sources","zip","JSZip","promises","p","suffix","file","binary","generateAsync","compression","compressionOptions","level","_HttpUtil","ThorWeblog","codelessTrackingImg","_logger","_vue","_target$tagName","tagName","alt","codelessTrackingButton","_target$tagName2","textContent","_category","_action","_label","_value","getUserId","userIdKey","buildUuid","_userId","getUnionId","unionId","unionIdKey","setUnionId","_unionId","buildURL","buildURLFromEvent","buildUserIdKey","_event","capture","passive","_BaseLogger","BDTJLogger","pageview","_BDTJLogger","_hmt","ARMSLogger","__logger","_ARMSLogger","TTTSLogger","_meta","_navigator$sendBeacon","env","agent","eventCategory","sendBeacon","deepClone","isRoute","queryPos","buildPathFromRoute","isUrlRoute","getHashFromUrl","isForceAuth","forceAuthFlag","unforceAuth","removeForceAuthFlagFromRoute","buildQuery","buildQueryStr","buildQueryObj","entries","appendQuery","_query","append","questionMarkIndex","buildUrlFromRoute","removeForceAuthFlagFromUrl","cloneRoutePath","cloneRouteRedirect","_path","_prefix","lastIndexOf","_redirect","_RouterUtil","ttl","expireAt","itemStr","isExpired","removeItem","getAndRemove","ttlExpireAtEndOfToday","isExistsAndRemove","isExistsOrMarkIsExists","fixedSize","parseFloat","isInteger","numberToShortK","hundred","minor","minorStr","numSize","randomNum","capitalizeFirstLetter","charAt","toUpperCase","isIncludedEmoji","isHasSpecialCharacter","RegExp","onlyIncludedLetters","onlyIncludedNumbers","onlyIncludedLettersAndNumbers","validClazzNoteName","validChineseCharacter","validateIdentityCardNumber","idCard","validateUniformSocialCreditCode","isSamePhone","plainPhone","briefPhone","formatBriefPhone","encodeRFC3986URIComponent","charCodeAt","queryString","textOverflowEllipsis","maxLength","textArray","shortShownOfArray","none","number2Alphabet","buildStrFromTemplate","tpl","splitByNumberBoundary","numbers","strings","formatNumberWithCommas","number","_StringUtil","OrientationLandscape","OrientationPortrait","Orientations","loadingCounter","_Toast","updateText","_Indicator","updateLoadingText","indicator","sign","showNegtiveSign","yuan","fen","amount","totalAmount","division","base","transform","unit","ratePercent","roundRatePercent","_targetWidth","addYsf","openYsf","ysf","addVConsole","clickCache","evt","clientX","clientY","ts","ceil","_hasVConsole","doRemoveVConsole","doAddVConsole","_vconsole","VConsole","_this$_vconsole","_document$querySelect","_document$querySelect2","destroy","setRem","targetWidth","baseFontSize","setRemByMainEleId","mainEleId","deviceWidth","getActualClientWidth","fontSize","setRemFixedAspectRatio","targetAspectRatio","deviceHeight","getActualClientHeight","clientHeight","clientWidth","getActualPx","px","addAPM","addSentry","reportErrorToELK","route2BlankTab","ensureImagesAreLoaded","vm","$nextTick","imageUrls","$el","querySelectorAll","dataset","setConfig","onLCP","onFID","onCLS","onINP","onFCP","onTTFB","f","_VueUtil","_window","wxInstance","_instance","wxJS","jsApiList","openTagList","debug","appId","AppId","timestamp","nonceStr","signature","ready","checkJsApi","availableApiList","checkResult","fail","shareInfo","_this$wxInstance$v","_this$wxInstance","ensureBridgeIsReady","WeixinJSBridge","invoke","err_msg","_WechatUtil","Wrapper","formatClass","gradeInZHCN","formatGrade","formatClassWithGrade","formattedGrade","isUniversityClazz","universityName","_showName","enrollmentYear","enrollmentYearShown","teacherNames","teachers","showTeacherStr","studentAmount","student_amount","students","collegeSubject","college","collegeSubjectShown","collegeMajor","major","collegeMajorShown","enrollment_year","isTeaching","is_teaching","CONTAINER_TYPE_RUNNING","DrillMetricUnitCount","DrillMetricUnitSecond","DrillMetricUnitScore","DrillMetricUnitFree","DrillMetricUnitDistance","DrillMetricUnitDuration","DrillUtil","buildAiLabelCn","aiLabel","AiLabelFakePeople","AiLabelFakePeopleCn","AiLabelNoRope","AiLabelNoRopeCn","AiLabelDoubleJump","AiLabelDoubleJumpCn","calcScore","metric_count","getDurationInMinStr","calcUnit","getScore","durationMilliSeconds","isDistanceDrill","drill_info","isDistanceDrillId","dirllId","getScoreShow","drill_type","score_duration","score_count","getHumanScore","metric_unit","buildReportFullUrl","isRestDrill","isMoveType","playing_type","formatOrientation","orientation","_DrillUtil","AiLabelNormal","AiLabelNormalCn","isInSummerHoliday","gradeNos","gradeMap","getNextGradeNo","gradeNoFinished","gradeNoBeforeSchool","gradeNoGradeOne","gradeNoDoctor","nameGradeMap","buildGradeOptions","maxGradeNo","minGradeNo","gradeName","disabledSummerName","buildUpGradeClazzName","nextGradeNo","sortItemByClazzName","classNameItems","nameKey","clazzNameGradeMap","_SchoolUtil","MAX_GRADE_CLAZZ_SIZE","CompetitionListTabItemName","CompetitionRegionDetailsTabItemName","CompetitionCategory","CompetitionRankingPeriod","CourseLiveStatus","ICourseResourceGradeTagClassMap","幼儿园","小学","初中","高中","大学","通用","HomeworkStatsPeriodType","LoginAccountType","ISchoolOperateType","VacationHomeworkPlanItemTopicEnum","VacationHomeworkPlanTemplateScope","Winter2023ConfigCategory","BaseService","cls","getPrototypeOf","BaseModelService","setModel","CLASS_PER_GRADE","DEFAULT_GRADES","ALL_CLASSES","ALL_GRADES","formatGradeOfExam","buildClassOptionWithGradeNoClazzNo","clases","groupByGradeNo","curGrade","clz","buildClassOptions","allGrades","standardClazzName","sorted","sortBy","lastGradeNo","buildDefaultClassOptionsOld","buildDefaultClassOptionsWithNoteName","schoolClazzInfos","buildClassOptionsByGradeClazzJoinInfo","buildGradeFullClassOptions","curClazzNo","joinInfo","clazzSize","class_limit","custom_class_name_map","buildDefaultClassOptions","buildClassOptionsWithDisabled","clazzDisabledMap","available","_grade$children","disabled","clazzs","useGradeNo","clazzGroupByGrade","_clazzs$find","buildClassOptionsWithCb","gradeCb","clazzCb","grdOps","grdOp","clzOp","found","grd","formatClazzNoteNameAndStudentAmounts","studentsInfo","noteNameInfo","formatClazzNoteName","_ClassService","avatars","SportsTeamCreateForm","Form","avatar","checkName","checkAvatar","buildForm","img_url","_SportsTeamCreateForm","Register","registerRule","CourseLiveService","courseClazzCount","_this$model$detail","class_list","timeRange","courseStartTime","courseEndTime","dateRange","isParticipated","marked","liveStatusLabel","live_status","Open","InProgress","isLiveStatusInProgress","classNameList","_this$model$detail2","coachName","coach","showCourseCycleType","cycle","showLessonLength","courseDetail","repo_item_id_list","online_course_item_list","getGradeClass","gradeTag","formatPlanIndex","buildTagOptions","tags","tag_name","buildCategoryFromRepoList","liveCourseRepoList","repo","filterRepoListByCourseNameAndTag","filterCondition","generalCourseRepoList","tag_list","course_name","buildLessonStartDate","dateWrapper","buildLessonScheduleDateList","scheduleItems","sortLessons","current_datetime","buildCourseStartLabel","weekNo","courseCycle","buildCourseStartTime","buildCourseStartTimeLabel","dw","buildLessonInfo","buildClazzRangeList","classList","buildClazzInfoGroupByGrade","clazzList","clazzMap","groups","gradeNames","showAllClazzName","OnlineCourseLesson","createMemento","OnlineCourseLessonUnderAssign","repo_item_id","energy","drill_number","difficult_level","repo_item_drills","homework_template_id","buildItem","toISOString","OnlineCourseLessonAfterAssign","course_item_id","OnlineCourseLessonsCollections","updatePosition","pre","cloneDeep","isTailPosition","updatePre","insertLessonByDate","lesson","removeLesson","updateLesson","updateDateOflessons","OnlineCoursePreviewInfo","repository_id","course_cycle","week_no","lessons","repo_item_list","createModifiedItems","OnlineCourseUpdateInfo","online_course_id","createInfoAfterUpdate","course_items","DownloadService","buildBase64QrCodeUrl","noLogo","shareCode","keep_long_url","NOROPE_STATUS_INIT","NOROPE_STATUS_IN_PROGRESS","NOROPE_STATUS_DONE","RANK_AUTHORITY_PUBLIC","RANK_AUTHORITY_SCHOOL_PUBLIC","RANK_AUTHORITY_PRIVATE","RANK_AUTHORITY_CLOSE_VIDEO","HALL_RECORD_APPLIED","HALL_CAN_APPLY","SCENE_TYPE_PUBLIC","SCENE_TYPE_SCHOOL","SCENE_TYPE_GRADE","SCENE_TYPE_CLASS","SCENE_TYPE_SELF","SCENE_TYPE_UNDER_SCHOOL","ReportResult","getRemoteOrLocalVideo","remoteUrl","remoteCover","cover","reportId","report","from_scene_type","appVersion","app_version","user_info","school_info","class_grade","avatarUrl","drillUnit","isCloudSportMetting","isCrazyJumpRope","isGolf","isBoxing","isSportQA","isTXPVideo","userName","scroeInfo","_this$data$user_info$","official_grade","class_grade_str","showCalories","burned_calories","hasCalo","userLevel","level_no","DrillService","buildScoreStr","metric_amount","display_metric_base","metric_type","display_metric_unit","video_info","videoPoster","video_cover_url","isLandscapeVideo","hasClosedVideo","millseconds","durationInMinStr","drillName","display_name","drillType","showTime","record_time","recordTime","isDeleted","is_deleted","isCloseUploadVideo","isPermissionShowVideo","isCurrentUserReport","rank_authority","isUnderSchoolRank","hasRecordVideo","successCount","success_count","failCount","fail_count","avgCountPerMin","showBattleScore","room_score_info","orderedScoreInfo","scoreInfos","canChallenge","is_exam_drill","can_challenge","speed_rate","isMine","showAppeal","hasNoRope","detection_has_rope","appealType","hasUsedDummy","isDoubleJump","noRopeCanAppeal","isNoRopeOrDoubleJump","no_rope_appeal_status","inAppealProgress","appealDone","doAppeal","isValid","reasonType","is_valid","reason_type","hallCanApply","apply_hall_status","hallUnderApply","isJumpRopeHallFamer","jump_rope_hall_of_frame","showApplyCard","doApplyHall","detection_fake_people","is_double_jump","reportPath","appealChoosePath","appealSuccessPath","competitionDrillInfo","buildCompetitionScoreInfo","syncLoginUserId","currentUserId","ossFrozenUnlock","videoOssKey","video_key","battleResult","buildBattleResult","_this$data$drill_info","val","score_grade","interrupt_count","max_combo_count","ReportService","getReportById","scene_type","_currentResult","getCachedReportById","JkcReportService","setPubed","KeyPrefix","isPubed","_JkcReportService","DrillMetricType2UnitMap","millimeter","DrillFinishType2UnitMap","distance","isRunning","isKayaking2p","isJumpRope","buildScoreStr2","buildMetricNameEn","buildScoreStrEn","buildScoreStr3","buildScoreStr4","record_type","finish_type","buildDrillOptions","drillItemOptions","defaultDrillOption","containerTypes","findDefaultDrill","containerType","option2Name","_globalConfigStore$fi","findDrill","findOptionByDrillId","calcScoreChart","calcScoreUnit","scoreSortMethod2","drill1","drill2","DrillTagConfigService","drillItemList","filterTag","firstTags","drillCategoryConfig","allCompetitionDrillIds","loadDrillConfig","drillCategories","filterConfigByDrillKey","keyName","drillIds","drillTagConfigClone","forEachRight","subItem","intersection","drill_ids","concat","getAllCompetitionDrillIDs","firstTag","subTag","filterCompetitionList","currentTag","currentDrill","sortCompetitionDrill","allSubDrills","competitionList","item_name","drillItem","getSecondTags","currentFirstTag","allDrillIds","api","checkMap","Map","check","isArray","arg","fns","appendRule","register","checker","hasOwnProperty","proto","__proto__","getLoginTeacherId","loginTeacherId","getLoginTeacher","loginTeacher","hasFetchedTeacher","isLoged","forceGetLoginTeacher","forceGetLoginTeacherId","getCallName","callName","_LoginTeacherService","SchoolPermissionService","buildSchoolVerifyPath","returnFullPath","verify","returnPath","isPaid","_this$teacher","_this$teacher2","operate_type","Paid","PaidExport","isPaidExport","_this$teacher3","_this$teacher4","is_tzy_university_version","isOfficialAuh","_this$teacher5","isOfficialAuthed","_this$teacher6","isVerifyByStudentCode","_this$teacher7","verify_method","isVerifyByAccount","_this$teacher8","_this$teacher9","school_sport_meet","canVisitStudentCodePage","canVisitStudentAccountPage","canVisitUserAccountPage","_this$teacher10","user_account_permission","TeacherPermissionService","_this$teacher11","_this$userRoleInfo","isSuperAdmin","_this$userRoleInfo2","is_super_admin","isSuperAdminOrAdmin","isNormal","isRolePeManager","_this$teacher12","isRoleSchoolManager","_this$teacher13","isPeTeacher","_this$teacher14","isOtherTeacher","_this$teacher15","isCollegeTeacher","isPermittedRole","_this$teacher16","PagePermissionService","schoolPermissionService","teacherPermissionService","competitionManagePage","showExportBtn","studentAuthPage","canAdjustStudentClass","canUploadStudentCodeList","canExportExcel","canDeleteOrUnbindStudentCode","canDeleteAccountOrUnbindPhone","canAddStudentAccount","canDelStudentAccount","canUnBundlingStudentPhone","canResetPassword","canChangeClass","classManageListPage","canAddStudentCodeList","canDelClass","canJoinClass","canCreateClass","examPage","examConfig","schoolExam","addExam","delExam","editExam","viewExam","inputScore","editScore","downLoad","viewReport","canPublish","studentExam","ModulePermissionService","tps","roleConfig","clazzMgt","rolesMap","getRolesMap","edit","updateSettings","schoolMgt","view","teacherMgt","viewDetails","editMine","editRole","studentAuthMgt","enable","disable","changeClazz","unbindRollNo","removeRollNo","removeRollNoAll","import","export","gymnasticsCustom","upload","removeMine","officalActivity","updateMine","updateOthers","deleteMine","deleteOthers","processEvaluation","update","semesterConfig","evaluationSource","homeworkPermission","redo","_this$tps$teacher","modulePermissionService","pagePermissionService","Teacher","School","Page","teacherRole","roleValueToName","roleValueMap","roleNameToValue","_this$buildRoleOption","buildRoleOptions","o","authValueToName","authValueMap","buildSystemRoleOptions","showSystemRole","admin","buildRoleStr","_TeacherService","pe_teacher","head_teacher","others","school_manager","pe_manager","grade_manager","gov","normal","TitleBarActionEnum","hidedAppBar","pathConfig","getTitle","delayDisableBack","hideBack","setBackPath","setBackLevel","removeAllActions","_TitleBar","CompetitionModule","VuexModule","currentCompetitionTitle","curV2CompetitionId","currentCompetitionDrillTitle","typesPromise","reset","setTypes","setTypesPromise","setCurrentCompetitionTitle","setCurrentV2CompetitionID","setCurrentCompetitionDrillTitle","loadTypes","commit","typeIdTypeMap","drillIdTypeMap","Mutation","Action","Module","namespaced","dynamic","getModule","GlobalConfigModule","subDrill","drillsPromise","homeworkPromise","drillCategoriesPromise","summerCompetition2022Promise","isHasNewSummerCompetition2022","loadDrills","loadHomework","loadDrillCategories","setDrills","setHomework","setDrillCategories","setDrillsPromise","setHomeworkPromise","setDrillCategoriesPromise","updateFirstTag","updateSubDrill","deleteDrillTag","_this$homework","homework_select_scope","containerTypeOptions","drillOptions","repeatOptions","containerTypeOption","findContainerType","drillOption","childDefaultValue","default_drill_id","homeworkItemOptions","drillIdContainerTypeMap","findDrillById","findDefaultTemplateItems","_this$homework2","default_homework","allHomeworkDrills","allHomeworkDrillIds","_this$homework3","drillIdCategoriesMap","_this$drillCategories","subCategory","rest_2007","drillItemOptionsCategory","_this$drillCategories2","LoginModule","_this$userTeacherId","_this$userTeacherId2","_this$userTeacherId3","_this$userTeacherId4","MutationAction","MenuRoleModule","menuRolePromise","loadMenuRole","setMenuRolePromise","setMenuRole","Vuex","modules","strict","plugins","createLogger","TeacherModule","isPaidExportSchool","buildKey","teacherInfo","updateFromForm","close","stopPropagation","customClass","_t","html","domProps","showCancelButton","cancelButtonType","cancel","showConfirmButton","KdMessageBox","closeOnClickModal","KdButton","instance","MessageBox","$on","$destroy","rule","handleCancel","handleSubmit","CompetitionOfDrillTypeRemoveDialog","trigger","blur","reasonOptions","CompetitionOfDrillTypeRemoveDialogVisible","_g","$listeners","iconName","_b","$attrs","CsIconButton","ref","setInputStyle","onLabelChange","$refs","paddingLeft","offsetWidth","directives","rawName","videoSrc","errorHandle","reportResult","rankDownErrorPermissions","showIllegalBtn","openIllegalVideoProcessDialog","warningIcon","showRankDownBtn","openRankDownOfDrillDialogVisible","isCompetitionType","competitionInfo","rank","group","drill_name","illegalVideoProcessDialogVisible","illegalVideoReasonForm","rules","deleteIllegalVideo","rankDownOfDrillDialogVisible","handleRankDownSubmit","handleRankDownCancel","hasPlayed","ossFileFrozen","maxFetchTime","currentFetchTime","fetchVideoUrlIntervalId","illegalVideoReasons","illegalVideoFormRef","_this$reportResult","_this$reportResult2","_this$reportResult3","isHidePrivateVideo","onIDChanged","stopFetchReportLoop","fetchReportInfo","startFetchReportLoop","valid","competitionType","DrillReportResult","setInterval","_this$reportResult4","clearInterval","beforeDestroy","currData","headerCellStyle","sortChange","total","sizeChange","pageChange","ListPageComponent","orderProp","isRealPagination","paginationData","orderedData","showPagination","onLimitChange","onDataChange","onOffsetChange","prop","background","menuType","menu","submitAction","progress","progressLabel","startTime","endBegin","showIndicator","loadAllSubcomponents","loadAllImages","loadAllIcons","generate","root","poster","containerSelector","elParent","parentElement","svgSymbol","baseVal","cloneNode","viewBox","innerHTML","outerHTML","replaceAll","cssImages","images","getAllHasAsyncOpsComponents","$children","instances","posterHasAsyncOps","isTtts","require","PosterFooterTzy","PosterFooterTtts","buildQrcode","IconLogo","typeClassName","sizeClassName","roundClassName","arrowClassName","plainClassName","strokeClassName","borderClassName","disabledClassName","useDisabledMaskClassName","buttonType","onclick","$slots","arrow","plain","stroke","border","useDisabledMask","requireAll","requireContext","req","webpackContext","webpackContextResolve","__webpack_require__","module","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","amdO","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","every","getter","__esModule","definition","defineProperty","enumerable","chunkId","u","miniCssF","globalThis","inProgress","dataWebpackPrefix","done","script","needAttach","scripts","getAttribute","charset","nc","onScriptComplete","prev","clearTimeout","doneFns","Symbol","toStringTag","nmd","paths","createStylesheet","fullhref","oldTag","linkTag","rel","nonce","onLinkComplete","errorType","realHref","nextSibling","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}