dc56294d
梁保满
班级分班
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<template>
<div>
<back-box>
<template slot="title">
<span>分班</span>
</template>
</back-box>
<div class="page-content">
<el-steps :active="step" align-center class="step">
<el-step title="1 班级归档"></el-step>
<el-step title="2 分班后学生名单"></el-step>
<el-step title="3 分班后任课老师"></el-step>
<el-step title="4 授课端指引"></el-step>
</el-steps>
<ul v-loading="loading">
<li v-show="step == 0">
<div class="form-item">
<span class="s-txt">选择分班年级:</span>
|
352c53cc
梁保满
上传word回传数据
|
19
20
|
<el-select class="sel" v-model="grade" placeholder="选择年级" @change="changeGrade">
<el-option v-for="item in gradeList" :key="item.value" :label="item.label" :value="item.value">
|
dc56294d
梁保满
班级分班
|
21
|
</el-option>
|
dc56294d
梁保满
班级分班
|
22
23
24
25
26
|
</el-select>
</div>
<div class="form-item">
<span class="s-txt">确定班级:</span>
<i class="el-icon-loading" v-show="loadingClass"></i>
|
5cfb0264
梁保满
班级管理交互优化
|
27
28
|
<div class="check-box" v-if="classList.length && !loadingClass">
<p class="all-check">
|
352c53cc
梁保满
上传word回传数据
|
29
30
|
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll"
@change="handleCheckAllChange">全选</el-checkbox>
|
5cfb0264
梁保满
班级管理交互优化
|
31
|
</p>
|
352c53cc
梁保满
上传word回传数据
|
32
33
|
<el-checkbox-group v-model="classIds" @change="handleCheckedChange">
<el-checkbox v-for="item in classList" :key="item.id" :label="item.id">{{
|
5cfb0264
梁保满
班级管理交互优化
|
34
35
36
37
|
item.className
}}</el-checkbox>
</el-checkbox-group>
</div>
|
dc56294d
梁保满
班级分班
|
38
39
40
41
|
</div>
<div class="form-item">
<span class="s-txt"></span>
<p class="tips">
|
352c53cc
梁保满
上传word回传数据
|
42
|
<i class="el-icon-warning"></i>请谨慎操作,班级归档后,学生解除班级关系且相关老师任课信息将不存在。
|
dc56294d
梁保满
班级分班
|
43
44
45
|
</p>
</div>
<div class="btn-box">
|
82b9014a
梁保满
交互调整
|
46
|
<el-button class="btn" round @click="toClazz">取消</el-button>
|
352c53cc
梁保满
上传word回传数据
|
47
48
49
|
<el-popconfirm confirm-button-text="确定" cancel-button-text="取消" icon="el-icon-info" icon-color="red"
title="确定要将所选班级归档吗?" @confirm="_ClassArchiving">
<el-button class="btn" slot="reference" type="primary" round>归档</el-button>
|
dc56294d
梁保满
班级分班
|
50
51
52
53
54
|
</el-popconfirm>
</div>
</li>
<li v-show="step == 1">
<div class="step-item">
|
352c53cc
梁保满
上传word回传数据
|
55
|
<upload id="downTeacher" :url="urlClazz" @upSuccess="upStudentSuccess" fileName="学生名单模板">
|
dc56294d
梁保满
班级分班
|
56
57
|
<p class="down-txt" slot="down">
通过Excel名单导入学生名单模板,点击
|
352c53cc
梁保满
上传word回传数据
|
58
|
<el-link type="primary" @click="downStudentExcel">导出未分配学生</el-link>
|
dc56294d
梁保满
班级分班
|
59
60
|
。
</p>
|
6192eba8
梁保满
引用上传文件组件问题,备题组卷顶部
|
61
|
</upload>
|
dc56294d
梁保满
班级分班
|
62
63
64
65
|
</div>
</li>
<li v-show="step == 2">
<div class="step-item">
|
352c53cc
梁保满
上传word回传数据
|
66
|
<upload id="downTeacher" :url="urlTeacher" @upSuccess="upTeacherSuccess" fileName="任课老师名单模板">
|
dc56294d
梁保满
班级分班
|
67
68
|
<p class="down-txt" slot="down">
通过Excel名单导入任课老师名单模板,点击
|
352c53cc
梁保满
上传word回传数据
|
69
|
<el-link type="primary" @click="downTeacherExcel">导出未分配教师</el-link>。
|
dc56294d
梁保满
班级分班
|
70
|
</p>
|
6192eba8
梁保满
引用上传文件组件问题,备题组卷顶部
|
71
|
</upload>
|
dc56294d
梁保满
班级分班
|
72
73
74
75
76
|
</div>
</li>
<li v-show="step == 3">
<div class="step-item2">
<p class="p2">
|
352c53cc
梁保满
上传word回传数据
|
77
78
|
<el-button class="btn" type="success" icon="el-icon-check" circle
size="small"></el-button>恭喜您,分班已经完成,分班后老师第一次上课时注意事项:
|
dc56294d
梁保满
班级分班
|
79
80
81
82
83
84
85
86
87
88
89
90
91
|
</p>
<p class="p1">
1、点击授课端的设置—应用设置—初始化设置—重新选择绑定班级。
</p>
<p class="p1">
2、点击授课端的设置—班级名册—基站登录—学生完成基站绑定。
</p>
</div>
</li>
<li v-show="step != 0">
<div class="btn-box">
<el-button class="btn" round @click="step -= 1">上一步</el-button>
|
352c53cc
梁保满
上传word回传数据
|
92
93
|
<el-button v-show="step != 3" class="btn" type="primary" round @click="step += 1">下一步</el-button><el-button
v-show="step == 3" class="btn" type="primary" round @click="toClazz">完成</el-button>
|
dc56294d
梁保满
班级分班
|
94
95
96
97
98
99
100
101
|
</div>
</li>
</ul>
</div>
</div>
</template>
<script>
|
d4b9eb45
梁保满
设备异常信息
|
102
|
import { downloadFile } from "utils";
|
dc56294d
梁保满
班级分班
|
103
104
105
106
107
|
export default {
data() {
return {
loading: false,
loadingClass: false,
|
d4b9eb45
梁保满
设备异常信息
|
108
|
loadingDown: false,
|
b8827a72
梁保满
测试bug
|
109
|
step: 0,
|
d059a9d1
梁保满
接口调整
|
110
|
grade: "",
|
dc56294d
梁保满
班级分班
|
111
112
113
|
gradeList: [],
classIds: [],
classList: [],
|
ea4f5fc9
梁保满
班级归档,学生名单上船地址
|
114
|
urlClazz: "/api_html/school/manager/importClassAndStudent",
|
0761e2ba
梁保满
分班和学校管理调整
|
115
|
urlTeacher: "/api_html/school/manager/importTeacher",
|
5cfb0264
梁保满
班级管理交互优化
|
116
117
|
checkAll: true,
isIndeterminate: false,
|
dc56294d
梁保满
班级分班
|
118
119
120
121
122
123
|
};
},
created() {
this._QueryDataGrade();
},
methods: {
|
5cfb0264
梁保满
班级管理交互优化
|
124
125
126
|
handleCheckAllChange(val) {
this.classIds = val
? this.classList.map((item) => {
|
352c53cc
梁保满
上传word回传数据
|
127
128
|
return item.id;
})
|
5cfb0264
梁保满
班级管理交互优化
|
129
130
131
132
133
134
135
136
137
|
: [];
this.isIndeterminate = false;
},
handleCheckedChange(value) {
let checkedCount = value.length;
this.checkAll = checkedCount === this.classList.length;
this.isIndeterminate =
checkedCount > 0 && checkedCount < this.classList.length;
},
|
dc56294d
梁保满
班级分班
|
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
toClazz() {
this.$router.push({
path: "/setUpClazz",
});
},
//切换年级
changeGrade() {
this._QueryClass();
},
//学生名单上传成功回调
upStudentSuccess(res) {
this.$message.closeAll();
this.$message({
showClose: true,
message: `成功(${res.data.success})`,
type: "success",
duration: 10000,
});
},
//任课老师名单上传成功回调
upTeacherSuccess(res) {
this.$message.closeAll();
this.$message({
showClose: true,
message: `成功(${res.data.success})`,
type: "success",
duration: 10000,
});
},
//导出学生名单
async downStudentExcel() {
this.loadingDown = true;
|
d4b9eb45
梁保满
设备异常信息
|
170
|
let data = await this.$request.exportNoClassStudent();
|
dc56294d
梁保满
班级分班
|
171
|
this.loadingDown = false;
|
d4b9eb45
梁保满
设备异常信息
|
172
173
174
175
176
|
if (data) {
let blob = new Blob([data], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
});
downloadFile("未分配学生名单.xlsx", blob);
|
dc56294d
梁保满
班级分班
|
177
|
} else {
|
d4b9eb45
梁保满
设备异常信息
|
178
|
this.$message.error("下载失败");
|
dc56294d
梁保满
班级分班
|
179
180
181
182
183
|
}
},
//导出任课老师名单
async downTeacherExcel() {
this.loadingDown = true;
|
d4b9eb45
梁保满
设备异常信息
|
184
|
let data = await this.$request.exportNoClassTeacher();
|
dc56294d
梁保满
班级分班
|
185
|
this.loadingDown = false;
|
d4b9eb45
梁保满
设备异常信息
|
186
187
188
189
190
|
if (data) {
let blob = new Blob([data], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
});
downloadFile("未分配教师 名单.xlsx", blob);
|
dc56294d
梁保满
班级分班
|
191
|
} else {
|
d4b9eb45
梁保满
设备异常信息
|
192
|
this.$message.error("下载失败");
|
dc56294d
梁保满
班级分班
|
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
|
}
},
//班级归档
async _ClassArchiving() {
if (!this.classIds.length) {
this.$message.warning("班级不能为空,请选择班级~");
return;
}
this.loading = true;
const { status, info } = await this.$request.classArchiving({
classIds: [...this.classIds],
});
this.loading = false;
if (status === 0) {
this.$message.success("班级归档成功!");
this.step = 1;
this._QueryDataGrade();
} else {
this.$message.error(info);
}
},
//年级列表
async _QueryDataGrade() {
const { data, status, info } = await this.$request.gradeList();
if (status === 0) {
this.gradeList =
data.list?.map((item) => {
return {
|
d059a9d1
梁保满
接口调整
|
221
|
value: item.grade,
|
dc56294d
梁保满
班级分班
|
222
223
224
|
label: item.gradeName,
};
}) || [];
|
d059a9d1
梁保满
接口调整
|
225
|
this.grade = this.gradeList[0]?.value;
|
dc56294d
梁保满
班级分班
|
226
227
228
229
230
231
232
233
234
235
|
this._QueryClass();
} else {
this.$message.error(info);
}
},
//班级列表
async _QueryClass() {
this.classList = [];
this.loadingClass = true;
const { data, status, info } = await this.$request.schoolClassList({
|
d059a9d1
梁保满
接口调整
|
236
|
grade: this.grade,
|
dc56294d
梁保满
班级分班
|
237
238
239
|
});
this.loadingClass = false;
if (status === 0) {
|
82b9014a
梁保满
交互调整
|
240
|
this.classList = (data.list && [...data.list]) || [];
|
5cfb0264
梁保满
班级管理交互优化
|
241
242
243
244
|
this.classIds = this.classList.map((item) => {
return item.id;
});
this.checkAll = true;
|
dc56294d
梁保满
班级分班
|
245
246
247
248
249
250
251
252
253
254
255
256
257
258
|
} else {
this.$message.error(info);
}
},
},
};
</script>
<style lang="scss" scoped>
.page-content {
width: 100%;
padding: 20px;
box-sizing: border-box;
}
|
352c53cc
梁保满
上传word回传数据
|
259
|
|
dc56294d
梁保满
班级分班
|
260
261
262
|
.step {
margin-bottom: 40px;
}
|
352c53cc
梁保满
上传word回传数据
|
263
|
|
dc56294d
梁保满
班级分班
|
264
265
266
267
|
.form-item {
width: 70%;
display: flex;
margin: 0 auto 20px;
|
352c53cc
梁保满
上传word回传数据
|
268
|
|
5cfb0264
梁保满
班级管理交互优化
|
269
270
271
|
.check-box {
flex: 1;
}
|
352c53cc
梁保满
上传word回传数据
|
272
|
|
5cfb0264
梁保满
班级管理交互优化
|
273
274
275
|
.all-check {
margin-right: 30px;
}
|
352c53cc
梁保满
上传word回传数据
|
276
|
|
dc56294d
梁保满
班级分班
|
277
278
279
280
281
|
&:first-of-type {
.s-txt {
line-height: 40px;
}
}
|
352c53cc
梁保满
上传word回传数据
|
282
|
|
dc56294d
梁保满
班级分班
|
283
284
285
286
|
.s-txt {
width: 160px;
flex-shrink: 0;
}
|
352c53cc
梁保满
上传word回传数据
|
287
|
|
dc56294d
梁保满
班级分班
|
288
289
290
291
292
|
.sel {
:deep(.el-input__inner) {
border-radius: 20px;
}
}
|
352c53cc
梁保满
上传word回传数据
|
293
|
|
dc56294d
梁保满
班级分班
|
294
295
296
|
:deep(.el-checkbox) {
margin-bottom: 12px;
}
|
352c53cc
梁保满
上传word回传数据
|
297
|
|
dc56294d
梁保满
班级分班
|
298
299
300
301
302
|
.tips {
display: flex;
align-items: center;
color: #666;
}
|
352c53cc
梁保满
上传word回传数据
|
303
|
|
dc56294d
梁保满
班级分班
|
304
305
306
307
308
309
|
.el-icon-warning {
font-size: 20px;
color: #ec7f8c;
margin-right: 10px;
}
}
|
352c53cc
梁保满
上传word回传数据
|
310
|
|
dc56294d
梁保满
班级分班
|
311
312
313
314
315
|
.btn-box {
width: 80%;
margin: 60px auto 0;
display: flex;
justify-content: flex-end;
|
352c53cc
梁保满
上传word回传数据
|
316
|
|
dc56294d
梁保满
班级分班
|
317
318
319
320
|
.btn {
margin: 0 10px;
}
}
|
352c53cc
梁保满
上传word回传数据
|
321
|
|
dc56294d
梁保满
班级分班
|
322
323
324
|
.step-item {
text-align: center;
}
|
352c53cc
梁保满
上传word回传数据
|
325
|
|
dc56294d
梁保满
班级分班
|
326
327
328
329
330
331
332
|
.step-item2 {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
color: #000;
font-weight: 500;
|
352c53cc
梁保满
上传word回传数据
|
333
|
|
dc56294d
梁保满
班级分班
|
334
335
336
|
.p2 {
font-size: 16px;
margin: 0 0 20px -68px;
|
352c53cc
梁保满
上传word回传数据
|
337
|
|
dc56294d
梁保满
班级分班
|
338
339
340
341
|
.btn {
margin-right: 14px;
}
}
|
352c53cc
梁保满
上传word回传数据
|
342
|
|
dc56294d
梁保满
班级分班
|
343
344
345
346
347
348
|
.p1 {
width: 450px;
text-align: left;
margin-bottom: 20px;
}
}
|
352c53cc
梁保满
上传word回传数据
|
349
|
|
dc56294d
梁保满
班级分班
|
350
351
352
353
354
|
:deep(.down-txt) {
justify-content: center;
padding-left: 0;
}
</style>
|