PlanLinkPaper.vue 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. <template>
  2. <div class="plan-link-paper">
  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. <semester-select
  8. v-model.trim="filter.semesterId"
  9. placeholder="学期"
  10. clearable
  11. ></semester-select>
  12. </el-form-item>
  13. <el-form-item label="考试:">
  14. <exam-select
  15. v-model="filter.examId"
  16. :semester-id="filter.semesterId"
  17. ></exam-select>
  18. </el-form-item>
  19. <el-form-item label="关联状态:">
  20. <el-select
  21. v-model="filter.relateType"
  22. style="width: 120px;"
  23. placeholder="关联状态"
  24. clearable
  25. >
  26. <el-option
  27. v-for="(val, key) in RELATE_TYPE"
  28. :key="key"
  29. :value="key"
  30. :label="val"
  31. ></el-option>
  32. </el-select>
  33. </el-form-item>
  34. <el-form-item label="印刷计划:">
  35. <print-plan-select
  36. v-model.trim="filter.printPlanIdList"
  37. placeholder="印刷计划"
  38. clearable
  39. multiple
  40. @change="printPlanChange"
  41. ></print-plan-select>
  42. </el-form-item>
  43. <el-form-item label="课程(代码):" label-width="110px">
  44. <course-select
  45. v-model.trim="filter.courseCode"
  46. :print-plan-id="filter.printPlanIdList"
  47. placeholder="课程(代码)"
  48. clearable
  49. ></course-select>
  50. </el-form-item>
  51. <el-form-item label="试卷编号:">
  52. <paper-number-select
  53. ref="PaperNumberSelect"
  54. v-model="filter.paperNumber"
  55. :print-plan-id="filter.printPlanIdList"
  56. placeholder="试卷编号"
  57. clearable
  58. ></paper-number-select>
  59. </el-form-item>
  60. <el-form-item label="命题老师:">
  61. <el-input
  62. v-model="filter.userName"
  63. placeholder="命题老师"
  64. clearable
  65. ></el-input>
  66. </el-form-item>
  67. </template>
  68. <el-form-item label-width="0px">
  69. <el-button
  70. v-if="checkPrivilege('button', 'select')"
  71. type="primary"
  72. @click="search"
  73. >查询</el-button
  74. >
  75. </el-form-item>
  76. </el-form>
  77. </div>
  78. <div class="part-box part-box-pad">
  79. <el-table ref="TableList" :data="dataList">
  80. <el-table-column
  81. type="index"
  82. label="序号"
  83. width="70"
  84. :index="indexMethod"
  85. ></el-table-column>
  86. <el-table-column
  87. prop="semesterName"
  88. label="学期"
  89. min-width="160"
  90. ></el-table-column>
  91. <el-table-column
  92. prop="examName"
  93. label="考试"
  94. min-width="160"
  95. ></el-table-column>
  96. <el-table-column
  97. prop="printPlanName"
  98. label="印刷计划"
  99. min-width="200"
  100. ></el-table-column>
  101. <el-table-column
  102. prop="paperNumber"
  103. label="试卷编号"
  104. min-width="160"
  105. ></el-table-column>
  106. <el-table-column prop="courseName" label="课程(代码)" min-width="200">
  107. <span slot-scope="scope"
  108. >{{ scope.row.courseName }}({{ scope.row.courseCode }})</span
  109. >
  110. </el-table-column>
  111. <el-table-column prop="userName" label="命题老师" min-width="100">
  112. </el-table-column>
  113. <el-table-column prop="exposedPaperType" label="已曝光类型" width="100">
  114. <span slot-scope="scope">{{
  115. scope.row.exposedPaperType | defaultFieldFilter
  116. }}</span>
  117. </el-table-column>
  118. <el-table-column
  119. prop="unexposedPaperType"
  120. label="未曝光类型"
  121. width="100"
  122. >
  123. <span slot-scope="scope">{{
  124. scope.row.unexposedPaperType | defaultFieldFilter
  125. }}</span>
  126. </el-table-column>
  127. <el-table-column prop="relatePaperType" label="关联卷型" width="100">
  128. <span slot-scope="scope">{{
  129. scope.row.relatePaperType | defaultFieldFilter
  130. }}</span>
  131. </el-table-column>
  132. <el-table-column label="关联状态" width="80">
  133. <span slot-scope="scope">
  134. {{ scope.row.relatePaperType ? "已关联" : "未关联" }}
  135. </span>
  136. </el-table-column>
  137. <el-table-column prop="totalSubjects" label="总科次" width="80">
  138. </el-table-column>
  139. <el-table-column
  140. class-name="action-column"
  141. label="操作"
  142. width="100"
  143. fixed="right"
  144. >
  145. <template slot-scope="scope">
  146. <el-button
  147. v-if="checkPrivilege('link', 'edit')"
  148. class="btn-primary"
  149. type="text"
  150. @click="toEdit(scope.row)"
  151. >关联试卷</el-button
  152. >
  153. </template>
  154. </el-table-column>
  155. </el-table>
  156. <div class="part-page">
  157. <el-pagination
  158. background
  159. layout="total, sizes, prev, pager, next, jumper"
  160. :pager-count="5"
  161. :current-page="current"
  162. :total="total"
  163. :page-size="size"
  164. @current-change="toPage"
  165. @size-change="pageSizeChange"
  166. >
  167. </el-pagination>
  168. </div>
  169. </div>
  170. <!-- ModifyPlanPaper -->
  171. <modify-plan-paper
  172. :instance="curRow"
  173. @modified="getList"
  174. ref="ModifyPlanPaper"
  175. ></modify-plan-paper>
  176. </div>
  177. </template>
  178. <script>
  179. import { planLinkPaperListPage } from "../api";
  180. import ModifyPlanPaper from "../components/ModifyPlanPaper";
  181. export const RELATE_TYPE = {
  182. RELATE: "已关联",
  183. NOT_RELATE: "未关联"
  184. };
  185. export default {
  186. name: "plan-link-paper",
  187. components: { ModifyPlanPaper },
  188. data() {
  189. return {
  190. filter: {
  191. semesterId: "",
  192. examId: "",
  193. printPlanIdList: [],
  194. courseCode: "",
  195. paperNumber: "",
  196. relateType: "",
  197. cardRuleId: "",
  198. userName: ""
  199. },
  200. current: 1,
  201. size: this.GLOBAL.pageSize,
  202. total: 0,
  203. dataList: [],
  204. curRow: {},
  205. RELATE_TYPE
  206. };
  207. },
  208. mounted() {
  209. this.search();
  210. },
  211. methods: {
  212. async getList() {
  213. if (!this.checkPrivilege("list", "list")) return;
  214. const datas = {
  215. ...this.filter,
  216. pageNumber: this.current,
  217. pageSize: this.size
  218. };
  219. const data = await planLinkPaperListPage(datas);
  220. this.dataList = data.records;
  221. this.total = data.total;
  222. },
  223. toPage(page) {
  224. this.current = page;
  225. this.getList();
  226. },
  227. search() {
  228. this.toPage(1);
  229. },
  230. printPlanChange() {
  231. this.filter.paperNumber = "";
  232. this.filter.courseCode = "";
  233. },
  234. toEdit(row) {
  235. this.curRow = row;
  236. this.$refs.ModifyPlanPaper.open();
  237. }
  238. }
  239. };
  240. </script>