Browse Source

feat(coach): 教练端课程详情页面动态加载课程信息- 使用课程 ID 动态获取课程详情

- 添加课程信息动态展示,包括班级、时间、地点等
- 实现签到情况和作业情况的动态加载
- 优化页面结构,提高可维护性和可扩展性
master
liutong 12 months ago
parent
commit
2cccafaf89
  1. 90
      pages/coach/course/info_list.vue

90
pages/coach/course/info_list.vue

@ -3,13 +3,23 @@
<view class="main_box"> <view class="main_box">
<view class="main_section"> <view class="main_section">
<view class="section_1"> <view class="section_1">
<view class="title">班级少年班</view> <view class="title">班级{{courseInfo.classes_name}}</view>
<view class="title">时间2025-05-25 15:30 - 17:30</view> <view class="title">时间{{courseInfo.date_time}} {{courseInfo.time_slot.replace(',', ' - ')}}</view>
<view class="title">地点xxx体育馆302室</view> <view class="title">地点{{courseInfo.address}}</view>
<view class="title">课程篮球少儿课</view> <view class="title">课程{{courseInfo.courses_name}}</view>
<view class="title">教练张全蛋</view> <view class="title">教练{{courseInfo.staff_name}}</view>
<view class="title">人数30</view> <view class="title">人数{{courseInfo.students_count}}</view>
<view class="tag" style="background-color: #FAD24E;">上课中</view>
<view
v-if="courseInfo.status == 1"
class="tag"
style="background-color: #FAD24E;">上课中
</view>
<view
v-if="courseInfo.status == 2"
class="tag"
style="background-color: #e2e2e2;">已结束
</view>
</view> </view>
<view class="section_2"> <view class="section_2">
@ -19,20 +29,8 @@
<!--签到情况--> <!--签到情况-->
<view class="section_3" v-if="tableType == 1"> <view class="section_3" v-if="tableType == 1">
<view class="item">
<view class="left">
<image class="pic" model="aspectFit" src="http://www.firstui.cn:4000/vipdoc/img/img_logo.png"></image>
<view class="box">
<view class="title">黄明明</view>
<view class="title">课程截止时间2025-05-25</view>
</view>
</view>
<view class="right">
<view class="tag">请假</view>
</view>
</view>
<view class="item"> <view class="item" v-for="(v,k) in courseInfo.sign_list" :key="k">
<view class="left"> <view class="left">
<image class="pic" model="aspectFit" src="http://www.firstui.cn:4000/vipdoc/img/img_logo.png"></image> <image class="pic" model="aspectFit" src="http://www.firstui.cn:4000/vipdoc/img/img_logo.png"></image>
<view class="box"> <view class="box">
@ -45,21 +43,6 @@
</view> </view>
</view> </view>
<view class="item">
<view class="left">
<image class="pic" model="aspectFit" src="http://www.firstui.cn:4000/vipdoc/img/img_logo.png"></image>
<view class="box">
<view class="title">黄明明</view>
<view class="title">课程截止时间2025-05-25</view>
</view>
</view>
<view class="right">
<view class="tag">请假</view>
</view>
</view>
</view> </view>
<!--作业情况--> <!--作业情况-->
@ -219,7 +202,7 @@
</template> </template>
<script> <script>
// import user from '@/api/user.js'; import memberApi from '@/api/member.js';
import AQTabber from "@/components/AQ/AQTabber.vue" import AQTabber from "@/components/AQ/AQTabber.vue"
@ -229,14 +212,47 @@ export default {
}, },
data() { data() {
return { return {
course_id: '',//id
courseInfo: {
sign_list: [],//
assignments: {
dpg_list: [], //
wtj_list: [], //
ypg_list: [] //
},
},//
tableType: 1,//1=2= tableType: 1,//1=2=
tableList_1:[],//1= tableList_1:[],//1=
tableList_2:[],//2= tableList_2:[],//2=
} }
}, },
onLoad() { onLoad(options) {
this.course_id = options.id
},
onShow(){
this.init()
}, },
methods: { methods: {
//
async init(){
this.getCourseInfo()
},
//-
async getCourseInfo(){
let res = await memberApi.courseInfo({id:this.course_id})
if(res.code != 1){
uni.showToast({
title: res.msg,
icon: 'none'
})
return
}
this.courseInfo = res.data
console.log('课程详情',this.courseInfo)
},
// //
switchTag(type) { switchTag(type) {
this.tableType = type this.tableType = type

Loading…
Cancel
Save