student.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <template>
  2. <ContentWrap shadow="always">
  3. <div style="text-align: center; margin-bottom: 20px; font-weight: bold;">学生信息</div>
  4. <hr style="border: 1px solid #e7eaec; margin: 0;"/>
  5. <div class="table-container">
  6. <el-table v-loading="loading" :data="list">
  7. <el-table-column type="index" width="50" />
  8. <!-- <el-table-column label="用户编号" align="center" key="id" prop="id" />
  9. <el-table-column
  10. label="账号"
  11. align="center"
  12. prop="username"
  13. :show-overflow-tooltip="true"
  14. /> -->
  15. <el-table-column
  16. label="姓名"
  17. align="center"
  18. prop="nickname"
  19. :show-overflow-tooltip="true"
  20. />
  21. <el-table-column
  22. label="工作间"
  23. align="center"
  24. key="deptName"
  25. prop="deptName"
  26. :show-overflow-tooltip="true"
  27. />
  28. <el-table-column label="手机号码" align="center" prop="mobile" width="120" />
  29. <el-table-column label="是否达成毕业条件" align="center" prop="isGraduate">
  30. <template #default="scope">
  31. <dict-tag :type="DICT_TYPE.SYSTEM_STUDENT_GRADUATE_STATUS" :value="scope.row.isGraduate" />
  32. </template>
  33. </el-table-column>
  34. <el-table-column label="人脸详情" align="center" prop="photoUrl">
  35. <template #default="scope">
  36. <el-image
  37. lazy
  38. class="h-80px w-80px"
  39. style="width: 40px; height:40px;margin-right: 5px"
  40. :src="scope.row.photoUrl"
  41. :preview-src-list="[scope.row.photoUrl]"
  42. preview-teleported
  43. :zoom-rate="1.2"
  44. :max-scale="7"
  45. :min-scale="0.2"
  46. :initial-index="4"
  47. fit="cover"
  48. />
  49. </template>
  50. </el-table-column>
  51. <el-table-column
  52. label="创建时间"
  53. align="center"
  54. prop="createTime"
  55. :formatter="dateFormatter"
  56. width="180"
  57. />
  58. <el-table-column label="操作" align="center" width="190">
  59. <template #default="scope">
  60. <div class="flex items-center justify-center">
  61. <el-button type="text" @click="openUserAchievement(scope.row.id)">
  62. 成果详情
  63. </el-button>
  64. </div>
  65. </template>
  66. </el-table-column>
  67. </el-table>
  68. </div>
  69. <Pagination
  70. :total="total"
  71. v-model:page="queryParams.pageNo"
  72. v-model:limit="queryParams.pageSize"
  73. @pagination="getList"
  74. />
  75. </ContentWrap>
  76. </template>
  77. <script lang="ts" setup>
  78. import { DICT_TYPE } from '@/utils/dict'
  79. import { dateFormatter } from '@/utils/formatTime'
  80. import * as UserApi from '@/api/system/user'
  81. import { defineProps } from 'vue';
  82. import { useRouter } from 'vue-router';
  83. defineOptions({ name: 'SystemUser' })
  84. const props = defineProps<{
  85. id: string; // 根据需要修改类型
  86. }>();
  87. const loading = ref(true) // 列表的加载中
  88. const total = ref(0) // 列表的总页数
  89. const list = ref([]) // 列表的数
  90. const queryParams = reactive({
  91. pageNo: 1,
  92. pageSize: 10,
  93. username: undefined,
  94. mobile: undefined,
  95. status: undefined,
  96. deptId: props.id,
  97. createTime: [],
  98. })
  99. const router = useRouter()
  100. const openUserAchievement = (id) => {
  101. router.push({ name: 'UserAchievement', query: { id: id} });
  102. }
  103. /** 查询列表 */
  104. const getList = async () => {
  105. loading.value = true
  106. try {
  107. queryParams.deptId = props.id
  108. const data = await UserApi.getStudentPage(queryParams)
  109. list.value = data.list
  110. total.value = data.total
  111. } finally {
  112. loading.value = false
  113. }
  114. }
  115. /** 初始化 */
  116. onMounted(() => {
  117. getList()
  118. })
  119. </script>
  120. <style scoped>
  121. .table-container .el-table {
  122. border: none !important; /* 移除表格的外边框 */
  123. }
  124. .table-container .el-table th,
  125. .table-container .el-table td {
  126. border: none !important; /* 移除表头和单元格的边框 */
  127. }
  128. </style>