Blame view

src/views/standard/setUp/student.vue 23.7 KB
4c4f7640   梁保满   路由表,路由前端文件
1
  <template>
23a6dc5f   阿宝   学校管理相关接口简单对接
2
3
4
    <div>
      <back-box>
        <template slot="title">
560c12f2   阿宝   学校设置,软件下载
5
          <span>学生管理</span>
23a6dc5f   阿宝   学校管理相关接口简单对接
6
        </template>
f5729396   梁保满   批量设置答案
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        <template slot="btns" v-if="role == 'ROLE_XUEXIAO'">
          <el-tooltip effect="dark" content="设置答题器" placement="bottom">
            <el-button
              type="primary"
              icon="el-icon-upload2"
              size="mini"
              plain
              circle
              @click="diaUp = true"
            ></el-button>
          </el-tooltip>
          <el-tooltip
            v-if="!code"
            effect="dark"
            content="添加学生"
            placement="bottom"
          >
23a6dc5f   阿宝   学校管理相关接口简单对接
24
25
26
27
28
29
            <el-button
              type="primary"
              icon="el-icon-plus"
              size="mini"
              plain
              circle
dd5150c5   阿宝   数据同步
30
              @click="openAddDia"
23a6dc5f   阿宝   学校管理相关接口简单对接
31
32
33
34
            ></el-button>
          </el-tooltip>
        </template>
      </back-box>
ec6394d1   梁保满   v1.3.1。细节调整
35
36
      <div class="answer-header">
        <div class="sel-box">
0454f787   梁保满   班级管理,班级列表修改,科目设置
37
38
          <el-select
            class="sel"
d059a9d1   梁保满   接口调整
39
            v-model="query.grade"
0454f787   梁保满   班级管理,班级列表修改,科目设置
40
41
42
43
44
45
46
47
48
49
50
            placeholder="选择年级"
            @change="changeGrade"
          >
            <el-option disabled label="全部" value=""></el-option>
            <el-option
              v-for="item in gradeList"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
c8c928f4   梁保满   学生管理交互优化
51
52
            <el-option label="未分配" :value="80"></el-option>
            <el-option label="已毕业" :value="81"></el-option>
0454f787   梁保满   班级管理,班级列表修改,科目设置
53
          </el-select>
ec6394d1   梁保满   v1.3.1。细节调整
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
          <el-input
            placeholder="请输入学生姓名"
            v-model="query.studentName"
            class="input-with-select"
            @keyup.enter.native="_QueryData(1)"
          >
            <el-button
              slot="append"
              icon="el-icon-search"
              @click="_QueryData(1)"
            ></el-button>
          </el-input>
          <el-input
            placeholder="请输入学生学号"
            v-model="query.studentCode"
            class="input-with-select"
            @keyup.enter.native="_QueryData(2)"
          >
            <el-button
              slot="append"
              icon="el-icon-search"
              @click="_QueryData(2)"
            ></el-button>
          </el-input>
        </div>
      </div>
c8c928f4   梁保满   学生管理交互优化
80
81
82
83
84
85
86
      <p
        class="total"
        v-if="
          studentList.length &&
          (query.grade == 80 || query.grade == 81 || !query.grade)
        "
      >
99713685   梁保满   学生调班,班级数据重新请求,使用过...
87
88
        共筛选出{{ studentList.length }}名学生。
      </p>
c8c928f4   梁保满   学生管理交互优化
89
90
91
92
93
94
      <p
        class="total"
        v-if="
          getStuTotal && query.grade && query.grade != 80 && query.grade != 81
        "
      >
99713685   梁保满   学生调班,班级数据重新请求,使用过...
95
96
        共筛选出{{ getStuTotal }}名学生。
      </p>
23a6dc5f   阿宝   学校管理相关接口简单对接
97
      <div class="page-content">
23a6dc5f   阿宝   学校管理相关接口简单对接
98
        <div class="stu-box">
c8c928f4   梁保满   学生管理交互优化
99
100
101
102
          <div
            class="stu-list"
            v-show="query.grade && query.grade != 80 && query.grade != 81"
          >
0454f787   梁保满   班级管理,班级列表修改,科目设置
103
            <div class="h-title">班级列表</div>
23a6dc5f   阿宝   学校管理相关接口简单对接
104
105
106
            <ul class="stu-ul">
              <li
                class="stu-item"
e5e4a3e6   梁保满   v1.3
107
                v-for="(item, index) in classList"
1365ef5e   梁保满   优化
108
                :key="item.id"
560c12f2   阿宝   学校设置,软件下载
109
                :class="query.classId == item.id ? 'active' : ''"
dd5150c5   阿宝   数据同步
110
                @click="classDetail(item)"
23a6dc5f   阿宝   学校管理相关接口简单对接
111
              >
23a6dc5f   阿宝   学校管理相关接口简单对接
112
113
114
115
                {{ item.className }}({{ item.studentCount }})
              </li>
            </ul>
          </div>
b8827a72   梁保满   测试bug
116
          <div class="stu-detail" v-loading="loading">
c8c928f4   梁保满   学生管理交互优化
117
118
119
120
121
122
123
124
125
            <div
              class="clazz-detail"
              v-if="
                clazzDetail.stationSn &&
                query.grade &&
                query.grade != 80 &&
                query.grade != 81
              "
            >
99713685   梁保满   学生调班,班级数据重新请求,使用过...
126
127
128
              <p>基站SN:{{ clazzDetail.stationSn }}</p>
              <p>配对码:{{ clazzDetail.pairingCode }}</p>
              <p>频点:{{ clazzDetail.frequency }}</p>
d059a9d1   梁保满   接口调整
129
            </div>
b8827a72   梁保满   测试bug
130
            <ul class="s-ul">
0a4de034   阿宝   教师管理,学生管理班级设置
131
132
133
134
135
              <li
                class="s-li"
                v-for="(item, index) in studentList"
                :key="item.id"
              >
bb4c8454   阿宝   添加,修改教师
136
                <el-popconfirm
255e2506   梁保满   飞书bug及优化
137
                  v-if="!code"
0a4de034   阿宝   教师管理,学生管理班级设置
138
                  title="确定删除吗?"
0454f787   梁保满   班级管理,班级列表修改,科目设置
139
                  @confirm="removeStu(item, index, $event)"
0a4de034   阿宝   教师管理,学生管理班级设置
140
141
                >
                  <i class="el-icon-delete" slot="reference"></i>
bb4c8454   阿宝   添加,修改教师
142
                </el-popconfirm>
ec6394d1   梁保满   v1.3.1。细节调整
143
144
                <i
                  class="el-icon-user-solid"
c8c928f4   梁保满   学生管理交互优化
145
                  v-if="!code && query.grade != 81"
0454f787   梁保满   班级管理,班级列表修改,科目设置
146
                  @click.stop="openChangeClazz(item)"
ec6394d1   梁保满   v1.3.1。细节调整
147
                ></i>
0454f787   梁保满   班级管理,班级列表修改,科目设置
148
149
150
151
152
153
154
155
156
157
158
                <div class="s-li-box" @click="sayChange(item)">
                  <p class="name">
                    {{ item.studentName }}
                  </p>
                  <p class="p2" v-if="!query.classId">
                    {{ item.gradeName }}﹒{{ item.className }}
                  </p>
                  <p class="p1">答题器:{{ item.clickerSn || "--" }}</p>
                  <p class="p1">长学号:{{ item.studentCode }}</p>
                  <p class="p1">短学号:{{ item.shortNumber || "--" }}</p>
                </div>
23a6dc5f   阿宝   学校管理相关接口简单对接
159
160
161
162
163
164
165
166
167
168
              </li>
            </ul>
            <el-empty
              :image-size="100"
              v-if="!studentList.length && loading == false"
              description="没有更多数据"
            ></el-empty>
          </div>
        </div>
      </div>
e5e4a3e6   梁保满   v1.3
169
170
171
172
173
174
175
176
177
178
179
180
181
182
      <el-dialog title="学生调班" :visible.sync="diaChangeClass" width="400">
        <el-form
          class="form-box"
          ref="formStuCla"
          :model="formStuCla"
          :rules="rulesStuCla"
          label-width="160px"
        >
          <el-form-item label="学生姓名:">
            <span>{{ formStuCla.studentName }}</span>
          </el-form-item>
          <el-form-item label="当前班级:">
            <span>{{ formStuCla.className }}</span>
          </el-form-item>
c8c928f4   梁保满   学生管理交互优化
183
          <el-form-item label="调到班级:" prop="classId">
e5e4a3e6   梁保满   v1.3
184
185
186
187
188
189
            <el-col :span="10">
              <el-select
                class="sel"
                v-model="formStuCla.classId"
                placeholder="选择年级"
              >
c8c928f4   梁保满   学生管理交互优化
190
                <el-option disabled label="请选择" value=""></el-option>
e5e4a3e6   梁保满   v1.3
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
                <el-option
                  v-for="item in classList"
                  :key="item.id"
                  :label="item.className"
                  :value="item.id"
                >
                </el-option>
              </el-select>
            </el-col>
          </el-form-item>
          <el-form-item label="长学号:" prop="studentCode">
            <el-col :span="10">
              <el-input
                maxlength="12"
                placeholder="输入学生长学号"
                v-model.trim="formStuCla.studentCode"
              />
            </el-col>
          </el-form-item>
        </el-form>
        <div class="dialog-footer" slot="footer">
          <el-button @click="changeStu">确 定</el-button>
          <el-button @click="diaChangeClass = false">取 消</el-button>
        </div>
      </el-dialog>
0454f787   梁保满   班级管理,班级列表修改,科目设置
216
217
218
219
220
221
222
223
224
225
      <el-dialog title="调班轨迹" :visible.sync="diaChangeClassTrack" width="400">
        <el-form
          :model="formClassTrack"
          label-width="160px"
          v-loading="loadingClassLogs"
        >
          <el-form-item label="学生姓名:">
            <span>{{ formClassTrack.studentName }}</span>
          </el-form-item>
          <el-form-item label="当前班级:">
99713685   梁保满   学生调班,班级数据重新请求,使用过...
226
            <span>{{ formClassTrack.className }}</span>
b8827a72   梁保满   测试bug
227
228
          </el-form-item>
          <el-form-item label="历史班级:">
0454f787   梁保满   班级管理,班级列表修改,科目设置
229
            <p v-for="item in formClassTrack.classList">
b8827a72   梁保满   测试bug
230
              {{ `${item.gradeName}-${item.className}:${item.createdTime}` }}
0454f787   梁保满   班级管理,班级列表修改,科目设置
231
232
233
234
235
236
237
            </p>
          </el-form-item>
        </el-form>
        <div class="dialog-footer" slot="footer">
          <el-button @click="diaChangeClassTrack = false">关 闭</el-button>
        </div>
      </el-dialog>
dd5150c5   阿宝   数据同步
238
239
      <el-dialog title="添加学生" :visible.sync="diaStu" width="400">
        <el-form
225a00b6   梁保满   飞书问题解决
240
          ref="formBox"
dd5150c5   阿宝   数据同步
241
242
243
244
245
246
247
248
249
250
          class="form-box"
          :model="formStu"
          :rules="rulesStu"
          label-width="160px"
        >
          <el-form-item label="所在班级:">
            <span>{{ formStu.className }}</span>
          </el-form-item>
          <el-form-item label="学生姓名:" prop="studentName">
            <el-col :span="10">
255e2506   梁保满   飞书bug及优化
251
252
253
254
255
              <el-input
                maxlength="30"
                placeholder="输入学生姓名"
                v-model.trim="formStu.studentName"
              />
dd5150c5   阿宝   数据同步
256
257
258
259
            </el-col>
          </el-form-item>
          <el-form-item label="长学号:" prop="studentCode">
            <el-col :span="10">
255e2506   梁保满   飞书bug及优化
260
261
262
263
264
              <el-input
                maxlength="12"
                placeholder="输入学生长学号"
                v-model.trim="formStu.studentCode"
              />
dd5150c5   阿宝   数据同步
265
266
267
268
            </el-col>
          </el-form-item>
          <el-form-item label="短学号:">
            <el-col :span="10">
aeac66d4   阿宝   飞书测试bug
269
              <el-input maxlength="12" v-model.trim="formStu.shortNumber" />
dd5150c5   阿宝   数据同步
270
271
272
273
274
275
276
277
278
279
            </el-col>
          </el-form-item>
          <el-form-item label="性别:">
            <el-radio-group v-model="formStu.sex">
              <el-radio :label="1">男</el-radio>
              <el-radio :label="2">女</el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item label="答题器编码:">
            <el-col :span="10">
9309dc5d   梁保满   任课老师接口完成
280
              <el-input v-model.trim="formStu.clickerSn" />
dd5150c5   阿宝   数据同步
281
282
283
            </el-col>
          </el-form-item>
        </el-form>
23a6dc5f   阿宝   学校管理相关接口简单对接
284
        <div class="dialog-footer" slot="footer">
dd5150c5   阿宝   数据同步
285
286
          <el-button @click="addStu">确 定</el-button>
          <el-button @click="diaStu = false">取 消</el-button>
23a6dc5f   阿宝   学校管理相关接口简单对接
287
288
        </div>
      </el-dialog>
14a23714   梁保满   学生答题卡绑定模版下载上传
289
      <el-dialog title="学生答题器绑定" :visible.sync="diaUp" width="600">
f5729396   梁保满   批量设置答案
290
291
292
293
        <up-load
          id="downTeacher"
          :url="url"
          @upSuccess="upSuccess"
14a23714   梁保满   学生答题卡绑定模版下载上传
294
          fileName="学生答题器绑定模板"
f5729396   梁保满   批量设置答案
295
296
        >
          <p class="down-txt" slot="down">
14a23714   梁保满   学生答题卡绑定模版下载上传
297
            通过Excel名单导入学生答题器绑定模板,点击
f5729396   梁保满   批量设置答案
298
299
300
301
302
303
304
            <el-link type="danger" @click="downExcel">模板下载</el-link> 。
          </p>
        </up-load>
        <div class="dialog-footer" slot="footer">
          <el-button @click="diaUp = false">取 消</el-button>
        </div>
      </el-dialog>
23a6dc5f   阿宝   学校管理相关接口简单对接
305
    </div>
4c4f7640   梁保满   路由表,路由前端文件
306
307
308
  </template>
  
  <script>
e5e4a3e6   梁保满   v1.3
309
  import _ from "lodash";
ec6394d1   梁保满   v1.3.1。细节调整
310
  import { setGradeName } from "@/utils";
4c4f7640   梁保满   路由表,路由前端文件
311
  export default {
23a6dc5f   阿宝   学校管理相关接口简单对接
312
313
    data() {
      return {
255e2506   梁保满   飞书bug及优化
314
        code: "",
f5729396   梁保满   批量设置答案
315
        role: "",
0454f787   梁保满   班级管理,班级列表修改,科目设置
316
317
318
        loading: false,
        loadingDown: false,
        loadingClassLogs: false,
f5729396   梁保满   批量设置答案
319
        diaUp: false,
14a23714   梁保满   学生答题卡绑定模版下载上传
320
        url: "/api_html/school/manager/importStudentClicker",
dd5150c5   阿宝   数据同步
321
        diaStu: false,
e5e4a3e6   梁保满   v1.3
322
        diaChangeClass: false,
0454f787   梁保满   班级管理,班级列表修改,科目设置
323
324
325
        diaChangeClassTrack: false,
        formClassTrack: {
          studentName: "",
b8827a72   梁保满   测试bug
326
          className: "",
0454f787   梁保满   班级管理,班级列表修改,科目设置
327
328
          classList: [],
        },
ae0a304c   梁保满   学生管理-显示班级基站信息
329
        clazzDetail: { stationSn: "", pairingCode: "", frequency: "" },
23a6dc5f   阿宝   学校管理相关接口简单对接
330
        query: {
d059a9d1   梁保满   接口调整
331
          grade: "",
23a6dc5f   阿宝   学校管理相关接口简单对接
332
          classId: "",
b8827a72   梁保满   测试bug
333
          status: 0,
23a6dc5f   阿宝   学校管理相关接口简单对接
334
335
336
          studentCode: "",
          studentName: "",
        },
dd5150c5   阿宝   数据同步
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
        formStu: {
          className: "",
          studentName: "",
          studentCode: "",
          shortNumber: "",
          sex: 1,
          clickerSn: "",
        },
        rulesStu: {
          studentName: [
            { required: true, message: "请输入学生名称", trigger: "blur" },
          ],
          studentCode: [
            { required: true, message: "请输入学生长学号", trigger: "blur" },
          ],
        },
e5e4a3e6   梁保满   v1.3
353
354
355
356
357
358
359
360
361
        formStuCla: {
          studentName: "",
          studentId: "",
          oldClassId: "",
          className: "",
          classId: "",
          studentCode: "",
        },
        rulesStuCla: {
c8c928f4   梁保满   学生管理交互优化
362
          classId: [{ required: true, message: "请选择班级", trigger: "blur" }],
e5e4a3e6   梁保满   v1.3
363
364
365
366
          studentCode: [
            { required: true, message: "请输入学生号", trigger: "blur" },
          ],
        },
23a6dc5f   阿宝   学校管理相关接口简单对接
367
368
369
370
371
372
373
374
375
376
377
378
379
        gradeName: "",
        gradeList: [],
        classList: [],
        studentList: [],
        teacherDetail: {
          teacherName: "",
          loginName: "",
          sex: "",
          available: "",
          managerList: [],
          teacherCourseList: [],
          teacherGradeList: [],
        },
23a6dc5f   阿宝   学校管理相关接口简单对接
380
381
      };
    },
99713685   梁保满   学生调班,班级数据重新请求,使用过...
382
383
384
385
386
387
388
389
    computed: {
      getStuTotal: function () {
        let num = this.classList.reduce((pre, cur) => {
          return (pre += cur.studentCount);
        }, 0);
        return num;
      },
    },
23a6dc5f   阿宝   学校管理相关接口简单对接
390
    async created() {
255e2506   梁保满   飞书bug及优化
391
      this.code = localStorage.getItem("csCode") || "";
54857fa3   梁保满   下载模板跨域,集团管理员选择角色范...
392
393
394
      this.role =
        this.$store.getters.info.showRole ||
        this.$store.getters.info.permissions[0].role;
23a6dc5f   阿宝   学校管理相关接口简单对接
395
      await this._QueryDataGrade();
560c12f2   阿宝   学校设置,软件下载
396
      await this._QueryClass();
23a6dc5f   阿宝   学校管理相关接口简单对接
397
398
399
      this._QueryData(3);
    },
    methods: {
ec6394d1   梁保满   v1.3.1。细节调整
400
401
402
      getGradeName(type) {
        return setGradeName(type);
      },
dd5150c5   阿宝   数据同步
403
      openAddDia() {
ec6394d1   梁保满   v1.3.1。细节调整
404
405
406
        if (!this.query.classId) {
          this.$message.warning("暂无班级信息,请选择或导入班级!");
          return;
84bc1b0b   梁保满   打印样式调整,添加学生钱判断有无班级
407
        }
dd5150c5   阿宝   数据同步
408
409
410
411
412
413
414
415
        this.formStu.studentName = "";
        this.formStu.studentCode = "";
        this.formStu.shortNumber = "";
        this.formStu.sex = 1;
        this.formStu.clickerSn = "";
        this.diaStu = true;
      },
      classDetail(obj) {
ae0a304c   梁保满   学生管理-显示班级基站信息
416
417
418
        this.clazzDetail.stationSn = obj.stationSn;
        this.clazzDetail.pairingCode = obj.pairingCode;
        this.clazzDetail.frequency = obj.frequency;
dd5150c5   阿宝   数据同步
419
420
        this.query.classId = obj.id;
        this.formStu.className = obj.className;
23a6dc5f   阿宝   学校管理相关接口简单对接
421
422
        this._QueryData(3);
      },
e5e4a3e6   梁保满   v1.3
423
  
c8c928f4   梁保满   学生管理交互优化
424
      async upSuccess(res) {
191d5bfa   梁保满   学生管理、基站管理下载名称设置,上...
425
426
427
        this.$message.closeAll();
        this.$message({
          showClose: true,
fc9cbff6   梁保满   上传信息显示调整
428
          message: `成功(${res.data.success})`,
191d5bfa   梁保满   学生管理、基站管理下载名称设置,上...
429
          type: "success",
54857fa3   梁保满   下载模板跨域,集团管理员选择角色范...
430
          duration: 5000,
191d5bfa   梁保满   学生管理、基站管理下载名称设置,上...
431
        });
f5729396   梁保满   批量设置答案
432
433
        //导入成功
        this.diaUp = false;
c8c928f4   梁保满   学生管理交互优化
434
435
        await this._QueryClazz(this.query.grade);
        this._QueryData();
f5729396   梁保满   批量设置答案
436
      },
e5e4a3e6   梁保满   v1.3
437
      //添加学生
225a00b6   梁保满   飞书问题解决
438
      addStu() {
dd5150c5   阿宝   数据同步
439
440
441
442
443
444
445
        let query = {};
        for (let key in this.formStu) {
          if (key != "className" && this.formStu[key]) {
            query[key] = this.formStu[key];
          }
        }
        this.loading = true;
225a00b6   梁保满   飞书问题解决
446
447
        this.$refs.formBox.validate(async (valid) => {
          if (valid) {
255e2506   梁保满   飞书bug及优化
448
449
450
451
452
453
454
455
            let hasName = this.studentList.find((item) => {
              return item.studentName == this.formStu.studentName;
            });
            console.log(hasName);
            if (hasName) {
              this.$message.warning("学生姓名已存在");
              return;
            }
225a00b6   梁保满   飞书问题解决
456
457
458
459
460
461
462
463
464
            const { data, status, info } = await this.$request.addStudent({
              classId: this.query.classId,
              ...query,
            });
            this.loading = false;
            console.log(status);
            if (status === 0) {
              this.$message.success(info);
              this.diaStu = false;
c8c928f4   梁保满   学生管理交互优化
465
              await this._QueryClazz(this.query.grade);
225a00b6   梁保满   飞书问题解决
466
467
468
469
470
471
472
              this._QueryData();
            } else {
              this.$message.error(info);
            }
          } else {
            this.$message.error("数据有误,请检查!");
          }
dd5150c5   阿宝   数据同步
473
        });
dd5150c5   阿宝   数据同步
474
      },
0454f787   梁保满   班级管理,班级列表修改,科目设置
475
476
477
478
479
      //学生调班轨迹
      sayChange(obj) {
        this._StudentClassLogs(obj);
        this.diaChangeClassTrack = true;
      },
e5e4a3e6   梁保满   v1.3
480
481
      //学生调班弹窗
      openChangeClazz(obj) {
c8c928f4   梁保满   学生管理交互优化
482
        if (this.query.grade == 80) {
99713685   梁保满   学生调班,班级数据重新请求,使用过...
483
          this._QueryClazz(obj.grade);
99713685   梁保满   学生调班,班级数据重新请求,使用过...
484
        }
c8c928f4   梁保满   学生管理交互优化
485
        this.formStuCla.classId = "";
e5e4a3e6   梁保满   v1.3
486
        this.formStuCla.studentId = obj.id;
99713685   梁保满   学生调班,班级数据重新请求,使用过...
487
        this.formStuCla.className = obj.className;
e5e4a3e6   梁保满   v1.3
488
489
        this.formStuCla.studentName = obj.studentName;
        this.formStuCla.studentCode = obj.studentCode;
ec6394d1   梁保满   v1.3.1。细节调整
490
        this.formStuCla.oldClassId = obj.classId;
e5e4a3e6   梁保满   v1.3
491
492
493
494
495
496
497
        this.diaChangeClass = true;
      },
      //学生调班
      changeStu: _.throttle(
        function () {
          this.$refs.formStuCla.validate(async (valid) => {
            if (valid) {
c8c928f4   梁保满   学生管理交互优化
498
499
500
501
              if (this.formStuCla.classId == this.formStuCla.oldClassId) {
                this.$message.warning("班级无变更~");
                return;
              }
e5e4a3e6   梁保满   v1.3
502
503
504
505
506
507
508
509
510
511
              const { data, status, info } =
                await this.$request.studentChangeClass({
                  studentId: this.formStuCla.studentId,
                  oldClassId: this.formStuCla.oldClassId,
                  classId: this.formStuCla.classId,
                  studentCode: this.formStuCla.studentCode,
                });
              if (status == 0) {
                this.diaChangeClass = false;
                this.$message.success(info);
c8c928f4   梁保满   学生管理交互优化
512
                await this._QueryClazz(this.query.grade);
e5e4a3e6   梁保满   v1.3
513
514
515
516
517
518
519
520
521
522
523
524
                this._QueryData();
              } else {
                this.$message.error(info);
              }
            } else {
              this.$message.error("数据有误请检查!");
            }
          });
        },
        2000,
        { leading: true, trailing: false }
      ),
4fab460c   梁保满   班级归档操作交互
525
  
0454f787   梁保满   班级管理,班级列表修改,科目设置
526
527
528
529
530
      //学生调班轨迹
      async _StudentClassLogs(obj) {
        this.loadingClassLogs = true;
        let { data, info, status } = await this.$request.studentClassLogs({
          studentId: obj.id,
e5e4a3e6   梁保满   v1.3
531
        });
0454f787   梁保满   班级管理,班级列表修改,科目设置
532
533
        this.loadingClassLogs = false;
        if (status == 0) {
b8827a72   梁保满   测试bug
534
          this.formClassTrack.className = obj.className;
0454f787   梁保满   班级管理,班级列表修改,科目设置
535
536
          this.formClassTrack.studentName = obj.studentName;
          this.formClassTrack.classList = (data.list && [...data.list]) || [];
e5e4a3e6   梁保满   v1.3
537
538
539
540
        } else {
          this.$message.error(info);
        }
      },
0454f787   梁保满   班级管理,班级列表修改,科目设置
541
      async removeStu(obj, index, $event) {
e5e4a3e6   梁保满   v1.3
542
543
544
545
546
        const { data, status, info } = await this.$request.delStudent({
          studentId: obj.id,
        });
        if (status === 0) {
          this.$message.success("删除成功");
c8c928f4   梁保满   学生管理交互优化
547
          await this._QueryClazz(this.query.grade);
b8827a72   梁保满   测试bug
548
          this._QueryData();
e5e4a3e6   梁保满   v1.3
549
550
551
552
553
        } else {
          this.$message.error(info);
        }
      },
      async changeGrade(val) {
0454f787   梁保满   班级管理,班级列表修改,科目设置
554
        if (!val) return;
e5e4a3e6   梁保满   v1.3
555
        this.query.classId = "";
0454f787   梁保满   班级管理,班级列表修改,科目设置
556
557
        this.query.studentName = "";
        this.query.studentCode = "";
c8c928f4   梁保满   学生管理交互优化
558
559
560
        if (val != 80 && val != 81) {
          await this._QueryClass(val);
        }
e5e4a3e6   梁保满   v1.3
561
562
        this._QueryData(3);
      },
b8827a72   梁保满   测试bug
563
      serQuery(type) {
23a6dc5f   阿宝   学校管理相关接口简单对接
564
        let query = {};
23a6dc5f   阿宝   学校管理相关接口简单对接
565
        if (type == 1) {
0454f787   梁保满   班级管理,班级列表修改,科目设置
566
567
568
569
          if (!this.query.studentName) {
            this.$message.warning("输入学生姓名~");
            return;
          }
ec6394d1   梁保满   v1.3.1。细节调整
570
          this.query.classId = "";
23a6dc5f   阿宝   学校管理相关接口简单对接
571
          this.query.studentCode = "";
d059a9d1   梁保满   接口调整
572
          this.query.grade = "";
a0f751c7   梁保满   学生查询条件
573
          query.studentName = this.query.studentName;
c8c928f4   梁保满   学生管理交互优化
574
          query.status = 9;
23a6dc5f   阿宝   学校管理相关接口简单对接
575
        } else if (type == 2) {
b8827a72   梁保满   测试bug
576
          if (!this.query.studentCode) {
0454f787   梁保满   班级管理,班级列表修改,科目设置
577
578
579
            this.$message.warning("输入学生学号~");
            return;
          }
ec6394d1   梁保满   v1.3.1。细节调整
580
          this.query.classId = "";
23a6dc5f   阿宝   学校管理相关接口简单对接
581
          this.query.studentName = "";
d059a9d1   梁保满   接口调整
582
          this.query.grade = "";
a0f751c7   梁保满   学生查询条件
583
          query.studentCode = this.query.studentCode;
c8c928f4   梁保满   学生管理交互优化
584
          query.status = 9;
23a6dc5f   阿宝   学校管理相关接口简单对接
585
586
587
        } else if (type == 3) {
          this.query.studentName = "";
          this.query.studentCode = "";
c8c928f4   梁保满   学生管理交互优化
588
589
590
591
          if (this.query.grade == 80) {
            query.status = -1;
          } else if (this.query.grade == 81) {
            query.status = 2;
b8827a72   梁保满   测试bug
592
          } else {
b8827a72   梁保满   测试bug
593
594
595
            query.grade = this.query.grade;
            query.classId = this.query.classId;
          }
225a00b6   梁保满   飞书问题解决
596
        } else {
c8c928f4   梁保满   学生管理交互优化
597
          query = { ...this.query };
23a6dc5f   阿宝   学校管理相关接口简单对接
598
        }
b8827a72   梁保满   测试bug
599
600
601
602
        return query;
      },
      async _QueryData(type) {
        let query = this.serQuery(type);
23a6dc5f   阿宝   学校管理相关接口简单对接
603
        this.loading = true;
99713685   梁保满   学生调班,班级数据重新请求,使用过...
604
        this.studentList = [];
23a6dc5f   阿宝   学校管理相关接口简单对接
605
606
607
608
609
610
        const { data, status, info } = await this.$request.studentList({
          ...query,
        });
        this.loading = false;
        console.log(status);
        if (status === 0) {
b8827a72   梁保满   测试bug
611
          this.studentList = (data.list && [...data?.list]) || [];
23a6dc5f   阿宝   学校管理相关接口简单对接
612
613
614
615
616
        } else {
          this.$message.error(info);
        }
      },
      async _QueryDataGrade() {
23a6dc5f   阿宝   学校管理相关接口简单对接
617
618
619
620
621
        const { data, status, info } = await this.$request.gradeList();
        if (status === 0) {
          this.gradeList =
            data.list?.map((item) => {
              return {
d059a9d1   梁保满   接口调整
622
                value: item.grade,
23a6dc5f   阿宝   学校管理相关接口简单对接
623
624
625
                label: item.gradeName,
              };
            }) || [];
d059a9d1   梁保满   接口调整
626
          this.query.grade = this.gradeList[0]?.value;
23a6dc5f   阿宝   学校管理相关接口简单对接
627
628
629
630
631
        } else {
          this.$message.error(info);
        }
      },
      async _QueryClass(value) {
b8827a72   梁保满   测试bug
632
        this.loading = true;
99713685   梁保满   学生调班,班级数据重新请求,使用过...
633
        this.classList = [];
23a6dc5f   阿宝   学校管理相关接口简单对接
634
        const { data, status, info } = await this.$request.schoolClassList({
d059a9d1   梁保满   接口调整
635
          grade: value || this.query.grade,
23a6dc5f   阿宝   学校管理相关接口简单对接
636
637
        });
        if (status === 0) {
b8827a72   梁保满   测试bug
638
          this.classList = (data.list && [...data?.list]) || [];
560c12f2   阿宝   学校设置,软件下载
639
          this.query.classId = this.classList[0]?.id;
dd5150c5   阿宝   数据同步
640
          this.formStu.className = this.classList[0]?.className;
ae0a304c   梁保满   学生管理-显示班级基站信息
641
642
643
          this.clazzDetail.stationSn = this.classList[0]?.stationSn;
          this.clazzDetail.pairingCode = this.classList[0]?.pairingCode;
          this.clazzDetail.frequency = this.classList[0]?.frequency;
23a6dc5f   阿宝   学校管理相关接口简单对接
644
645
646
647
        } else {
          this.$message.error(info);
        }
      },
99713685   梁保满   学生调班,班级数据重新请求,使用过...
648
649
650
651
652
653
654
      async _QueryClazz(value) {
        this.classList = [];
        const { data, status, info } = await this.$request.schoolClassList({
          grade: value,
        });
        if (status === 0) {
          this.classList = (data.list && [...data?.list]) || [];
99713685   梁保满   学生调班,班级数据重新请求,使用过...
655
656
657
658
        } else {
          this.$message.error(info);
        }
      },
54857fa3   梁保满   下载模板跨域,集团管理员选择角色范...
659
      async downExcel() {
e371f2dc   梁保满   软件下载,学校,班级老师等报表导入...
660
661
662
663
664
        this.loadingDown = true;
        let { data, info, status } =
          await this.$request.studentClickerTemplateUrl();
        this.loadingDown = false;
        if (status == 0) {
54857fa3   梁保满   下载模板跨域,集团管理员选择角色范...
665
666
667
668
669
          const a = document.createElement("a");
          a.href = data.downloadUrl;
          document.body.appendChild(a);
          a.click();
          a.remove();
e371f2dc   梁保满   软件下载,学校,班级老师等报表导入...
670
671
672
673
        } else {
          this.$message.error(info);
        }
      },
23a6dc5f   阿宝   学校管理相关接口简单对接
674
675
    },
  };
4c4f7640   梁保满   路由表,路由前端文件
676
677
  </script>
  
23a6dc5f   阿宝   学校管理相关接口简单对接
678
679
  <style lang="scss" scoped>
  .page-content {
ec6394d1   梁保满   v1.3.1。细节调整
680
    padding: 0 20px;
23a6dc5f   阿宝   学校管理相关接口简单对接
681
  }
e5e4a3e6   梁保满   v1.3
682
683
684
685
686
687
688
  .tips {
    display: flex;
    line-height: 16px;
    font-size: 14px;
    color: #999;
    margin-bottom: 10px;
  }
99713685   梁保满   学生调班,班级数据重新请求,使用过...
689
690
691
692
693
  .total {
    padding: 0 20px 10px;
    font-size: 14px;
    color: #666;
  }
23a6dc5f   阿宝   学校管理相关接口简单对接
694
695
696
697
698
  .stu-box {
    display: flex;
    background: #f8f8f8;
    border-radius: 10px;
    overflow: hidden;
ae0a304c   梁保满   学生管理-显示班级基站信息
699
    .answer-header {
e5e4a3e6   梁保满   v1.3
700
      padding-top: 10px;
ae0a304c   梁保满   学生管理-显示班级基站信息
701
    }
23a6dc5f   阿宝   学校管理相关接口简单对接
702
    .stu-list {
0454f787   梁保满   班级管理,班级列表修改,科目设置
703
      min-width: 200px;
23a6dc5f   阿宝   学校管理相关接口简单对接
704
705
706
      max-height: 80vh;
      .h-title {
        height: 40px;
23a6dc5f   阿宝   学校管理相关接口简单对接
707
708
709
710
711
712
713
714
715
716
717
718
719
        line-height: 40px;
        background: #eee;
      }
      .stu-item {
        font-size: 16px;
        color: #7f7f7f;
        line-height: 36px;
        cursor: pointer;
        padding-left: 12px;
        position: relative;
        .el-icon-edit-outline {
          position: absolute;
          top: 8px;
e5e4a3e6   梁保满   v1.3
720
          right: 4px;
23a6dc5f   阿宝   学校管理相关接口简单对接
721
722
723
724
725
726
          font-size: 20px;
          display: none;
          &:hover {
            color: #667ffd;
          }
        }
e5e4a3e6   梁保满   v1.3
727
728
729
730
731
732
733
734
735
736
737
        .popconfirm-box {
          position: absolute;
          top: 6px;
          right: 31px;
          font-size: 17px;
          line-height: 24px;
          display: none;
          &:hover {
            color: #667ffd;
          }
        }
23a6dc5f   阿宝   学校管理相关接口简单对接
738
739
740
741
742
        &:hover {
          background: #eee;
          .el-icon-edit-outline {
            display: block;
          }
e5e4a3e6   梁保满   v1.3
743
744
745
          .popconfirm-box {
            display: block;
          }
23a6dc5f   阿宝   学校管理相关接口简单对接
746
747
748
        }
        &.active {
          color: #667ffd;
6d7bd862   梁保满   飞书bug
749
          background: #eee;
23a6dc5f   阿宝   学校管理相关接口简单对接
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
        }
      }
      .sel {
        width: 180px;
        :deep(.el-input__inner) {
          font-size: 16px;
          padding-left: 0;
          border: none;
          background: transparent;
        }
        :deep(.el-icon-arrow-up:before) {
          content: "\e78f";
        }
      }
    }
    .stu-detail {
      flex: 1;
      border-left: 0.5px solid #eee;
b8827a72   梁保满   测试bug
768
769
      min-height: 200px;
      &-tit {
d059a9d1   梁保满   接口调整
770
771
772
        display: flex;
        justify-content: space-between;
      }
99713685   梁保满   学生调班,班级数据重新请求,使用过...
773
  
23a6dc5f   阿宝   学校管理相关接口简单对接
774
775
776
      .s-ul {
        display: flex;
        flex-wrap: wrap;
99713685   梁保满   学生调班,班级数据重新请求,使用过...
777
        padding: 12px 0 0 20px;
23a6dc5f   阿宝   学校管理相关接口简单对接
778
        .s-li {
0454f787   梁保满   班级管理,班级列表修改,科目设置
779
          position: relative;
23a6dc5f   阿宝   学校管理相关接口简单对接
780
          box-shadow: 2px 2px 5px #7f7f7f;
23a6dc5f   阿宝   学校管理相关接口简单对接
781
          margin: 0 20px 20px 0;
0454f787   梁保满   班级管理,班级列表修改,科目设置
782
          .s-li-box {
c8c928f4   梁保满   学生管理交互优化
783
            width: 160px;
0454f787   梁保满   班级管理,班级列表修改,科目设置
784
785
786
787
788
            border-radius: 10px;
            min-height: 120px;
            padding: 0 12px 5px;
            cursor: pointer;
          }
e5e4a3e6   梁保满   v1.3
789
790
791
792
793
794
795
796
797
798
799
800
801
          .el-icon-user-solid {
            position: absolute;
            top: 8px;
            left: 8px;
            font-size: 18px;
            color: #666;
            padding: 2px;
            display: none;
            cursor: pointer;
            &:hover {
              color: #667ffd;
            }
          }
23a6dc5f   阿宝   学校管理相关接口简单对接
802
803
804
805
806
807
808
809
810
811
812
813
814
          .el-icon-delete {
            position: absolute;
            top: 8px;
            right: 8px;
            font-size: 18px;
            padding: 2px;
            display: none;
            cursor: pointer;
            &:hover {
              color: #667ffd;
            }
          }
          &:hover {
e5e4a3e6   梁保满   v1.3
815
816
817
            .el-icon-user-solid {
              display: block;
            }
23a6dc5f   阿宝   学校管理相关接口简单对接
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
            .el-icon-delete {
              display: block;
            }
          }
          .name {
            text-align: center;
            font-size: 16px;
            line-height: 18px;
            padding: 10px 0;
          }
          .p1 {
            color: #7f7f7f;
            line-height: 20px;
            padding-bottom: 5px;
          }
ec6394d1   梁保满   v1.3.1。细节调整
833
834
835
836
837
          .p2 {
            color: #333;
            line-height: 20px;
            padding-bottom: 5px;
          }
23a6dc5f   阿宝   学校管理相关接口简单对接
838
839
840
        }
      }
    }
ae0a304c   梁保满   学生管理-显示班级基站信息
841
842
    .clazz-detail {
      display: flex;
99713685   梁保满   学生调班,班级数据重新请求,使用过...
843
      padding: 12px 12px 0 20px;
ae0a304c   梁保满   学生管理-显示班级基站信息
844
845
846
847
848
      p {
        margin-right: 16px;
        color: #666;
      }
    }
23a6dc5f   阿宝   学校管理相关接口简单对接
849
  }
4c4f7640   梁保满   路由表,路由前端文件
850
  </style>