Browse Source

feat(student): 添加学生端作业详情功能

- 新增 xy_assignmentsInfo 方法获取作业详情
- 更新 work_details.vue 页面,展示作业内容和学生信息
- 优化页面样式,增加状态显示和描述信息
master
liutong 10 months ago
parent
commit
feab034399
  1. 9
      api/apiRoute.js
  2. 55
      pages/student/index/work_details.vue

9
api/apiRoute.js

@ -562,6 +562,15 @@ export default {
return res; return res;
}) })
}, },
//学生端-获取作业详情
xy_assignmentsInfo(data = {}) {
let url = '/xy/assignment/info'
return http.get(url, data).then(res => {
return res;
})
},
//学生端-提交作业 //学生端-提交作业
xy_assignmentSubmitObj(data = {}) { xy_assignmentSubmitObj(data = {}) {

55
pages/student/index/work_details.vue

@ -1,24 +1,27 @@
<!--作业详情--> <!--作业详情-->
<template> <template>
<view> <view class="main_box">
<!-- 作业展示--> <!-- 作业展示-->
<view class="top-style" v-if="infoData.student_file"> <view class="top-style" v-if="infoData.content_text">
<video v-if="infoData.student_file_type == 2" class="pic" style="width: 100%;border-radius: 15rpx;" :src="$util.img(infoData.student_file)"></video> <video v-if="infoData.content_type == 2" class="pic" style="width: 100%;border-radius: 15rpx;" :src="$util.img(infoData.content_text)"></video>
<image v-else style="width: 100%;border-radius: 15rpx;" :src="$util.img(infoData.student_file)" mode="aspectFit"></image> <image v-else-if="infoData.content_type == 1" style="width: 100%;border-radius: 15rpx;" :src="$util.img(infoData.content_text)" 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="$util.img(infoData.coach_pic)"></fui-avatar> <fui-avatar width="80" :src="infoData.student.customerResources.member.headimg ? infoData.student.customerResources.member.headimg : $util.img('/uniapp_src/static/images/common/yong_hu.png')"></fui-avatar>
<view class="head-text">{{infoData .coach_name}}</view> <view class="head-text">{{infoData .student.name}}</view>
</view> </view>
<view class="multi-line-ellipsis" v-html="infoData.content_text"></view> <view class="multi-line-ellipsis">
状态{{ infoData.status == 1 ? '待批改' : infoData.status == 2 ? '未提交' : infoData.status == 3 ? '已提交' :''}} </view>
<view class="multi-line-ellipsis" v-html="infoData.description"></view>
</view> </view>
</view> </view>
</template> </template>
<script> <script>
import apiRoute from '@/api/apiRoute.js';
import memberApi from '@/api/member.js'; import memberApi from '@/api/member.js';
@ -34,7 +37,7 @@ export default {
} }
}, },
onLoad(options) { onLoad(options) {
this.filteredData.id = options.id this.filteredData.id = options.id//id
}, },
onShow(){ onShow(){
this.init()// this.init()//
@ -48,7 +51,7 @@ export default {
// //
async getAssignmentsInfo() { async getAssignmentsInfo() {
let params = {...this.filteredData} let params = {...this.filteredData}
let res = await memberApi.assignmentsInfo(params) let res = await apiRoute.xy_assignmentsInfo(params)
if (res.code != 1) { if (res.code != 1) {
uni.showToast({ uni.showToast({
title: res.msg, title: res.msg,
@ -64,11 +67,16 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.main_box{
width: 100%;
height: 100%;
background: #292929;
padding-top: 45rpx;
}
.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;
@ -80,19 +88,22 @@ export default {
.below-style{ .below-style{
width: 92%; width: 92%;
margin: auto; margin: auto;
.head-img {
display: flex;
align-items: center;
padding: 10rpx 20rpx;
}
.head-text {
color: #fff;
font-size: 35rpx;
padding-left: 20rpx;
}
} }
.head-img {
display: flex;
align-items: center;
padding: 10rpx 20rpx;
}
.head-text {
color: #333333;
font-size: 35rpx;
padding-left: 20rpx;
}
.multi-line-ellipsis { .multi-line-ellipsis {
color: #333333; margin-top: 20rpx;
color: #fff;
font-size: 29rpx; font-size: 29rpx;
padding: 5rpx 10rpx; padding: 5rpx 10rpx;
// display: -webkit-box; // display: -webkit-box;

Loading…
Cancel
Save