|
@@ -1,5 +1,6 @@
|
|
|
<template>
|
|
|
<div class="mgt-class-container dark-iview-select dark-iview-checkbox custom-scroll-bar common-save-btn" @click="nameEdStatus = true">
|
|
|
+ <!-- 头部 -->
|
|
|
<div class="mgt-class-header">
|
|
|
<span class="text-label">{{$t('cusMgt.classLabel')}}</span>
|
|
|
<Select v-model="curClassCode" style="width:200px">
|
|
@@ -24,6 +25,7 @@
|
|
|
{{viewType ? $t('cusMgt.viewport1'):$t('cusMgt.viewport2') }}
|
|
|
</span>
|
|
|
</div>
|
|
|
+ <!-- 表格模式 -->
|
|
|
<div class="mgt-class-body dark-iview-table animated fadeIn" id="table-wrap" v-if="viewType == 1">
|
|
|
<vuescroll>
|
|
|
<Table :columns="columns" v-if="classList[curClassIndex]" :data="classList[curClassIndex].students" :loading="tableLoading" ref="students" :height="tableHeight" :no-data-text="$t('cusMgt.noStu')">
|
|
@@ -46,11 +48,12 @@
|
|
|
<EmptyData v-else :textContent="$t('cusMgt.noMgtClass')" :top="150"></EmptyData>
|
|
|
</vuescroll>
|
|
|
</div>
|
|
|
+ <!-- 分组模式 -->
|
|
|
<div class="mgt-class-body dark-iview-table animated fadeIn dark-iview-input disabled-iview-input" id="table-wrap" v-else>
|
|
|
<vuescroll>
|
|
|
<div class="group-wrap-item" v-for="(item,index) in groupData" :key="index">
|
|
|
<div class="group-title-wrap">
|
|
|
- <span class="group-num-tag">{{parseInt(item.groupId)}}</span>
|
|
|
+ <span class="group-num-tag">{{item.groupId ? parseInt(item.groupId) : 1}}</span>
|
|
|
<Input v-model="item.groupName" class="group-name-tag" :placeholder="$t('cusMgt.groupNameHolder')" :disabled="nameEdStatus" @click.native.stop="nameEdStatus = false" :title="$t('cusMgt.edtiGroupName')" @on-change="$jsFn.debounce(setGroupName,1000)(index)" />
|
|
|
<Icon type="md-close" class="close-group-icon" @click="delGroup(index)" />
|
|
|
</div>
|
|
@@ -69,6 +72,7 @@
|
|
|
</div>
|
|
|
</vuescroll>
|
|
|
</div>
|
|
|
+ <!-- 分组设置 -->
|
|
|
<Modal v-model="customGroupStatus" :title="$t('cusMgt.autoGroup')" @on-ok="comfirmCustomRules" class="custom-group" class-name="dark-iview-modal dark-iview-form">
|
|
|
<Form :label-width="80" :label-colon="true" style="color:white;">
|
|
|
<FormItem :label="$t('cusMgt.studentCountLabel')">
|
|
@@ -196,11 +200,11 @@ export default {
|
|
|
if (row != -1) {
|
|
|
this.$Modal.confirm({
|
|
|
title: this.$t('cusMgt.resetPw'),
|
|
|
- content: '<p>' + this.$t('cusMgt.resetPwContent1') + " <strong style='color:red;'>" + row.name + '</strong>'+ this.$t('cusMgt.resetPwContent1') +'?</p>',
|
|
|
+ content: '<p>' + this.$t('cusMgt.resetPwContent1') + " <strong style='color:red;'>" + row.name + '</strong>' + this.$t('cusMgt.resetPwContent1') + '?</p>',
|
|
|
onOk: () => {
|
|
|
let ids = []
|
|
|
row.pw = row.id
|
|
|
- row.year = row.year ? row.year.toString() :''
|
|
|
+ row.year = row.year ? row.year.toString() : ''
|
|
|
delete row.no
|
|
|
ids.push(row)
|
|
|
this.tableLoading = true
|
|
@@ -221,13 +225,13 @@ export default {
|
|
|
if (this.selections.length > 0) {
|
|
|
this.$Modal.confirm({
|
|
|
title: this.$t('cusMgt.resetPw'),
|
|
|
- content: '<p>' + this.$t('cusMgt.resetPwContent3') + " <strong style='color:red;'>" + this.selections.length + '</strong>'+ this.$t('cusMgt.resetPwContent4') +'</p>',
|
|
|
+ content: '<p>' + this.$t('cusMgt.resetPwContent3') + " <strong style='color:red;'>" + this.selections.length + '</strong>' + this.$t('cusMgt.resetPwContent4') + '</p>',
|
|
|
onOk: () => {
|
|
|
this.tableLoading = true
|
|
|
- let apiData = this.selections.map( (item) =>{
|
|
|
+ let apiData = this.selections.map((item) => {
|
|
|
let d = item
|
|
|
d.pw = d.id
|
|
|
- delete d.no
|
|
|
+ delete d.no
|
|
|
return d
|
|
|
})
|
|
|
|
|
@@ -358,7 +362,7 @@ export default {
|
|
|
comfirmCustomRules() {
|
|
|
if (this.groupNum === 0) {
|
|
|
this.$Message.warning(this.$t('cusMgt.groupCount'))
|
|
|
- } else if (this.groupType == 0) {
|
|
|
+ } else if (!this.groupType) {
|
|
|
this.$Message.warning(this.$t('cusMgt.groupTypeTips'))
|
|
|
} else {
|
|
|
switch (this.groupType) {
|
|
@@ -379,6 +383,7 @@ export default {
|
|
|
this.handelGroup()
|
|
|
}
|
|
|
},
|
|
|
+ // 依座顺序S形分组
|
|
|
orderGroupS() {
|
|
|
let stuLen = this.classList[this.curClassIndex].students.length
|
|
|
let surplus = stuLen % this.groupNum// 余数
|
|
@@ -386,21 +391,30 @@ export default {
|
|
|
this.classList[this.curClassIndex].students = this.classList[this.curClassIndex].students.sort((a, b) => {
|
|
|
a.seatNo > b.seatNo
|
|
|
})
|
|
|
- for (let i = 0; i < maxCount; i++) {
|
|
|
- for (let j = 0; j < this.groupNum; j++) {
|
|
|
- let startIndex = this.groupNum * i
|
|
|
- if (startIndex + j < stuLen) {
|
|
|
- this.$set(this.classList[this.curClassIndex].students[startIndex + j], 'groupId', i + 1)
|
|
|
- this.$set(this.classList[this.curClassIndex].students[startIndex + j], 'groupName', (i + 1) + this.$t('cusMgt.groupUnit'))
|
|
|
- } else {
|
|
|
- break
|
|
|
- }
|
|
|
+ // for (let i = 0; i < maxCount; i++) {
|
|
|
+ // for (let j = 0; j < this.groupNum; j++) {
|
|
|
+ // let startIndex = this.groupNum * i
|
|
|
+ // if (startIndex + j < stuLen) {
|
|
|
+ // this.$set(this.classList[this.curClassIndex].students[startIndex + j], 'groupId', i + 1)
|
|
|
+ // this.$set(this.classList[this.curClassIndex].students[startIndex + j], 'groupName', (i + 1) + this.$t('cusMgt.groupUnit'))
|
|
|
+ // } else {
|
|
|
+ // break
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ for (let i = 0; i < this.groupNum; i++) {
|
|
|
+ let num = surplus == 0 ? maxCount : i < surplus ? maxCount : maxCount - 1 //每组实际人数
|
|
|
+ for (let j = 0; j < num; j++) {
|
|
|
+ let startIndex = i + (j * this.groupNum)
|
|
|
+ this.$set(this.classList[this.curClassIndex].students[startIndex], 'groupId', i + 1)
|
|
|
+ this.$set(this.classList[this.curClassIndex].students[startIndex], 'groupName', (i + 1) + this.$t('cusMgt.groupUnit'))
|
|
|
}
|
|
|
}
|
|
|
setTimeout(() => {
|
|
|
this.tableLoading = false
|
|
|
}, 500)
|
|
|
},
|
|
|
+ // 依座号分组
|
|
|
orderGroup() {
|
|
|
let stuLen = this.classList[this.curClassIndex].students.length
|
|
|
let surplus = stuLen % this.groupNum// 余数
|
|
@@ -429,6 +443,7 @@ export default {
|
|
|
this.tableLoading = false
|
|
|
}, 500)
|
|
|
},
|
|
|
+ // 随机分组
|
|
|
randomGroup() {
|
|
|
let stuLen = this.classList[this.curClassIndex].students.length
|
|
|
let surplus = stuLen % this.groupNum// 余数
|