Demo03CourseList.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <template>
  2. <!-- 列表 -->
  3. <ContentWrap>
  4. <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
  5. <el-table-column label="编号" align="center" prop="id" />
  6. <el-table-column label="名字" align="center" prop="name" />
  7. <el-table-column label="分数" align="center" prop="score" />
  8. <el-table-column
  9. label="创建时间"
  10. align="center"
  11. prop="createTime"
  12. :formatter="dateFormatter"
  13. width="180px"
  14. />
  15. </el-table>
  16. </ContentWrap>
  17. </template>
  18. <script setup lang="ts">
  19. import { dateFormatter } from '@/utils/formatTime'
  20. import * as Demo03StudentApi from '@/api/infra/demo/demo03/inner'
  21. const { t } = useI18n() // 国际化
  22. const message = useMessage() // 消息弹窗
  23. const props = defineProps<{
  24. studentId: undefined // 学生编号(主表的关联字段)
  25. }>()
  26. const loading = ref(false) // 列表的加载中
  27. const list = ref([]) // 列表的数据
  28. /** 查询列表 */
  29. const getList = async () => {
  30. loading.value = true
  31. try {
  32. list.value = await Demo03StudentApi.getDemo03CourseListByStudentId(props.studentId)
  33. } finally {
  34. loading.value = false
  35. }
  36. }
  37. /** 搜索按钮操作 */
  38. const handleQuery = () => {
  39. queryParams.pageNo = 1
  40. getList()
  41. }
  42. /** 初始化 **/
  43. onMounted(() => {
  44. getList()
  45. })
  46. </script>