This commit is contained in:
@fawn-nine
2024-08-21 17:24:11 +08:00
parent 1179b63ae0
commit d549954559
16 changed files with 1826 additions and 351 deletions

View File

@@ -22,7 +22,7 @@
<view class="888">
<view class="newBox" v-if="preClassList.length > 0">
<view class="item flexbox" v-for="(item, index) in preClassList" :key="index"
@click="onPageJump('/pages/miniClass/classList',item.id)">
@click="onPageJump('/pages/miniClass/classInfoMan',item)">
<!-- <view class="imgcontainer" :style="{backgroundImage:surl(item.image)}"> -->
<view class="imgcontainer" v-if="item.icon != ''">
<image :src="item.icon" mode="aspectFit"></image>
@@ -35,15 +35,16 @@
<text v-show="item.classModel.type == 0">普通班</text>
<text v-show="item.classModel.type == 1">联合班</text>
<text v-show="item.classModel.type == 2">精英班</text>
<text class="txt555" @click="onPageJump('/pages/miniClass/classList',item.id)">
<text class="txt555" @click="onPageJump('/pages/miniClass/classInfoMan',item)">
{{item.title}}
</text>
</view>
<view class="jianjie">
目标学员人数{{item.number}}
</view>
<!-- <view class="jianjie" v-html="item.content">
</view> -->
<view class="jianjie">
班内职务{{item.roleName}}
</view>
<view class="btn_box">
<!-- <text @click="enterClass" v-show="item.state == '0'">一键加入</text> -->
<text class="seeInfo">进入班级</text>
@@ -58,7 +59,7 @@
<view class="learnBox box">
<view class="newBox" v-if="learningClassList.length > 0">
<view class="item flexbox" v-for="(item, index) in learningClassList" :key="index"
@click="onPageJump('/pages/miniClass/classList',item.id)">
@click="onPageJump('/pages/miniClass/classInfoMan',item)">
<!-- <view class="imgcontainer" :style="{backgroundImage:surl(item.image)}"> -->
<view class="imgcontainer" v-if="item.icon != ''">
<image :src="item.icon" mode="aspectFit"></image>
@@ -71,15 +72,16 @@
<text v-show="item.classModel.type == 0">普通班</text>
<text v-show="item.classModel.type == 1">联合班</text>
<text v-show="item.classModel.type == 2">精英班</text>
<text class="txt555" @click="onPageJump('/pages/miniClass/classList',item.id)">
<text class="txt555" @click="onPageJump('/pages/miniClass/classInfoMan',item)">
{{item.title}}
</text>
</view>
<view class="jianjie">
目标学员人数{{item.number}}
</view>
<!-- <view class="jianjie" v-html="item.content">
</view> -->
<view class="jianjie">
班内职务{{item.roleName}}
</view>
<view class="btn_box">
<!-- <text @click="enterClass" v-show="item.state == '0'">一键加入</text> -->
<text class="seeInfo">进入班级</text>
@@ -98,7 +100,7 @@
<view class="learnBox box">
<view class="newBox" v-if="classList.length > 0">
<view class="item flexbox" v-for="(item, index) in classList" :key="index"
@click="onPageJump('/pages/miniClass/classList',item.id)">
@click="onPageJump('/pages/miniClass/classInfoMan',item)">
<!-- <view class="imgcontainer" :style="{backgroundImage:surl(item.image)}"> -->
<view class="imgcontainer" v-if="item.icon != ''">
<image :src="item.icon" mode="aspectFit"></image>
@@ -111,15 +113,16 @@
<text v-show="item.classModel.type == 0">普通班</text>
<text v-show="item.classModel.type == 1">联合班</text>
<text v-show="item.classModel.type == 2">精英班</text>
<text class="txt555" @click="onPageJump('/pages/miniClass/classList',item.id)">
<text class="txt555" @click="onPageJump('/pages/miniClass/classInfoMan',item)">
{{item.title}}
</text>
</view>
<view class="jianjie">
目标学员人数{{item.number}}
</view>
<view class="jianjie">
班内职务{{item.roleName}}
</view>
<!-- <view class="jianjie" v-html="item.content">
</view> -->
<view class="btn_box">
<!-- <text @click="enterClass" v-show="item.state == '0'">一键加入</text> -->
<text class="seeInfo">进入班级</text>
@@ -227,7 +230,8 @@
status: 3, // 0 不显示, 1 加载中2 加载全部完成3 暂无数据
page: 1,
flag: true, // 函数是否执行完
roleObj:{},
roleCode:undefined
};
},
//第一次加载
@@ -240,6 +244,7 @@
this.pageTitle = e.title
this.pid = e.pid
console.log(e, '传入分类id')
this.getUserRole()
// this.getData()
// this.getCateList(this.tagId)
},
@@ -274,13 +279,15 @@
async onShow() {
// 隐藏原生的tabbar
// uni.hideTabBar();
this.roleCode = await this.getUserRole()
// console.log('this.roleCode----',this.roleCode);
this.classList = await this.getData('1','2')
this.learningClassList = await this.getData('1','1')
this.preClassList = await this.getData('1','0')
// this.getLearingClassList()
},
components: {
musicPlay
// musicPlay
},
//方法
methods: {
@@ -296,86 +303,30 @@
},
surl(imageurl) {
return `url(${imageurl})`
},
// 待开班
getPreClassList() {
uni.showLoading({
title: "加载中"
},
async getUserRole(){
var code = undefined
await this.$http.post("common/class/getRoleType").then( (res) => {
this.roleObj = res.result
if(this.roleObj.isMonitor){
code = '1'
return
}else if(this.roleObj.isdMonitor){
code = '2'
return
}else if(this.roleObj.isLearn){
code = '3'
return
}else if(this.roleObj.isComment){
code = '4'
return
}else if(this.roleObj.isCount){
code = '5'
return
}
})
$http.request({
url: "common/class/MyClassList",
method: "POST", // POST、GET、PUT、DELETE具体说明查看官方文档
data: {
"role": "1",
"state": '0', //小班状态0待开班1已开班2完成
"type": '' // 班类型 0小班 1联合班 2精英班
},
header: { //默认 无 说明:请求头
'Content-Type': 'application/json'
},
})
.then(res => {
if (res.code == 0) {
if (res.result.length > 0) {
this.preClassList = res.result
} else {
this.preClassList = []
}
}
// uni.hideLoading()
this.getData()
}).catch(e => {
// uni.hideLoading()
// this.getData()
console.log(e, '数据报错')
// this.status = 3
uni.showToast({
title: `获取数据失败`,
icon: 'error'
})
});
},
// 学习中
getLearingClassList() {
uni.showLoading({
title: "加载中"
})
$http.request({
url: "common/class/MyClassList",
method: "POST", // POST、GET、PUT、DELETE具体说明查看官方文档
data: {
"role": "1",
"state": '1', //小班状态0待开班1已开班2完成
"type": '' // 班类型 0小班 1联合班 2精英班
},
header: { //默认 无 说明:请求头
'Content-Type': 'application/json'
},
})
.then(res => {
if (res.code == 0) {
if (res.result.length > 0) {
this.learningClassList = res.result
} else {
this.learningClassList = []
}
}
this.getPreClassList()
uni.hideLoading()
}).catch(e => {
uni.hideLoading()
this.getPreClassList()
console.log(e, '数据报错')
// this.status = 3
uni.showToast({
title: `获取数据失败`,
icon: 'error'
})
});
},
return code
},
goCreateClass() {
console.log('this.addType', this.addType);
if (this.addType != undefined) {
@@ -419,7 +370,7 @@
url: "common/class/MyClassList",
method: "POST", // POST、GET、PUT、DELETE具体说明查看官方文档
data: {
"role": role,
"isCommittee": role,
"state": state, //小班状态0待开班1已开班2完成
"type": '' // 班类型 0小班 1联合班 2精英班
},
@@ -427,10 +378,24 @@
'Content-Type': 'application/json'
},
})
.then(res => {
.then( async res => {
if (res.code == 0) {
if (res.result.length > 0) {
// this.classList = res.result
res.result.forEach(async item => {
item.roleName = ''
item.roleCode = []
if(item.role.length > 0){
var _roleList = item.role
_roleList = _roleList.map( item => {
return item.role
})
item.roleCode = _roleList
item.roleName = await this.getRoleName(_roleList)
console.log('res.result.roleName',res.result.roleName);
}
})
_list = res.result
} else {
// this.classList = []
@@ -452,19 +417,63 @@
});
return _list
},
async getRoleName(list) {
var _roleName = ''
// var _code = ''
await list.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
},
// 跳转
async onPageJump(url, id, have) {
var isStudent = await this.getRealRole(id)
console.log('isStudent',isStudent);
if(isStudent){
uni.navigateTo({
url:`/pages/miniClass/classInfo?id=${id}`
})
}else{
async onPageJump(url, val) {
// var isStudent = await this.getRealRole(id)
var _url = ''
console.log('item---',val);
var nn = 0
if(val.roleCode.length > 0){
val.roleCode.forEach(item=>{
if(item == '主任' || item == '副主任' || item == '1' || item == '2' ){
console.log('符合主任',url);
nn++
}
})
}
console.log('符合主任', _url);
if(nn > 0){
_url = url
}else{
_url = "/pages/miniClass/classInfoWork"
}
uni.navigateTo({
url: `${url}?id=${id}&have=${have}`
url: `${_url}?id=${val.id}`
});
}
},
// 获取真实的身份信息
async getRealRole(id) {
@@ -617,12 +626,12 @@
.jianjie {
line-height: 30rpx;
height: 60rpx;
margin-bottom: 10rpx;
overflow: hidden;
overflow: hidden !important;
margin-top: 10rpx;
font-size: 24rpx;
@include bov();
// @include bov();
color: #9c9c9c;
}