Blame view

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