TargetScoreManage.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <template>
  2. <div class="target-score-manage">
  3. <div class="part-box part-box-filter part-box-flex">
  4. <el-form ref="FilterForm" label-position="left" label-width="85px" inline>
  5. <template v-if="checkPrivilege('condition', 'condition')">
  6. <el-form-item label="培养方案:">
  7. <training-plan-select
  8. v-model="filter.cultureProgramId"
  9. placeholder="培养方案"
  10. @change="trainingPlanChange"
  11. ></training-plan-select>
  12. </el-form-item>
  13. <el-form-item label="学期:">
  14. <semester-select
  15. v-model="filter.semesterId"
  16. placeholder="学期"
  17. ></semester-select>
  18. </el-form-item>
  19. <el-form-item label="课程:">
  20. <training-plan-course-select
  21. v-model="filter.courseId"
  22. placeholder="课程"
  23. :professional-id="filter.professionalId"
  24. :culture-program-id="filter.cultureProgramId"
  25. ></training-plan-course-select>
  26. </el-form-item>
  27. </template>
  28. <el-form-item label-width="0px">
  29. <el-button
  30. v-if="checkPrivilege('button', 'select')"
  31. type="primary"
  32. @click="search"
  33. >查询</el-button
  34. >
  35. </el-form-item>
  36. </el-form>
  37. </div>
  38. <div class="part-box part-box-pad">
  39. <el-table ref="TableList" :data="dataList">
  40. <el-table-column
  41. type="index"
  42. label="序号"
  43. width="70"
  44. :index="indexMethod"
  45. ></el-table-column>
  46. <el-table-column label="课程(代码)">
  47. <template slot-scope="scope">
  48. {{ scope.row.courseName | defaultFieldFilter }}({{
  49. scope.row.courseCode | defaultFieldFilter
  50. }})
  51. </template>
  52. </el-table-column>
  53. <el-table-column prop="userName" label="创建人">
  54. <span slot-scope="scope">
  55. {{ scope.row.userName }}({{ scope.row.userLoginName }})
  56. </span>
  57. </el-table-column>
  58. <el-table-column
  59. class-name="action-column"
  60. label="操作"
  61. width="100"
  62. fixed="right"
  63. >
  64. <template slot-scope="scope">
  65. <el-button
  66. v-if="checkPrivilege('link', 'Score')"
  67. class="btn-primary"
  68. type="text"
  69. @click="toDetail(scope.row)"
  70. >管理成绩</el-button
  71. >
  72. </template>
  73. </el-table-column>
  74. </el-table>
  75. <div class="part-page">
  76. <el-pagination
  77. background
  78. layout="total, sizes, prev, pager, next, jumper"
  79. :pager-count="5"
  80. :current-page="current"
  81. :total="total"
  82. :page-size="size"
  83. @current-change="toPage"
  84. @size-change="pageSizeChange"
  85. >
  86. </el-pagination>
  87. </div>
  88. </div>
  89. <!-- TargetScoreDetail -->
  90. <target-score-detail
  91. ref="TargetScoreDetail"
  92. :course="curRow"
  93. ></target-score-detail>
  94. </div>
  95. </template>
  96. <script>
  97. import { targetScoreListPage } from "../api";
  98. import TargetScoreDetail from "../components/score/TargetScoreDetail.vue";
  99. export default {
  100. name: "target-score-manage",
  101. components: { TargetScoreDetail },
  102. data() {
  103. return {
  104. filter: {
  105. semesterId: "",
  106. professionalId: "",
  107. cultureProgramId: "",
  108. courseId: "",
  109. },
  110. current: 1,
  111. size: this.GLOBAL.pageSize,
  112. total: 0,
  113. dataList: [],
  114. curRow: {},
  115. };
  116. },
  117. methods: {
  118. async getList() {
  119. if (!this.checkPrivilege("list", "list")) return;
  120. const datas = {
  121. ...this.filter,
  122. pageNumber: this.current,
  123. pageSize: this.size,
  124. };
  125. const data = await targetScoreListPage(datas);
  126. this.dataList = data.records;
  127. this.total = data.total;
  128. },
  129. toPage(page) {
  130. this.current = page;
  131. this.getList();
  132. },
  133. search() {
  134. this.toPage(1);
  135. },
  136. trainingPlanChange(val) {
  137. this.filter.professionalId = val?.professionalId;
  138. },
  139. toDetail(row) {
  140. this.curRow = row;
  141. this.$refs.TargetScoreDetail.open();
  142. },
  143. },
  144. };
  145. </script>