Demo03GradeList.vue 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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="teacher" />
  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. const data = await Demo03StudentApi.getDemo03GradeByStudentId(props.studentId)
  33. if (!data) {
  34. return
  35. }
  36. list.value.push(data)
  37. } finally {
  38. loading.value = false
  39. }
  40. }
  41. /** 搜索按钮操作 */
  42. const handleQuery = () => {
  43. queryParams.pageNo = 1
  44. getList()
  45. }
  46. /** 初始化 **/
  47. onMounted(() => {
  48. getList()
  49. })
  50. </script>