Commit 76eb1bf66ec67186d81dc54e575bbe04cd86b938
1 parent
2126f54b
授课端版本管理,学生画像接口联调
Showing
14 changed files
with
199 additions
and
159 deletions
src/api/apis/answerSheet.js
| 1 | - | ||
| 2 | import service from "../axios" | 1 | import service from "../axios" |
| 3 | import answerSheet from "../urls/answerSheet" | 2 | import answerSheet from "../urls/answerSheet" |
| 4 | 3 | ||
| @@ -99,5 +98,4 @@ export default { | @@ -99,5 +98,4 @@ export default { | ||
| 99 | data | 98 | data |
| 100 | }) | 99 | }) |
| 101 | }, | 100 | }, |
| 102 | -} | ||
| 103 | - | 101 | +} |
| 104 | \ No newline at end of file | 102 | \ No newline at end of file |
src/api/apis/apis.js
| @@ -337,7 +337,22 @@ export default { | @@ -337,7 +337,22 @@ export default { | ||
| 337 | responseType: 'arraybuffer', | 337 | responseType: 'arraybuffer', |
| 338 | }); | 338 | }); |
| 339 | }, | 339 | }, |
| 340 | - | 340 | + // 任课老师-查询学生列表 |
| 341 | + tStudentList(data) { | ||
| 342 | + return service({ | ||
| 343 | + url: setUpUrls.tStudentList, | ||
| 344 | + method: "POST", | ||
| 345 | + data | ||
| 346 | + }); | ||
| 347 | + }, | ||
| 348 | + //任课老师-学生测练统计 | ||
| 349 | + tStudentExamReport(data) { | ||
| 350 | + return service({ | ||
| 351 | + url: setUpUrls.tStudentExamReport, | ||
| 352 | + method: "POST", | ||
| 353 | + data, | ||
| 354 | + }); | ||
| 355 | + }, | ||
| 341 | 356 | ||
| 342 | // 查询角色列表 | 357 | // 查询角色列表 |
| 343 | roleList(data) { | 358 | roleList(data) { |
| @@ -1180,105 +1195,105 @@ export default { | @@ -1180,105 +1195,105 @@ export default { | ||
| 1180 | }); | 1195 | }); |
| 1181 | }, | 1196 | }, |
| 1182 | 1197 | ||
| 1183 | - /** 平台管理 */ | ||
| 1184 | - //账户管理 | ||
| 1185 | - tenantPage(data) { | 1198 | + /** 平台管理 */ |
| 1199 | + //账户管理 | ||
| 1200 | + tenantPage(data) { | ||
| 1186 | return service({ | 1201 | return service({ |
| 1187 | url: setUpUrls.tenantPage, | 1202 | url: setUpUrls.tenantPage, |
| 1188 | method: "POST", | 1203 | method: "POST", |
| 1189 | data | 1204 | data |
| 1190 | }); | 1205 | }); |
| 1191 | }, | 1206 | }, |
| 1192 | - //修改账号 | ||
| 1193 | - updateTenant(data) { | 1207 | + //修改账号 |
| 1208 | + updateTenant(data) { | ||
| 1194 | return service({ | 1209 | return service({ |
| 1195 | url: setUpUrls.updateTenant, | 1210 | url: setUpUrls.updateTenant, |
| 1196 | method: "POST", | 1211 | method: "POST", |
| 1197 | data | 1212 | data |
| 1198 | }); | 1213 | }); |
| 1199 | }, | 1214 | }, |
| 1200 | - //新增租户账号 | ||
| 1201 | - addTenant(data) { | 1215 | + //新增租户账号 |
| 1216 | + addTenant(data) { | ||
| 1202 | return service({ | 1217 | return service({ |
| 1203 | url: setUpUrls.addTenant, | 1218 | url: setUpUrls.addTenant, |
| 1204 | method: "POST", | 1219 | method: "POST", |
| 1205 | data | 1220 | data |
| 1206 | }); | 1221 | }); |
| 1207 | }, | 1222 | }, |
| 1208 | - //授课端版本管理 | ||
| 1209 | - versionPage(data) { | 1223 | + //授课端版本管理 |
| 1224 | + versionPage(data) { | ||
| 1210 | return service({ | 1225 | return service({ |
| 1211 | url: setUpUrls.versionPage, | 1226 | url: setUpUrls.versionPage, |
| 1212 | method: "POST", | 1227 | method: "POST", |
| 1213 | data | 1228 | data |
| 1214 | }); | 1229 | }); |
| 1215 | }, | 1230 | }, |
| 1216 | - //新增授课端版本 | ||
| 1217 | - addVersion(data) { | 1231 | + //新增授课端版本 |
| 1232 | + addVersion(data) { | ||
| 1218 | return service({ | 1233 | return service({ |
| 1219 | url: setUpUrls.addVersion, | 1234 | url: setUpUrls.addVersion, |
| 1220 | method: "POST", | 1235 | method: "POST", |
| 1221 | data | 1236 | data |
| 1222 | }); | 1237 | }); |
| 1223 | }, | 1238 | }, |
| 1224 | - //删除授课端版本 | ||
| 1225 | - delVersion(data) { | 1239 | + //删除授课端版本 |
| 1240 | + delVersion(data) { | ||
| 1226 | return service({ | 1241 | return service({ |
| 1227 | url: setUpUrls.delVersion, | 1242 | url: setUpUrls.delVersion, |
| 1228 | method: "POST", | 1243 | method: "POST", |
| 1229 | data | 1244 | data |
| 1230 | }); | 1245 | }); |
| 1231 | }, | 1246 | }, |
| 1232 | - //基站统计数据 | ||
| 1233 | - pStationReport(data) { | 1247 | + //基站统计数据 |
| 1248 | + pStationReport(data) { | ||
| 1234 | return service({ | 1249 | return service({ |
| 1235 | url: setUpUrls.pStationReport, | 1250 | url: setUpUrls.pStationReport, |
| 1236 | method: "POST", | 1251 | method: "POST", |
| 1237 | data | 1252 | data |
| 1238 | }); | 1253 | }); |
| 1239 | }, | 1254 | }, |
| 1240 | - //答题器统计数据 | ||
| 1241 | - pKeyboardReport(data) { | 1255 | + //答题器统计数据 |
| 1256 | + pKeyboardReport(data) { | ||
| 1242 | return service({ | 1257 | return service({ |
| 1243 | url: setUpUrls.pKeyboardReport, | 1258 | url: setUpUrls.pKeyboardReport, |
| 1244 | method: "POST", | 1259 | method: "POST", |
| 1245 | data | 1260 | data |
| 1246 | }); | 1261 | }); |
| 1247 | }, | 1262 | }, |
| 1248 | - //查询设备列表 | ||
| 1249 | - pDeviceList(data) { | 1263 | + //查询设备列表 |
| 1264 | + pDeviceList(data) { | ||
| 1250 | return service({ | 1265 | return service({ |
| 1251 | url: setUpUrls.pDeviceList, | 1266 | url: setUpUrls.pDeviceList, |
| 1252 | method: "POST", | 1267 | method: "POST", |
| 1253 | data | 1268 | data |
| 1254 | }); | 1269 | }); |
| 1255 | }, | 1270 | }, |
| 1256 | - //查询设备详情 | ||
| 1257 | - pDeviceDetail(data) { | 1271 | + //查询设备详情 |
| 1272 | + pDeviceDetail(data) { | ||
| 1258 | return service({ | 1273 | return service({ |
| 1259 | url: setUpUrls.pDeviceDetail, | 1274 | url: setUpUrls.pDeviceDetail, |
| 1260 | method: "POST", | 1275 | method: "POST", |
| 1261 | data | 1276 | data |
| 1262 | }); | 1277 | }); |
| 1263 | }, | 1278 | }, |
| 1264 | - //查询设备日志列表 | ||
| 1265 | - pDeviceLogList(data) { | 1279 | + //查询设备日志列表 |
| 1280 | + pDeviceLogList(data) { | ||
| 1266 | return service({ | 1281 | return service({ |
| 1267 | url: setUpUrls.pDeviceLogList, | 1282 | url: setUpUrls.pDeviceLogList, |
| 1268 | method: "POST", | 1283 | method: "POST", |
| 1269 | data | 1284 | data |
| 1270 | }); | 1285 | }); |
| 1271 | }, | 1286 | }, |
| 1272 | - //班级名册导入 | ||
| 1273 | - studentTemplateUrl(data) { | 1287 | + //班级名册导入 |
| 1288 | + studentTemplateUrl(data) { | ||
| 1274 | return service({ | 1289 | return service({ |
| 1275 | url: setUpUrls.studentTemplateUrl, | 1290 | url: setUpUrls.studentTemplateUrl, |
| 1276 | method: "POST", | 1291 | method: "POST", |
| 1277 | data | 1292 | data |
| 1278 | }); | 1293 | }); |
| 1279 | }, | 1294 | }, |
| 1280 | - //班级名册导出 | ||
| 1281 | - exportStudent(data) { | 1295 | + //班级名册导出 |
| 1296 | + exportStudent(data) { | ||
| 1282 | return service({ | 1297 | return service({ |
| 1283 | url: setUpUrls.exportStudent, | 1298 | url: setUpUrls.exportStudent, |
| 1284 | method: "POST", | 1299 | method: "POST", |
| @@ -1286,32 +1301,32 @@ export default { | @@ -1286,32 +1301,32 @@ export default { | ||
| 1286 | responseType: 'arraybuffer', | 1301 | responseType: 'arraybuffer', |
| 1287 | }); | 1302 | }); |
| 1288 | }, | 1303 | }, |
| 1289 | - //上传图片 | ||
| 1290 | - puploadImg(data) { | 1304 | + //上传图片 |
| 1305 | + puploadImg(data) { | ||
| 1291 | return service({ | 1306 | return service({ |
| 1292 | url: setUpUrls.uploadImg, | 1307 | url: setUpUrls.uploadImg, |
| 1293 | method: "POST", | 1308 | method: "POST", |
| 1294 | data, | 1309 | data, |
| 1295 | }); | 1310 | }); |
| 1296 | }, | 1311 | }, |
| 1297 | - //学生测练统计 | ||
| 1298 | - studentExamReport(data) { | 1312 | + //学生测练统计 |
| 1313 | + pStudentExamReport(data) { | ||
| 1299 | return service({ | 1314 | return service({ |
| 1300 | - url: setUpUrls.studentExamReport, | 1315 | + url: setUpUrls.pStudentExamReport, |
| 1301 | method: "POST", | 1316 | method: "POST", |
| 1302 | data, | 1317 | data, |
| 1303 | }); | 1318 | }); |
| 1304 | }, | 1319 | }, |
| 1305 | - //查询最新的授课端应用版本 | ||
| 1306 | - pLatestVersion(data) { | 1320 | + //查询最新的授课端应用版本 |
| 1321 | + pLatestVersion(data) { | ||
| 1307 | return service({ | 1322 | return service({ |
| 1308 | url: setUpUrls.pLatestVersion, | 1323 | url: setUpUrls.pLatestVersion, |
| 1309 | method: "POST", | 1324 | method: "POST", |
| 1310 | data, | 1325 | data, |
| 1311 | }); | 1326 | }); |
| 1312 | }, | 1327 | }, |
| 1313 | - //载指定版本授课端 | ||
| 1314 | - pGetAppDownloadUrl(data) { | 1328 | + //载指定版本授课端 |
| 1329 | + pGetAppDownloadUrl(data) { | ||
| 1315 | return service({ | 1330 | return service({ |
| 1316 | url: setUpUrls.pGetAppDownloadUrl, | 1331 | url: setUpUrls.pGetAppDownloadUrl, |
| 1317 | method: "POST", | 1332 | method: "POST", |
src/api/apis/ask.js deleted
| 1 | - | ||
| 2 | -import service from "../axios" | ||
| 3 | -import askUrls from "../urls/login" | ||
| 4 | - | ||
| 5 | -export default { | ||
| 6 | - // 随堂问列表 | ||
| 7 | - fetchQuizList(data) { | ||
| 8 | - return service({ | ||
| 9 | - url: askUrls.quizList, | ||
| 10 | - method: 'POST', | ||
| 11 | - data | ||
| 12 | - }) | ||
| 13 | - }, | ||
| 14 | - // 随堂问详情 | ||
| 15 | - quizDetail(data) { | ||
| 16 | - return service({ | ||
| 17 | - url: askUrls.quizDetail, | ||
| 18 | - method: 'POST', | ||
| 19 | - data | ||
| 20 | - }) | ||
| 21 | - }, | ||
| 22 | -} |
src/api/apis/role.js deleted
src/api/urls/apis.js
| @@ -79,9 +79,10 @@ export default { | @@ -79,9 +79,10 @@ export default { | ||
| 79 | exportPhaseExamReport: "/api_html/teaching/exportPhaseExamReport", | 79 | exportPhaseExamReport: "/api_html/teaching/exportPhaseExamReport", |
| 80 | //任课老师-导出单卷测练报表 | 80 | //任课老师-导出单卷测练报表 |
| 81 | exportExamReport: "/api_html/teaching/exportExamReport", | 81 | exportExamReport: "/api_html/teaching/exportExamReport", |
| 82 | - | ||
| 83 | - | ||
| 84 | - | 82 | + //任课老师-查询学生列表 |
| 83 | + tStudentList: "/api_html/teaching/studentList", | ||
| 84 | + //任课老师-学生测练统计 | ||
| 85 | + tStudentExamReport: "/api_html/teaching/studentExamReport", | ||
| 85 | 86 | ||
| 86 | 87 | ||
| 87 | // 查询角色列表 | 88 | // 查询角色列表 |
| @@ -334,7 +335,7 @@ export default { | @@ -334,7 +335,7 @@ export default { | ||
| 334 | // 班级名册导出 | 335 | // 班级名册导出 |
| 335 | exportStudent: "/api_html/personal/exportStudent", | 336 | exportStudent: "/api_html/personal/exportStudent", |
| 336 | // 学生测练统计 | 337 | // 学生测练统计 |
| 337 | - studentExamReport: "/api_html/personal/studentExamReport", | 338 | + pStudentExamReport: "/api_html/personal/studentExamReport", |
| 338 | // 查询最新的授课端应用版本 | 339 | // 查询最新的授课端应用版本 |
| 339 | pLatestVersion: "/api_html/personal/latestVersion", | 340 | pLatestVersion: "/api_html/personal/latestVersion", |
| 340 | // 载指定版本授课端 | 341 | // 载指定版本授课端 |
src/api/urls/ask.js deleted
src/api/urls/role.js deleted
src/components/setAnswer.vue
| @@ -137,7 +137,7 @@ | @@ -137,7 +137,7 @@ | ||
| 137 | >,</span | 137 | >,</span |
| 138 | > | 138 | > |
| 139 | </template> | 139 | </template> |
| 140 | - <template v-if="formAns.qusType == 2" class="answer-box"> | 140 | + <template v-if="formAns.qusType == 2"> |
| 141 | <span | 141 | <span |
| 142 | class="answer-s active" | 142 | class="answer-s active" |
| 143 | v-for="option in formAns.answerOptions.split(',')" | 143 | v-for="option in formAns.answerOptions.split(',')" |
src/views/admin/clientVersion/index.vue
| @@ -35,6 +35,7 @@ | @@ -35,6 +35,7 @@ | ||
| 35 | align="center" | 35 | align="center" |
| 36 | ></el-table-column> | 36 | ></el-table-column> |
| 37 | <el-table-column | 37 | <el-table-column |
| 38 | + width="80" | ||
| 38 | prop="versionNumber" | 39 | prop="versionNumber" |
| 39 | label="版本号" | 40 | label="版本号" |
| 40 | align="center" | 41 | align="center" |
| @@ -49,19 +50,19 @@ | @@ -49,19 +50,19 @@ | ||
| 49 | prop="fileSize" | 50 | prop="fileSize" |
| 50 | label="文件大小" | 51 | label="文件大小" |
| 51 | align="center" | 52 | align="center" |
| 52 | - ></el-table-column> | 53 | + ><template slot-scope="scoped">{{setSize(scoped.row.fileSize)}}</template></el-table-column> |
| 53 | <el-table-column | 54 | <el-table-column |
| 54 | prop="description" | 55 | prop="description" |
| 55 | label="更新描述" | 56 | label="更新描述" |
| 56 | align="center" | 57 | align="center" |
| 57 | ></el-table-column> | 58 | ></el-table-column> |
| 58 | - <el-table-column label="操作" align="center" width="160"> | 59 | + <!-- <el-table-column label="操作" align="center" width="160"> |
| 59 | <template slot-scope="scoped"> | 60 | <template slot-scope="scoped"> |
| 60 | <el-popconfirm title="确定删除吗?" @confirm="remove(scoped.row)"> | 61 | <el-popconfirm title="确定删除吗?" @confirm="remove(scoped.row)"> |
| 61 | <span class="del" slot="reference">删除</span> | 62 | <span class="del" slot="reference">删除</span> |
| 62 | </el-popconfirm> | 63 | </el-popconfirm> |
| 63 | </template> | 64 | </template> |
| 64 | - </el-table-column> | 65 | + </el-table-column> --> |
| 65 | </el-table> | 66 | </el-table> |
| 66 | <div class="pagination-box"> | 67 | <div class="pagination-box"> |
| 67 | <el-pagination | 68 | <el-pagination |
| @@ -88,6 +89,16 @@ | @@ -88,6 +89,16 @@ | ||
| 88 | ref="formAdd" | 89 | ref="formAdd" |
| 89 | label-width="160px" | 90 | label-width="160px" |
| 90 | > | 91 | > |
| 92 | + <el-form-item label="应用名称:" prop="versionName"> | ||
| 93 | + <el-col :span="12"> | ||
| 94 | + <el-input | ||
| 95 | + placeholder="请输入应用名称" | ||
| 96 | + v-model.trim="formAdd.appName" | ||
| 97 | + maxlength="30" | ||
| 98 | + > | ||
| 99 | + </el-input> | ||
| 100 | + </el-col> | ||
| 101 | + </el-form-item> | ||
| 91 | <el-form-item label="版本名称:" prop="versionName"> | 102 | <el-form-item label="版本名称:" prop="versionName"> |
| 92 | <el-col :span="12"> | 103 | <el-col :span="12"> |
| 93 | <el-input | 104 | <el-input |
| @@ -158,23 +169,31 @@ export default { | @@ -158,23 +169,31 @@ export default { | ||
| 158 | diaAdd: false, | 169 | diaAdd: false, |
| 159 | tableData: [], | 170 | tableData: [], |
| 160 | formAdd: { | 171 | formAdd: { |
| 172 | + appName: "", | ||
| 161 | versionName: "", | 173 | versionName: "", |
| 162 | versionNumber: "", | 174 | versionNumber: "", |
| 163 | appImage: "", | 175 | appImage: "", |
| 176 | + md5: "", | ||
| 177 | + fileSize: "", | ||
| 164 | filePath: "", | 178 | filePath: "", |
| 179 | + incrementMd5: "", | ||
| 180 | + incrementFileSize: "", | ||
| 165 | incrementFilePath: "", | 181 | incrementFilePath: "", |
| 166 | description: "", | 182 | description: "", |
| 167 | }, | 183 | }, |
| 168 | ruleAdd: { | 184 | ruleAdd: { |
| 185 | + appName: [ | ||
| 186 | + { required: true, message: "请输入应用名称", trigger: "blur" }, | ||
| 187 | + ], | ||
| 169 | versionName: [ | 188 | versionName: [ |
| 170 | { required: true, message: "请输入版本名称", trigger: "blur" }, | 189 | { required: true, message: "请输入版本名称", trigger: "blur" }, |
| 171 | ], | 190 | ], |
| 172 | filePath: [ | 191 | filePath: [ |
| 173 | { required: true, message: "请上传全量文件包", trigger: "blur" }, | 192 | { required: true, message: "请上传全量文件包", trigger: "blur" }, |
| 174 | ], | 193 | ], |
| 175 | - incrementFilePath: [ | ||
| 176 | - { required: true, message: "请上传增量文件包", trigger: "blur" }, | ||
| 177 | - ], | 194 | + // incrementFilePath: [ |
| 195 | + // { required: true, message: "请上传增量文件包", trigger: "blur" }, | ||
| 196 | + // ], | ||
| 178 | }, | 197 | }, |
| 179 | page: 1, | 198 | page: 1, |
| 180 | size: 20, | 199 | size: 20, |
| @@ -185,13 +204,14 @@ export default { | @@ -185,13 +204,14 @@ export default { | ||
| 185 | this._QueryData(); | 204 | this._QueryData(); |
| 186 | }, | 205 | }, |
| 187 | methods: { | 206 | methods: { |
| 207 | + setSize(size){ | ||
| 208 | + let fileSize = (size/1024/1224).toFixed(2) | ||
| 209 | + return `${fileSize}MB` | ||
| 210 | + }, | ||
| 188 | openAddDia() { | 211 | openAddDia() { |
| 189 | - this.formAdd.versionName = ""; | ||
| 190 | - this.formAdd.versionNumber = ""; | ||
| 191 | - this.formAdd.appImage = ""; | ||
| 192 | - this.formAdd.filePath = ""; | ||
| 193 | - this.formAdd.incrementFilePath = ""; | ||
| 194 | - this.formAdd.description = ""; | 212 | + for (let key in this.formAdd) { |
| 213 | + this.formAdd[key] = ""; | ||
| 214 | + } | ||
| 195 | this.diaAdd = true; | 215 | this.diaAdd = true; |
| 196 | }, | 216 | }, |
| 197 | changePage(page) { | 217 | changePage(page) { |
| @@ -213,26 +233,36 @@ export default { | @@ -213,26 +233,36 @@ export default { | ||
| 213 | this.formAdd.appImage = res.data.resId; | 233 | this.formAdd.appImage = res.data.resId; |
| 214 | }, | 234 | }, |
| 215 | appfilesSuccess(res) { | 235 | appfilesSuccess(res) { |
| 216 | - this.formAdd.filePath = res.data; | 236 | + this.formAdd.md5 = res.data.md5; |
| 237 | + this.formAdd.fileSize = res.data.size; | ||
| 238 | + this.formAdd.filePath = res.data.resId; | ||
| 217 | }, | 239 | }, |
| 218 | addfilesSuccess(res) { | 240 | addfilesSuccess(res) { |
| 219 | - this.formAdd.incrementFilePath = res.data; | 241 | + this.formAdd.incrementMd5 = res.data.md5; |
| 242 | + this.formAdd.incrementFileSize = res.data.size; | ||
| 243 | + this.formAdd.incrementFilePath = res.data.resId; | ||
| 220 | }, | 244 | }, |
| 221 | async save() { | 245 | async save() { |
| 222 | - if (this.addLoading) return; | ||
| 223 | - this.addLoading = true; | ||
| 224 | - const { data, status, info } = await this.$request.addVersion({ | ||
| 225 | - ...this.formAdd, | ||
| 226 | - }); | 246 | + this.$refs.formAdd.validate(async (valid) => { |
| 247 | + if (valid) { | ||
| 248 | + if (this.addLoading) return; | ||
| 249 | + this.addLoading = true; | ||
| 250 | + const { data, status, info } = await this.$request.addVersion({ | ||
| 251 | + ...this.formAdd, | ||
| 252 | + }); | ||
| 227 | 253 | ||
| 228 | - this.addLoading = false; | ||
| 229 | - if (status === 0) { | ||
| 230 | - this.diaAdd = false; | ||
| 231 | - this.$message.success("添加成功~"); | ||
| 232 | - this._QueryData(); | ||
| 233 | - } else { | ||
| 234 | - this.$message.error(info); | ||
| 235 | - } | 254 | + this.addLoading = false; |
| 255 | + if (status === 0) { | ||
| 256 | + this.diaAdd = false; | ||
| 257 | + this.$message.success("添加成功~"); | ||
| 258 | + this._QueryData(); | ||
| 259 | + } else { | ||
| 260 | + this.$message.error(info); | ||
| 261 | + } | ||
| 262 | + } else { | ||
| 263 | + this.$message.warning("必填项不能为空,请检查。"); | ||
| 264 | + } | ||
| 265 | + }); | ||
| 236 | }, | 266 | }, |
| 237 | async _QueryData() { | 267 | async _QueryData() { |
| 238 | this.loading = true; | 268 | this.loading = true; |
src/views/layout/header/header.vue
| @@ -180,6 +180,7 @@ export default { | @@ -180,6 +180,7 @@ export default { | ||
| 180 | if (data) { | 180 | if (data) { |
| 181 | window.location.href = data; | 181 | window.location.href = data; |
| 182 | } else { | 182 | } else { |
| 183 | + localStorage.setItem("token","") | ||
| 183 | this.$store.commit("setToken", ""); | 184 | this.$store.commit("setToken", ""); |
| 184 | this.$store.commit("setInfo", {}); | 185 | this.$store.commit("setInfo", {}); |
| 185 | this.$store.commit("setRouters", []); | 186 | this.$store.commit("setRouters", []); |
src/views/personal/setUp/student.vue
| @@ -166,7 +166,7 @@ | @@ -166,7 +166,7 @@ | ||
| 166 | <el-checkbox | 166 | <el-checkbox |
| 167 | v-for="item in subjectList" | 167 | v-for="item in subjectList" |
| 168 | :label="item" | 168 | :label="item" |
| 169 | - :key="item.id" | 169 | + :key="item" |
| 170 | >{{ item }}</el-checkbox | 170 | >{{ item }}</el-checkbox |
| 171 | > | 171 | > |
| 172 | </el-checkbox-group> | 172 | </el-checkbox-group> |
| @@ -195,11 +195,7 @@ | @@ -195,11 +195,7 @@ | ||
| 195 | </div> | 195 | </div> |
| 196 | </el-dialog> | 196 | </el-dialog> |
| 197 | <el-dialog title="学生导入" :visible.sync="diaUp" width="600"> | 197 | <el-dialog title="学生导入" :visible.sync="diaUp" width="600"> |
| 198 | - <up-load | ||
| 199 | - :url="url" | ||
| 200 | - @upSuccess="upSuccess" | ||
| 201 | - fileName="学生模板" | ||
| 202 | - > | 198 | + <up-load :url="url" @upSuccess="upSuccess" fileName="学生模板"> |
| 203 | <p class="down-txt" slot="down"> | 199 | <p class="down-txt" slot="down"> |
| 204 | 通过Excel名单导入学生模板,点击 | 200 | 通过Excel名单导入学生模板,点击 |
| 205 | <el-link type="danger" @click="downExcel">模板下载</el-link> 。 | 201 | <el-link type="danger" @click="downExcel">模板下载</el-link> 。 |
| @@ -364,7 +360,10 @@ export default { | @@ -364,7 +360,10 @@ export default { | ||
| 364 | async _QuerySubject() { | 360 | async _QuerySubject() { |
| 365 | const { data, status, info } = await this.$request.pSubjectList(); | 361 | const { data, status, info } = await this.$request.pSubjectList(); |
| 366 | if (status === 0) { | 362 | if (status === 0) { |
| 367 | - this.subjectList = [...data.subjectNames] || []; | 363 | + this.subjectList = |
| 364 | + data?.subjectNames.map((item) => { | ||
| 365 | + return item.subjectName; | ||
| 366 | + }) || []; | ||
| 368 | } else { | 367 | } else { |
| 369 | this.$message.error(info); | 368 | this.$message.error(info); |
| 370 | } | 369 | } |
| @@ -435,7 +434,7 @@ export default { | @@ -435,7 +434,7 @@ export default { | ||
| 435 | 434 | ||
| 436 | async _QueryClass() { | 435 | async _QueryClass() { |
| 437 | const { data, status, info } = await this.$request.pClassList({ | 436 | const { data, status, info } = await this.$request.pClassList({ |
| 438 | - needStudentCount:1 | 437 | + needStudentCount: 1, |
| 439 | }); | 438 | }); |
| 440 | if (status === 0) { | 439 | if (status === 0) { |
| 441 | this.classList = [...data.list] || []; | 440 | this.classList = [...data.list] || []; |
| @@ -462,7 +461,7 @@ export default { | @@ -462,7 +461,7 @@ export default { | ||
| 462 | let data = await this.$request.exportStudent(); | 461 | let data = await this.$request.exportStudent(); |
| 463 | this.loadingDown = false; | 462 | this.loadingDown = false; |
| 464 | if (data) { | 463 | if (data) { |
| 465 | - let blob = new Blob([data], { | 464 | + let blob = new Blob([data], { |
| 466 | type: "application/vnd.ms-excel;charset=utf-8", | 465 | type: "application/vnd.ms-excel;charset=utf-8", |
| 467 | }); | 466 | }); |
| 468 | downloadFile(`学生名单.xlsx`, blob); | 467 | downloadFile(`学生名单.xlsx`, blob); |
src/views/portrait/detail.vue
| @@ -8,6 +8,20 @@ | @@ -8,6 +8,20 @@ | ||
| 8 | <div class="answer-header"> | 8 | <div class="answer-header"> |
| 9 | <div class="sel-box"> | 9 | <div class="sel-box"> |
| 10 | <el-select | 10 | <el-select |
| 11 | + v-if="role == 'ROLE_JIAOSHI'" | ||
| 12 | + class="sel" | ||
| 13 | + v-model="query.subjectNames" | ||
| 14 | + placeholder="选择科目" | ||
| 15 | + > | ||
| 16 | + <el-option | ||
| 17 | + v-for="item in subjectList" | ||
| 18 | + :key="item.value" | ||
| 19 | + :label="item.label" | ||
| 20 | + :value="item.value" | ||
| 21 | + > | ||
| 22 | + </el-option> | ||
| 23 | + </el-select> | ||
| 24 | + <el-select | ||
| 11 | class="sel" | 25 | class="sel" |
| 12 | multiple | 26 | multiple |
| 13 | v-model="query.subjectNames" | 27 | v-model="query.subjectNames" |
| @@ -145,6 +159,7 @@ export default { | @@ -145,6 +159,7 @@ export default { | ||
| 145 | components: { radarChart, lineChart }, | 159 | components: { radarChart, lineChart }, |
| 146 | data() { | 160 | data() { |
| 147 | return { | 161 | return { |
| 162 | + role: "", | ||
| 148 | id: "", | 163 | id: "", |
| 149 | studentName: "", | 164 | studentName: "", |
| 150 | studentCode: "", | 165 | studentCode: "", |
| @@ -184,11 +199,18 @@ export default { | @@ -184,11 +199,18 @@ export default { | ||
| 184 | }; | 199 | }; |
| 185 | }, | 200 | }, |
| 186 | async created() { | 201 | async created() { |
| 202 | + this.role = | ||
| 203 | + this.$store.getters.info.showRole || | ||
| 204 | + this.$store.getters.info.permissions[0].role; | ||
| 187 | this.id = this.$route.query.id; | 205 | this.id = this.$route.query.id; |
| 188 | this.classId = this.$route.query.classId; | 206 | this.classId = this.$route.query.classId; |
| 189 | this.studentCode = this.$route.query.studentCode; | 207 | this.studentCode = this.$route.query.studentCode; |
| 190 | this.studentName = this.$route.query.studentName; | 208 | this.studentName = this.$route.query.studentName; |
| 191 | - this.subjectNames = this.$route.query.subjectNames?.split(",") || []; | 209 | + if (this.role != "ROLE_JIAOSHI") { |
| 210 | + this.subjectNames = this.$route.query.subjectNames?.split() || []; | ||
| 211 | + } else { | ||
| 212 | + this.subjectNames = this.$route.query.subjectNames; | ||
| 213 | + } | ||
| 192 | await this._QuerySubjectList(); | 214 | await this._QuerySubjectList(); |
| 193 | await this.setDate(1); | 215 | await this.setDate(1); |
| 194 | let startDay = this.query?.startDay; | 216 | let startDay = this.query?.startDay; |
| @@ -285,7 +307,11 @@ export default { | @@ -285,7 +307,11 @@ export default { | ||
| 285 | } | 307 | } |
| 286 | }, | 308 | }, |
| 287 | async _QuerySubjectList() { | 309 | async _QuerySubjectList() { |
| 288 | - const { data, status, info } = await this.$request.pSubjectList({ | 310 | + let subjectList = |
| 311 | + this.role == "ROLE_PERSONAL" | ||
| 312 | + ? this.$request.pSubjectList | ||
| 313 | + : this.$request.tSubjectList; | ||
| 314 | + const { data, status, info } = await subjectList({ | ||
| 289 | classId: this.classId, | 315 | classId: this.classId, |
| 290 | }); | 316 | }); |
| 291 | if (status === 0) { | 317 | if (status === 0) { |
| @@ -296,22 +322,30 @@ export default { | @@ -296,22 +322,30 @@ export default { | ||
| 296 | label: item, | 322 | label: item, |
| 297 | }; | 323 | }; |
| 298 | }) || []; | 324 | }) || []; |
| 299 | - this.subjectList.unshift({ | ||
| 300 | - value: "全部", | ||
| 301 | - label: "全部", | ||
| 302 | - }); | ||
| 303 | - if (this.subjectNames.length == 0) { | ||
| 304 | - this.query.subjectNames.push(this.subjectList[0]?.value); | 325 | + if (this.role != "ROLE_JIAOSHI") { |
| 326 | + this.subjectList.unshift({ | ||
| 327 | + value: "全部", | ||
| 328 | + label: "全部", | ||
| 329 | + }); | ||
| 330 | + if (this.subjectNames.length == 0) { | ||
| 331 | + this.query.subjectNames.push(this.subjectList[0]?.value); | ||
| 332 | + } else { | ||
| 333 | + this.query.subjectNames = [...this.subjectNames]; | ||
| 334 | + } | ||
| 335 | + this.type = | ||
| 336 | + this.query.subjectNames.length > 1 | ||
| 337 | + ? 1 | ||
| 338 | + : this.query.subjectNames[0] == "全部" && | ||
| 339 | + this.subjectList.length != 2 | ||
| 340 | + ? 1 | ||
| 341 | + : 2; | ||
| 305 | } else { | 342 | } else { |
| 306 | - this.query.subjectNames = [...this.subjectNames]; | 343 | + if (!this.subjectNames) { |
| 344 | + this.query.subjectNames = this.subjectList[0]?.value; | ||
| 345 | + } else { | ||
| 346 | + this.query.subjectNames = this.subjectNames; | ||
| 347 | + } | ||
| 307 | } | 348 | } |
| 308 | - this.type = | ||
| 309 | - this.query.subjectNames.length > 1 | ||
| 310 | - ? 1 | ||
| 311 | - : this.query.subjectNames[0] == "全部" && | ||
| 312 | - this.subjectList.length != 2 | ||
| 313 | - ? 1 | ||
| 314 | - : 2; | ||
| 315 | } else { | 349 | } else { |
| 316 | this.$message.error(info); | 350 | this.$message.error(info); |
| 317 | } | 351 | } |
| @@ -326,21 +360,29 @@ export default { | @@ -326,21 +360,29 @@ export default { | ||
| 326 | } | 360 | } |
| 327 | delete query.subjectNames; | 361 | delete query.subjectNames; |
| 328 | let subjectNames; | 362 | let subjectNames; |
| 329 | - if ( | ||
| 330 | - this.query.subjectNames.length == 1 && | ||
| 331 | - this.query.subjectNames[0] == "全部" | ||
| 332 | - ) { | ||
| 333 | - subjectNames = this.subjectList | ||
| 334 | - .filter((item) => { | ||
| 335 | - return item.value != "全部"; | ||
| 336 | - }) | ||
| 337 | - .map((item) => { | ||
| 338 | - return item.value; | ||
| 339 | - }); | 363 | + if (this.role != "ROLE_JIAOSHI") { |
| 364 | + if ( | ||
| 365 | + this.query.subjectNames.length == 1 && | ||
| 366 | + this.query.subjectNames[0] == "全部" | ||
| 367 | + ) { | ||
| 368 | + subjectNames = this.subjectList | ||
| 369 | + .filter((item) => { | ||
| 370 | + return item.value != "全部"; | ||
| 371 | + }) | ||
| 372 | + .map((item) => { | ||
| 373 | + return item.value; | ||
| 374 | + }); | ||
| 375 | + } else { | ||
| 376 | + subjectNames = [...this.query.subjectNames]; | ||
| 377 | + } | ||
| 340 | } else { | 378 | } else { |
| 341 | - subjectNames = [...this.query.subjectNames]; | 379 | + subjectNames = [this.query.subjectNames]; |
| 342 | } | 380 | } |
| 343 | - const { data, status, info } = await this.$request.studentExamReport({ | 381 | + let studentExamReport = |
| 382 | + this.role == "ROLE_PERSONAL" | ||
| 383 | + ? this.$request.pStudentExamReport | ||
| 384 | + : this.$request.tStudentExamReport; | ||
| 385 | + const { data, status, info } = await studentExamReport({ | ||
| 344 | studentId: this.id, | 386 | studentId: this.id, |
| 345 | subjectNames: subjectNames, | 387 | subjectNames: subjectNames, |
| 346 | ...query, | 388 | ...query, |
src/views/standard/ask/index.vue
| @@ -769,7 +769,7 @@ export default { | @@ -769,7 +769,7 @@ export default { | ||
| 769 | this.loading = false; | 769 | this.loading = false; |
| 770 | if (status === 0) { | 770 | if (status === 0) { |
| 771 | this.tableData = (data?.list && [...data?.list]) || []; | 771 | this.tableData = (data?.list && [...data?.list]) || []; |
| 772 | - this.total = data.count; | 772 | + this.total = data?.count || 0; |
| 773 | } else { | 773 | } else { |
| 774 | this.$message.error(info); | 774 | this.$message.error(info); |
| 775 | } | 775 | } |
src/views/standard/test/index.vue
| 1 | <template> | 1 | <template> |
| 2 | - <div ref="main" class="page-container" :class="dialogVisible ? 'active' : ''"> | 2 | + <div ref="main" class="page-container"> |
| 3 | <back-box> | 3 | <back-box> |
| 4 | <template slot="title"> | 4 | <template slot="title"> |
| 5 | <span>即时测-数据报表</span> | 5 | <span>即时测-数据报表</span> |
| @@ -788,7 +788,7 @@ export default { | @@ -788,7 +788,7 @@ export default { | ||
| 788 | this.loading = false; | 788 | this.loading = false; |
| 789 | if (status === 0) { | 789 | if (status === 0) { |
| 790 | this.tableData = (data?.list && [...data?.list]) || []; | 790 | this.tableData = (data?.list && [...data?.list]) || []; |
| 791 | - this.total = data.count; | 791 | + this.total = data?.count || 0; |
| 792 | } else { | 792 | } else { |
| 793 | this.$message.error(info); | 793 | this.$message.error(info); |
| 794 | } | 794 | } |