index.vue 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <template>
  2. <div class="page_item">
  3. <div class="page_search">
  4. <div class="search_content">
  5. <div class="content_left">
  6. <el-input placeholder="请输入姓名或账号" v-model="keyWord" class="input_width">
  7. <el-button @click="GoSearch()" slot="append" icon="el-icon-search"></el-button>
  8. </el-input>
  9. </div>
  10. <div class="content_right">
  11. <el-button >刷新</el-button>
  12. <el-button type="primary" @click="AddMultiExam" >
  13. 新增用户
  14. </el-button>
  15. </div>
  16. </div>
  17. </div>
  18. <div class="page_jg_20"></div>
  19. <div class="page_table">
  20. <el-table :data="tableData" stripe
  21. :key="tableKey"
  22. v-loading="tableLoading"
  23. element-loading-text="拼命加载中……"
  24. element-loading-spinner="el-icon-loading"
  25. element-loading-background="#ffffff"
  26. row-key="studentId">
  27. <el-table-column type="index" label="序号" :index="GetIndexNumber" align="center" width="50" fixed="left"></el-table-column>
  28. <el-table-column prop="account" label="账号" align="center" show-overflow-tooltip>
  29. </el-table-column>
  30. <el-table-column prop="userName" label="姓名" align="center" show-overflow-tooltip>
  31. </el-table-column>
  32. <el-table-column prop="stateName" label="状态" align="center" show-overflow-tooltip>
  33. <template #default="scope">
  34. <div class="table_row_status">
  35. <!-- 需汇总 -->
  36. <div class="need_summary_icon" v-if="scope.row.state==1"></div>
  37. <!-- 汇总中 改成成绩中 -->
  38. <div class="score_look_icon" v-else-if="scope.row.state==4"></div>
  39. <!-- 已发布 -->
  40. <div class="yes_release_icon" v-else-if="scope.row.state==2"></div>
  41. <!-- 已关闭 -->
  42. <div class="ready_close_icon" v-else-if="scope.row.state==3"></div>
  43. <!-- 未发布 -->
  44. <div class="no_release_icon" v-else></div>
  45. {{ scope.row.stateName }}
  46. </div>
  47. </template>
  48. </el-table-column>
  49. <el-table-column prop="loginTime" label="最后登录时间" align="center" show-overflow-tooltip>
  50. </el-table-column>
  51. <el-table-column label="操作" align="center" fixed="right" min-width="120">
  52. <template #default="scope">
  53. <div class="table_row_option">
  54. <div class="button_editor" @click="EditorStudent(scope.row)">编辑</div>
  55. <div class="button_delete" @click="DeleteStudent(scope.row)">删除</div>
  56. </div>
  57. </template>
  58. </el-table-column>
  59. </el-table>
  60. </div>
  61. </div>
  62. </template>
  63. <script setup>
  64. import { ref ,onMounted, onBeforeUnmount} from 'vue'
  65. const tableData = ref([]);//表格数据
  66. const tableLoading = ref(false);//表格加载loading
  67. const tableKey = ref(0);//用于强制刷新table
  68. const keyWord = ref('');//搜索关键词
  69. const GetTableData=async()=>{
  70. try{
  71. // tableLoading.value=true;
  72. // const res=await fetch('/api/manager/getStudents');
  73. // if(res.code===200)
  74. // {
  75. // tableData.value=res.data || [];
  76. // }
  77. tableData.value=[
  78. {
  79. account: '182900',
  80. userName: '杨晓正',
  81. phone: '13552478041',
  82. state: '0',
  83. stateName: '正常',
  84. loginTime: '2024-10-15',
  85. },
  86. {
  87. account: '182900',
  88. userName: '杨晓正',
  89. phone: '13552478041',
  90. state: '1',
  91. stateName: '封禁',
  92. loginTime: '2024-10-15',
  93. },
  94. {
  95. account: '182900',
  96. userName: '杨晓正',
  97. phone: '13552478041',
  98. state: '1',
  99. stateName: '封禁',
  100. loginTime: '2024-10-15',
  101. }
  102. ];
  103. }catch(error)
  104. {
  105. console.error('获取数据失败:', error)
  106. }finally
  107. {
  108. tableLoading.value = false
  109. }
  110. }
  111. // 组件挂载时自动加载数据
  112. onMounted(() => {
  113. GetTableData()//加载表格数据
  114. })
  115. // 表格相关方法
  116. function GetIndexNumber(index) {
  117. return index + 1
  118. }
  119. </script>
  120. <style>
  121. </style>