diff --git a/reading-platform-frontend/src/views/school/schedule/components/CreateScheduleModal.vue b/reading-platform-frontend/src/views/school/schedule/components/CreateScheduleModal.vue index 8afa549..1c2642e 100644 --- a/reading-platform-frontend/src/views/school/schedule/components/CreateScheduleModal.vue +++ b/reading-platform-frontend/src/views/school/schedule/components/CreateScheduleModal.vue @@ -106,7 +106,9 @@ :style="getLessonTagStyle(type.lessonType)" @click="selectLessonType(type.lessonType)" > -
{{ getLessonTypeIcon(type.lessonType) }}
+
+ +
{{ getLessonTypeName(type.lessonType) }}
{{ type.count }} 节课
@@ -236,7 +238,16 @@ import { ref, reactive, computed, watch } from 'vue'; import { message } from 'ant-design-vue'; import dayjs, { Dayjs } from 'dayjs'; -import { CalendarOutlined } from '@ant-design/icons-vue'; +import { + CalendarOutlined, + BookOutlined, + TeamOutlined, + HeartOutlined, + SoundOutlined, + UsergroupAddOutlined, + ExperimentOutlined, + BgColorsOutlined, +} from '@ant-design/icons-vue'; import { getCourseCollections, getCourseCollectionPackages, @@ -537,19 +548,27 @@ const filterTeacher = (input: string, option: any) => { return teacher?.name?.toLowerCase().includes(input.toLowerCase()) || false; }; -// 获取课程类型图标(与课程列表 tag 类型对齐) -const getLessonTypeIcon = (type: string): string => { - const icons: Record = { - INTRODUCTION: '📖', INTRO: '📖', - COLLECTIVE: '👥', - LANGUAGE: '💬', DOMAIN_LANGUAGE: '💬', - SOCIETY: '🤝', SOCIAL: '🤝', DOMAIN_SOCIAL: '🤝', - SCIENCE: '🔬', DOMAIN_SCIENCE: '🔬', - ART: '🎨', DOMAIN_ART: '🎨', - HEALTH: '❤️', DOMAIN_HEALTH: '❤️', - }; - return icons[type] || '📚'; +// 课程类型与 @ant-design/icons-vue 图标映射 +const lessonTypeIconMap: Record = { + INTRODUCTION: BookOutlined, + INTRO: BookOutlined, + COLLECTIVE: TeamOutlined, + LANGUAGE: SoundOutlined, + DOMAIN_LANGUAGE: SoundOutlined, + SOCIETY: UsergroupAddOutlined, + SOCIAL: UsergroupAddOutlined, + DOMAIN_SOCIAL: UsergroupAddOutlined, + SCIENCE: ExperimentOutlined, + DOMAIN_SCIENCE: ExperimentOutlined, + ART: BgColorsOutlined, + DOMAIN_ART: BgColorsOutlined, + HEALTH: HeartOutlined, + DOMAIN_HEALTH: HeartOutlined, + MUSIC: SoundOutlined, + SPORT: HeartOutlined, + OUTDOOR: TeamOutlined, }; +const getLessonTypeIconComponent = (type: string) => lessonTypeIconMap[type] || BookOutlined; // 获取选中的课程类型名称(与课程列表 tag 一致) const getSelectedLessonTypeName = (): string => {