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>
<!--课程计划--> <!--课程计划-->
<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="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="top_box">
<view class="title"> <view class="title">
课程篮球少儿课 课程{{v.courses_name}}
</view> </view>
<view class="title"> <view class="title">
时间2024-05-25 1520 - 1730 时间{{v.date}}
</view> </view>
<view class="title"> <view class="title">
地点xxx体育馆 302 地点{{v.address}}
</view> </view>
</view> </view>
<view class="bottom_box"> <view class="bottom_box">
<view class="item"> <view class="item">
<view class="left">应到学员34</view> <view class="left">应到学员{{v.max_students}}</view>
<view class="right"> <view class="right">
查看 查看
<fui-icon size="35" color="#fff" name="arrowright"></fui-icon> <fui-icon size="35" color="#fff" name="arrowright"></fui-icon>
</view> </view>
</view> </view>
<view class="item"> <view class="item">
<view class="left">已签到学生15/34</view> <view class="left">已签到学生{{v.has_sign_count}}/{{v.max_students}}</view>
<view class="right"> <view class="right">
查看 查看
<fui-icon size="35" color="#fff" name="arrowright"></fui-icon> <fui-icon size="35" color="#fff" name="arrowright"></fui-icon>
@ -144,117 +156,20 @@
</view> </view>
</view> </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="tag" v-if="!(['1','2'].includes(String(v.status)))" style="background-color:#20CAAF;">
<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>
<view class="tag" v-if="v.status == 1" style="background-color:#fad24e;">
<view class="tag" style="background-color:#fad24e;">
上课中 上课中
</view> </view>
<!-- <view class="tag" style="background-color:#e2e2e2;">--> <view class="tag" v-if="v.status == 2" 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> </view>
</view>
</view> </view>
</view> </view>
</scroll-view>
</view> </view>
<!-- 底部导航--> <!-- 底部导航-->
@ -274,11 +189,24 @@ export default {
data() { data() {
return { return {
class_id:'',//id class_id:'',//id
courseInfoList:{},//
classInfo:{},// classInfo:{},//
classMemberList:{},// classMemberList:{},//
tabType:'1',//1=,2= 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) { onLoad(options) {
@ -287,13 +215,19 @@ export default {
onShow() { onShow() {
this.init() this.init()
}, },
//
async onPullDownRefresh() {
//
await this.loadData()
await this.getCourseList()
},
methods: { methods: {
async init(){ async init(){
// member/course_list// // member/course_list//
// member/class_info//+ // member/class_info//+
this.getClassInfo()// this.getClassInfo()//
// this.getCourseList()// await this.getCourseList()//
}, },
@ -312,14 +246,48 @@ export default {
this.classMemberList = res.data.students_list 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(){ async getCourseList(){
let data = {
page:0, let data = {...this.filteredData}
limit:12, data.class_id = this.class_id
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) let res = await memberApi.courseList(data)
this.loading = false
this.isReachedBottom = false;
if (res.code != 1) { if (res.code != 1) {
uni.showToast({ uni.showToast({
title: res.msg, title: res.msg,
@ -327,8 +295,14 @@ export default {
}) })
return 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