teacher-class-view.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <template>
  2. <view class="p-30">
  3. <view class="flex items-center justify-between">
  4. <text class="text-30 text-fore-title font-bold">我的班级</text>
  5. <view>
  6. <ie-picker ref="pickerRef" v-model="classId" :list="classList" placeholder="选择班级" title="选择班级" icon="arrow-down"
  7. key-label="name" key-value="classId" @change="handleClassChange"></ie-picker>
  8. </view>
  9. </view>
  10. <view>
  11. <slot :teachClass="selectedClass"></slot>
  12. </view>
  13. </view>
  14. </template>
  15. <script lang="ts" setup>
  16. import { TeachClass } from '@/types/study';
  17. const classId = ref<number>(0);
  18. const classList = ref<TeachClass[]>([]);
  19. const selectedClass = ref<TeachClass>();
  20. const pickerRef = ref();
  21. const loadData = async () => {
  22. // const res = await getClassHistory();
  23. // 模拟数据
  24. classList.value = [
  25. { classId: 1, schoolId: 1, year: 2025, name: '班级1' },
  26. { classId: 2, schoolId: 1, year: 2025, name: '班级2' },
  27. { classId: 3, schoolId: 1, year: 2025, name: '班级3' },
  28. ];
  29. // 默认选中第一个
  30. classId.value = classList.value[0].classId;
  31. selectedClass.value = classList.value[0];
  32. }
  33. onMounted(() => {
  34. loadData();
  35. });
  36. const handleClassChange = (value: number, selectedItem: TeachClass) => {
  37. classId.value = value;
  38. selectedClass.value = selectedItem;
  39. }
  40. </script>
  41. <style lang="scss" scoped></style>