WaitTask.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <template>
  2. <div class="wait-task">
  3. <div class="part-box part-box-filter">
  4. <el-form ref="FilterForm" label-position="left" label-width="85px" inline>
  5. <el-form-item label="考试名称:">
  6. <el-select
  7. v-model="filter.examId"
  8. style="width: 315px;"
  9. placeholder="请选择"
  10. clearable
  11. >
  12. <el-option
  13. v-for="item in exams"
  14. :key="item.id"
  15. :value="item.id"
  16. :label="item.name"
  17. ></el-option>
  18. </el-select>
  19. </el-form-item>
  20. <el-form-item label-width="0px">
  21. <el-button type="primary" icon="icon icon-search" @click="toPage(1)"
  22. >查询</el-button
  23. >
  24. </el-form-item>
  25. </el-form>
  26. </div>
  27. <div class="part-box">
  28. <el-table ref="TableList" :data="tasks" border stripe>
  29. <el-table-column prop="examCode" label="考试ID"></el-table-column>
  30. <el-table-column prop="examName" label="考试名称"></el-table-column>
  31. <el-table-column prop="courseNameCode" label="科目名称(编码)">
  32. </el-table-column>
  33. <el-table-column prop="paperStatus" label="试卷"></el-table-column>
  34. <el-table-column prop="cardStatus" label="答题卡"></el-table-column>
  35. <el-table-column prop="endTime" label="任务截止日期"></el-table-column>
  36. <el-table-column prop="overTime" label="剩余时间"></el-table-column>
  37. <el-table-column prop="receiveTime" label="接收时间"></el-table-column>
  38. <el-table-column label="操作" align="center">
  39. <template slot-scope="scope">
  40. <el-button
  41. class="btn-table-icon"
  42. type="text"
  43. icon="icon icon-circle-right"
  44. @click="toDetail(scope.row)"
  45. title="详情"
  46. ></el-button>
  47. </template>
  48. </el-table-column>
  49. </el-table>
  50. <div class="part-page">
  51. <el-pagination
  52. background
  53. layout="prev, pager, next"
  54. :current-page="current"
  55. :total="total"
  56. :page-size="size"
  57. @current-change="toPage"
  58. >
  59. </el-pagination>
  60. </div>
  61. </div>
  62. </div>
  63. </template>
  64. <script>
  65. import { waitTaskListPage, examList } from "../api";
  66. export default {
  67. name: "wait-task",
  68. data() {
  69. return {
  70. filter: {
  71. examId: ""
  72. },
  73. current: 1,
  74. size: this.GLOBAL.pageSize,
  75. total: 0,
  76. visible: false,
  77. exams: [],
  78. tasks: []
  79. };
  80. },
  81. created() {
  82. this.init();
  83. },
  84. methods: {
  85. init() {
  86. this.getExamList();
  87. this.getList();
  88. },
  89. async getList() {
  90. const datas = {
  91. ...this.filter,
  92. pageNumber: this.current,
  93. pageSize: this.size
  94. };
  95. const result = await waitTaskListPage(datas);
  96. const data = result || { records: [], total: 0 };
  97. this.tasks = data.records;
  98. this.total = data.total;
  99. },
  100. toPage(page) {
  101. this.current = page;
  102. this.getList();
  103. },
  104. async getExamList() {
  105. const data = await examList();
  106. this.exams = data.map(item => {
  107. return {
  108. id: item.id,
  109. name: item.examName
  110. };
  111. });
  112. },
  113. toDetail(row) {
  114. this.$router.push({
  115. name: "WaitTaskDetail",
  116. params: {
  117. taskId: row.id
  118. }
  119. });
  120. }
  121. }
  122. };
  123. </script>