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 <el-form
:model="member" :model="member"
ref="member" ref="member"
:rules="memberRules"
label-width="100px" label-width="100px"
class="demo-ruleForm" 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-input v-model="miniClassForm.member.monitor"></el-input> -->
<el-select <el-select
class="userSelect" class="userSelect"
@@ -131,7 +132,7 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="副班长" prop="dmonitor"> <el-form-item label="副班长" prop="dmonitor" required>
<el-select <el-select
class="userSelect" class="userSelect"
v-model="member.dmonitor" v-model="member.dmonitor"
@@ -273,6 +274,13 @@ export default {
title: [{ required: true, message: "必填项", trigger: "blur" }], title: [{ required: true, message: "必填项", trigger: "blur" }],
number: [{ 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, remoteMethodLoading: false,
imageUrl: "", imageUrl: "",
miniClassForm: { miniClassForm: {
@@ -417,6 +425,14 @@ export default {
}, },
// 保存成员信息 // 保存成员信息
saveMember() { saveMember() {
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 = '' var url = ''
this.$http({ this.$http({
url: this.$http.adornUrl("/common/class/setUserRole"), url: this.$http.adornUrl("/common/class/setUserRole"),
@@ -438,7 +454,7 @@ export default {
this.$message.error(data.msg); this.$message.error(data.msg);
} }
}) })
}})
}, },
// 创建/编辑班级 // 创建/编辑班级
saveAdd() { saveAdd() {

View File

@@ -6,7 +6,11 @@
@keyup.enter.native="getDataList()" @keyup.enter.native="getDataList()"
> >
<el-form-item> <el-form-item>
<el-input v-model="dataForm.title" placeholder="请输入小班名称" clearable> <el-input
v-model="dataForm.title"
placeholder="请输入小班名称"
clearable
>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="小班状态"> <el-form-item label="小班状态">
@@ -62,22 +66,30 @@
label="小班名称" label="小班名称"
> >
</el-table-column> </el-table-column>
<!-- <el-table-column <el-table-column
prop="createUser.tel"
header-align="center" header-align="center"
align="center" align="center"
label="创建人" 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 <el-table-column
prop="avatar" prop="avatar"
header-align="center" header-align="center"
align="center" align="center"
label="日期" label="日期"
> >
<template slot-scope="scope"> <template slot-scope="scope">
创建日期:{{scope.row.createTime}}<br/> 开班日期<br/>结班日期<br/> 创建日期:{{ scope.row.createTime }}<br />
开班日期<br />结班日期<br />
<!-- <img <!-- <img
v-if="scope.row.avatar && scope.row.avatar != ''" v-if="scope.row.avatar && scope.row.avatar != ''"
:src="scope.row.avatar" :src="scope.row.avatar"
@@ -98,31 +110,27 @@
prop="state" prop="state"
header-align="center" header-align="center"
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>
<el-table-column <el-table-column
fixed="right" fixed="right"
header-align="center" header-align="center"
align="center" align="center"
width="150" width="200"
label="操作" label="操作"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button type="text" size="small" @click="showMiniClass(scope.row)"
type="text"
size="small"
@click="showMiniClass(scope.row)"
>修改</el-button >修改</el-button
> >
<!-- <el-button <el-button type="text" size="small" @click="setStudent(scope.row)"
type="text" >学员管理</el-button
size="small" >
@click="setMember(scope.row)"
>管理成员</el-button
> -->
<el-button <el-button
type="text" type="text"
size="small" size="small"
@@ -149,6 +157,45 @@
@handleClose="miniClassHandleClose" @handleClose="miniClassHandleClose"
:miniClass="miniClass" :miniClass="miniClass"
></mini-class> ></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> </div>
</template> </template>
@@ -157,11 +204,13 @@ import miniClass from "./miniClass.vue";
export default { export default {
data() { data() {
return { return {
setMemberVisible:false, setStudentVisible: false,
setStudentVisible: false,
studentList: [], // 学员列表
dataForm: { dataForm: {
title: "", title: "",
type:'0', type: "0",
state:'0' state: "0"
}, },
// courseId: {}, // courseId: {},
course: null, course: null,
@@ -169,29 +218,29 @@ export default {
// showMiniClass:false, // showMiniClass:false,
options: [ options: [
{ {
value: '0', value: "0",
label: "普通小班" label: "普通小班"
}, },
{ {
value: '1', value: "1",
label: "联合班" label: "联合班"
}, },
{ {
value: '2', value: "2",
label: "精英班" label: "精英班"
} }
], ],
statusOptions : [ statusOptions: [
{ {
value: '0', value: "0",
label: "待开班" label: "待开班"
}, },
{ {
value: '1', value: "1",
label: "已开班" label: "已开班"
}, },
{ {
value: '2', value: "2",
label: "已结班" label: "已结班"
} }
], ],
@@ -212,22 +261,22 @@ export default {
}; };
}, },
filters: { filters: {
getStatus: function (value) { getStatus: function(value) {
var _str = '454545' var _str = "454545";
switch (value) { switch (value) {
case '0': case "0":
_str = '待开班' _str = "待开班";
break; break;
case '1': case "1":
_str = '已开班' _str = "已开班";
break; break;
case '2': case "2":
_str = '已结班' _str = "已结班";
break; break;
} }
return _str return _str;
} }
}, },
components: { components: {
miniClass miniClass
}, },
@@ -236,33 +285,104 @@ export default {
console.log("得到的课程id"); console.log("得到的课程id");
// this.getCourseInfo() // this.getCourseInfo()
this.getDataList(); this.getDataList();
}, },
mounted(){ mounted() {
console.log("得到的课程id"); console.log("得到的课程id");
}, },
methods: { 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) { showMiniClass(data) {
// console.log('miniClass',data) // console.log('miniClass',data)
if(data){ if (data) {
this.miniClass = data this.miniClass = data;
} }
this.miniClassVisible = true; this.miniClassVisible = true;
}, },
// 关闭小班设置 // 关闭小班设置
miniClassHandleClose() { miniClassHandleClose() {
this.miniClassVisible = false; this.miniClassVisible = false;
this.miniClass = undefined this.miniClass = undefined;
this.getDataList() this.getDataList();
}, },
// 获取数据列表 // 获取数据列表
getDataList() { getDataList() {
@@ -309,27 +429,20 @@ export default {
// 删除 // 删除
deleteHandle(id) { deleteHandle(id) {
var ids = id var ids = id;
// ? [id] this.$confirm(`确定删除操作?`, "提示", {
// : this.dataListSelections.map(item => {
// return item.id;
// });
this.$confirm(
`确定删除操作?`,
"提示",
{
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning" type: "warning"
} }).then(() => {
).then(() => {
this.$http({ this.$http({
url: this.$http.adornUrl("/common/class/delClass"), url: this.$http.adornUrl("/common/class/delClass"),
method: "post", method: "post",
data: this.$http.adornData({ data: this.$http.adornData({
classId:ids classId: ids
}) })
}).then(({ data }) => { })
.then(({ data }) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.$message({ this.$message({
message: "操作成功", message: "操作成功",
@@ -342,8 +455,9 @@ export default {
} else { } else {
this.$message.error(data.msg); this.$message.error(data.msg);
} }
}).catch(e => { })
this.$message.error('删除失败'); .catch(e => {
this.$message.error("删除失败");
}); });
}); });
} }