|
@@ -61,7 +61,7 @@
|
|
|
</p>
|
|
|
<p class="class-attr-item">
|
|
|
<span class="attr-label">{{$t('cusMgt.stuCount')}}</span>
|
|
|
- <span class="class-name">{{item.allStu ? item.allStu.length : 0}}{{$t('unit.text7')}}</span>
|
|
|
+ <span class="class-name">{{getStudenCount(item.classId || item.stulist)}}{{$t('unit.text7')}}</span>
|
|
|
</p>
|
|
|
<Icon size="25" custom="iconfont icon-qr-code" :class="['qr-code-icon', {'qr-code-icon-color': item.joinLock}]" @click="showQrCode(index)" v-if="listType == 'private'" :title="$t('cusMgt.qrCodeLabel')" />
|
|
|
<span v-if="hasCCAuth" :class="['qr-code-icon', hasCCAuth ? 'cc-icon' : 'no-cc-auth']" @click="startCus(index)">
|
|
@@ -308,6 +308,7 @@ export default {
|
|
|
courseList: [],
|
|
|
filterPeriod: '',
|
|
|
courseInfo: {},
|
|
|
+ courseGroupList: [],//当前课程所有名单详细信息
|
|
|
courseTypeClass: ['course-list-wrap'],
|
|
|
addCusInfo: {
|
|
|
name: '',
|
|
@@ -338,7 +339,7 @@ export default {
|
|
|
},
|
|
|
curStuList() {
|
|
|
let groupId = this.teaClassList[this.curClassIndex]?.classId || this.teaClassList[this.curClassIndex]?.stulist
|
|
|
- return this.groupList.find(item => item.id == groupId)
|
|
|
+ return this.courseGroupList.find(item => item.id == groupId)
|
|
|
},
|
|
|
rcdParams() {
|
|
|
return {
|
|
@@ -348,12 +349,14 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
students() {
|
|
|
- if (this.teaClassList && this.teaClassList[this.curClassIndex]) {
|
|
|
- return this.teaClassList[this.curClassIndex].allStu
|
|
|
- }
|
|
|
- else {
|
|
|
- return []
|
|
|
+ if (this.teaClassList) {
|
|
|
+ let groupId = this.teaClassList[this.curClassIndex]?.classId || this.teaClassList[this.curClassIndex]?.stulist
|
|
|
+ if (groupId) {
|
|
|
+ let group = this.courseGroupList.find(item => item.id == groupId)
|
|
|
+ if (group) return group.members
|
|
|
+ }
|
|
|
}
|
|
|
+ return
|
|
|
},
|
|
|
//查询成绩表所需参数(courseId, cId, code)
|
|
|
gradeParams() {
|
|
@@ -365,7 +368,7 @@ export default {
|
|
|
return data
|
|
|
},
|
|
|
courseListShow() {
|
|
|
- if(!this.courseList.length){
|
|
|
+ if (!this.courseList.length) {
|
|
|
return []
|
|
|
}
|
|
|
let data = this.courseList.filter(item => item.scope == this.listType)
|
|
@@ -375,9 +378,9 @@ export default {
|
|
|
if (data.length) {
|
|
|
return data
|
|
|
} else {
|
|
|
- setTimeout(()=>{
|
|
|
+ setTimeout(() => {
|
|
|
this.listType = this.listType == 'school' ? 'private' : 'school'
|
|
|
- },100)
|
|
|
+ }, 100)
|
|
|
return []
|
|
|
}
|
|
|
},
|
|
@@ -417,6 +420,13 @@ export default {
|
|
|
}, 100)
|
|
|
},
|
|
|
methods: {
|
|
|
+ getStudenCount(groupId) {
|
|
|
+ let group = this.courseGroupList.find(item => item.id == groupId)
|
|
|
+ if (group) {
|
|
|
+ return group.members?.length || 0
|
|
|
+ }
|
|
|
+ return 0
|
|
|
+ },
|
|
|
setSourceId(value, selectData) {
|
|
|
console.log(value)
|
|
|
if (value.length) {
|
|
@@ -522,13 +532,7 @@ export default {
|
|
|
},
|
|
|
onSetIrs(data) {
|
|
|
let { students } = data
|
|
|
- // 当前名单对应的课程安排用于更新UI
|
|
|
- let schedule = this.courseInfo.schedule.find(item => {
|
|
|
- return item.stulist == this.teaClassList[this.curClassIndex].stulist && !item.classId //只有自定名单能添加学生,所以classId == ‘’
|
|
|
- })
|
|
|
- schedule.allStu = students
|
|
|
-
|
|
|
- let stulist = this.groupList.find(item => {
|
|
|
+ let stulist = this.courseGroupList.find(item => {
|
|
|
return item.id == this.teaClassList[this.curClassIndex].stulist
|
|
|
})
|
|
|
if (stulist) {
|
|
@@ -536,7 +540,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
agreeJoinClass(status) {
|
|
|
- let stulist = this.groupList.find(item => {
|
|
|
+ let stulist = this.courseGroupList.find(item => {
|
|
|
return item.id == this.teaClassList[this.curClassIndex].stulist
|
|
|
})
|
|
|
if (stulist) {
|
|
@@ -562,7 +566,7 @@ export default {
|
|
|
let listId = this.teaClassList[index].stulist
|
|
|
let listName = this.teaClassList[index].listName
|
|
|
let cusName = this.courseInfo.name
|
|
|
- let stulistInfo = this.groupList.find(item => {
|
|
|
+ let stulistInfo = this.courseGroupList.find(item => {
|
|
|
return item.id == listId
|
|
|
})
|
|
|
if (stulistInfo) {
|
|
@@ -631,6 +635,7 @@ export default {
|
|
|
students: s.students,
|
|
|
time: []
|
|
|
})
|
|
|
+ this.courseListShow.push(this._.cloneDeep(s))
|
|
|
this.btnLoading = true
|
|
|
this.updCusInfo()
|
|
|
this.listId = ''
|
|
@@ -687,7 +692,7 @@ export default {
|
|
|
},
|
|
|
confirmRename() {
|
|
|
let stulistId = this.teaClassList[this.curClassIndex].stulist
|
|
|
- let stulist = this.groupList.find(item => {
|
|
|
+ let stulist = this.courseGroupList.find(item => {
|
|
|
return item.id == this.teaClassList[this.curClassIndex].stulist
|
|
|
})
|
|
|
if (stulist) {
|
|
@@ -995,13 +1000,15 @@ export default {
|
|
|
try {
|
|
|
//新版名单API支持同时获取各种名单详细信息
|
|
|
let allGroupIds = ids.concat(classIds)
|
|
|
+ this.courseGroupList = []
|
|
|
if (allGroupIds.length) {
|
|
|
let allGroups = await this.getListInfo([...allGroupIds])
|
|
|
if (allGroups.groups) {
|
|
|
+ this.courseGroupList = allGroups.groups
|
|
|
resSchedule.forEach(item => {
|
|
|
//补充行政班信息
|
|
|
if (item.classId) {
|
|
|
- let classInfo = allGroups.groups.find(classItem => {
|
|
|
+ let classInfo = this.courseGroupList.find(classItem => {
|
|
|
return classItem.id == item.classId
|
|
|
})
|
|
|
item.classInfo = {
|
|
@@ -1009,19 +1016,15 @@ export default {
|
|
|
name: classInfo ? classInfo.name : this.$t('cusMgt.hasDelClass'),
|
|
|
year: classInfo ? classInfo.year : 0 //方便计算年级
|
|
|
}
|
|
|
- item.allStu = classInfo ? this._.cloneDeep(classInfo.members) : []
|
|
|
- item.fullStu = true
|
|
|
item.joinLock = classInfo.joinLock
|
|
|
}
|
|
|
//补充教学班信息
|
|
|
if (item.stulist) {
|
|
|
- let listInfo = allGroups.groups.find(listItem => {
|
|
|
+ let listInfo = this.courseGroupList.find(listItem => {
|
|
|
return listItem.id == item.stulist
|
|
|
})
|
|
|
item.listName = listInfo ? listInfo.name : this.$t('cusMgt.hasDelClass')
|
|
|
- item.allStu = listInfo ? this._.cloneDeep(listInfo.members) : []
|
|
|
item.listSchool = listInfo ? listInfo.school : undefined
|
|
|
- item.fullStu = true
|
|
|
item.joinLock = listInfo.joinLock
|
|
|
}
|
|
|
//统一数据格式
|
|
@@ -1045,15 +1048,8 @@ export default {
|
|
|
},
|
|
|
onAddStudent(data) {
|
|
|
let { addStudents } = data
|
|
|
- // 当前名单对应的课程安排用于更新UI
|
|
|
- let schedule = this.courseInfo.schedule.find(item => {
|
|
|
- return item.stulist == this.teaClassList[this.curClassIndex].stulist && !item.classId //只有自定名单能添加学生
|
|
|
- })
|
|
|
- if (schedule) {
|
|
|
- schedule.allStu.unshift(...addStudents)
|
|
|
- }
|
|
|
//当前名单完整信息 用于更新名单API
|
|
|
- let stulist = this.groupList.find(item => {
|
|
|
+ let stulist = this.courseGroupList.find(item => {
|
|
|
return item.id == this.teaClassList[this.curClassIndex].stulist
|
|
|
})
|
|
|
if (stulist) {
|
|
@@ -1063,20 +1059,8 @@ export default {
|
|
|
},
|
|
|
onDelStudent(data) {
|
|
|
let { delIds } = data
|
|
|
- // 当前名单对应的课程安排用于更新UI
|
|
|
- let schedule = this.courseInfo.schedule.find(item => {
|
|
|
- return item.stulist == this.teaClassList[this.curClassIndex].stulist && !item.classId //只有自定名单能添加学生
|
|
|
- })
|
|
|
- if (schedule) {
|
|
|
- for (let i = 0; i < schedule.allStu.length; i++) {
|
|
|
- if (delIds.includes(schedule.allStu[i].id)) {
|
|
|
- schedule.allStu.splice(i, 1)
|
|
|
- i--
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
//当前名单完整信息 用于更新名单API
|
|
|
- let stulist = this.groupList.find(item => {
|
|
|
+ let stulist = this.courseGroupList.find(item => {
|
|
|
return item.id == this.teaClassList[this.curClassIndex].stulist
|
|
|
})
|
|
|
if (stulist) {
|
|
@@ -1121,7 +1105,8 @@ export default {
|
|
|
students: res.list.members,
|
|
|
time: []
|
|
|
})
|
|
|
- this.groupList.push(res.list)
|
|
|
+ this.groupList.push(this._.cloneDeep(res.list))
|
|
|
+ this.courseGroupList.push(this._.cloneDeep(res.list))
|
|
|
this.updCusInfo()
|
|
|
}
|
|
|
},
|