Commit 4c2fb5608109bba0e6062f98bbff6d54c168d517

Authored by 梁保满
1 parent e5e4a3e6

反馈新需求

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 }