Commit 4c2fb5608109bba0e6062f98bbff6d54c168d517
1 parent
e5e4a3e6
反馈新需求
Showing
8 changed files
with
320 additions
and
86 deletions
src/api/apis/apis.js
| ... | ... | @@ -345,8 +345,8 @@ export default { |
| 345 | 345 | data |
| 346 | 346 | }); |
| 347 | 347 | }, |
| 348 | - //任课老师-学生测练统计 | |
| 349 | - tStudentExamReport(data) { | |
| 348 | + //任课老师-学生测练统计 | |
| 349 | + tStudentExamReport(data) { | |
| 350 | 350 | return service({ |
| 351 | 351 | url: setUpUrls.tStudentExamReport, |
| 352 | 352 | method: "POST", |
| ... | ... | @@ -910,6 +910,15 @@ export default { |
| 910 | 910 | method: "POST", |
| 911 | 911 | }); |
| 912 | 912 | }, |
| 913 | + // 导出设备列表 | |
| 914 | + tenantExportDevice(data) { | |
| 915 | + return service({ | |
| 916 | + url: setUpUrls.tenantExportDevice, | |
| 917 | + method: "POST", | |
| 918 | + data, | |
| 919 | + responseType: 'arraybuffer', | |
| 920 | + }); | |
| 921 | + }, | |
| 913 | 922 | |
| 914 | 923 | /** 个人版 */ |
| 915 | 924 | // 修改个人信息 | ... | ... |
src/api/urls/apis.js
src/views/admin/account/index.vue
src/views/examinationPaper/edit.vue
| ... | ... | @@ -2,7 +2,7 @@ |
| 2 | 2 | <div> |
| 3 | 3 | <back-box> |
| 4 | 4 | <template slot="title"> |
| 5 | - <span>修改答案</span> | |
| 5 | + <span>{{type == 1?'修改试卷':'修改答案'}}</span> | |
| 6 | 6 | </template> |
| 7 | 7 | </back-box> |
| 8 | 8 | <div class="content"> |
| ... | ... | @@ -14,8 +14,12 @@ |
| 14 | 14 | }}老师修改了答案 |
| 15 | 15 | </p></template |
| 16 | 16 | > |
| 17 | - <div class="answer-title"> | |
| 18 | - <p class="name">{{ form.title || title }}</p> | |
| 17 | + <div class="answer-title" :class="type == 1?'t-left':''"> | |
| 18 | + <p class="name-box" v-if="type == 1"> | |
| 19 | + <span>试卷名称:</span> | |
| 20 | + <el-input class="ipt-name" v-model="form.title"></el-input> | |
| 21 | + </p> | |
| 22 | + <p class="name" v-else>{{ form.title }}</p> | |
| 19 | 23 | <p class="totals">卷面总分:{{ allScore }}分</p> |
| 20 | 24 | </div> |
| 21 | 25 | <template v-if="questionList[0]?.subQuestions"> |
| ... | ... | @@ -528,7 +532,7 @@ export default { |
| 528 | 532 | this.$store.getters.info.showRole || |
| 529 | 533 | this.$store.getters.info.permissions[0].role; |
| 530 | 534 | this.type = this.$route.query.type || 1; |
| 531 | - this.title = this.$route.query.title || ""; | |
| 535 | + this.form.title = this.$route.query.title || ""; | |
| 532 | 536 | this._QueryDetail(); |
| 533 | 537 | }, |
| 534 | 538 | methods: { |
| ... | ... | @@ -903,7 +907,10 @@ export default { |
| 903 | 907 | questionList: questionList, |
| 904 | 908 | }; |
| 905 | 909 | } |
| 906 | - const { data, status, info } = await modifyPaper(params); | |
| 910 | + const { data, status, info } = await modifyPaper({ | |
| 911 | + title: this.form.title, | |
| 912 | + ...params, | |
| 913 | + }); | |
| 907 | 914 | if (status == 0) { |
| 908 | 915 | this.$router.go(-1); |
| 909 | 916 | } else { |
| ... | ... | @@ -1120,10 +1127,26 @@ export default { |
| 1120 | 1127 | color: #333; |
| 1121 | 1128 | font-weight: 700; |
| 1122 | 1129 | padding: 20px 0; |
| 1130 | + &.t-left{ | |
| 1131 | + text-align: left; | |
| 1132 | + } | |
| 1123 | 1133 | .totals { |
| 1124 | 1134 | font-size: 16px; |
| 1125 | - color: #888; | |
| 1135 | + color: #666; | |
| 1136 | + font-weight: normal; | |
| 1137 | + } | |
| 1138 | + .name-box { | |
| 1139 | + display: flex; | |
| 1140 | + white-space: nowrap; | |
| 1141 | + align-items: center; | |
| 1142 | + margin-bottom: 10px; | |
| 1143 | + font-size: 16px; | |
| 1126 | 1144 | font-weight: normal; |
| 1145 | + :deep(.el-input__inner) { | |
| 1146 | + font-size: 16px; | |
| 1147 | + color: #333; | |
| 1148 | + font-weight: 700; | |
| 1149 | + } | |
| 1127 | 1150 | } |
| 1128 | 1151 | } |
| 1129 | 1152 | .question-title { | ... | ... |
src/views/standard/card/index.vue
| ... | ... | @@ -8,62 +8,92 @@ |
| 8 | 8 | |
| 9 | 9 | <div class="page-content"> |
| 10 | 10 | <div class="answer-header"> |
| 11 | - <div class="sel-box" v-if="role == 'ROLE_XUEXIAO'"> | |
| 12 | - <el-cascader | |
| 13 | - @change="(page = 1), _QueryData(1)" | |
| 14 | - size="small" | |
| 11 | + <div class="sel-box"> | |
| 12 | + <template v-if="role == 'ROLE_XUEXIAO'"> | |
| 13 | + <el-cascader | |
| 14 | + @change="(page = 1), _QueryData(1)" | |
| 15 | + size="small" | |
| 16 | + class="sel" | |
| 17 | + clearable | |
| 18 | + placeholder="选择班级" | |
| 19 | + v-model="query.classId" | |
| 20 | + :options="gradeList" | |
| 21 | + :props="props" | |
| 22 | + :show-all-levels="false" | |
| 23 | + ></el-cascader> | |
| 24 | + <el-input | |
| 25 | + placeholder="请输入学生姓名" | |
| 26 | + v-model="query.studentName" | |
| 27 | + class="input-with-select" | |
| 28 | + @keyup.enter.native="(page = 1), _QueryData(2)" | |
| 29 | + > | |
| 30 | + <el-button | |
| 31 | + slot="append" | |
| 32 | + icon="el-icon-search" | |
| 33 | + @click="(page = 1), _QueryData(2)" | |
| 34 | + ></el-button> | |
| 35 | + </el-input> | |
| 36 | + <el-input | |
| 37 | + placeholder="请输入学生学号" | |
| 38 | + v-model="query.studentCode" | |
| 39 | + class="input-with-select" | |
| 40 | + @keyup.enter.native="(page = 1), _QueryData(3)" | |
| 41 | + > | |
| 42 | + <el-button | |
| 43 | + slot="append" | |
| 44 | + icon="el-icon-search" | |
| 45 | + @click="(page = 1), _QueryData(3)" | |
| 46 | + ></el-button> | |
| 47 | + </el-input> | |
| 48 | + </template> | |
| 49 | + <template v-if="role == 'ROLE_JITUAN'"> | |
| 50 | + <el-select | |
| 51 | + class="sel2" | |
| 52 | + v-model="query.schoolId" | |
| 53 | + placeholder="选择学校" | |
| 54 | + @change="(page = 1), _QueryData(1)" | |
| 55 | + > | |
| 56 | + <el-option | |
| 57 | + v-for="item in schoolList" | |
| 58 | + :key="item.value" | |
| 59 | + :label="item.label" | |
| 60 | + :value="item.value" | |
| 61 | + > | |
| 62 | + </el-option> | |
| 63 | + </el-select> | |
| 64 | + </template> | |
| 65 | + <el-select | |
| 15 | 66 | class="sel" |
| 16 | - clearable | |
| 17 | - placeholder="选择班级" | |
| 18 | - v-model="query.classId" | |
| 19 | - :options="gradeList" | |
| 20 | - :props="props" | |
| 21 | - :show-all-levels="false" | |
| 22 | - ></el-cascader> | |
| 23 | - <el-input | |
| 24 | - placeholder="请输入学生姓名" | |
| 25 | - v-model="query.studentName" | |
| 26 | - class="input-with-select" | |
| 27 | - @keyup.enter.native="(page = 1), _QueryData(2)" | |
| 28 | - > | |
| 29 | - <el-button | |
| 30 | - slot="append" | |
| 31 | - icon="el-icon-search" | |
| 32 | - @click="(page = 1), _QueryData(2)" | |
| 33 | - ></el-button> | |
| 34 | - </el-input> | |
| 35 | - <el-input | |
| 36 | - placeholder="请输入学生学号" | |
| 37 | - v-model="query.studentCode" | |
| 38 | - class="input-with-select" | |
| 39 | - @keyup.enter.native="(page = 1), _QueryData(3)" | |
| 67 | + v-model="query.operationType" | |
| 68 | + placeholder="选择类型" | |
| 40 | 69 | > |
| 41 | - <el-button | |
| 42 | - slot="append" | |
| 43 | - icon="el-icon-search" | |
| 44 | - @click="(page = 1), _QueryData(3)" | |
| 45 | - ></el-button> | |
| 46 | - </el-input> | |
| 70 | + <el-option label="全部" value=""></el-option> | |
| 71 | + <el-option label="发卡" :value="0"></el-option> | |
| 72 | + <el-option label="补卡" :value="1"></el-option> | |
| 73 | + </el-select> | |
| 74 | + <div class="d1"> | |
| 75 | + <el-date-picker | |
| 76 | + v-model="query.startDay" | |
| 77 | + type="date" | |
| 78 | + @change="handleChangeTimeStart" | |
| 79 | + placeholder="选择日期时间" | |
| 80 | + value-format="yyyy-MM-dd" | |
| 81 | + > | |
| 82 | + </el-date-picker> | |
| 83 | + ~ | |
| 84 | + <el-date-picker | |
| 85 | + v-model="query.endDay" | |
| 86 | + type="date" | |
| 87 | + placeholder="选择日期时间" | |
| 88 | + @change="handleChangeTimeEnd" | |
| 89 | + value-format="yyyy-MM-dd" | |
| 90 | + > | |
| 91 | + </el-date-picker> | |
| 92 | + </div> | |
| 47 | 93 | <el-button type="primary" round @click="(page = 1), _QueryData(4)" |
| 48 | 94 | >筛选</el-button |
| 49 | 95 | > |
| 50 | 96 | </div> |
| 51 | - <div class="sel-box" v-if="role == 'ROLE_JITUAN'"> | |
| 52 | - <el-select | |
| 53 | - class="sel2" | |
| 54 | - v-model="schoolId" | |
| 55 | - placeholder="选择学校" | |
| 56 | - @change="(page = 1), _QueryData(true)" | |
| 57 | - > | |
| 58 | - <el-option | |
| 59 | - v-for="item in schoolList" | |
| 60 | - :key="item.value" | |
| 61 | - :label="item.label" | |
| 62 | - :value="item.value" | |
| 63 | - > | |
| 64 | - </el-option> | |
| 65 | - </el-select> | |
| 66 | - </div> | |
| 67 | 97 | </div> |
| 68 | 98 | <el-empty |
| 69 | 99 | :image-size="100" |
| ... | ... | @@ -162,8 +192,11 @@ export default { |
| 162 | 192 | classId: "", |
| 163 | 193 | studentName: "", |
| 164 | 194 | studentCode: "", |
| 195 | + operationType: "", | |
| 196 | + schoolId: "", | |
| 197 | + startDay: "", | |
| 198 | + endDay: "", | |
| 165 | 199 | }, |
| 166 | - schoolId: "", | |
| 167 | 200 | schoolList: [], |
| 168 | 201 | gradeList: [], |
| 169 | 202 | tableData: [], |
| ... | ... | @@ -186,6 +219,22 @@ export default { |
| 186 | 219 | this._QueryData(); |
| 187 | 220 | }, |
| 188 | 221 | methods: { |
| 222 | + handleChangeTimeStart(val) { | |
| 223 | + if (this.query.endDay) { | |
| 224 | + if (new Date(val).getTime() > new Date(this.query.endDay).getTime()) { | |
| 225 | + this.$message.error("任务结束时间不能任务开始时间前面,请重新设置"); | |
| 226 | + this.query.startDay = ""; | |
| 227 | + } | |
| 228 | + } | |
| 229 | + }, | |
| 230 | + handleChangeTimeEnd(val) { | |
| 231 | + if (this.query.startDay) { | |
| 232 | + if (new Date(val).getTime() < new Date(this.query.startDay).getTime()) { | |
| 233 | + this.$message.error("任务结束时间不能任务开始时间前面,请重新设置"); | |
| 234 | + this.query.endDay = ""; | |
| 235 | + } | |
| 236 | + } | |
| 237 | + }, | |
| 189 | 238 | // 查找班级 |
| 190 | 239 | async _QueryGradeList() { |
| 191 | 240 | this.loading = true; |
| ... | ... | @@ -227,14 +276,19 @@ export default { |
| 227 | 276 | value: item.id, |
| 228 | 277 | }; |
| 229 | 278 | }) || []; |
| 230 | - this.schoolId = (this.schoolList && this.schoolList[0].value) || ""; | |
| 279 | + this.schoolList.unshift({ | |
| 280 | + label: "全部", | |
| 281 | + value: "", | |
| 282 | + }); | |
| 283 | + this.query.schoolId = this.schoolList[0].value || ""; | |
| 231 | 284 | } else { |
| 232 | 285 | this.$message.error(info); |
| 233 | 286 | } |
| 234 | 287 | }, |
| 235 | - async _QueryData(type) { | |
| 288 | + serQuery(type) { | |
| 236 | 289 | let query = {}; |
| 237 | 290 | if (this.role == "ROLE_XUEXIAO") { |
| 291 | + delete query.schoolId; | |
| 238 | 292 | query.gradeName = this.query.gradeName; |
| 239 | 293 | if (type == 1) { |
| 240 | 294 | query.classId = this.query.classId[1] ? this.query.classId[1] : ""; |
| ... | ... | @@ -253,8 +307,23 @@ export default { |
| 253 | 307 | query.classId = this.query.classId[1] ? this.query.classId[1] : ""; |
| 254 | 308 | } |
| 255 | 309 | } else if (this.role == "ROLE_JITUAN") { |
| 256 | - query.schoolId = this.schoolId; | |
| 310 | + query = this.query.schoolId | |
| 311 | + ? { | |
| 312 | + schoolId: this.query.schoolId, | |
| 313 | + } | |
| 314 | + : {}; | |
| 315 | + if (type != 1) { | |
| 316 | + this.query.operationType | |
| 317 | + ? (query["operationType"] = this.query.operationType) | |
| 318 | + : ""; | |
| 319 | + this.query.startDay ? (query["startDay"] = this.query.startDay) : ""; | |
| 320 | + this.query.endDay ? (query["endDay"] = this.query.endDay) : ""; | |
| 321 | + } | |
| 257 | 322 | } |
| 323 | + return query; | |
| 324 | + }, | |
| 325 | + async _QueryData(type) { | |
| 326 | + let query = this.serQuery(type); | |
| 258 | 327 | this.loading = true; |
| 259 | 328 | const { data, status, info } = await this.$request.cardList({ |
| 260 | 329 | ...query, |
| ... | ... | @@ -271,10 +340,18 @@ export default { |
| 271 | 340 | } |
| 272 | 341 | }, |
| 273 | 342 | async downExl() { |
| 343 | + let query = {}; | |
| 344 | + this.query.operationType | |
| 345 | + ? (query["operationType"] = this.query.operationType) | |
| 346 | + : ""; | |
| 347 | + this.query.startDay ? (query["startDay"] = this.query.startDay) : ""; | |
| 348 | + this.query.endDay ? (query["endDay"] = this.query.endDay) : ""; | |
| 274 | 349 | //报表导出 |
| 275 | 350 | if (this.exportLoading == true) return; |
| 276 | 351 | this.exportLoading = true; |
| 277 | - const data = await this.$request.exportClickersLog(); | |
| 352 | + const data = await this.$request.exportClickersLog({ | |
| 353 | + ...query, | |
| 354 | + }); | |
| 278 | 355 | this.exportLoading = false; |
| 279 | 356 | if (data && !data.code) { |
| 280 | 357 | let blob = new Blob([data], { |
| ... | ... | @@ -298,7 +375,15 @@ export default { |
| 298 | 375 | .down { |
| 299 | 376 | padding: 16px 20px; |
| 300 | 377 | } |
| 301 | -.answer-header .sel-box .sel2 { | |
| 302 | - width: 300px; | |
| 378 | +.answer-header { | |
| 379 | + .sel-box { | |
| 380 | + .sel2 { | |
| 381 | + width: 300px; | |
| 382 | + margin-right: 20px; | |
| 383 | + } | |
| 384 | + .d1 { | |
| 385 | + margin-right: 20px; | |
| 386 | + } | |
| 387 | + } | |
| 303 | 388 | } |
| 304 | 389 | </style> |
| 305 | 390 | \ No newline at end of file | ... | ... |
src/views/standard/device/index.vue
| ... | ... | @@ -82,6 +82,7 @@ |
| 82 | 82 | placeholder="请输入设备编码" |
| 83 | 83 | v-model="query.sn" |
| 84 | 84 | class="input-with-select" |
| 85 | + clearable | |
| 85 | 86 | @keyup.enter.native="_QueryData(true)" |
| 86 | 87 | > |
| 87 | 88 | <el-button |
| ... | ... | @@ -105,6 +106,7 @@ |
| 105 | 106 | prop="frequency" |
| 106 | 107 | label="频点" |
| 107 | 108 | align="center" |
| 109 | + width="60" | |
| 108 | 110 | ></el-table-column> |
| 109 | 111 | <el-table-column |
| 110 | 112 | prop="pairingCode" |
| ... | ... | @@ -149,8 +151,15 @@ |
| 149 | 151 | prop="onlineTime" |
| 150 | 152 | label="最近上报" |
| 151 | 153 | align="center" |
| 154 | + width="160" | |
| 155 | + ></el-table-column> | |
| 156 | + <el-table-column | |
| 157 | + prop="createdTime" | |
| 158 | + label="创建时间" | |
| 159 | + align="center" | |
| 160 | + width="160" | |
| 152 | 161 | ></el-table-column> |
| 153 | - <el-table-column label="状态" align="center" | |
| 162 | + <el-table-column label="状态" align="center" width="60" | |
| 154 | 163 | ><template slot-scope="scope"> |
| 155 | 164 | {{ |
| 156 | 165 | scope.row.onlineStatus == 1 |
| ... | ... | @@ -236,6 +245,20 @@ |
| 236 | 245 | placeholder="请输入设备编码" |
| 237 | 246 | v-model="query.sn" |
| 238 | 247 | class="input-with-select" |
| 248 | + clearable | |
| 249 | + @keyup.enter.native="_QueryData(true)" | |
| 250 | + > | |
| 251 | + <el-button | |
| 252 | + slot="append" | |
| 253 | + icon="el-icon-search" | |
| 254 | + @click="_QueryData(true)" | |
| 255 | + ></el-button> | |
| 256 | + </el-input> | |
| 257 | + <el-input | |
| 258 | + placeholder="学生姓名" | |
| 259 | + v-model="query.studentName" | |
| 260 | + class="input-with-select" | |
| 261 | + clearable | |
| 239 | 262 | @keyup.enter.native="_QueryData(true)" |
| 240 | 263 | > |
| 241 | 264 | <el-button |
| ... | ... | @@ -254,8 +277,9 @@ |
| 254 | 277 | prop="sn" |
| 255 | 278 | label="设备编码" |
| 256 | 279 | align="center" |
| 280 | + width="160" | |
| 257 | 281 | ></el-table-column> |
| 258 | - <el-table-column label="学生信息" align="center" | |
| 282 | + <el-table-column label="学生信息" align="center" width="120" | |
| 259 | 283 | ><template slot-scope="scoped" |
| 260 | 284 | ><p |
| 261 | 285 | v-for="(item, index) in scoped.row.studentList" |
| ... | ... | @@ -276,13 +300,19 @@ |
| 276 | 300 | prop="gradeName" |
| 277 | 301 | label="年级" |
| 278 | 302 | align="center" |
| 303 | + width="120" | |
| 279 | 304 | ><template slot-scope="scoped"> |
| 280 | 305 | <p v-for="(item, index) in scoped.row.classList" :key="index"> |
| 281 | 306 | {{ item.gradeName }} |
| 282 | 307 | </p> |
| 283 | 308 | </template></el-table-column |
| 284 | 309 | > |
| 285 | - <el-table-column prop="class" label="关联班级" align="center"> | |
| 310 | + <el-table-column | |
| 311 | + prop="class" | |
| 312 | + label="关联班级" | |
| 313 | + align="center" | |
| 314 | + width="160" | |
| 315 | + > | |
| 286 | 316 | <template slot-scope="scoped"> |
| 287 | 317 | <p v-for="(item, index) in scoped.row.classList" :key="index"> |
| 288 | 318 | {{ item.className }} |
| ... | ... | @@ -303,8 +333,9 @@ |
| 303 | 333 | prop="latestReportTime" |
| 304 | 334 | label="最后答题时间" |
| 305 | 335 | align="center" |
| 336 | + width="160" | |
| 306 | 337 | ></el-table-column> |
| 307 | - <el-table-column label="操作" align="center" | |
| 338 | + <el-table-column label="操作" align="center" width="80" | |
| 308 | 339 | ><template slot-scope="scoped"> |
| 309 | 340 | <el-tooltip effect="dark" content="日志" placement="top"> |
| 310 | 341 | <el-button |
| ... | ... | @@ -359,7 +390,7 @@ |
| 359 | 390 | label="设备编码" |
| 360 | 391 | align="center" |
| 361 | 392 | ></el-table-column> |
| 362 | - <el-table-column prop="class" label="关联班级" align="center" | |
| 393 | + <el-table-column prop="class" label="关联班级" align="center" width="100" | |
| 363 | 394 | ><template slot-scope="scoped"> |
| 364 | 395 | <p v-for="(item, index) in scoped.row.classList" :key="index"> |
| 365 | 396 | {{ item.className }} |
| ... | ... | @@ -373,6 +404,18 @@ |
| 373 | 404 | align="center" |
| 374 | 405 | ></el-table-column> |
| 375 | 406 | <el-table-column |
| 407 | + v-if="role == 'ROLE_JITUAN'" | |
| 408 | + prop="gradeName" | |
| 409 | + label="年级" | |
| 410 | + align="center" | |
| 411 | + width="80" | |
| 412 | + ><template slot-scope="scoped"> | |
| 413 | + <p v-for="(item, index) in scoped.row.classList" :key="index"> | |
| 414 | + {{ item.gradeName }} | |
| 415 | + </p> | |
| 416 | + </template></el-table-column | |
| 417 | + > | |
| 418 | + <el-table-column | |
| 376 | 419 | prop="lastUpdateTime" |
| 377 | 420 | label="最近更新" |
| 378 | 421 | align="center" |
| ... | ... | @@ -391,8 +434,9 @@ |
| 391 | 434 | prop="otaVersionName" |
| 392 | 435 | label="版本号" |
| 393 | 436 | align="center" |
| 437 | + width="80" | |
| 394 | 438 | ></el-table-column> |
| 395 | - <el-table-column label="状态" align="center" | |
| 439 | + <el-table-column label="状态" align="center" width="80" | |
| 396 | 440 | ><template slot-scope="scope"> |
| 397 | 441 | {{ |
| 398 | 442 | scope.row.onlineStatus == 1 |
| ... | ... | @@ -402,8 +446,8 @@ |
| 402 | 446 | : "离线" |
| 403 | 447 | }} |
| 404 | 448 | </template></el-table-column |
| 405 | - > | |
| 406 | - <el-table-column label="自动更新" align="center" | |
| 449 | + > | |
| 450 | + <el-table-column label="自动更新" align="center" width="100" | |
| 407 | 451 | ><template slot-scope="scoped"> |
| 408 | 452 | <el-switch |
| 409 | 453 | v-model="scoped.row.upgradeFlag" |
| ... | ... | @@ -544,6 +588,7 @@ export default { |
| 544 | 588 | this.query.classId = []; |
| 545 | 589 | this.query.onlineStatus = ""; |
| 546 | 590 | this.query.sn = ""; |
| 591 | + this.query.studentName = ""; | |
| 547 | 592 | this.query.type = ""; |
| 548 | 593 | if (val == 1) { |
| 549 | 594 | this.stationReport(); |
| ... | ... | @@ -555,17 +600,16 @@ export default { |
| 555 | 600 | }, |
| 556 | 601 | data() { |
| 557 | 602 | return { |
| 558 | - exportLoading: false, | |
| 559 | - isAdd: false, //添加还是修改基站 | |
| 560 | - role: "", | |
| 561 | 603 | code: "", |
| 604 | + role: "", | |
| 562 | 605 | loading: false, |
| 606 | + exportLoading: false, | |
| 607 | + isAdd: false, //添加还是修改基站 | |
| 563 | 608 | url: "/api_html/school/manager/importStation", |
| 564 | 609 | diaUp: false, |
| 565 | 610 | diaAnswerEqu: false, |
| 566 | - gradeList: [], | |
| 567 | - gradeListAll: [], | |
| 568 | - schoolAll: [], | |
| 611 | + gradeList: [], //年级列表 | |
| 612 | + schoolAll: [], //所有学校刘表 | |
| 569 | 613 | school: {}, //校园账号所属学校信息 |
| 570 | 614 | props: { |
| 571 | 615 | multiple: true, |
| ... | ... | @@ -577,6 +621,7 @@ export default { |
| 577 | 621 | onlineStatus: "", |
| 578 | 622 | sn: "", |
| 579 | 623 | type: "", |
| 624 | + studentName: "", | |
| 580 | 625 | }, |
| 581 | 626 | statusList: [ |
| 582 | 627 | { label: "全部", value: "" }, |
| ... | ... | @@ -594,6 +639,7 @@ export default { |
| 594 | 639 | { label: "3月以上", value: 6 }, |
| 595 | 640 | ], |
| 596 | 641 | form: { |
| 642 | + //修改/添加基站信息 | |
| 597 | 643 | deviceId: "", |
| 598 | 644 | sn: "", |
| 599 | 645 | frequency: "", |
| ... | ... | @@ -607,17 +653,17 @@ export default { |
| 607 | 653 | pairingCode: [ |
| 608 | 654 | { required: true, message: "请输入配对码", trigger: "blur" }, |
| 609 | 655 | ], |
| 610 | - classIds: [{ required: true, message: "请选择班级", trigger: "blur" }], | |
| 656 | + // classIds: [{ required: true, message: "请选择班级", trigger: "blur" }], | |
| 611 | 657 | }, |
| 612 | 658 | tableData: [], |
| 613 | 659 | total: 0, |
| 614 | 660 | count: 0, |
| 615 | 661 | chartData: [], |
| 616 | 662 | chartData2: [], |
| 617 | - selectionTabIds: [], | |
| 663 | + selectionTabIds: [], //已选择授课段 | |
| 618 | 664 | page: 1, |
| 619 | 665 | size: 20, |
| 620 | - isBack: false, | |
| 666 | + isBack: false, //是否是日志页面回来 | |
| 621 | 667 | }; |
| 622 | 668 | }, |
| 623 | 669 | created() { |
| ... | ... | @@ -849,8 +895,13 @@ export default { |
| 849 | 895 | //报表导出 |
| 850 | 896 | if (this.exportLoading == true) return; |
| 851 | 897 | let query = this.setQuery(); |
| 898 | + const exportDevice = | |
| 899 | + this.role != "ROLE_JITUAN" | |
| 900 | + ? this.$request.exportDevice | |
| 901 | + : this.$request.tenantExportDevice; | |
| 902 | + | |
| 852 | 903 | this.exportLoading = true; |
| 853 | - const data = await this.$request.exportDevice({ | |
| 904 | + const data = await exportDevice({ | |
| 854 | 905 | ...query, |
| 855 | 906 | deviceType: this.type, |
| 856 | 907 | }); |
| ... | ... | @@ -1023,6 +1074,8 @@ export default { |
| 1023 | 1074 | let query = {}; |
| 1024 | 1075 | if (this.query.sn) { |
| 1025 | 1076 | query.sn = this.query.sn; |
| 1077 | + } else if (this.query.studentName) { | |
| 1078 | + query.studentName = this.query.studentName; | |
| 1026 | 1079 | } else { |
| 1027 | 1080 | if (this.type == 1) { |
| 1028 | 1081 | this.query.onlineStatus !== "" |
| ... | ... | @@ -1202,4 +1255,13 @@ export default { |
| 1202 | 1255 | } |
| 1203 | 1256 | } |
| 1204 | 1257 | } |
| 1258 | +.answer-header .sel-box .input-with-select { | |
| 1259 | + margin-right: 20px; | |
| 1260 | + :deep(.el-input__suffix) { | |
| 1261 | + right: -5px; | |
| 1262 | + } | |
| 1263 | + :deep(.el-button) { | |
| 1264 | + padding: 12px 16px 12px 10px; | |
| 1265 | + } | |
| 1266 | +} | |
| 1205 | 1267 | </style> |
| 1206 | 1268 | \ No newline at end of file | ... | ... |
src/views/standard/setUp/account.vue
| ... | ... | @@ -86,8 +86,9 @@ |
| 86 | 86 | role != 'ROLE_JITUAN' ? '请输入老师账号' : '请输入账号名称' |
| 87 | 87 | " |
| 88 | 88 | v-model="query.loginName" |
| 89 | - class="input-with-select" | |
| 89 | + class="input-with-select sel" | |
| 90 | 90 | type="number" |
| 91 | + clearable | |
| 91 | 92 | oninput="if(value.length > 11) value = value.slice(0,11)" |
| 92 | 93 | @keyup.enter.native="(page = 1), _QueryData(2)" |
| 93 | 94 | > |
| ... | ... | @@ -98,11 +99,11 @@ |
| 98 | 99 | ></el-button> |
| 99 | 100 | </el-input> |
| 100 | 101 | <el-input |
| 101 | - v-if="role != 'ROLE_JITUAN'" | |
| 102 | 102 | placeholder="请输入老师姓名" |
| 103 | 103 | maxlength="30" |
| 104 | 104 | v-model="query.realName" |
| 105 | 105 | class="input-with-select" |
| 106 | + clearable | |
| 106 | 107 | @keyup.enter.native="(page = 1), _QueryData(3)" |
| 107 | 108 | > |
| 108 | 109 | <el-button |
| ... | ... | @@ -227,6 +228,7 @@ |
| 227 | 228 | <el-input |
| 228 | 229 | placeholder="请输入联系电话" |
| 229 | 230 | v-model.trim="formCount.loginName" |
| 231 | + clearable | |
| 230 | 232 | maxlength="11" |
| 231 | 233 | > |
| 232 | 234 | </el-input> |
| ... | ... | @@ -237,6 +239,7 @@ |
| 237 | 239 | <el-input |
| 238 | 240 | placeholder="请输入教师姓名" |
| 239 | 241 | v-model.trim="formCount.realName" |
| 242 | + clearable | |
| 240 | 243 | maxlength="11" |
| 241 | 244 | > |
| 242 | 245 | </el-input> |
| ... | ... | @@ -262,6 +265,7 @@ |
| 262 | 265 | placeholder="请输入联系电话" |
| 263 | 266 | v-model.trim="formAddCount.phone" |
| 264 | 267 | type="number" |
| 268 | + clearable | |
| 265 | 269 | oninput="if(value.length > 11) value = value.slice(0,11)" |
| 266 | 270 | > |
| 267 | 271 | </el-input> |
| ... | ... | @@ -272,6 +276,7 @@ |
| 272 | 276 | <el-input |
| 273 | 277 | placeholder="请输入密码" |
| 274 | 278 | v-model.trim="formAddCount.password" |
| 279 | + clearable | |
| 275 | 280 | maxlength="18" |
| 276 | 281 | > |
| 277 | 282 | </el-input> |
| ... | ... | @@ -282,6 +287,7 @@ |
| 282 | 287 | <el-input |
| 283 | 288 | placeholder="请输入姓名" |
| 284 | 289 | v-model.trim="formAddCount.realName" |
| 290 | + clearable | |
| 285 | 291 | maxlength="30" |
| 286 | 292 | > |
| 287 | 293 | </el-input> |
| ... | ... | @@ -686,7 +692,6 @@ export default { |
| 686 | 692 | query = { ...this.query }; |
| 687 | 693 | } |
| 688 | 694 | if (this.role == "ROLE_JITUAN") { |
| 689 | - delete query.realName; | |
| 690 | 695 | query.regionIds = []; |
| 691 | 696 | query.schoolIds = []; |
| 692 | 697 | query.schoolId?.map((item) => { |
| ... | ... | @@ -703,6 +708,15 @@ export default { |
| 703 | 708 | } |
| 704 | 709 | } |
| 705 | 710 | }); |
| 711 | + if (type == 2) { | |
| 712 | + this.query.realName = ""; | |
| 713 | + query.loginName = this.query.loginName; | |
| 714 | + } else if (type == 3) { | |
| 715 | + this.query.loginName = ""; | |
| 716 | + query.realName = this.query.realName; | |
| 717 | + } else { | |
| 718 | + query = { ...this.query }; | |
| 719 | + } | |
| 706 | 720 | delete query.schoolId; |
| 707 | 721 | } |
| 708 | 722 | return query; |
| ... | ... | @@ -752,4 +766,14 @@ export default { |
| 752 | 766 | .table-box { |
| 753 | 767 | padding: 0 20px; |
| 754 | 768 | } |
| 769 | +.answer-header{ | |
| 770 | + .sel-box{ | |
| 771 | + .sel{ | |
| 772 | + margin-right:20px; | |
| 773 | + } | |
| 774 | + } | |
| 775 | + :deep(.el-input-group__append){ | |
| 776 | + padding:0 20px 0 12px; | |
| 777 | + } | |
| 778 | +} | |
| 755 | 779 | </style> |
| 756 | 780 | \ No newline at end of file | ... | ... |
src/views/standard/setUp/school.vue
| ... | ... | @@ -57,6 +57,10 @@ |
| 57 | 57 | <span class="s1">所属集团:</span> |
| 58 | 58 | <span class="s2">{{ school.tenantName || "--" }}</span> |
| 59 | 59 | </li> |
| 60 | + <li class="school-item"> | |
| 61 | + <span class="s1">基站登录密码 :</span> | |
| 62 | + <span class="s2">{{ school.stationPwd || "--" }}</span> | |
| 63 | + </li> | |
| 60 | 64 | </ul> |
| 61 | 65 | <div class="grade-box"> |
| 62 | 66 | <p class="h-title"> |
| ... | ... | @@ -187,6 +191,16 @@ |
| 187 | 191 | ></el-input> |
| 188 | 192 | </el-col> |
| 189 | 193 | </el-form-item> |
| 194 | + <el-form-item label="基站登录密码:" prop="stationPwd"> | |
| 195 | + <el-col :span="10"> | |
| 196 | + <el-input | |
| 197 | + maxlength="6" | |
| 198 | + v-model="formSchool.stationPwd" | |
| 199 | + show-password | |
| 200 | + placeholder="请输入基站登录密码" | |
| 201 | + ></el-input> | |
| 202 | + </el-col> | |
| 203 | + </el-form-item> | |
| 190 | 204 | <el-form-item label="联系人:" prop="contactPerson" |
| 191 | 205 | ><el-col :span="10" |
| 192 | 206 | ><el-input |
| ... | ... | @@ -279,6 +293,7 @@ export default { |
| 279 | 293 | //修改学校 |
| 280 | 294 | sections: "", |
| 281 | 295 | managePwd: "", |
| 296 | + stationPwd: "", | |
| 282 | 297 | contactPerson: "", |
| 283 | 298 | contactPhone: "", |
| 284 | 299 | }, |
| ... | ... | @@ -293,6 +308,15 @@ export default { |
| 293 | 308 | trigger: "blur", |
| 294 | 309 | }, |
| 295 | 310 | ], |
| 311 | + stationPwd: [ | |
| 312 | + { required: true, message: "请填写基站登陆密码", trigger: "blur" }, | |
| 313 | + { | |
| 314 | + min: 6, | |
| 315 | + max: 6, | |
| 316 | + message: "长度为 6 个字符", | |
| 317 | + trigger: "blur", | |
| 318 | + }, | |
| 319 | + ], | |
| 296 | 320 | }, |
| 297 | 321 | formGrade: { |
| 298 | 322 | //修改年级 |
| ... | ... | @@ -368,6 +392,10 @@ export default { |
| 368 | 392 | this.$message.error("请填写密码!"); |
| 369 | 393 | return; |
| 370 | 394 | } |
| 395 | + if (!this.formSchool.stationPwd) { | |
| 396 | + this.$message.error("请填写基站登录密码!"); | |
| 397 | + return; | |
| 398 | + } | |
| 371 | 399 | if (this.loading) { |
| 372 | 400 | return; |
| 373 | 401 | } | ... | ... |