forked from liweijie/education
1 line
17 KiB
JSON
1 line
17 KiB
JSON
{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\student\\score\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\student\\score\\index.vue","mtime":1787567871639},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js","mtime":1787309793142},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js","mtime":1787309793790}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgew0KICBsaXN0U3R1ZGVudEdyYWRlcywNCiAgbGlzdFN0dWRlbnRQcm9jZXNzR3JhZGVzLA0KICBleHBvcnRTdHVkZW50R3JhZGVzLA0KICBleHBvcnRTdHVkZW50UHJvY2Vzc0dyYWRlcw0KfSBmcm9tICJAL2FwaS9zdHVkZW50UmVjb3Jkcy9zdHVkZW50UmVjb3JkcyINCg0KZXhwb3J0IGRlZmF1bHQgew0KICBuYW1lOiAnU2NvcmVJbmRleCcsDQogIGRhdGEoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IOafpeivouadoeS7tiA9PT09PT09PT09PT09PT09PT09PQ0KICAgICAgcXVlcnlGb3JtOiB7DQogICAgICAgIHh5Ymg6ICcnLA0KICAgICAgICBuZDogJycNCiAgICAgIH0sDQoNCiAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IOaVsOaNruihqOagvCA9PT09PT09PT09PT09PT09PT09PQ0KICAgICAgLy8g5pWw5o2u5p2l5rqQ77yaZ3JhZGVzIOivvueoi+aIkOe7qSAvIHByb2Nlc3Mg6K++56iL6L+H56iL5oiQ57upDQogICAgICBhY3RpdmVUYWI6ICdncmFkZXMnLA0KICAgICAgbG9hZGluZzogZmFsc2UsDQogICAgICBncmFkZXNEYXRhOiBbXSwNCiAgICAgIHByb2Nlc3NHcmFkZXNEYXRhOiBbXSwNCiAgICAgIHBhZ2luYXRpb246IHsgcGFnZU51bTogMSwgcGFnZVNpemU6IDIwLCB0b3RhbDogMCB9LA0KDQogICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDlr7zlh7ogPT09PT09PT09PT09PT09PT09PT0NCiAgICAgIGV4cG9ydExvYWRpbmc6IGZhbHNlDQogICAgfQ0KICB9LA0KICB3YXRjaDogew0KICAgIGFjdGl2ZVRhYigpIHsNCiAgICAgIHRoaXMuaGFuZGxlU2VhcmNoKCkNCiAgICB9DQogIH0sDQogIG1vdW50ZWQoKSB7DQogICAgdGhpcy5sb2FkRGF0YSgpDQogIH0sDQogIG1ldGhvZHM6IHsNCiAgICAvKiog57uE6KOF5p+l6K+i5Y+C5pWw77yM5LuF5Lyg6Z2e56m65YC8ICovDQogICAgYnVpbGRRdWVyeVBhcmFtcyhwYXJhbXMpIHsNCiAgICAgIGNvbnN0IHh5YmggPSB0aGlzLnF1ZXJ5Rm9ybS54eWJoICYmIHRoaXMucXVlcnlGb3JtLnh5YmgudHJpbSgpDQogICAgICBjb25zdCBuZCA9IHRoaXMucXVlcnlGb3JtLm5kICYmIHRoaXMucXVlcnlGb3JtLm5kLnRyaW0oKQ0KICAgICAgaWYgKHh5YmgpIHBhcmFtcy54eWJoID0geHliaA0KICAgICAgaWYgKG5kKSBwYXJhbXMubmQgPSBuZA0KICAgIH0sDQoNCiAgICBsb2FkRGF0YSgpIHsNCiAgICAgIHRoaXMubG9hZGluZyA9IHRydWUNCiAgICAgIGNvbnN0IHBhcmFtcyA9IHsNCiAgICAgICAgcGFnZU51bTogdGhpcy5wYWdpbmF0aW9uLnBhZ2VOdW0sDQogICAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2luYXRpb24ucGFnZVNpemUNCiAgICAgIH0NCiAgICAgIHRoaXMuYnVpbGRRdWVyeVBhcmFtcyhwYXJhbXMpDQogICAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5hY3RpdmVUYWIgPT09ICdncmFkZXMnID8gbGlzdFN0dWRlbnRHcmFkZXMocGFyYW1zKSA6IGxpc3RTdHVkZW50UHJvY2Vzc0dyYWRlcyhwYXJhbXMpDQogICAgICByZXF1ZXN0LnRoZW4ocmVzID0+IHsNCiAgICAgICAgY29uc3QgZGF0YSA9IHJlcy5kYXRhIHx8IHt9DQogICAgICAgIGNvbnN0IHJlY29yZHMgPSBkYXRhLnJlY29yZHMgfHwgW10NCiAgICAgICAgaWYgKHRoaXMuYWN0aXZlVGFiID09PSAnZ3JhZGVzJykgew0KICAgICAgICAgIHRoaXMuZ3JhZGVzRGF0YSA9IHJlY29yZHMNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzLnByb2Nlc3NHcmFkZXNEYXRhID0gcmVjb3Jkcw0KICAgICAgICB9DQogICAgICAgIHRoaXMucGFnaW5hdGlvbi50b3RhbCA9IGRhdGEudG90YWwgfHwgMA0KICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZQ0KICAgICAgfSkuY2F0Y2goKCkgPT4gew0KICAgICAgICBpZiAodGhpcy5hY3RpdmVUYWIgPT09ICdncmFkZXMnKSB7DQogICAgICAgICAgdGhpcy5ncmFkZXNEYXRhID0gW10NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzLnByb2Nlc3NHcmFkZXNEYXRhID0gW10NCiAgICAgICAgfQ0KICAgICAgICB0aGlzLnBhZ2luYXRpb24udG90YWwgPSAwDQogICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlDQogICAgICB9KQ0KICAgIH0sDQoNCiAgICBoYW5kbGVTZWFyY2goKSB7DQogICAgICB0aGlzLnBhZ2luYXRpb24ucGFnZU51bSA9IDENCiAgICAgIHRoaXMubG9hZERhdGEoKQ0KICAgIH0sDQogICAgaGFuZGxlUGFnZUNoYW5nZShwYWdlKSB7DQogICAgICB0aGlzLnBhZ2luYXRpb24ucGFnZU51bSA9IHBhZ2UNCiAgICAgIHRoaXMubG9hZERhdGEoKQ0KICAgIH0sDQogICAgaGFuZGxlU2l6ZUNoYW5nZShzaXplKSB7DQogICAgICB0aGlzLnBhZ2luYXRpb24ucGFnZVNpemUgPSBzaXplDQogICAgICB0aGlzLnBhZ2luYXRpb24ucGFnZU51bSA9IDENCiAgICAgIHRoaXMubG9hZERhdGEoKQ0KICAgIH0sDQoNCiAgICAvKiog6YCa55SoIGJsb2Ig5LiL6L29ICovDQogICAgZG93bmxvYWRCbG9iKGJsb2IsIGZpbGVuYW1lKSB7DQogICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpDQogICAgICBsaW5rLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpDQogICAgICBsaW5rLmRvd25sb2FkID0gZmlsZW5hbWUNCiAgICAgIGxpbmsuY2xpY2soKQ0KICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChsaW5rLmhyZWYpDQogICAgfSwNCg0KICAgIC8qKiDmoKHpqozlr7zlh7rmiYDpnIDlrablkZjnvJblj7cgKi8NCiAgICByZXF1aXJlWHliaChleHBvcnROYW1lKSB7DQogICAgICBjb25zdCB4eWJoID0gdGhpcy5xdWVyeUZvcm0ueHliaCAmJiB0aGlzLnF1ZXJ5Rm9ybS54eWJoLnRyaW0oKQ0KICAgICAgaWYgKCF4eWJoKSB7DQogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn5a+85Ye6JyArIGV4cG9ydE5hbWUgKyAn5YmN6K+35YWI6L6T5YWl5a2m5ZGY57yW5Y+3JykNCiAgICAgICAgcmV0dXJuIG51bGwNCiAgICAgIH0NCiAgICAgIHJldHVybiB4eWJoDQogICAgfSwNCg0KICAgIC8qKiDlr7zlh7ror77nqIvmiJDnu6kgRXhjZWwgKi8NCiAgICBoYW5kbGVFeHBvcnRHcmFkZXMoKSB7DQogICAgICBjb25zdCB4eWJoID0gdGhpcy5yZXF1aXJlWHliaCgn6K++56iL5oiQ57upJykNCiAgICAgIGlmICgheHliaCkgcmV0dXJuDQogICAgICB0aGlzLmV4cG9ydExvYWRpbmcgPSB0cnVlDQogICAgICBleHBvcnRTdHVkZW50R3JhZGVzKHh5YmgpLnRoZW4ocmVzID0+IHsNCiAgICAgICAgdGhpcy5kb3dubG9hZEJsb2IocmVzLCBg6K++56iL5oiQ57upXyR7eHliaH0ueGxzYCkNCiAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKCfor77nqIvmiJDnu6nlr7zlh7rmiJDlip8nKQ0KICAgICAgfSkuY2F0Y2goKCkgPT4ge30pLmZpbmFsbHkoKCkgPT4gew0KICAgICAgICB0aGlzLmV4cG9ydExvYWRpbmcgPSBmYWxzZQ0KICAgICAgfSkNCiAgICB9LA0KDQogICAgLyoqIOWvvOWHuuivvueoi+i/h+eoi+aIkOe7qSBFeGNlbCAqLw0KICAgIGhhbmRsZUV4cG9ydFByb2Nlc3NHcmFkZXMoKSB7DQogICAgICBjb25zdCB4eWJoID0gdGhpcy5yZXF1aXJlWHliaCgn6K++56iL6L+H56iL5oiQ57upJykNCiAgICAgIGlmICgheHliaCkgcmV0dXJuDQogICAgICB0aGlzLmV4cG9ydExvYWRpbmcgPSB0cnVlDQogICAgICBleHBvcnRTdHVkZW50UHJvY2Vzc0dyYWRlcyh4eWJoKS50aGVuKHJlcyA9PiB7DQogICAgICAgIHRoaXMuZG93bmxvYWRCbG9iKHJlcywgYOivvueoi+i/h+eoi+aIkOe7qV8ke3h5Ymh9Lnhsc2ApDQogICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygn6K++56iL6L+H56iL5oiQ57up5a+85Ye65oiQ5YqfJykNCiAgICAgIH0pLmNhdGNoKCgpID0+IHt9KS5maW5hbGx5KCgpID0+IHsNCiAgICAgICAgdGhpcy5leHBvcnRMb2FkaW5nID0gZmFsc2UNCiAgICAgIH0pDQogICAgfQ0KICB9DQp9DQo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiFA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/views/student/score","sourcesContent":["<template>\r\n <div class=\"app-container score-page\">\r\n <!-- ==================== 1. 查询条件区域 ==================== -->\r\n <el-card shadow=\"never\" class=\"search-card\">\r\n <el-form :model=\"queryForm\" label-width=\"90px\" inline class=\"search-form\">\r\n <el-form-item label=\"学员编号\">\r\n <el-input v-model=\"queryForm.xybh\" placeholder=\"请输入学员编号\" clearable style=\"width: 200px\" />\r\n </el-form-item>\r\n <el-form-item label=\"年度\">\r\n <el-input v-model=\"queryForm.nd\" placeholder=\"如 2026\" clearable style=\"width: 140px\" />\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button type=\"primary\" @click=\"handleSearch\">查询</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </el-card>\r\n\r\n <!-- ==================== 2. 成绩列表区域 ==================== -->\r\n <div class=\"toolbar\">\r\n <el-button type=\"primary\" :loading=\"exportLoading\" @click=\"handleExportGrades\">导出课程成绩</el-button>\r\n <el-button type=\"primary\" :loading=\"exportLoading\" @click=\"handleExportProcessGrades\">导出课程过程成绩</el-button>\r\n </div>\r\n\r\n <el-card shadow=\"never\" class=\"table-card\">\r\n <el-tabs v-model=\"activeTab\">\r\n <!-- 课程成绩 -->\r\n <el-tab-pane label=\"课程成绩\" name=\"grades\">\r\n <el-table v-loading=\"loading\" :data=\"gradesData\" stripe border style=\"width: 100%\">\r\n <el-table-column type=\"index\" label=\"序号\" width=\"55\" align=\"center\" />\r\n <el-table-column prop=\"xybh\" label=\"学员编号\" min-width=\"110\" show-overflow-tooltip />\r\n <el-table-column prop=\"kmbh\" label=\"科目编号\" min-width=\"110\" show-overflow-tooltip />\r\n <el-table-column prop=\"klx\" label=\"课类型\" min-width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"kscj\" label=\"考试成绩\" min-width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"pscj\" label=\"平时成绩\" min-width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"zzcj\" label=\"最终成绩\" min-width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"bkcj\" label=\"补考成绩\" min-width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"bkcs\" label=\"补考次数\" min-width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"ksqk\" label=\"考试情况\" min-width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"qwxf\" label=\"期望学分\" min-width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"ytg\" label=\"已通过\" min-width=\"80\" align=\"center\" />\r\n <el-table-column prop=\"nd\" label=\"年度\" min-width=\"80\" align=\"center\" />\r\n </el-table>\r\n <el-empty v-if=\"!loading && gradesData.length === 0\" description=\"暂无课程成绩数据\" :image-size=\"60\" />\r\n </el-tab-pane>\r\n\r\n <!-- 课程过程成绩 -->\r\n <el-tab-pane label=\"课程过程成绩\" name=\"process\">\r\n <el-table v-loading=\"loading\" :data=\"processGradesData\" stripe border style=\"width: 100%\">\r\n <el-table-column type=\"index\" label=\"序号\" width=\"55\" align=\"center\" />\r\n <el-table-column prop=\"xybh\" label=\"学员编号\" min-width=\"110\" show-overflow-tooltip />\r\n <el-table-column prop=\"kmbh\" label=\"科目编号\" min-width=\"110\" show-overflow-tooltip />\r\n <el-table-column prop=\"klx\" label=\"课类型\" min-width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"yscj\" label=\"原始成绩\" min-width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"zzcj\" label=\"最终成绩\" min-width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"bkcj1\" label=\"补考1\" min-width=\"80\" align=\"center\" />\r\n <el-table-column prop=\"bkcj2\" label=\"补考2\" min-width=\"80\" align=\"center\" />\r\n <el-table-column prop=\"bkcj3\" label=\"补考3\" min-width=\"80\" align=\"center\" />\r\n <el-table-column prop=\"ksqk\" label=\"考试情况\" min-width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"nd\" label=\"年度\" min-width=\"80\" align=\"center\" />\r\n </el-table>\r\n <el-empty v-if=\"!loading && processGradesData.length === 0\" description=\"暂无课程过程成绩数据\" :image-size=\"60\" />\r\n </el-tab-pane>\r\n </el-tabs>\r\n\r\n <div class=\"pagination\">\r\n <el-pagination\r\n :current-page=\"pagination.pageNum\"\r\n :page-size=\"pagination.pageSize\"\r\n :total=\"pagination.total\"\r\n :page-sizes=\"[10, 20, 50, 100]\"\r\n layout=\"total, sizes, prev, pager, next, jumper\"\r\n background\r\n @size-change=\"handleSizeChange\"\r\n @current-change=\"handlePageChange\"\r\n />\r\n </div>\r\n </el-card>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n listStudentGrades,\r\n listStudentProcessGrades,\r\n exportStudentGrades,\r\n exportStudentProcessGrades\r\n} from \"@/api/studentRecords/studentRecords\"\r\n\r\nexport default {\r\n name: 'ScoreIndex',\r\n data() {\r\n return {\r\n // ==================== 查询条件 ====================\r\n queryForm: {\r\n xybh: '',\r\n nd: ''\r\n },\r\n\r\n // ==================== 数据表格 ====================\r\n // 数据来源:grades 课程成绩 / process 课程过程成绩\r\n activeTab: 'grades',\r\n loading: false,\r\n gradesData: [],\r\n processGradesData: [],\r\n pagination: { pageNum: 1, pageSize: 20, total: 0 },\r\n\r\n // ==================== 导出 ====================\r\n exportLoading: false\r\n }\r\n },\r\n watch: {\r\n activeTab() {\r\n this.handleSearch()\r\n }\r\n },\r\n mounted() {\r\n this.loadData()\r\n },\r\n methods: {\r\n /** 组装查询参数,仅传非空值 */\r\n buildQueryParams(params) {\r\n const xybh = this.queryForm.xybh && this.queryForm.xybh.trim()\r\n const nd = this.queryForm.nd && this.queryForm.nd.trim()\r\n if (xybh) params.xybh = xybh\r\n if (nd) params.nd = nd\r\n },\r\n\r\n loadData() {\r\n this.loading = true\r\n const params = {\r\n pageNum: this.pagination.pageNum,\r\n pageSize: this.pagination.pageSize\r\n }\r\n this.buildQueryParams(params)\r\n const request = this.activeTab === 'grades' ? listStudentGrades(params) : listStudentProcessGrades(params)\r\n request.then(res => {\r\n const data = res.data || {}\r\n const records = data.records || []\r\n if (this.activeTab === 'grades') {\r\n this.gradesData = records\r\n } else {\r\n this.processGradesData = records\r\n }\r\n this.pagination.total = data.total || 0\r\n this.loading = false\r\n }).catch(() => {\r\n if (this.activeTab === 'grades') {\r\n this.gradesData = []\r\n } else {\r\n this.processGradesData = []\r\n }\r\n this.pagination.total = 0\r\n this.loading = false\r\n })\r\n },\r\n\r\n handleSearch() {\r\n this.pagination.pageNum = 1\r\n this.loadData()\r\n },\r\n handlePageChange(page) {\r\n this.pagination.pageNum = page\r\n this.loadData()\r\n },\r\n handleSizeChange(size) {\r\n this.pagination.pageSize = size\r\n this.pagination.pageNum = 1\r\n this.loadData()\r\n },\r\n\r\n /** 通用 blob 下载 */\r\n downloadBlob(blob, filename) {\r\n const link = document.createElement('a')\r\n link.href = URL.createObjectURL(blob)\r\n link.download = filename\r\n link.click()\r\n URL.revokeObjectURL(link.href)\r\n },\r\n\r\n /** 校验导出所需学员编号 */\r\n requireXybh(exportName) {\r\n const xybh = this.queryForm.xybh && this.queryForm.xybh.trim()\r\n if (!xybh) {\r\n this.$message.warning('导出' + exportName + '前请先输入学员编号')\r\n return null\r\n }\r\n return xybh\r\n },\r\n\r\n /** 导出课程成绩 Excel */\r\n handleExportGrades() {\r\n const xybh = this.requireXybh('课程成绩')\r\n if (!xybh) return\r\n this.exportLoading = true\r\n exportStudentGrades(xybh).then(res => {\r\n this.downloadBlob(res, `课程成绩_${xybh}.xls`)\r\n this.$message.success('课程成绩导出成功')\r\n }).catch(() => {}).finally(() => {\r\n this.exportLoading = false\r\n })\r\n },\r\n\r\n /** 导出课程过程成绩 Excel */\r\n handleExportProcessGrades() {\r\n const xybh = this.requireXybh('课程过程成绩')\r\n if (!xybh) return\r\n this.exportLoading = true\r\n exportStudentProcessGrades(xybh).then(res => {\r\n this.downloadBlob(res, `课程过程成绩_${xybh}.xls`)\r\n this.$message.success('课程过程成绩导出成功')\r\n }).catch(() => {}).finally(() => {\r\n this.exportLoading = false\r\n })\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.score-page {\r\n padding: 20px;\r\n\r\n .search-card {\r\n margin-bottom: 16px;\r\n\r\n .search-form {\r\n .el-form-item {\r\n margin-bottom: 0;\r\n }\r\n }\r\n }\r\n\r\n .toolbar {\r\n margin-bottom: 16px;\r\n }\r\n\r\n .table-card {\r\n .el-table {\r\n width: 100%;\r\n }\r\n\r\n .pagination {\r\n display: flex;\r\n justify-content: flex-end;\r\n margin-top: 16px;\r\n }\r\n }\r\n}\r\n</style>"]}]} |