Browse Source

feat(coach/student): 优化作业详情页面

- 添加作业展示区域,支持图片和视频显示
- 更新页面样式,增加教练头像和名称
- 实现作业详情数据的异步加载和显示- 优化文本显示样式,支持 HTML 格式
master
liutong 12 months ago
parent
commit
8c591e5269
  1. 76
      pages/coach/student/work_details.vue
  2. 1
      pages/student/index/work_details.vue

76
pages/coach/student/work_details.vue

@ -1,61 +1,97 @@
<!--作业任务-->
<!--作业详情-->
<template>
<view>
<view class="top-style">
<image src="@/static/images/index/work_details.png" class="top-style-img">
<!-- 作业展示-->
<view class="top-style" v-if="infoData.student_file">
<video v-if="infoData.student_file_type == 2" class="pic" style="width: 100%;border-radius: 15rpx;" :src="$util.img(infoData.student_file)"></video>
<image v-else style="width: 100%;border-radius: 15rpx;" :src="$util.img(infoData.student_file)" mode="aspectFit"></image>
</view>
<!-- 简练信息+作业描述-->
<view class="below-style">
<view class="head-img">
<fui-avatar width="80" src="https://img1.baidu.com/it/u=3598104138,3632108415&fm=253&fmt=auto&app=120&f=JPEG?w=800&h=800"></fui-avatar>
<view class="head-text">智卓燕</view>
<!--教练头像-->
<fui-avatar width="80" :src="$util.img(infoData.coach_pic)"></fui-avatar>
<view class="head-text">{{infoData .coach_name}}</view>
</view>
<view class="multi-line-ellipsis">
作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述</view>
<view class="multi-line-ellipsis" v-html="infoData.content_text"></view>
</view>
</view>
</template>
<script>
export default {
import memberApi from '@/api/member.js';
export default {
data() {
return {
//
filteredData: {
id: '',//id
},
infoData:{},
}
},
onLoad(options) {
this.filteredData.id = options.id
},
onShow(){
this.init()//
},
methods: {
//
async init(){
this.getAssignmentsInfo()
},
//
async getAssignmentsInfo() {
let params = {...this.filteredData}
let res = await memberApi.assignmentsInfo(params)
if (res.code != 1) {
uni.showToast({
title: res.msg,
icon: 'none'
})
return
}
this.infoData = res.data
},
}
}
</script>
<style lang="less" scoped>
.top-style{
.top-style{
width: 92%;
height: 700rpx;
margin: auto;
margin-top: 45rpx;
display: flex;
align-items: center;
justify-content: center;
}
.top-style-img{
}
.top-style-img{
width: 120rpx;
height: 120rpx;
}
.below-style{
}
.below-style{
width: 92%;
margin: auto;
}
.head-img {
}
.head-img {
display: flex;
align-items: center;
padding: 10rpx 20rpx;
}
.head-text {
}
.head-text {
color: #333333;
font-size: 35rpx;
padding-left: 20rpx;
}
.multi-line-ellipsis {
}
.multi-line-ellipsis {
color: #333333;
font-size: 29rpx;
padding: 5rpx 10rpx;
@ -64,5 +100,5 @@
// -webkit-line-clamp: 2;
// overflow: hidden;
// text-overflow: ellipsis;
}
}
</style>

1
pages/student/index/work_details.vue

@ -65,7 +65,6 @@ export default {
<style lang="less" scoped>
.top-style{
border: 1px solid red;
width: 92%;
height: 700rpx;
margin: auto;

Loading…
Cancel
Save