|                                                                                                                                                                        |  | <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).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>
 |