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> <template>
<view> <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>
<!-- 简练信息+作业描述-->
<view class="below-style"> <view class="below-style">
<view class="head-img"> <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>
<view class="multi-line-ellipsis"> <view class="multi-line-ellipsis" v-html="infoData.content_text"></view>
作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述</view>
</view> </view>
</view> </view>
</template> </template>
<script> <script>
export default { import memberApi from '@/api/member.js';
export default {
data() { data() {
return { return {
//
filteredData: {
id: '',//id
},
infoData:{},
} }
}, },
onLoad(options) {
this.filteredData.id = options.id
},
onShow(){
this.init()//
},
methods: { 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> </script>
<style lang="less" scoped> <style lang="less" scoped>
.top-style{ .top-style{
width: 92%; width: 92%;
height: 700rpx; height: 700rpx;
margin: auto; margin: auto;
margin-top: 45rpx;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.top-style-img{ .top-style-img{
width: 120rpx; width: 120rpx;
height: 120rpx; height: 120rpx;
} }
.below-style{ .below-style{
width: 92%; width: 92%;
margin: auto; margin: auto;
} }
.head-img { .head-img {
display: flex; display: flex;
align-items: center; align-items: center;
padding: 10rpx 20rpx; padding: 10rpx 20rpx;
} }
.head-text { .head-text {
color: #333333; color: #333333;
font-size: 35rpx; font-size: 35rpx;
padding-left: 20rpx; padding-left: 20rpx;
} }
.multi-line-ellipsis { .multi-line-ellipsis {
color: #333333; color: #333333;
font-size: 29rpx; font-size: 29rpx;
padding: 5rpx 10rpx; padding: 5rpx 10rpx;
@ -64,5 +100,5 @@
// -webkit-line-clamp: 2; // -webkit-line-clamp: 2;
// overflow: hidden; // overflow: hidden;
// text-overflow: ellipsis; // text-overflow: ellipsis;
} }
</style> </style>

1
pages/student/index/work_details.vue

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

Loading…
Cancel
Save