This commit is contained in:
2024-08-12 16:06:27 +08:00
2 changed files with 232 additions and 102 deletions

View File

@@ -106,10 +106,11 @@
<el-form
:model="member"
ref="member"
:rules="memberRules"
label-width="100px"
class="demo-ruleForm"
>
<el-form-item label="班长" prop="monitor">
<el-form-item label="班长" prop="monitor" required>
<!-- <el-input v-model="miniClassForm.member.monitor"></el-input> -->
<el-select
class="userSelect"
@@ -131,7 +132,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="副班长" prop="dmonitor">
<el-form-item label="副班长" prop="dmonitor" required>
<el-select
class="userSelect"
v-model="member.dmonitor"
@@ -273,6 +274,13 @@ export default {
title: [{ required: true, message: "必填项", trigger: "blur" }],
number: [{ required: true, message: "请填入招收的学员人数", trigger: "blur" }],
},
memberRules:{
monitor: [{ required: true, message: "必填项", trigger: "blur" }],
dmonitor: [{ required: true, message: "必填项", trigger: "blur" }],
learner: [{ required: true, message: "必填项", trigger: "blur" }],
scorer: [{ required: true, message: "必填项", trigger: "blur" }],
counter: [{ required: true, message: "必填项", trigger: "blur" }]
},
remoteMethodLoading: false,
imageUrl: "",
miniClassForm: {
@@ -417,7 +425,15 @@ export default {
},
// 保存成员信息
saveMember() {
var url = ''
this.$refs["member"].validate(valid => {
if (valid) {
// var _myist = []
// var _Str = this.member.monitor+','+ this.member.dmonitor+','+this.member.learner
// _myist = _Str.split(',')
// _myist.push(...this.member.scorer)
// _myist.push(...this.member.counter)
// console.log('_Str',_myist,this.member.scorer,this.member.counter)
var url = ''
this.$http({
url: this.$http.adornUrl("/common/class/setUserRole"),
method: "post",
@@ -438,7 +454,7 @@ export default {
this.$message.error(data.msg);
}
})
}})
},
// 创建/编辑班级
saveAdd() {

View File

@@ -1,12 +1,16 @@
<template>
<div class="mod-config">
<div class="mod-config">
<el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
>
<el-form-item>
<el-input v-model="dataForm.title" placeholder="请输入小班名称" clearable>
<el-input
v-model="dataForm.title"
placeholder="请输入小班名称"
clearable
>
</el-input>
</el-form-item>
<el-form-item label="小班状态">
@@ -44,11 +48,11 @@
type="primary"
@click="showMiniClass()"
>新开小班</el-button
>
>
<!-- <el-button v-if="isAuth('book:user:delete')" type="danger" @click="deleteHandle()"
:disabled="dataListSelections.length <= 0">批量删除</el-button> -->
</el-form-item>
</el-form>
</el-form>
<el-table
:data="dataList"
border
@@ -62,22 +66,30 @@
label="小班名称"
>
</el-table-column>
<!-- <el-table-column
prop="createUser.tel"
<el-table-column
header-align="center"
align="center"
label="创建人"
>
</el-table-column> -->
<template slot-scope="scope" v-if="scope.row.createUser">
昵称
{{
scope.row.createUser.nickname != "" && scope.row.createUser.nickname != null && scope.row.createUser.nickname != 'null'
? scope.row.createUser.nickname
: "匿名用户"
}}<br />电话{{ scope.row.createUser.tel }}
</template>
</el-table-column>
<el-table-column
prop="avatar"
header-align="center"
align="center"
label="日期"
>
<template slot-scope="scope">
创建日期:{{scope.row.createTime}}<br/> 开班日期<br/>结班日期<br/>
创建日期:{{ scope.row.createTime }}<br />
开班日期<br />结班日期<br />
<!-- <img
v-if="scope.row.avatar && scope.row.avatar != ''"
:src="scope.row.avatar"
@@ -92,43 +104,39 @@
height="50"
class="tableImg"
/> -->
</template>
</template>
</el-table-column>
<el-table-column
prop="state"
header-align="center"
align="center"
label="班状态"
label="班状态"
>
<template slot-scope="scope">{{scope.row.state | getStatus}}</template>
<template slot-scope="scope">{{
scope.row.state | getStatus
}}</template>
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="150"
width="200"
label="操作"
>
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="showMiniClass(scope.row)"
<el-button type="text" size="small" @click="showMiniClass(scope.row)"
>修改</el-button
>
<!-- <el-button
type="text"
size="small"
@click="setMember(scope.row)"
>管理成员</el-button
> -->
<el-button type="text" size="small" @click="setStudent(scope.row)"
>学员管理</el-button
>
<el-button
type="text"
size="small"
@click="deleteHandle(scope.row.id)"
>删除</el-button
>
>
</template>
</el-table-column>
</el-table>
@@ -147,8 +155,47 @@
ref="miniClass"
v-if="miniClassVisible"
@handleClose="miniClassHandleClose"
:miniClass="miniClass"
:miniClass="miniClass"
></mini-class>
<!-- 学员管理 -->
<el-dialog
title="提示"
:visible.sync="setStudentVisible"
width="800px"
:close="setStudentClose"
>
<div>
<el-table :data="studentList">
<el-table-column
property="id"
label="学员id"
width="150"
></el-table-column>
<el-table-column
property="nickname"
label="学员名称"
width="150"
></el-table-column>
<el-table-column
property="vip"
label="学员身份"
width="200"
></el-table-column>
<el-table-column property="tel" label="手机号"></el-table-column>
<el-table-column property="" label="操作">
<template slot-scope="scope">
<el-button type="warning" @click="outClass(scope.row)"
>踢出班级</el-button
>
</template>
</el-table-column>
</el-table>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="setStudentClose"> </el-button>
</span>
</el-dialog>
</div>
</template>
@@ -157,41 +204,43 @@ import miniClass from "./miniClass.vue";
export default {
data() {
return {
setMemberVisible:false,
setStudentVisible: false,
setStudentVisible: false,
studentList: [], // 学员列表
dataForm: {
title: "",
type:'0',
state:'0'
},
type: "0",
state: "0"
},
// courseId: {},
course: null,
miniClass: undefined,
// showMiniClass:false,
options: [
{
value: '0',
{
value: "0",
label: "普通小班"
},
{
value: '1',
value: "1",
label: "联合班"
},
{
value: '2',
value: "2",
label: "精英班"
}
],
statusOptions : [
statusOptions: [
{
value: '0',
value: "0",
label: "待开班"
},
{
value: '1',
value: "1",
label: "已开班"
},
{
value: '2',
value: "2",
label: "已结班"
}
],
@@ -212,58 +261,129 @@ export default {
};
},
filters: {
getStatus: function (value) {
var _str = '454545'
switch (value) {
case '0':
_str = '待开班'
break;
case '1':
_str = '已开班'
break;
case '2':
_str = '已结班'
break;
getStatus: function(value) {
var _str = "454545";
switch (value) {
case "0":
_str = "待开班";
break;
case "1":
_str = "已开班";
break;
case "2":
_str = "已结班";
break;
}
return _str;
}
return _str
}
},
},
components: {
miniClass
},
created() {
// this.courseId = this.$route.query.courseId;
console.log("得到的课程id");
console.log("得到的课程id");
// this.getCourseInfo()
this.getDataList();
},
mounted(){
},
mounted() {
console.log("得到的课程id");
},
methods: {
setMemberClose(){
setStudentClose() {
this.miniClass = {};
this.setStudentVisible = false;
this.studentList = [];
},
// 管理人员设置
setMember(data){
// 获取班级详情
async getCLassInfo(id){
return new Promise(async(resolve, reject) => {
await this.$http({
url: this.$http.adornUrl("/common/class/getClassInfo"),
method: "post",
data: this.$http.adornData({
classId: id
})
})
.then(data => {
// console.log('得到了值')
resolve(data);
})
.catch(e => {
reject(e)
// this.$message.error("获取学员列表失败");
});
})
},
// 管理学员
async setStudent(data) {
this.miniClass = data;
var _classId = data.id;
var jieguo = await this.getCLassInfo(_classId)
// console.log('jieguo',jieguo.data.code)
if(jieguo.data.code == 0){
this.studentList = jieguo.data.result.students;
this.setStudentVisible = true;
}else{
this.$message.error("获取学员列表失败");
}
},
// 踢出班级
async outClass(row) {
let that = this;
this.$confirm(`确定将学员电话为:${row.tel}踢出班级?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.$http({
// url: this.$http.adornUrl('/book/user/list'),
url: this.$http.adornUrl("/common/class/quitClass"),
method: "post",
data: this.$http.adornData({
classId: that.miniClass.id,
userId: row.id
})
}).then(async ({ data }) => {
if (data && data.code === 0) {
this.$message({
type: "success",
message: "删除成功!"
});
var jieguo = await this.getCLassInfo(this.miniClass.id)
console.log('jieguo',jieguo.data.code)
if(jieguo.data.code == 0){
this.studentList = jieguo.data.result.students;
this.setStudentVisible = true;
}else{
this.$message.error("获取学员列表失败");
}
}
});
})
.catch(() => {
this.$message({
type: 'info',
message: '删除失败'
});
});
},
// 管理员小班管理
showMiniClass(data) {
// console.log('miniClass',data)
if(data){
this.miniClass = data
}
if (data) {
this.miniClass = data;
}
this.miniClassVisible = true;
},
// 关闭小班设置
miniClassHandleClose() {
this.miniClassVisible = false;
this.miniClass = undefined
this.getDataList()
},
this.miniClass = undefined;
this.getDataList();
},
// 获取数据列表
getDataList() {
this.dataListLoading = true;
@@ -309,42 +429,36 @@ export default {
// 删除
deleteHandle(id) {
var ids = id
// ? [id]
// : this.dataListSelections.map(item => {
// return item.id;
// });
this.$confirm(
`确定删除操作?`,
"提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}
).then(() => {
var ids = id;
this.$confirm(`确定删除操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.$http({
url: this.$http.adornUrl("/common/class/delClass"),
method: "post",
data: this.$http.adornData({
classId:ids
classId: ids
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
}
});
} else {
this.$message.error(data.msg);
}
}).catch(e => {
this.$message.error('删除失败');
});
})
.then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
}
});
} else {
this.$message.error(data.msg);
}
})
.catch(e => {
this.$message.error("删除失败");
});
});
}
}