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,8 +345,8 @@ export default { | ||
345 | data | 345 | data |
346 | }); | 346 | }); |
347 | }, | 347 | }, |
348 | - //任课老师-学生测练统计 | ||
349 | - tStudentExamReport(data) { | 348 | + //任课老师-学生测练统计 |
349 | + tStudentExamReport(data) { | ||
350 | return service({ | 350 | return service({ |
351 | url: setUpUrls.tStudentExamReport, | 351 | url: setUpUrls.tStudentExamReport, |
352 | method: "POST", | 352 | method: "POST", |
@@ -910,6 +910,15 @@ export default { | @@ -910,6 +910,15 @@ export default { | ||
910 | method: "POST", | 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
@@ -228,6 +228,8 @@ export default { | @@ -228,6 +228,8 @@ export default { | ||
228 | exportGradeContrast: "/api_html/tenant/exportGradeContrast", | 228 | exportGradeContrast: "/api_html/tenant/exportGradeContrast", |
229 | // 同步教师账号 | 229 | // 同步教师账号 |
230 | syncUser: "/api_html/tenant/syncUser", | 230 | syncUser: "/api_html/tenant/syncUser", |
231 | + // 导出设备列表 | ||
232 | + tenantExportDevice: "/api_html/tenant/exportDevice", | ||
231 | 233 | ||
232 | 234 | ||
233 | // 个人版首页统计数据 | 235 | // 个人版首页统计数据 |
src/views/admin/account/index.vue
@@ -43,6 +43,7 @@ | @@ -43,6 +43,7 @@ | ||
43 | placeholder="请输入账号名称" | 43 | placeholder="请输入账号名称" |
44 | v-model="query.loginName" | 44 | v-model="query.loginName" |
45 | class="input-with-select" | 45 | class="input-with-select" |
46 | + clearable | ||
46 | @keyup.enter.native="(page = 1), _QueryData()" | 47 | @keyup.enter.native="(page = 1), _QueryData()" |
47 | > | 48 | > |
48 | <el-button | 49 | <el-button |
src/views/examinationPaper/edit.vue
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | <div> | 2 | <div> |
3 | <back-box> | 3 | <back-box> |
4 | <template slot="title"> | 4 | <template slot="title"> |
5 | - <span>修改答案</span> | 5 | + <span>{{type == 1?'修改试卷':'修改答案'}}</span> |
6 | </template> | 6 | </template> |
7 | </back-box> | 7 | </back-box> |
8 | <div class="content"> | 8 | <div class="content"> |
@@ -14,8 +14,12 @@ | @@ -14,8 +14,12 @@ | ||
14 | }}老师修改了答案 | 14 | }}老师修改了答案 |
15 | </p></template | 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 | <p class="totals">卷面总分:{{ allScore }}分</p> | 23 | <p class="totals">卷面总分:{{ allScore }}分</p> |
20 | </div> | 24 | </div> |
21 | <template v-if="questionList[0]?.subQuestions"> | 25 | <template v-if="questionList[0]?.subQuestions"> |
@@ -528,7 +532,7 @@ export default { | @@ -528,7 +532,7 @@ export default { | ||
528 | this.$store.getters.info.showRole || | 532 | this.$store.getters.info.showRole || |
529 | this.$store.getters.info.permissions[0].role; | 533 | this.$store.getters.info.permissions[0].role; |
530 | this.type = this.$route.query.type || 1; | 534 | this.type = this.$route.query.type || 1; |
531 | - this.title = this.$route.query.title || ""; | 535 | + this.form.title = this.$route.query.title || ""; |
532 | this._QueryDetail(); | 536 | this._QueryDetail(); |
533 | }, | 537 | }, |
534 | methods: { | 538 | methods: { |
@@ -903,7 +907,10 @@ export default { | @@ -903,7 +907,10 @@ export default { | ||
903 | questionList: questionList, | 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 | if (status == 0) { | 914 | if (status == 0) { |
908 | this.$router.go(-1); | 915 | this.$router.go(-1); |
909 | } else { | 916 | } else { |
@@ -1120,10 +1127,26 @@ export default { | @@ -1120,10 +1127,26 @@ export default { | ||
1120 | color: #333; | 1127 | color: #333; |
1121 | font-weight: 700; | 1128 | font-weight: 700; |
1122 | padding: 20px 0; | 1129 | padding: 20px 0; |
1130 | + &.t-left{ | ||
1131 | + text-align: left; | ||
1132 | + } | ||
1123 | .totals { | 1133 | .totals { |
1124 | font-size: 16px; | 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 | font-weight: normal; | 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 | .question-title { | 1152 | .question-title { |
src/views/standard/card/index.vue
@@ -8,62 +8,92 @@ | @@ -8,62 +8,92 @@ | ||
8 | 8 | ||
9 | <div class="page-content"> | 9 | <div class="page-content"> |
10 | <div class="answer-header"> | 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 | class="sel" | 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 | <el-button type="primary" round @click="(page = 1), _QueryData(4)" | 93 | <el-button type="primary" round @click="(page = 1), _QueryData(4)" |
48 | >筛选</el-button | 94 | >筛选</el-button |
49 | > | 95 | > |
50 | </div> | 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 | </div> | 97 | </div> |
68 | <el-empty | 98 | <el-empty |
69 | :image-size="100" | 99 | :image-size="100" |
@@ -162,8 +192,11 @@ export default { | @@ -162,8 +192,11 @@ export default { | ||
162 | classId: "", | 192 | classId: "", |
163 | studentName: "", | 193 | studentName: "", |
164 | studentCode: "", | 194 | studentCode: "", |
195 | + operationType: "", | ||
196 | + schoolId: "", | ||
197 | + startDay: "", | ||
198 | + endDay: "", | ||
165 | }, | 199 | }, |
166 | - schoolId: "", | ||
167 | schoolList: [], | 200 | schoolList: [], |
168 | gradeList: [], | 201 | gradeList: [], |
169 | tableData: [], | 202 | tableData: [], |
@@ -186,6 +219,22 @@ export default { | @@ -186,6 +219,22 @@ export default { | ||
186 | this._QueryData(); | 219 | this._QueryData(); |
187 | }, | 220 | }, |
188 | methods: { | 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 | async _QueryGradeList() { | 239 | async _QueryGradeList() { |
191 | this.loading = true; | 240 | this.loading = true; |
@@ -227,14 +276,19 @@ export default { | @@ -227,14 +276,19 @@ export default { | ||
227 | value: item.id, | 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 | } else { | 284 | } else { |
232 | this.$message.error(info); | 285 | this.$message.error(info); |
233 | } | 286 | } |
234 | }, | 287 | }, |
235 | - async _QueryData(type) { | 288 | + serQuery(type) { |
236 | let query = {}; | 289 | let query = {}; |
237 | if (this.role == "ROLE_XUEXIAO") { | 290 | if (this.role == "ROLE_XUEXIAO") { |
291 | + delete query.schoolId; | ||
238 | query.gradeName = this.query.gradeName; | 292 | query.gradeName = this.query.gradeName; |
239 | if (type == 1) { | 293 | if (type == 1) { |
240 | query.classId = this.query.classId[1] ? this.query.classId[1] : ""; | 294 | query.classId = this.query.classId[1] ? this.query.classId[1] : ""; |
@@ -253,8 +307,23 @@ export default { | @@ -253,8 +307,23 @@ export default { | ||
253 | query.classId = this.query.classId[1] ? this.query.classId[1] : ""; | 307 | query.classId = this.query.classId[1] ? this.query.classId[1] : ""; |
254 | } | 308 | } |
255 | } else if (this.role == "ROLE_JITUAN") { | 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 | this.loading = true; | 327 | this.loading = true; |
259 | const { data, status, info } = await this.$request.cardList({ | 328 | const { data, status, info } = await this.$request.cardList({ |
260 | ...query, | 329 | ...query, |
@@ -271,10 +340,18 @@ export default { | @@ -271,10 +340,18 @@ export default { | ||
271 | } | 340 | } |
272 | }, | 341 | }, |
273 | async downExl() { | 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 | if (this.exportLoading == true) return; | 350 | if (this.exportLoading == true) return; |
276 | this.exportLoading = true; | 351 | this.exportLoading = true; |
277 | - const data = await this.$request.exportClickersLog(); | 352 | + const data = await this.$request.exportClickersLog({ |
353 | + ...query, | ||
354 | + }); | ||
278 | this.exportLoading = false; | 355 | this.exportLoading = false; |
279 | if (data && !data.code) { | 356 | if (data && !data.code) { |
280 | let blob = new Blob([data], { | 357 | let blob = new Blob([data], { |
@@ -298,7 +375,15 @@ export default { | @@ -298,7 +375,15 @@ export default { | ||
298 | .down { | 375 | .down { |
299 | padding: 16px 20px; | 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 | </style> | 389 | </style> |
305 | \ No newline at end of file | 390 | \ No newline at end of file |
src/views/standard/device/index.vue
@@ -82,6 +82,7 @@ | @@ -82,6 +82,7 @@ | ||
82 | placeholder="请输入设备编码" | 82 | placeholder="请输入设备编码" |
83 | v-model="query.sn" | 83 | v-model="query.sn" |
84 | class="input-with-select" | 84 | class="input-with-select" |
85 | + clearable | ||
85 | @keyup.enter.native="_QueryData(true)" | 86 | @keyup.enter.native="_QueryData(true)" |
86 | > | 87 | > |
87 | <el-button | 88 | <el-button |
@@ -105,6 +106,7 @@ | @@ -105,6 +106,7 @@ | ||
105 | prop="frequency" | 106 | prop="frequency" |
106 | label="频点" | 107 | label="频点" |
107 | align="center" | 108 | align="center" |
109 | + width="60" | ||
108 | ></el-table-column> | 110 | ></el-table-column> |
109 | <el-table-column | 111 | <el-table-column |
110 | prop="pairingCode" | 112 | prop="pairingCode" |
@@ -149,8 +151,15 @@ | @@ -149,8 +151,15 @@ | ||
149 | prop="onlineTime" | 151 | prop="onlineTime" |
150 | label="最近上报" | 152 | label="最近上报" |
151 | align="center" | 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 | ></el-table-column> | 161 | ></el-table-column> |
153 | - <el-table-column label="状态" align="center" | 162 | + <el-table-column label="状态" align="center" width="60" |
154 | ><template slot-scope="scope"> | 163 | ><template slot-scope="scope"> |
155 | {{ | 164 | {{ |
156 | scope.row.onlineStatus == 1 | 165 | scope.row.onlineStatus == 1 |
@@ -236,6 +245,20 @@ | @@ -236,6 +245,20 @@ | ||
236 | placeholder="请输入设备编码" | 245 | placeholder="请输入设备编码" |
237 | v-model="query.sn" | 246 | v-model="query.sn" |
238 | class="input-with-select" | 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 | @keyup.enter.native="_QueryData(true)" | 262 | @keyup.enter.native="_QueryData(true)" |
240 | > | 263 | > |
241 | <el-button | 264 | <el-button |
@@ -254,8 +277,9 @@ | @@ -254,8 +277,9 @@ | ||
254 | prop="sn" | 277 | prop="sn" |
255 | label="设备编码" | 278 | label="设备编码" |
256 | align="center" | 279 | align="center" |
280 | + width="160" | ||
257 | ></el-table-column> | 281 | ></el-table-column> |
258 | - <el-table-column label="学生信息" align="center" | 282 | + <el-table-column label="学生信息" align="center" width="120" |
259 | ><template slot-scope="scoped" | 283 | ><template slot-scope="scoped" |
260 | ><p | 284 | ><p |
261 | v-for="(item, index) in scoped.row.studentList" | 285 | v-for="(item, index) in scoped.row.studentList" |
@@ -276,13 +300,19 @@ | @@ -276,13 +300,19 @@ | ||
276 | prop="gradeName" | 300 | prop="gradeName" |
277 | label="年级" | 301 | label="年级" |
278 | align="center" | 302 | align="center" |
303 | + width="120" | ||
279 | ><template slot-scope="scoped"> | 304 | ><template slot-scope="scoped"> |
280 | <p v-for="(item, index) in scoped.row.classList" :key="index"> | 305 | <p v-for="(item, index) in scoped.row.classList" :key="index"> |
281 | {{ item.gradeName }} | 306 | {{ item.gradeName }} |
282 | </p> | 307 | </p> |
283 | </template></el-table-column | 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 | <template slot-scope="scoped"> | 316 | <template slot-scope="scoped"> |
287 | <p v-for="(item, index) in scoped.row.classList" :key="index"> | 317 | <p v-for="(item, index) in scoped.row.classList" :key="index"> |
288 | {{ item.className }} | 318 | {{ item.className }} |
@@ -303,8 +333,9 @@ | @@ -303,8 +333,9 @@ | ||
303 | prop="latestReportTime" | 333 | prop="latestReportTime" |
304 | label="最后答题时间" | 334 | label="最后答题时间" |
305 | align="center" | 335 | align="center" |
336 | + width="160" | ||
306 | ></el-table-column> | 337 | ></el-table-column> |
307 | - <el-table-column label="操作" align="center" | 338 | + <el-table-column label="操作" align="center" width="80" |
308 | ><template slot-scope="scoped"> | 339 | ><template slot-scope="scoped"> |
309 | <el-tooltip effect="dark" content="日志" placement="top"> | 340 | <el-tooltip effect="dark" content="日志" placement="top"> |
310 | <el-button | 341 | <el-button |
@@ -359,7 +390,7 @@ | @@ -359,7 +390,7 @@ | ||
359 | label="设备编码" | 390 | label="设备编码" |
360 | align="center" | 391 | align="center" |
361 | ></el-table-column> | 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 | ><template slot-scope="scoped"> | 394 | ><template slot-scope="scoped"> |
364 | <p v-for="(item, index) in scoped.row.classList" :key="index"> | 395 | <p v-for="(item, index) in scoped.row.classList" :key="index"> |
365 | {{ item.className }} | 396 | {{ item.className }} |
@@ -373,6 +404,18 @@ | @@ -373,6 +404,18 @@ | ||
373 | align="center" | 404 | align="center" |
374 | ></el-table-column> | 405 | ></el-table-column> |
375 | <el-table-column | 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 | prop="lastUpdateTime" | 419 | prop="lastUpdateTime" |
377 | label="最近更新" | 420 | label="最近更新" |
378 | align="center" | 421 | align="center" |
@@ -391,8 +434,9 @@ | @@ -391,8 +434,9 @@ | ||
391 | prop="otaVersionName" | 434 | prop="otaVersionName" |
392 | label="版本号" | 435 | label="版本号" |
393 | align="center" | 436 | align="center" |
437 | + width="80" | ||
394 | ></el-table-column> | 438 | ></el-table-column> |
395 | - <el-table-column label="状态" align="center" | 439 | + <el-table-column label="状态" align="center" width="80" |
396 | ><template slot-scope="scope"> | 440 | ><template slot-scope="scope"> |
397 | {{ | 441 | {{ |
398 | scope.row.onlineStatus == 1 | 442 | scope.row.onlineStatus == 1 |
@@ -402,8 +446,8 @@ | @@ -402,8 +446,8 @@ | ||
402 | : "离线" | 446 | : "离线" |
403 | }} | 447 | }} |
404 | </template></el-table-column | 448 | </template></el-table-column |
405 | - > | ||
406 | - <el-table-column label="自动更新" align="center" | 449 | + > |
450 | + <el-table-column label="自动更新" align="center" width="100" | ||
407 | ><template slot-scope="scoped"> | 451 | ><template slot-scope="scoped"> |
408 | <el-switch | 452 | <el-switch |
409 | v-model="scoped.row.upgradeFlag" | 453 | v-model="scoped.row.upgradeFlag" |
@@ -544,6 +588,7 @@ export default { | @@ -544,6 +588,7 @@ export default { | ||
544 | this.query.classId = []; | 588 | this.query.classId = []; |
545 | this.query.onlineStatus = ""; | 589 | this.query.onlineStatus = ""; |
546 | this.query.sn = ""; | 590 | this.query.sn = ""; |
591 | + this.query.studentName = ""; | ||
547 | this.query.type = ""; | 592 | this.query.type = ""; |
548 | if (val == 1) { | 593 | if (val == 1) { |
549 | this.stationReport(); | 594 | this.stationReport(); |
@@ -555,17 +600,16 @@ export default { | @@ -555,17 +600,16 @@ export default { | ||
555 | }, | 600 | }, |
556 | data() { | 601 | data() { |
557 | return { | 602 | return { |
558 | - exportLoading: false, | ||
559 | - isAdd: false, //添加还是修改基站 | ||
560 | - role: "", | ||
561 | code: "", | 603 | code: "", |
604 | + role: "", | ||
562 | loading: false, | 605 | loading: false, |
606 | + exportLoading: false, | ||
607 | + isAdd: false, //添加还是修改基站 | ||
563 | url: "/api_html/school/manager/importStation", | 608 | url: "/api_html/school/manager/importStation", |
564 | diaUp: false, | 609 | diaUp: false, |
565 | diaAnswerEqu: false, | 610 | diaAnswerEqu: false, |
566 | - gradeList: [], | ||
567 | - gradeListAll: [], | ||
568 | - schoolAll: [], | 611 | + gradeList: [], //年级列表 |
612 | + schoolAll: [], //所有学校刘表 | ||
569 | school: {}, //校园账号所属学校信息 | 613 | school: {}, //校园账号所属学校信息 |
570 | props: { | 614 | props: { |
571 | multiple: true, | 615 | multiple: true, |
@@ -577,6 +621,7 @@ export default { | @@ -577,6 +621,7 @@ export default { | ||
577 | onlineStatus: "", | 621 | onlineStatus: "", |
578 | sn: "", | 622 | sn: "", |
579 | type: "", | 623 | type: "", |
624 | + studentName: "", | ||
580 | }, | 625 | }, |
581 | statusList: [ | 626 | statusList: [ |
582 | { label: "全部", value: "" }, | 627 | { label: "全部", value: "" }, |
@@ -594,6 +639,7 @@ export default { | @@ -594,6 +639,7 @@ export default { | ||
594 | { label: "3月以上", value: 6 }, | 639 | { label: "3月以上", value: 6 }, |
595 | ], | 640 | ], |
596 | form: { | 641 | form: { |
642 | + //修改/添加基站信息 | ||
597 | deviceId: "", | 643 | deviceId: "", |
598 | sn: "", | 644 | sn: "", |
599 | frequency: "", | 645 | frequency: "", |
@@ -607,17 +653,17 @@ export default { | @@ -607,17 +653,17 @@ export default { | ||
607 | pairingCode: [ | 653 | pairingCode: [ |
608 | { required: true, message: "请输入配对码", trigger: "blur" }, | 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 | tableData: [], | 658 | tableData: [], |
613 | total: 0, | 659 | total: 0, |
614 | count: 0, | 660 | count: 0, |
615 | chartData: [], | 661 | chartData: [], |
616 | chartData2: [], | 662 | chartData2: [], |
617 | - selectionTabIds: [], | 663 | + selectionTabIds: [], //已选择授课段 |
618 | page: 1, | 664 | page: 1, |
619 | size: 20, | 665 | size: 20, |
620 | - isBack: false, | 666 | + isBack: false, //是否是日志页面回来 |
621 | }; | 667 | }; |
622 | }, | 668 | }, |
623 | created() { | 669 | created() { |
@@ -849,8 +895,13 @@ export default { | @@ -849,8 +895,13 @@ export default { | ||
849 | //报表导出 | 895 | //报表导出 |
850 | if (this.exportLoading == true) return; | 896 | if (this.exportLoading == true) return; |
851 | let query = this.setQuery(); | 897 | let query = this.setQuery(); |
898 | + const exportDevice = | ||
899 | + this.role != "ROLE_JITUAN" | ||
900 | + ? this.$request.exportDevice | ||
901 | + : this.$request.tenantExportDevice; | ||
902 | + | ||
852 | this.exportLoading = true; | 903 | this.exportLoading = true; |
853 | - const data = await this.$request.exportDevice({ | 904 | + const data = await exportDevice({ |
854 | ...query, | 905 | ...query, |
855 | deviceType: this.type, | 906 | deviceType: this.type, |
856 | }); | 907 | }); |
@@ -1023,6 +1074,8 @@ export default { | @@ -1023,6 +1074,8 @@ export default { | ||
1023 | let query = {}; | 1074 | let query = {}; |
1024 | if (this.query.sn) { | 1075 | if (this.query.sn) { |
1025 | query.sn = this.query.sn; | 1076 | query.sn = this.query.sn; |
1077 | + } else if (this.query.studentName) { | ||
1078 | + query.studentName = this.query.studentName; | ||
1026 | } else { | 1079 | } else { |
1027 | if (this.type == 1) { | 1080 | if (this.type == 1) { |
1028 | this.query.onlineStatus !== "" | 1081 | this.query.onlineStatus !== "" |
@@ -1202,4 +1255,13 @@ export default { | @@ -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 | </style> | 1267 | </style> |
1206 | \ No newline at end of file | 1268 | \ No newline at end of file |
src/views/standard/setUp/account.vue
@@ -86,8 +86,9 @@ | @@ -86,8 +86,9 @@ | ||
86 | role != 'ROLE_JITUAN' ? '请输入老师账号' : '请输入账号名称' | 86 | role != 'ROLE_JITUAN' ? '请输入老师账号' : '请输入账号名称' |
87 | " | 87 | " |
88 | v-model="query.loginName" | 88 | v-model="query.loginName" |
89 | - class="input-with-select" | 89 | + class="input-with-select sel" |
90 | type="number" | 90 | type="number" |
91 | + clearable | ||
91 | oninput="if(value.length > 11) value = value.slice(0,11)" | 92 | oninput="if(value.length > 11) value = value.slice(0,11)" |
92 | @keyup.enter.native="(page = 1), _QueryData(2)" | 93 | @keyup.enter.native="(page = 1), _QueryData(2)" |
93 | > | 94 | > |
@@ -98,11 +99,11 @@ | @@ -98,11 +99,11 @@ | ||
98 | ></el-button> | 99 | ></el-button> |
99 | </el-input> | 100 | </el-input> |
100 | <el-input | 101 | <el-input |
101 | - v-if="role != 'ROLE_JITUAN'" | ||
102 | placeholder="请输入老师姓名" | 102 | placeholder="请输入老师姓名" |
103 | maxlength="30" | 103 | maxlength="30" |
104 | v-model="query.realName" | 104 | v-model="query.realName" |
105 | class="input-with-select" | 105 | class="input-with-select" |
106 | + clearable | ||
106 | @keyup.enter.native="(page = 1), _QueryData(3)" | 107 | @keyup.enter.native="(page = 1), _QueryData(3)" |
107 | > | 108 | > |
108 | <el-button | 109 | <el-button |
@@ -227,6 +228,7 @@ | @@ -227,6 +228,7 @@ | ||
227 | <el-input | 228 | <el-input |
228 | placeholder="请输入联系电话" | 229 | placeholder="请输入联系电话" |
229 | v-model.trim="formCount.loginName" | 230 | v-model.trim="formCount.loginName" |
231 | + clearable | ||
230 | maxlength="11" | 232 | maxlength="11" |
231 | > | 233 | > |
232 | </el-input> | 234 | </el-input> |
@@ -237,6 +239,7 @@ | @@ -237,6 +239,7 @@ | ||
237 | <el-input | 239 | <el-input |
238 | placeholder="请输入教师姓名" | 240 | placeholder="请输入教师姓名" |
239 | v-model.trim="formCount.realName" | 241 | v-model.trim="formCount.realName" |
242 | + clearable | ||
240 | maxlength="11" | 243 | maxlength="11" |
241 | > | 244 | > |
242 | </el-input> | 245 | </el-input> |
@@ -262,6 +265,7 @@ | @@ -262,6 +265,7 @@ | ||
262 | placeholder="请输入联系电话" | 265 | placeholder="请输入联系电话" |
263 | v-model.trim="formAddCount.phone" | 266 | v-model.trim="formAddCount.phone" |
264 | type="number" | 267 | type="number" |
268 | + clearable | ||
265 | oninput="if(value.length > 11) value = value.slice(0,11)" | 269 | oninput="if(value.length > 11) value = value.slice(0,11)" |
266 | > | 270 | > |
267 | </el-input> | 271 | </el-input> |
@@ -272,6 +276,7 @@ | @@ -272,6 +276,7 @@ | ||
272 | <el-input | 276 | <el-input |
273 | placeholder="请输入密码" | 277 | placeholder="请输入密码" |
274 | v-model.trim="formAddCount.password" | 278 | v-model.trim="formAddCount.password" |
279 | + clearable | ||
275 | maxlength="18" | 280 | maxlength="18" |
276 | > | 281 | > |
277 | </el-input> | 282 | </el-input> |
@@ -282,6 +287,7 @@ | @@ -282,6 +287,7 @@ | ||
282 | <el-input | 287 | <el-input |
283 | placeholder="请输入姓名" | 288 | placeholder="请输入姓名" |
284 | v-model.trim="formAddCount.realName" | 289 | v-model.trim="formAddCount.realName" |
290 | + clearable | ||
285 | maxlength="30" | 291 | maxlength="30" |
286 | > | 292 | > |
287 | </el-input> | 293 | </el-input> |
@@ -686,7 +692,6 @@ export default { | @@ -686,7 +692,6 @@ export default { | ||
686 | query = { ...this.query }; | 692 | query = { ...this.query }; |
687 | } | 693 | } |
688 | if (this.role == "ROLE_JITUAN") { | 694 | if (this.role == "ROLE_JITUAN") { |
689 | - delete query.realName; | ||
690 | query.regionIds = []; | 695 | query.regionIds = []; |
691 | query.schoolIds = []; | 696 | query.schoolIds = []; |
692 | query.schoolId?.map((item) => { | 697 | query.schoolId?.map((item) => { |
@@ -703,6 +708,15 @@ export default { | @@ -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 | delete query.schoolId; | 720 | delete query.schoolId; |
707 | } | 721 | } |
708 | return query; | 722 | return query; |
@@ -752,4 +766,14 @@ export default { | @@ -752,4 +766,14 @@ export default { | ||
752 | .table-box { | 766 | .table-box { |
753 | padding: 0 20px; | 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 | </style> | 779 | </style> |
756 | \ No newline at end of file | 780 | \ No newline at end of file |
src/views/standard/setUp/school.vue
@@ -57,6 +57,10 @@ | @@ -57,6 +57,10 @@ | ||
57 | <span class="s1">所属集团:</span> | 57 | <span class="s1">所属集团:</span> |
58 | <span class="s2">{{ school.tenantName || "--" }}</span> | 58 | <span class="s2">{{ school.tenantName || "--" }}</span> |
59 | </li> | 59 | </li> |
60 | + <li class="school-item"> | ||
61 | + <span class="s1">基站登录密码 :</span> | ||
62 | + <span class="s2">{{ school.stationPwd || "--" }}</span> | ||
63 | + </li> | ||
60 | </ul> | 64 | </ul> |
61 | <div class="grade-box"> | 65 | <div class="grade-box"> |
62 | <p class="h-title"> | 66 | <p class="h-title"> |
@@ -187,6 +191,16 @@ | @@ -187,6 +191,16 @@ | ||
187 | ></el-input> | 191 | ></el-input> |
188 | </el-col> | 192 | </el-col> |
189 | </el-form-item> | 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 | <el-form-item label="联系人:" prop="contactPerson" | 204 | <el-form-item label="联系人:" prop="contactPerson" |
191 | ><el-col :span="10" | 205 | ><el-col :span="10" |
192 | ><el-input | 206 | ><el-input |
@@ -279,6 +293,7 @@ export default { | @@ -279,6 +293,7 @@ export default { | ||
279 | //修改学校 | 293 | //修改学校 |
280 | sections: "", | 294 | sections: "", |
281 | managePwd: "", | 295 | managePwd: "", |
296 | + stationPwd: "", | ||
282 | contactPerson: "", | 297 | contactPerson: "", |
283 | contactPhone: "", | 298 | contactPhone: "", |
284 | }, | 299 | }, |
@@ -293,6 +308,15 @@ export default { | @@ -293,6 +308,15 @@ export default { | ||
293 | trigger: "blur", | 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 | formGrade: { | 321 | formGrade: { |
298 | //修改年级 | 322 | //修改年级 |
@@ -368,6 +392,10 @@ export default { | @@ -368,6 +392,10 @@ export default { | ||
368 | this.$message.error("请填写密码!"); | 392 | this.$message.error("请填写密码!"); |
369 | return; | 393 | return; |
370 | } | 394 | } |
395 | + if (!this.formSchool.stationPwd) { | ||
396 | + this.$message.error("请填写基站登录密码!"); | ||
397 | + return; | ||
398 | + } | ||
371 | if (this.loading) { | 399 | if (this.loading) { |
372 | return; | 400 | return; |
373 | } | 401 | } |