MarkGradeMain.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. <style lang="css" scoped>
  2. li {
  3. list-style-type: none;
  4. }
  5. .searchFrame {
  6. margin-right: 10px;
  7. margin-bottom: 10px;
  8. }
  9. .page{
  10. margin-top: 10px;
  11. }
  12. .el-select{
  13. width: 165px;
  14. }
  15. </style>
  16. <template>
  17. <div>
  18. <section class="content">
  19. <div class="box box-info">
  20. <div class="box-header with-border">
  21. <h3 class="box-title">成绩查询</h3>
  22. <div class="box-tools pull-right"></div>
  23. </div>
  24. <div class="box-body">
  25. <el-form
  26. :inline="true"
  27. :model="formSearch"
  28. label-position="right"
  29. label-width="90px"
  30. >
  31. <el-row :gutter="10">
  32. <el-col :xs="7" :sm="7" :md="7" :lg="7"> </el-col>
  33. <el-col :xs="7" :sm="7" :md="7" :lg="7">
  34. <el-form-item label="姓名" class="pull-left">
  35. <el-input
  36. placeholder="姓名"
  37. v-model="formSearch.studentName"
  38. ></el-input>
  39. </el-form-item>
  40. </el-col>
  41. <el-col :xs="7" :sm="7" :md="7" :lg="7">
  42. <el-form-item label="学号" class="pull-left">
  43. <el-input
  44. placeholder="学号"
  45. v-model="formSearch.studentCode"
  46. ></el-input>
  47. </el-form-item>
  48. </el-col>
  49. <el-col :xs="7" :sm="7" :md="7" :lg="7">
  50. <el-form-item label="课程" class="pull-left" style="">
  51. <el-select
  52. :remote-method="getCourses"
  53. remote
  54. :loading="getCoursesSearchLoading"
  55. filterable
  56. class="input"
  57. v-model="formSearch.courseCode"
  58. placeholder="请选择"
  59. >
  60. <el-option value="">请选择</el-option>
  61. <el-option
  62. v-for="item in courseAllListSelect"
  63. :label="item.courseInfo"
  64. :value="item.code"
  65. :key="item.code"
  66. >
  67. </el-option>
  68. </el-select>
  69. </el-form-item>
  70. </el-col>
  71. </el-row>
  72. <el-row :gutter="10">
  73. <el-col :xs="7" :sm="7" :md="7" :lg="7">
  74. <el-form-item label="层次" class="pull-left">
  75. <el-select
  76. class="input"
  77. v-model="formSearch.specialtyLevel"
  78. placeholder="层次"
  79. >
  80. <el-option value="">请选择</el-option>
  81. <el-option
  82. v-for="item in specialtyLevels"
  83. :label="item.label"
  84. :value="item.value"
  85. :key="item.value"
  86. >
  87. </el-option>
  88. </el-select>
  89. </el-form-item>
  90. </el-col>
  91. <el-col :xs="7" :sm="7" :md="7" :lg="7">
  92. <el-form-item label="学习中心" class="pull-left">
  93. <el-select
  94. :remote-method="getOrgs"
  95. remote
  96. :loading="getOrgsSearchLoading"
  97. filterable
  98. class="input"
  99. v-model="formSearch.campusId"
  100. placeholder="请选择"
  101. >
  102. <el-option value="">请选择</el-option>
  103. <el-option
  104. v-for="item in orgList"
  105. :id="item.id"
  106. :label="item.name"
  107. :value="item.id"
  108. :key="item.id"
  109. >
  110. </el-option>
  111. </el-select>
  112. </el-form-item>
  113. </el-col>
  114. <el-col :xs="7" :sm="7" :md="7" :lg="7">
  115. <el-form-item label="采集人" class="pull-left">
  116. <el-input
  117. placeholder="采集人"
  118. v-model="formSearch.info_collector"
  119. ></el-input>
  120. </el-form-item>
  121. </el-col>
  122. </el-row>
  123. <el-form-item class="pull-right">
  124. <span>
  125. <el-button
  126. size="small"
  127. type="primary"
  128. icon="search"
  129. @click="searchMarkGrade"
  130. >查询</el-button
  131. >
  132. <el-button
  133. size="small"
  134. type="success"
  135. icon="caret-left"
  136. @click="back"
  137. >返回</el-button
  138. >
  139. </span>
  140. </el-form-item>
  141. </el-form>
  142. <el-table
  143. v-loading="loading"
  144. element-loading-text="拼命加载中"
  145. :data="tableData"
  146. border
  147. style="width: 100%"
  148. >
  149. <el-table-column label="姓名" width="100" prop="studentName" />
  150. <el-table-column label="学号" width="100" prop="studentCode" />
  151. <el-table-column label="课程" width="200" prop="courseName" />
  152. <el-table-column label="层次" width="80" prop="specialtyLevel" />
  153. <el-table-column label="专业" width="200" prop="specialtyName" />
  154. <el-table-column label="年级" width="80" prop="grade" />
  155. <el-table-column label="采集人" width="80" prop="infoCollector" />
  156. <el-table-column
  157. label="客观总分"
  158. width="100"
  159. prop="objectiveScore"
  160. />
  161. <el-table-column
  162. label="主观总分"
  163. width="100"
  164. prop="subjectiveScore"
  165. />
  166. <el-table-column label="试卷总分" width="100" prop="totalScore" />
  167. <el-table-column label="备注" width="120">
  168. <template slot-scope="scope">
  169. <el-popover trigger="hover" name="text" placement="top">
  170. <div style="width:200px;">
  171. {{ updateRemarkValue(scope.row.studentpaperPk) }}
  172. </div>
  173. <div slot="reference">
  174. <span>{{
  175. interceptStr(updateRemarkValue(scope.row.studentpaperPk))
  176. }}</span>
  177. </div>
  178. </el-popover>
  179. </template>
  180. </el-table-column>
  181. </el-table>
  182. <div class="page pull-right">
  183. <el-pagination
  184. background
  185. @current-change="handleCurrentChange"
  186. :current-page="currentPage"
  187. :page-size="pageSize"
  188. layout="total, prev, pager, next, jumper"
  189. :total="total"
  190. >
  191. </el-pagination>
  192. </div>
  193. </div>
  194. </div>
  195. </section>
  196. </div>
  197. </template>
  198. <script>
  199. import { mapState } from "vuex";
  200. import { CORE_API, DATA_PROCESS_API, LEVEL_TYPE } from "../constants/constants";
  201. export default {
  202. data() {
  203. return {
  204. formSearch: {
  205. batchId: "",
  206. examRecordId: "",
  207. studentName: "",
  208. studentCode: "",
  209. courseCode: "",
  210. specialtyLevel: "",
  211. specialtyCode: "",
  212. remark: "",
  213. studentPaperPk: "",
  214. campusId: ""
  215. },
  216. specialtyLevels: LEVEL_TYPE,
  217. tableData: [],
  218. courseList: [],
  219. orgList: [],
  220. examList: [],
  221. specialtyList: [],
  222. remarkList: [],
  223. currentPage: 1,
  224. pageSize: 10,
  225. total: 0,
  226. loading: false,
  227. getOrgsSearchLoading: false,
  228. getCoursesSearchLoading: false
  229. };
  230. },
  231. computed: {
  232. ...mapState({ user: state => state.user }),
  233. courseAllListSelect() {
  234. let courseSelect = [];
  235. for (let course of this.courseList) {
  236. let courseInfo = course.name + "(" + course.code + ")";
  237. courseSelect.push({ code: course.code, courseInfo: courseInfo });
  238. }
  239. return courseSelect;
  240. },
  241. getRemarkList() {
  242. let remarks = [];
  243. for (let item of this.remarkList) {
  244. remarks.push({ id: item.studentPaper.studentId, value: item.remark });
  245. }
  246. return remarks;
  247. }
  248. },
  249. methods: {
  250. //查询所有课程
  251. getCourses(name) {
  252. this.getCoursesSearchLoading = true;
  253. this.$http.get(CORE_API + "/course/query?name=" + name).then(response => {
  254. this.getCoursesSearchLoading = false;
  255. this.courseList = response.data;
  256. });
  257. },
  258. getOrgs(name) {
  259. this.getOrgsSearchLoading = true;
  260. this.$http.get(CORE_API + "/org/query?name=" + name).then(response => {
  261. this.getOrgsSearchLoading = false;
  262. this.orgList = response.data;
  263. });
  264. },
  265. getCourseName(code) {
  266. for (let course of this.courseList) {
  267. if (course.code == code) {
  268. return course.name;
  269. }
  270. }
  271. },
  272. getOrgName(id) {
  273. for (let org of this.orgList) {
  274. if (org.id == id) {
  275. return org.name;
  276. }
  277. }
  278. },
  279. updateRemarkValue(studentpaperPk) {
  280. let rList = this.getRemarkList;
  281. if (rList != []) {
  282. for (let item of rList) {
  283. if (item.id == studentpaperPk) {
  284. return item.value;
  285. }
  286. }
  287. }
  288. },
  289. //字符串截取
  290. interceptStr(str) {
  291. if (str) {
  292. let l = str.length;
  293. if (l > 5) {
  294. return str.substring(0, 5) + "...";
  295. } else {
  296. return str;
  297. }
  298. }
  299. },
  300. searchMarkGrade() {
  301. //查询从考务提供接口
  302. this.loading = true;
  303. var url =
  304. DATA_PROCESS_API +
  305. "/markGrade/all/" +
  306. (this.currentPage - 1) +
  307. "/" +
  308. this.pageSize;
  309. this.$http
  310. .get(url, { params: this.formSearch })
  311. .then(response => {
  312. console.log("查询的列表集合", response);
  313. this.tableData = response.data.list;
  314. this.total = response.data.total;
  315. this.loading = false;
  316. })
  317. .catch(function(response) {
  318. if (response.status == 500) {
  319. this.$notify({
  320. showClose: true,
  321. message: response.data.desc,
  322. type: "error"
  323. });
  324. }
  325. this.loading = false;
  326. });
  327. },
  328. levelFormatter(specialtyLevel) {
  329. var level = "";
  330. for (let tempLevel of this.specialtyLevels) {
  331. if (tempLevel.value == specialtyLevel) {
  332. level = tempLevel.label;
  333. }
  334. }
  335. return level;
  336. },
  337. handleCurrentChange(val) {
  338. this.currentPage = val;
  339. this.searchMarkGrade();
  340. },
  341. back() {
  342. this.$router.push({
  343. path: "/index/MarkSettingWork/grade"
  344. });
  345. }
  346. },
  347. created() {
  348. this.formSearch.batchId = parseInt(this.$route.params.examId);
  349. this.formSearch.rootOrgId = this.user.rootOrgId;
  350. this.searchMarkGrade();
  351. }
  352. };
  353. </script>