This commit is contained in:
@fawn-nine
2024-08-09 17:10:39 +08:00
parent c753ab18a3
commit 7c7c96f630
13 changed files with 1674 additions and 314 deletions

View File

@@ -17,68 +17,67 @@
</view>
<view class="welComeText">
<text> 班内职务{{getRoleName}} </text>
</view>
<!-- 功能按钮 -->
<view class="optionsBtn">
<view class="flex_box">
<view class="item setBanewei" v-if="isDirector" @click="onPageJump('/pages/miniClass/memberSet',thisClass.id)">
<text>设置班委</text>
</view>
<!-- 主任班长副班长修改班级 没开班的时候可以 -->
<view class="item editClass"
v-show="isDirector && thisClass.state == '0' ||
roleCode == 2 && thisClass.state == '0' ||
roleCode == 1 && thisClass.state == '0'
"
@click="onPageJump('/pages/miniClass/addClass',thisClass.id, classModel.type)">
<text>修改班级</text>
</view>
<!-- 主任、班长副班长可以开班或者结班 -->
<view class="item openClass" @click="changeClassStatu('1')"
v-if="thisClass.state == '0' && isMonitor ||
thisClass.state == '0' && roleCode == 1 ||
thisClass.state == '0' && roleCode == 2">
<text >开班</text>
</view>
<view class="item overClass" @click="changeClassStatu('2')"
v-if="thisClass.state == '1' && isMonitor ||
thisClass.state == '1' && roleCode == 1 ||
thisClass.state == '1' && roleCode == 2">
<text >结班</text>
</view>
<view class="item delClass" v-if="isDirector" @click="delClass()">
<text>删除班级</text>
</view>
</view>
</view>
<!-- 作业批改 -->
<view class="pingfenBox" v-if="isDirector || isMonitor">
<view class="pingfenBox" >
<!-- 功能按钮 -->
<view class="optionsBtn">
<view class="flex_box">
<view class="item setBanewei" v-if="thisClass.state != '2'" v-show="roleCode.includes('66') || roleCode.includes('1') || roleCode.includes('2')"
@click="goSetAdmin('/pages/miniClass/memberSet')">
<text>设置班委</text>
</view>
<!-- 主任班长副班长修改班级 没开班的时候可以 -->
<view class="item editClass" v-show="isDirector && thisClass.state == '0' ||
roleCode.includes('2') && thisClass.state == '0' ||
roleCode.includes('1') && thisClass.state == '0'
" @click="onPageJump('/pages/miniClass/addClass',thisClass.id, classModel.type)">
<text>修改班级</text>
</view>
<!-- 主任、班长副班长可以开班或者结班 -->
<view class="item openClass" @click="changeClassStatu('1')" v-if="thisClass.state == '0' && isMonitor ||
thisClass.state == '0' && roleCode.includes('1') ||
thisClass.state == '0' && roleCode.includes('2')">
<text>开班</text>
</view>
<view class="item overClass" @click="changeClassStatu('2')" v-if="thisClass.state == '1' && isMonitor ||
thisClass.state == '1' && roleCode.includes('1') ||
thisClass.state == '1' && roleCode.includes('2')">
<text>结班</text>
</view>
<view class="item delClass" v-if="isDirector" @click="delClass()">
<text>删除班级</text>
</view>
</view>
</view>
<!-- 作业批改 -->
<view class="flex_box">
<view class="item" @click="goAddHomeWork">
<view class="img">
<image src="../../static/icon/fabu.png" mode="widthFix"></image>
</view>
<text>发布</text>
</view>
<view class="item" @click="goPingfen('/pages/miniClass/taskList',thisClass.id, '0')">
<view class="img">
<image src="../../static/icon/pigai2.png" mode="widthFix"></image>
</view>
<text>作业</text>
</view>
<view class="item">
<view class="item" @click="goPingfen('/pages/miniClass/taskList',thisClass.id, '1')">
<view class="img">
<image src="../../static/icon/pigai1.png" mode="widthFix"></image>
</view>
<text>医案</text>
</view>
<view class="item">
<view class="item" @click="goXindeList('/pages/miniClass/xindeList')">
<view class="img">
<image src="../../static/icon/pigai3.png" mode="widthFix"></image>
</view>
<text>心得</text>
</view>
<view class="item">
<view class="img">
<image src="../../static/icon/biaoxianfen.png" mode="widthFix"></image>
</view>
<text>表现</text>
</view>
</view>
</view>
</view>
<view class="otherItems flex_box">
@@ -93,12 +92,13 @@
<view @click="onPageJump('/pages/miniClass/studentsInClass', thisClass.id, roleCode)">
<text class="ciyao">学员人数</text>
<view class="mainTxt flex_box">
<text class="">{{students.length}}/{{thisClass.number}}人 </text>
<uni-icons type="eye" size="20" color="#333"></uni-icons></view>
<text class="">{{students.length}}/{{thisClass.number}}人 </text>
<uni-icons type="eye" size="20" color="#333"></uni-icons>
</view>
</view>
<view><text class="ciyao">管理成员</text><text class="mainTxt" @click="seeManager">点击查看</text></view>
</view>
<!-- <view class="banjiJianjie" v-html="thisClass.content"></view> -->
<view class="mainBox">
<!-- 课程列表 -->
@@ -121,7 +121,7 @@
</view>
<view class="" v-show="courses.length == 0">
<u-divider text="暂无课程"></u-divider>
</view>
</view>
<uni-section class="mb-10 nobg" title="教学目标/班级简介" type="line"></uni-section>
<rich-text class="banjiJianjie" :nodes="formatRichText(thisClass.content)"></rich-text>
<!-- 班内问答 -->
@@ -164,15 +164,15 @@
</view>
</view>
</view>
</view>
</view>
<!-- 管理弹出 -->
<u-popup key="1" :show="showMan" :round="10" @close="closeManager">
<view class="guanli">
<h3>班内管理人员</h3>
<view class="item">
<text class="adminName">班长:</text>
<view class="personbox" v-if="admins.monitor.id">
<view class="personbox" v-if="admins.monitor.user != null && admins.monitor.id">
<text>{{admins.monitor.user.nickname != null && admins.monitor.user.nickname != '' ? admins.monitor.user.nickname : '匿名用户'}}</text>
<text v-if="admins.monitor.id">({{admins.monitor.user.tel}})</text>
</view>
@@ -180,14 +180,14 @@
</view>
<view class="item">
<text class="adminName">副班长:</text>
<view class="personbox" v-if="admins.dmonitor.id">
<view class="personbox" v-if="admins.dmonitor.user != null && admins.dmonitor.id">
<text>{{admins.dmonitor.user.nickname != null && admins.dmonitor.user.nickname != '' ? admins.dmonitor.user.nickname : '匿名用户'}}</text>
<text>({{admins.dmonitor.user.tel}})</text>
</view>
<text v-else>暂未设置</text>
</view>
<view class="item"><text class="adminName">学习委员:</text>
<view class="personbox" v-if="admins.learner.id">
<view class="personbox" v-if="admins.learner.user != null && admins.learner.id">
<text>{{admins.learner.user.nickname != null && admins.learner.user.nickname != '' ? admins.learner.user.nickname : '匿名用户'}}</text>
<text>({{admins.learner.user.tel}})</text>
</view>
@@ -196,27 +196,31 @@
<view class="item arryItem"><text class="adminName">记分员:</text>
<template v-if="admins.counter.length > 0">
<view class="arryItemSub" v-for="(item,index) in admins.counter" :key="index">
<text>{{item.user.nickname != null && item.user.nickname != '' ? item.user.nickname : '匿名用户'}}</text>
<text>({{item.user.tel}}) </text>
<template v-if="item.user != null">
<text>{{item.user.nickname != null && item.user.nickname != '' ? item.user.nickname : '匿名用户'}}</text>
<text>({{item.user.tel}}) </text>
</template>
</view>
</template>
<text v-else>暂未设置</text>
</view>
<view class="item arryItem"><text class="adminName">评分员:</text>
<view class="item arryItem"><text class="adminName">评分员:</text>
<template v-if="admins.scorer.length > 0">
<view class="arryItemSub" v-for="(item,index) in admins.scorer" :key="index">
<text>{{item.user.nickname != null && item.user.nickname != '' ? item.user.nickname : '匿名用户'}}</text>
<text>({{item.user.tel}}) </text>
<template v-if="item.user != null">
<text>{{item.user.nickname != null && item.user.nickname != '' ? item.user.nickname : '匿名用户'}}</text>
<text>({{item.user.tel}}) </text>
</template>
</view>
</template>
<text v-else>暂未设置</text>
</view>
</view>
</u-popup>
<view class="fabBox" >
<!-- <view class="fabBox">
<uni-fab ref="fab" :pattern="pattern" :content="fabContent" :horizontal="horizontal" :vertical="vertical"
:direction="direction" @trigger="fabTrigger" @fabClick="fabClick" />
</view>
</view> -->
</view>
</template>
@@ -315,19 +319,32 @@
tijiaoTitleId: '0',
taskList: [], // 任务列表
taskHaveMore: false, // 是否还有更多
roleCode: undefined,
roleCode: [], // 角色数组
interval:null,
}
},
onLoad(e) {
uni.hideTabBar();
this.classId = e.id
this.getUserInfo()
},
this.interval = setInterval(() => {
if(this.thisClass.id){
uni.showLoading({
title:'加载中'
})
this.getUserInfo()
clearInterval(this.interval)
console.log('定时清了吗');
}
},500)
},
onPullDownRefresh() {
this.getClassInfo()
uni.stopPullDownRefresh()
},
beforeDestroy() {
clearInterval(this.interval)
},
onBackPress() {
if (this.$refs.fab.isShow) {
this.$refs.fab.close()
@@ -337,37 +354,44 @@
},
onShow() {
this.getClassInfo()
},
computed: {
...mapState(["userInfo"]),
getRoleName() {
getRoleName() {
console.log('执行一次');
var _roleName = ''
switch (this.roleCode) {
case '66':
_roleName = '主任';
break;
case '0':
_roleName = '学员';
break;
case '1':
_roleName = '班长';
break;
case '2':
_roleName = '副班长';
break;
case '3':
_roleName = '学习委员';
break;
case '4':
_roleName = '评分员';
break;
case '5':
_roleName = '记分员';
break;
}
// var _code = ''
this.roleCode.forEach(item => {
switch (item) {
case '66':
_roleName += '主任';
break;
case '0':
_roleName += ' 学员';
break;
case '1':
_roleName += ' 班长';
break;
case '2':
_roleName += ' 副班长';
break;
case '3':
_roleName += ' 学习委员';
break;
case '4':
_roleName += ' 评分员';
break;
case '5':
_roleName += ' 记分员';
break;
}
})
return _roleName
},
getClassStatus(){
getClassStatus() {
var _roleName = ''
switch (this.thisClass.state) {
case '0':
@@ -378,14 +402,28 @@
break;
case '2':
_roleName = '已结班';
break;
break;
}
return _roleName
}
},
methods: {
goAddHomeWork(){
uni.navigateTo({
url: `/pages/miniClass/addHomeWork?classId=${this.thisClass.id}`
})
},
goXindeList(url){
uni.navigateTo({
url:`${url}?classId=${this.thisClass.id}&type=2&roleCode=${this.roleCode}`
})
},
// 获取真实的身份信息
getRealRole() {
console.log('this.thisClass.id', this.thisClass.id);
$http.request({
url: "common/class/getUserRole",
method: "POST",
@@ -397,8 +435,20 @@
},
})
.then((res) => {
console.log('res获取身份信息', res);
uni.hideLoading()
// console.log('res获取身份信息', res);
var _list = []
if (res.result.length > 0) {
_list = res.result
_list = _list.map(item => {
return item.role
})
console.log('——list', _list)
}
this.roleCode = this.roleCode.concat(_list)
}).catch(e => {
uni.hideLoading()
this.roleCode = []
uni.showToast({
title: '获取身份信息失败',
icon: 'error'
@@ -407,7 +457,7 @@
},
goPingfen(url, classId, type) {
uni.navigateTo({
url: `${url}?classId=${classId}&type=${type}`
url: `${url}?classId=${classId}&type=${type}&roleCode=${this.roleCode}`
})
},
// 点击作业或者医案,进入详细介绍
@@ -484,17 +534,19 @@
icon: 'error'
})
});
},
},
getUserInfo() {
// 获取个人信息
// 获取个人信息
if (this.userInfo.id != undefined) {
this.$http.post("common/user/getUserInfo").then((res) => {
this.userMes = res.result;
this.isMonitor = res.isMonitor
this.isDirector = res.isDirector
if (this.isDirector) {
this.roleCode = '66'
} else if (this.isMonitor) {
this.roleCode.push('66')
}
if (this.isMonitor) {
console.log('确定具体的职位是什么');
this.getRealRole()
} else {
@@ -507,9 +559,14 @@
});
}
},
goSetAdmin(url){
uni.navigateTo({
url: `${url}?id=${this.thisClass.id}&roleCode=${this.roleCode}`
});
},
// 跳转
onPageJump(url, id, modeType) {
console.log('type',modeType);
console.log('type', modeType);
uni.navigateTo({
url: `${url}?id=${id}&type=${modeType}`
});
@@ -555,7 +612,7 @@
);
return newContent;
},
// 显示班级成员
seeManager() {
this.showMan = true
@@ -735,11 +792,11 @@
if (item.role == '3') {
this.admins.learner = item
}
if (item.role == '4') {
if (item.role == '4' && item.user != null) {
// console.log('this.admins.counter',this.admins.counter);
this.admins.scorer.push(item)
}
if (item.role == '5') {
if (item.role == '5' && item.user != null) {
// console.log('this.admins.counter',this.admins.counter);
this.admins.counter.push(item)
}
@@ -750,8 +807,7 @@
this.classModel = res.result.classModel
this.courses = res.result.courses
this.students = res.result.students
this.refresh = true
this.refresh = true
}
uni.hideLoading()
}).catch(e => {
@@ -776,7 +832,8 @@
}
.welComeText {
// padding: 6rpx 4rpx;
padding:20rpx 0;
color: #e58d44;
}
@@ -798,20 +855,67 @@
color: #fff;
font-weight: normal;
}
.optionsBtn{ margin: 20rpx 0;
.flex_box{justify-content: space-between;}
.item{margin-right: 20rpx; width: 100%; text-align: center; color: #fff; padding: 20rpx 0; border-radius: 6rpx;}
.delClass{background-color: #ffa4a6;}
.openClass{background-color: #67c23a;}
.overClass{background-color: #258feb;}
.editClass{background-color: #258feb;}
.setBanewei{background-color: #e7b772;}
.optionsBtn {
margin-bottom: 30rpx;
border-bottom: 1px solid #eee; padding-bottom: 30rpx;
margin-top: 20rpx;
.flex_box {
justify-content: space-between;
}
.item {
margin-right: 20rpx;
width: 100%;
text-align: center;
color: #fff;
padding: 20rpx 0;
border-radius: 6rpx;
text{padding-top: 0 !important;}
}
.item:last-child{
margin-right: 0 !important;
}
.delClass {
background-color: #ffa4a6;
}
.openClass {
background-color: #67c23a;
}
.overClass {
background-color: #258feb;
}
.editClass {
background-color: #258feb;
}
.setBanewei {
background-color: #e7b772;
}
}
.classStatus{padding: 10rpx; color: #fff; text-align: right;}
.daikai{background-image: linear-gradient(-90deg, #258feb 0%, rgba(255, 255, 255, 0.1) 80%, rgba(255, 255, 255, 0) 100% );}
.xuexizhong{background-image: linear-gradient(-90deg, #55aa00 0%, rgba(255, 255, 255, 0.1) 80%, rgba(255, 255, 255, 0) 100% );}
.yijieban{background-image: linear-gradient(-90deg, #999 0%, rgba(255, 255, 255, 0.1) 80%, rgba(255, 255, 255, 0) 100% );}
.classStatus {
padding: 10rpx;
color: #fff;
text-align: right;
}
.daikai {
background-image: linear-gradient(-90deg, #258feb 0%, rgba(255, 255, 255, 0.1) 80%, rgba(255, 255, 255, 0) 100%);
}
.xuexizhong {
background-image: linear-gradient(-90deg, #55aa00 0%, rgba(255, 255, 255, 0.1) 80%, rgba(255, 255, 255, 0) 100%);
}
.yijieban {
background-image: linear-gradient(-90deg, #999 0%, rgba(255, 255, 255, 0.1) 80%, rgba(255, 255, 255, 0) 100%);
}
.courseBuyOrNo {
font-size: 28rpx;
border-top: 1px solid #eee;
@@ -893,7 +997,7 @@
color: $themeColor;
}
}
.submitRecode {
// padding: 20rpx;