Browse Source

feat(member): 添加课程详情功能并优化课表页面

- 在 member.js 中新增 courseInfo 方法获取课程详情
- 修改 timetable/index.vue 中的课程列表展示和点击事件- 更新 timetable/info.vue 中的课程详情展示逻辑
- 优化课程详情页面样式
master
liutong 1 year ago
parent
commit
ac44f4446b
  1. 11
      api/member.js
  2. 9
      pages/student/timetable/index.vue
  3. 44
      pages/student/timetable/info.vue

11
api/member.js

@ -58,4 +58,15 @@ export default {
return res;
})
},
//课程详情
courseInfo(data) {
let url = '/member/course_info'
return http.get(url, data).then(res => {
return res;
})
},
}

9
pages/student/timetable/index.vue

@ -37,7 +37,7 @@
style="height: 100vh;"
>
<view class="ul">
<view v-for="(v,k) in tableList" :key="k" class="li" @click="openViewCourseInfo({id:v.id})">
<view v-for="(v,k) in tableList" :key="k" class="li" @click="openViewCourseInfo(v)">
<view class="top_box">
<view class="center_box">
<view>班级{{v.classes_name}}</view>
@ -136,7 +136,6 @@ export default {
await this.getThisDate()
await this.getHeadDate()
await this.getList()
// await this.getDateList(); //
},
//
@ -241,12 +240,10 @@ export default {
},
//
openViewTimetableInfo(item){
// courses_id=id
openViewCourseInfo(item) {
uni.navigateTo({
url: `/pages/student/timetable/info?id=${item.courses_id}`
url: `/pages/student/timetable/info?id=${item.id}`
})
},
//

44
pages/student/timetable/info.vue

@ -3,49 +3,46 @@
<view class="main_box">
<view class="main_section">
<view class="section_1">
<view class="title_box">青少儿篮球课</view>
<view class="title_box">{{infoData.courses_name}}</view>
<view class="ul">
<view class="li">
<view class="title">课程名称</view>
<view class="content">青少年篮球课</view>
<view class="content">{{infoData.courses_name}}</view>
</view>
<view class="li">
<view class="title">班级</view>
<view class="content">班级名称</view>
<view class="content">{{infoData.classes_name}}</view>
</view>
<view class="li">
<view class="title">上课时间</view>
<view class="content">2020.03.25 15:30-17:00</view>
<view class="content">{{infoData.date_time}} {{infoData.time_slot.replace(',', '-')}}</view>
</view>
<view class="li">
<view class="title">上课地址</view>
<view class="content">xxxx体育馆302室</view>
<view class="content">{{infoData.address}}</view>
</view>
<view class="li">
<view class="title">课程名称</view>
<view class="content">青少年篮球课</view>
</view>
<view class="li">
<view class="title">教练</view>
<view class="content">包子皮</view>
<view class="content">{{infoData.staff_name}}</view>
</view>
<view class="li">
<view class="title">教练号码</view>
<view class="content">18888888888</view>
<view class="content">{{infoData.staff_phone}}</view>
</view>
<view class="li">
<view class="title">扣除课时</view>
<view class="content">2个课时</view>
<view class="content">{{infoData.hour}}个课时</view>
</view>
<view class="state_box">
<view class="state_box" v-if="infoData.status == 2">
<view>已上</view>
</view>
</view>
@ -56,6 +53,7 @@
<script>
// import user from '@/api/user.js';
import memberApi from '@/api/member.js';
import AQTabber from "@/components/AQ/AQTabber.vue"
@ -65,7 +63,7 @@ export default {
},
data() {
return {
formData:{},
infoData:{},//
//
filteredData: {
id: '',//id
@ -81,7 +79,22 @@ export default {
methods: {
//
async init(){
await this.getInfo()
},
//
async getInfo(){
let res = await memberApi.courseInfo({
id: this.filteredData.id,
})
if(res.code != 1){
uni.showToast({
title: res.msg,
icon: 'none'
})
return
}
this.infoData = res.data
},
@ -126,7 +139,8 @@ export default {
.section_1{
border-radius: 22rpx;
padding: 20rpx 40rpx;
background: #333333 100%;
background: #fff;
color: #333333;
width: 100%;
.title_box{
padding: 10rpx;

Loading…
Cancel
Save