Browse Source

feat(coach/class): 教练端班级详情页面添加课程计划列表

- 实现课程计划列表的展示和分页加载
- 添加下拉刷新功能
- 优化课程列表的数据显示和样式
- 实现课程状态的动态显示
master
liutong 12 months ago
parent
commit
46e5e526f5
  1. 208
      pages/coach/class/info.vue

208
pages/coach/class/info.vue

@ -107,30 +107,42 @@
</view>
<!--课程计划-->
<view class="section_5" v-if="tabType=='2'">
<scroll-view
v-if="tabType=='2'"
class="section_5"
scroll-y="true"
:lower-threshold="lowerThreshold"
@scrolltolower="loadMoreData"
style="height: 65vh;"
>
<view class="ul">
<view class="li" @click="openViewCourseInfo({id:1})">
<view
class="li"
v-for="(v,k) in courseList"
:key="l"
@click="openViewCourseInfo(v)"
>
<view class="top_box">
<view class="title">
课程篮球少儿课
课程{{v.courses_name}}
</view>
<view class="title">
时间2024-05-25 1520 - 1730
时间{{v.date}}
</view>
<view class="title">
地点xxx体育馆 302
地点{{v.address}}
</view>
</view>
<view class="bottom_box">
<view class="item">
<view class="left">应到学员34</view>
<view class="left">应到学员{{v.max_students}}</view>
<view class="right">
查看
<fui-icon size="35" color="#fff" name="arrowright"></fui-icon>
</view>
</view>
<view class="item">
<view class="left">已签到学生15/34</view>
<view class="left">已签到学生{{v.has_sign_count}}/{{v.max_students}}</view>
<view class="right">
查看
<fui-icon size="35" color="#fff" name="arrowright"></fui-icon>
@ -144,117 +156,20 @@
</view>
</view>
</view>
<view class="tag" style="background-color:#20CAAF;">
未开始
</view>
<!-- <view class="tag" style="background-color:#fad24e;">-->
<!-- 上课中-->
<!-- </view>-->
<!-- <view class="tag" style="background-color:#e2e2e2;">-->
<!-- 已结束-->
<!-- </view>-->
</view>
<view class="li" @click="openViewCourseInfo({id:1})">
<view class="top_box">
<view class="title">
课程篮球少儿课
</view>
<view class="title">
时间2024-05-25 1520 - 1730
</view>
<view class="title">
地点xxx体育馆 302
</view>
</view>
<view class="bottom_box">
<view class="item">
<view class="left">应到学员34</view>
<view class="right">
查看
<fui-icon size="35" color="#fff" name="arrowright"></fui-icon>
</view>
</view>
<view class="item">
<view class="left">已签到学生15/34</view>
<view class="right">
查看
<fui-icon size="35" color="#fff" name="arrowright"></fui-icon>
</view>
</view>
<view class="item">
<view class="left">作业完成率80%</view>
<view class="right">
查看
<fui-icon size="35" color="#fff" name="arrowright"></fui-icon>
</view>
</view>
<view class="tag" v-if="!(['1','2'].includes(String(v.status)))" style="background-color:#20CAAF;">
未开始
</view>
<view class="tag" style="background-color:#fad24e;">
<view class="tag" v-if="v.status == 1" style="background-color:#fad24e;">
上课中
</view>
<!-- <view class="tag" style="background-color:#e2e2e2;">-->
<!-- 已结束-->
<!-- </view>-->
</view>
<view class="li" @click="openViewCourseInfo({id:1})">
<view class="top_box">
<view class="title">
课程篮球少儿课
</view>
<view class="title">
时间2024-05-25 1520 - 1730
</view>
<view class="title">
地点xxx体育馆 302
</view>
</view>
<view class="bottom_box">
<view class="item">
<view class="left">应到学员34</view>
<view class="right">
查看
<fui-icon size="35" color="#fff" name="arrowright"></fui-icon>
</view>
</view>
<view class="item">
<view class="left">已签到学生15/34</view>
<view class="right">
查看
<fui-icon size="35" color="#fff" name="arrowright"></fui-icon>
</view>
</view>
<view class="item">
<view class="left">作业完成率80%</view>
<view class="right">
查看
<fui-icon size="35" color="#fff" name="arrowright"></fui-icon>
</view>
</view>
</view>
<!-- <view class="tag" style="background-color:#20CAAF;">-->
<!-- 未开始-->
<!-- </view>-->
<!-- <view class="tag" style="background-color:#fad24e;">-->
<!-- 上课中-->
<!-- </view>-->
<view class="tag" style="background-color:#e2e2e2;">
<view class="tag" v-if="v.status == 2" style="background-color:#e2e2e2;">
已结束
</view>
</view>
</view>
</view>
</scroll-view>
</view>
<!-- 底部导航-->
@ -274,11 +189,24 @@ export default {
data() {
return {
class_id:'',//id
courseInfoList:{},//
classInfo:{},//
classMemberList:{},//
tabType:'1',//1=,2=
loading: false,//
lowerThreshold: 100,//
isReachedBottom: false,//|true=|false=
//
filteredData: {
page: 1,//
limit: 10,//
total: 10,//
class_id: '',//id
},
courseList:[],//
}
},
onLoad(options) {
@ -287,13 +215,19 @@ export default {
onShow() {
this.init()
},
//
async onPullDownRefresh() {
//
await this.loadData()
await this.getCourseList()
},
methods: {
async init(){
// member/course_list//
// member/class_info//+
this.getClassInfo()//
// this.getCourseList()//
await this.getCourseList()//
},
@ -312,14 +246,48 @@ export default {
this.classMemberList = res.data.students_list
},
//()
loadMoreData() {
//
if (!this.isReachedBottom) {
this.isReachedBottom = true;//
this.getCourseList();
}
},
//
async loadData() {
this.isReachedBottom = false; // 便
this.filteredData.page = 1//
this.filteredData.limit = 10//
this.filteredData.total = 10//
},
//-
async getCourseList(){
let data = {
page:0,
limit:12,
class_id:this.class_id,
let data = {...this.filteredData}
data.class_id = this.class_id
console.log(12123,this.courseList)
if(data.page == 1){
this.courseList = []
}
//
if (this.filteredData.page * this.filteredData.limit > this.filteredData.total || this.filteredData.limit > this.filteredData.total) {
this.loading = false
uni.showToast({
title: '暂无更多',
icon: 'none'
})
return
}
let res = await memberApi.courseList(data)
this.loading = false
this.isReachedBottom = false;
if (res.code != 1) {
uni.showToast({
title: res.msg,
@ -327,8 +295,14 @@ export default {
})
return
}
this.courseInfo = res.data
console.log('获取课程列表',this.courseInfo)
this.courseList = this.courseList.concat(res.data.list.data)// 使 concat
this.filteredData.total = res.data.list.total
console.log('获取课程列表',this.courseList)
this.filteredData.page++
},

Loading…
Cancel
Save