CourseExamine.vue 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <template>
  2. <div class="training-plan-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. <professional-select
  8. v-model="filter.professionalId"
  9. placeholder="专业"
  10. ></professional-select>
  11. </el-form-item>
  12. <el-form-item label="培养方案:">
  13. <training-plan-select
  14. v-model="filter.cultureProgramId"
  15. placeholder="培养方案"
  16. :professional-id="filter.professionalId"
  17. professional-required
  18. ></training-plan-select>
  19. </el-form-item>
  20. <el-form-item label="课程:">
  21. <training-plan-course-select
  22. v-model="filter.courseId"
  23. placeholder="课程"
  24. :professional-id="filter.professionalId"
  25. :culture-program-id="filter.cultureProgramId"
  26. ></training-plan-course-select>
  27. </el-form-item>
  28. </template>
  29. <el-form-item label-width="0px">
  30. <el-button
  31. v-if="checkPrivilege('button', 'select')"
  32. type="primary"
  33. @click="search"
  34. >查询</el-button
  35. >
  36. </el-form-item>
  37. </el-form>
  38. </div>
  39. <div class="part-box part-box-pad">
  40. <el-table ref="TableList" :data="dataList">
  41. <el-table-column
  42. type="index"
  43. label="序号"
  44. width="70"
  45. :index="indexMethod"
  46. ></el-table-column>
  47. <el-table-column prop="courseName" label="课程名称"> </el-table-column>
  48. <el-table-column prop="courseCode" label="课程代码"> </el-table-column>
  49. <el-table-column prop="outlineName" label="课程大纲名称">
  50. </el-table-column>
  51. <el-table-column prop="evaluationMode" label="考核方式" width="120">
  52. <span slot-scope="scope">
  53. {{ scope.row.evaluationMode | evaluationModeFilter }}
  54. </span>
  55. </el-table-column>
  56. <el-table-column prop="userName" label="负责教师"> </el-table-column>
  57. <el-table-column
  58. class-name="action-column"
  59. label="操作"
  60. width="120"
  61. fixed="right"
  62. >
  63. <template slot-scope="scope">
  64. <el-button
  65. v-if="checkPrivilege('link', 'edit')"
  66. class="btn-primary"
  67. type="text"
  68. @click="toEdit(scope.row)"
  69. >编辑</el-button
  70. >
  71. <el-button
  72. v-if="checkPrivilege('link', 'delete')"
  73. class="btn-danger"
  74. type="text"
  75. @click="toDelete(scope.row)"
  76. >删除</el-button
  77. >
  78. </template>
  79. </el-table-column>
  80. </el-table>
  81. <div class="part-page">
  82. <el-pagination
  83. background
  84. layout="total, sizes, prev, pager, next, jumper"
  85. :pager-count="5"
  86. :current-page="current"
  87. :total="total"
  88. :page-size="size"
  89. @current-change="toPage"
  90. @size-change="pageSizeChange"
  91. >
  92. </el-pagination>
  93. </div>
  94. </div>
  95. <!-- DetailCourseExamine -->
  96. <detail-course-examine
  97. v-if="checkPrivilege('link', 'edit')"
  98. ref="DetailCourseExamine"
  99. :row-data="curRow"
  100. @modified="getList"
  101. ></detail-course-examine>
  102. </div>
  103. </template>
  104. <script>
  105. import { courseExamineListPage, deleteCourseExamine } from "../api";
  106. import DetailCourseExamine from "../components/course-examine/DetailCourseExamine.vue";
  107. export default {
  108. name: "course-examine-manage",
  109. components: { DetailCourseExamine },
  110. data() {
  111. return {
  112. filter: {
  113. professionalId: "",
  114. cultureProgramId: "",
  115. courseId: "",
  116. },
  117. current: 1,
  118. size: this.GLOBAL.pageSize,
  119. total: 0,
  120. dataList: [],
  121. curRow: {},
  122. userOrgId: this.$ls.get("orgId", ""),
  123. };
  124. },
  125. mounted() {
  126. this.toPage(1);
  127. },
  128. methods: {
  129. async getList() {
  130. if (!this.checkPrivilege("list", "list")) return;
  131. const datas = {
  132. ...this.filter,
  133. pageNumber: this.current,
  134. pageSize: this.size,
  135. };
  136. const data = await courseExamineListPage(datas);
  137. this.dataList = data.records;
  138. this.total = data.total;
  139. },
  140. toPage(page) {
  141. this.current = page;
  142. this.getList();
  143. },
  144. search() {
  145. this.toPage(1);
  146. },
  147. toEdit(row) {
  148. this.curRow = row;
  149. this.$refs.DetailCourseExamine.open();
  150. },
  151. async toDelete(row) {
  152. const confirm = await this.$confirm(`确定要删除当前记录吗?`, "提示", {
  153. type: "warning",
  154. }).catch(() => {});
  155. if (confirm !== "confirm") return;
  156. await deleteCourseExamine(row.id);
  157. this.$message.success("删除成功!");
  158. this.deletePageLastItem();
  159. },
  160. },
  161. };
  162. </script>