| 
						 | 
						- <template>
 -   <uv-popup 
 -     mode="bottom" 
 -     ref="coursePopup"
 -     round="32rpx"
 -     bg-color="#f8f8f8"
 -     safeAreaInsetBottom
 -   >
 -     <view class="course-popup">
 -       <view class="popup-header">
 -         <view>
 -           <uv-icon name="arrow-down" color="black" size="20"></uv-icon>
 -         </view>
 -         <view class="popup-title">课程</view>
 -         <view class="popup-title" @click="toggleSort">
 -           倒序
 -         </view>
 -       </view>
 -       <view class="course-list">
 -         <view 
 -           v-for="course in displayCourseList" 
 -           :key="course.id"
 -           class="course-item"
 -           :class="{ 'active': course.id === currentCourse }"
 -           @click="selectCourse(course.id)"
 -         >
 -           <view class="course-number" :class="{ 'highlight': course.id === currentCourse }">
 -             {{ String(course.index + 1).padStart(2, '0') }}
 -           </view>
 -           <view class="course-content">
 -             <view class="course-english" :class="{ 'highlight': course.id === currentCourse }">
 -               {{ course.english }}
 -             </view>
 -             <view class="course-chinese" :class="{ 'highlight': course.id === currentCourse }">
 -               {{ course.chinese }}
 -             </view>
 -           </view>
 -         </view>
 -       </view>
 -     </view>
 -   </uv-popup>
 - </template>
 - 
 - <script>
 - export default {
 -   name: 'CoursePopup',
 -   props: {
 -     courseList: {
 -       type: Array,
 -       default: () => []
 -     },
 -     currentCourse: {
 -       type: [String, Number],
 -       default: 1
 -     },
 -     isReversed: {
 -       type: Boolean,
 -       default: false
 -     }
 -   },
 -   computed: {
 -     displayCourseList() {
 -       return this.isReversed ? [...this.courseList].reverse() : this.courseList;
 -     }
 -   },
 -   methods: {
 -     open() {
 -       if (this.$refs.coursePopup) {
 -         this.$refs.coursePopup.open()
 -       }
 -     },
 -     close() {
 -       if (this.$refs.coursePopup) {
 -         this.$refs.coursePopup.close()
 -       }
 -     },
 -     toggleSort() {
 -       this.$emit('toggle-sort')
 -     },
 -     selectCourse(courseId) {
 -       this.$emit('select-course', courseId)
 -       this.close()
 -     }
 -   }
 - }
 - </script>
 - 
 - <style lang="scss" scoped>
 - /* 课程弹出窗样式 */
 - .course-popup {
 -   padding: 0 32rpx;
 -   max-height: 80vh;
 - }
 - 
 - .popup-header {
 -   display: flex;
 -   justify-content: space-between;
 -   align-items: center;
 -   padding: 20rpx 0;
 -   border-bottom: 2rpx solid #EEEEEE;
 - }
 - 
 - .popup-title {
 -   font-family: PingFang SC;
 -   font-weight: 500;
 -   font-size: 34rpx;
 -   color: #181818;
 - }
 - 
 - .course-list {
 -   max-height: 60vh;
 -   overflow-y: auto;
 - }
 - 
 - .course-item {
 -   display: flex;
 -   align-items: center;
 -   gap: 24rpx;
 -   padding-top: 24rpx;
 -   padding-right: 8rpx;
 -   padding-bottom: 24rpx;
 -   padding-left: 8rpx;
 -   border-bottom: 1px solid #EEEEEE;
 -   cursor: pointer;
 -   
 -   &:last-child {
 -     border-bottom: none;
 -   }
 - }
 - 
 - .course-number {
 -   width: 80rpx;
 -   font-family: PingFang SC;
 -   font-size: 36rpx;
 -   color: #999;
 -   
 -   &.highlight {
 -     color: #06DADC;
 -   }
 - }
 - 
 - .course-content {
 -   flex: 1;
 - }
 - 
 - .course-english {
 -   font-family: PingFang SC;
 -   font-weight: 600;
 -   font-size: 36rpx;
 -   line-height: 44rpx;
 -   color: #252545;
 -   margin-bottom: 8rpx;
 -   
 -   &.highlight {
 -     color: #06DADC;
 -   }
 - }
 - 
 - .course-chinese {
 -   font-size: 28rpx;
 -   line-height: 48rpx;
 -   color: #3B3D3D;
 -   
 -   &.highlight {
 -     color: #06DADC;
 -   }
 - }
 - </style>
 
 
  |