Commit 3bb41792 authored by 罗超's avatar 罗超

Merge branch 'master' of http://gitlab.oytour.com/youjie/thinkapp

# Conflicts:
#	src/components/index/workSituation/examList.vue
#	src/components/index/workSituation/operation.vue
#	src/pages/index/jobDetails.vue
#	src/pages/index/workSituation.vue
parents a11c2461 461405ed
<template>
<view class="JobComponents-box">
<view class="JobComponents activeOne flex">
<view class="JobComponents flex" :class="[{'activeOne':jobData.DataObj.HomeWorkStatus==2},{'activeTwo':jobData.DataObj.HomeWorkStatus==1},{'activeThree':jobData.DataObj.HomeWorkStatus==0}]">
<view class="JobComponents-time-box flex">
<view class="JobComponents-time">
<view>{{jobData.CreateTime}}</view>
......@@ -66,9 +66,9 @@
});
let methods = {
JobDetails() {
uni.reLaunch({
url: '/pages/index/jobDetails?tabNme=' + '作业情况'
});
// uni.navigateTo({
// url: '/pages/index/jobDetails?tabNme=' + '作业情况'
// });
}
}
return {
......@@ -101,7 +101,7 @@
font-weight: 400;
letter-spacing: 1px;
}
.homework-score:first-child {
margin-right: 16rpx;
}
......@@ -261,6 +261,21 @@
border: 3px solid #FFFFFF;
box-shadow: 0px 0px 12px 0px rgba(255, 255, 255, 0.46);
}
.JobComponents-center-box::after { // div是你需要添加背景图片的盒子
content: "";
background-image: url(https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653917724000_233.png);
background-position: 30rpx bottom;
background-size: 74rpx auto;
background-repeat: no-repeat;
opacity: 0.3;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
.JobComponents-line {
width: 4rpx;
......
......@@ -16,18 +16,19 @@
</van-button>
</view>
</view>
<template v-if="currentCourse.CoverImg">
<image class="illustration" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653464014000_494.png"
mode="widthFix"></image>
<!-- <template v-if="currentCourse.CoverImg">
<image class="illustration" :src="currentCourse.CoverImg" mode="widthFix"></image>
</template>
<template v-else>
<image class="illustration" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653464014000_494.png"
mode="widthFix"></image>
</template>
</template> -->
</view>
<image class="end" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653464014000_413.png"
mode="widthFix"></image>
<van-popup :show="showItems" round position="bottom" @click-overlay="hideExchangeBoxHandler" custom-style="height: 60%">
<van-popup :show="showItems" round position="bottom" @click-overlay="hideExchangeBoxHandler(null)" custom-style="height: 60%">
<view class="exchange-items">
<view class="title-box">
<text class="main-title">课程选择</text>
......@@ -38,7 +39,7 @@
<view class="item-course">
<view class="course-pic">
<image v-if="item.CoverImg" :src="item.CoverImg" mode="aspectFill"></image>
<image v-else src="https://www.kfzimg.com/G06/M00/B5/48/p4YBAFsJY12AK0n7AAEM2KDUHRw535_n.jpg" mode="aspectFill"></image>
<image v-else src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653901833000_638.png" mode="aspectFill"></image>
</view>
<view class="content">
<view class="one_line course-name">
......@@ -74,8 +75,10 @@
computed,
onMounted,
} from "vue";
export default {
props: ["stuCourseList"],
emits:['change'],
setup(props, context) {
let data = reactive({
statusBarHeight: 24,
......@@ -90,14 +93,18 @@
//点击切换课程
hideExchangeBoxHandler(item) {
//调用父页面方法
this.$parent.getStuHomeWorkAndExam(item.courseId);
this.currentCourse = item;
//this.$parent.getStuHomeWorkAndExam(item.courseId);
if(item){
data.currentCourse = item;
context.emit('change',item.courseId)
}
data.showItems = false
setTimeout(()=>{
uni.reLaunch({
url: '/pages/index/workSituation?tabNme=' + '作业情况' +'&courseId=' + item.courseId
});
},500)
// setTimeout(()=>{
// uni.reLaunch({
// url: '/pages/index/workSituation?tabNme=' + '作业情况' +'&courseId=' + item.courseId
// });
// },500)
},
//计算完成百分比
calcPercentage(item) {
......
......@@ -29,7 +29,7 @@
<view class="homework-score">
<view class="homework-score-title">得分率</view>
<view class="homework-score-num flex">
<view>{{jobData.DataObj.Score_p*100}}</view>
<view>{{jobData.DataObj.Score_p}}</view>
<view>%</view>
</view>
</view>
......@@ -72,7 +72,7 @@
});
let methods = {
scoreDetails() {
uni.reLaunch({
uni.navigateTo({
url: '/pages/index/scoreDetails'
});
}
......
<template>
<view class="examDetailsComponents-box">
<view class="examDetailsComponents activeOne flex" v-for="(item,index) in ExamStu" :key="index" :class="item.StuId ==0?'mismatchActive':''">
<view class="examDetailsComponents-time-box flex">
<view class="examDetailsComponents-time-box flex" @click="goStuScoreDetail(item)">
<view class="examDetailsComponents-time flex">
<view>{{item.StuName.substring(0,1)}}</view>
<text>{{item.StuName.substring(1,item.StuName.length)}}</text>
......@@ -10,7 +10,7 @@
<view class="examDetailsComponents-point"></view>
</view>
</view>
<view class="examDetailsComponents-center-box">
<view class="examDetailsComponents-center-box" @click="goStuScoreDetail(item)">
<view class="Mismatch-box" v-if="item.StuId ===0">
<view class="Mismatch-title flex">
<van-icon name="warning" />
......@@ -72,7 +72,11 @@
showLogin: true, //多次点击
});
let methods = {
goStuScoreDetail(item){
uni.navigateTo({
url: '/pages/index/scoreDetails?examId='+item.ExamId+"&stuId="+item.StuId+"&stuUId="+item.StuUId
});
}
}
return {
...toRefs(data),
......
<template>
<view class="jobDetailsComponents-box">
<view class="jobDetailsComponents activeTwo flex">
<view class="jobDetailsComponents flex"
:class="item.Status==0?'activeThree':(tem.Status==1?'activeTwo':'activeOne')"
v-for="(item,index) in dataList" :key="index">
<view class="jobDetailsComponents-time-box flex">
<view class="jobDetailsComponents-time flex">
<view></view>
<text>潇潇</text>
<view>{{item.student_name.slice(0,1)}}</view>
<text>{{item.student_name.substr(1)}}</text>
</view>
<view class="jobDetailsComponents-line">
<view class="jobDetailsComponents-point"></view>
......@@ -15,53 +17,21 @@
<view class="jobDetailsComponents-left flex">
<view class="operation-state flex">
<view class="operation-state-img"></view>
<view class="operation-state-text">未批阅</view>
</view>
<view class="operation-name">2022-05-22</view>
</view>
<view class="jobDetailsComponents-right flex">
<view class="homework-score flex">
<view class="homework-score-title">
得分 <text>86</text>
</view>
</view>
<view class="homework-score flex">
<view class="homework-score-title">
得分率 <text>86</text>
<view class="operation-state-text">
{{item.Status==0?'未提交':(tem.Status==1?'已提交':'已批阅')}}
</view>
</view>
</view>
</view>
</view>
</view>
<view class="jobDetailsComponents activeOne flex">
<view class="jobDetailsComponents-time-box flex">
<view class="jobDetailsComponents-time flex">
<view></view>
<text>潇潇</text>
</view>
<view class="jobDetailsComponents-line">
<view class="jobDetailsComponents-point"></view>
</view>
</view>
<view class="jobDetailsComponents-center-box">
<view class="jobDetailsComponents-center flex">
<view class="jobDetailsComponents-left flex">
<view class="operation-state flex">
<view class="operation-state-img"></view>
<view class="operation-state-text">批阅</view>
</view>
<view class="operation-name">2022-05-22</view>
<view class="operation-name">{{item.add_time}}</view>
</view>
<view class="jobDetailsComponents-right flex">
<view class="homework-score flex">
<view class="homework-score-title">
得分 <text>86</text>
得分 <text>{{item.score}}</text>
</view>
</view>
<view class="homework-score flex">
<view class="homework-score-title">
得分率 <text>86</text>
得分率 <text>{{item.score_p}}</text> %
</view>
</view>
</view>
......@@ -81,10 +51,10 @@
export default {
props: {
dataList:[]
},
components: {},
setup() {
setup(props) {
let data = reactive({
obj: {
......@@ -93,7 +63,9 @@
},
showPhone: false,
showLogin: true, //多次点击
dataList: props.dataList
});
console.log(props.dataList)
let methods = {
}
......@@ -219,6 +191,8 @@
margin-left: 4rpx;
}
.jobDetailsComponents-time{
width: 95rpx;
flex-shrink: 0;
color: #282828;
font-size: 36rpx;
font-weight: bold;
......
......@@ -37,7 +37,7 @@
>
<view class="exchange-items">
<view class="title-box">
<text class="main-title">课程选择{{Keywords}}</text>
<text class="main-title">课程选择</text>
<text class="sub-title">(共有{{courses.AllCourseList.length}}门课程)</text>
</view>
<view class="courseCard-search" v-if="courses.AllCourseList.length>0">
......@@ -47,12 +47,12 @@
style="border-radius: 20rpx;"
input-align="center"
background="#F6F6F6"
@search="searchHandler"
@change="searchHandler"
placeholder="请输入搜索关键词"
/>
<!-- <input v-model="Keywords" placeholder="请输入搜索关键词"/> -->
</view>
<view class="courseCard-title" v-if="courses.AllCourseList.length>0">
<view class="courseCard-title" v-if="courses.AllCourseList.length>0 && Keywords==''">
<view class="workSituation-title-box flex">
<view class="workSituation-title flex"
:class="{'active':currentIndex==index}"
......@@ -67,7 +67,7 @@
</view>
</view>
</view>
<view class="items" v-if="titleList[currentIndex].data.length>0">
<view class="items" v-if="titleList[currentIndex].data.length>0 && Keywords==''">
<template v-for="(x,i) in titleList[currentIndex].data" >
<view class="item-course" v-if="x.CourseName.indexOf(Keywords)!=-1" :key="i">
<view class="course-pic">
......@@ -92,6 +92,31 @@
</view>
</template>
</view>
<view class="items" v-if="titleList[0].data.length>0 && Keywords!=''">
<template v-for="(x,i) in titleList[0].data" >
<view class="item-course" v-if="x.CourseName.indexOf(Keywords)!=-1" :key="i">
<view class="course-pic">
<image :src="x.CoverImg!=''?x.CoverImg:'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653901833000_638.png'" mode="aspectFill"></image>
</view>
<view class="content">
<view class="one_line course-name">
{{x.CourseName}}
</view>
<van-progress :percentage="(parseFloat(x.CompleteNum)/parseFloat(x.TotalClassNum))*100" :show-pivot="false" track-color="#EFEFEF" color="#282828"
stroke-width="5" />
<view class="course-progress">
上课进度 {{x.CompleteNum}}/{{x.TotalClassNum}}
</view>
<view style="text-align: right;">
<van-button @click="hideExchangeBoxHandler(x)" color="#C91727" round size="mini"
custom-style="color:#FFF;font-size: 24rpx;padding-left:16rpx;padding-right:10px;">
选择课程
</van-button>
</view>
</view>
</view>
</template>
</view>
</view>
</van-popup>
......
<template>
<view class="examList-box">
<view class="examList-import" @click.stop="ImportInformation">
<view class="examList-import" @click="ImportInformation">
<van-icon name="plus" />
<text>导入考试信息</text>
</view>
<block v-if="dataList && dataList.length>0">
<view class="examList activeOne" v-for="(item,index) in dataList" :key="index">
<view class="examList-center-box" @click="examDetails(item.ExamId)">
<view class="examList-center-box" @click="examDetails(item)">
<view class="examList-center-line"></view>
<view class="examList-center flex">
<view class="examList-left">
......@@ -31,11 +31,11 @@
</view>
</view>
</view>
<view class="examList-center-hint flex">
<view class="examList-center-hint flex" v-if="item.FailNum>0">
<view class="examList-hint-left flex">
<van-icon name="warning" />
<view>
导入失败(学员信息不匹配)可点击查看具体情况
导入失败({{item.FailNum}}学员信息不匹配)可点击查看具体情况
</view>
</view>
<view class="examList-hint-right">
......@@ -50,18 +50,20 @@
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653902791000_806.png" mode="widthFix"></image>
<view>暂无考试信息</view>
</view>
<van-popup :show="show" :round="true">
<van-popup :show="show" :round="true" @close="closepopup">
<view class="examList-popup-box">
<van-icon class="examList-popup-closure" name="cross" @click="show=false"/>
<van-icon class="examList-popup-closure" name="cross" @click="closepopup"/>
<view class="examList-popup-title">导入考试信息</view>
<view class="examList-popup-content">
<input v-model="uploadParm.ExamName" class="examList-popup-name" placeholder="请输入考试名称">
<input v-model="uploadParm.ExamName" class="examList-popup-name" placeholder="请输入考试名称"/>
<van-uploader
class="examList-popup-fil-box flex"
multiple
accept=".excel"
preview-size="120rpx"
:before-read="beforeRead"
@after-read="customUpload"
:disabled="loading"
>
<view class="examList-popup-fil">
<van-image class="img" width="32rpx" height="32rpx" fit="cover"
......@@ -80,15 +82,17 @@
toRefs,
onMounted,
getCurrentInstance,
inject
inject,
watch
} from "vue";
import { uploadFile } from "@/utils/index";
export default {
props: {
dataList:[]
dataList:[],
},
emits:['change'],
components: {},
setup(props) {
setup(props,ctx) {
let {
proxy
} = getCurrentInstance();
......@@ -101,8 +105,8 @@
// Uid:726615,
// CourseId:44977497,
Uid:0,
CourseId:0,
ExamName:'考试测试530'
CourseId:44977497,
ExamName:''
},
fileList:[],
Msg:{
......@@ -110,39 +114,106 @@
PageSize: 10,
ExamName:''
},
dataList: props.dataList
dataList: props.dataList,
loading: false,
});
let methods = {
examDetails(item){
uni.reLaunch({
url: '/pages/index/examDetails?examId=' + item
uni.navigateTo({
url: `/pages/index/examDetails?exam=${encodeURIComponent(JSON.stringify(item))}`
});
},
closepopup(){
data.show = false
data.uploadParm = {
Uid:'',
CourseId:'',
ExamName: ''
}
},
// 重新导入
clickReimport(item){
data.uploadParm = {
Uid:item.ExamId,
CourseId:item.CourseId,
ExamName: item.ExamName
// data.uploadParm.ExamName = item.ExamName
// data.uploadParm.Uid = data.userData.Id
// data.uploadParm.CourseId = data.Msg.CourseId
// data.uploadParm.ExamName = tem.ExamName
uni.showModal({
title: '提示',
content: '重新导入将要删除该数据,是否继续',
success: function (res) {
if (res.confirm) {
that.DelExamInfo(item)
} else if (res.cancel) {
uni.showToast({
title:'已取消删除',
icon:'none',
duration: 500
})
}
}
});
},
// 删除接口
DelExamInfo(item){
let Msg = {
ExamId: item.ExamId
}
proxy.$request("/Exam/DelExamInfo", Msg).then(res => {
if(res.Code ==1){
uni.showToast({
title:'删除成功',
icon:'none',
duration: 500
})
data.show = true
}
})
},
ImportInformation(){
data.show = true
},
uploadFilesBefore(){
beforeRead(file){
if(!data.uploadParm.ExamName){
uni.showToast({
title:'请输入考试名称',
icon:'none',
duration: 500
})
return
}
if (file.url.indexOf('xls') ==-1 ||file.url.indexOf('xlsx') ==-1) {
uni.showToast({
title:'请上传 xls/xlsx 格式图片',
icon:'none',
duration: 500
})
return false;
}
return true;
},
// 添加导入
customUpload(event){
let host = ''
if (process.env.NODE_ENV === "development") {
host = 'http://192.168.10.36:8082/api'
} else {
host = 'https://eduapi.oytour.com/api'
}
data.userData = uni.getStorageSync('userInfo')
const { file } = event.detail;
that.uploadFileFun(file)
// uploadFile(params, file, (res) => {
// uni.showModal({
// title:res.Message
// })
// });
// return
},
uploadFileFun(file){
if(!data.uploadParm.ExamName){
uni.showToast({
title:'请输入考试名称',
icon:'none',
duration: 500
})
return
}
if(file[0].url.indexOf('xls')==-1||file[0].url.indexOf('xlsx')==-1){
uni.showToast({
title:'请上传xls、xlsx格式的文件',
......@@ -151,7 +222,20 @@
})
return
}
let host = ''
if (process.env.NODE_ENV === "development") {
host = 'http://192.168.10.36:8082/api'
} else {
host = 'https://eduapi.oytour.com/api'
}
data.userData = uni.getStorageSync('userInfo')
data.uploadParm = {
Uid:data.userData.Id,
CourseId:data.Msg.CourseId,
ExamName: data.uploadParm.ExamName
}
data.loading = true
uni.uploadFile({
url: host + '/Upload/UploadStuExamScore',
filePath: file[0].url,
......@@ -161,24 +245,36 @@
params:JSON.stringify(data.uploadParm)
},
success(res) {
uni.hideLoading();
uni.showToast({
title: res.Code ==1?'导入成功': '导入失败',
icon:'none',
duration: 500
})
if(res.Code ==1){
uni.showToast({
title: '导入成功',
icon:'none',
duration: 500
})
uni.hideLoading();
data.uploadParm = {
Uid:'',
CourseId:'',
ExamName: ''
}
data.loading = false
// ctx.emit('change')
}else{
uni.showToast({
title: '导入失败',
icon:'none',
duration: 500
})
uni.hideLoading();
data.loading = false
}
},
fail(err) {
console.log("uploadErr", err)
}
});
// uploadFile(params, file, (res) => {
// uni.showModal({
// title:res.Message
// })
// });
// return
this.$parent.getExamPageList();
}
};
let that = methods;
......
......@@ -3,7 +3,7 @@
<block v-if="dataList && dataList.length>0">
<view class="operation activeOne"
v-for="(item,index) in dataList" :key="index">
<view class="operation-center-box" @click="JobDetails">
<view class="operation-center-box" @click="JobDetails(item)">
<view class="operation-center-line"></view>
<view class="operation-center flex">
<view class="operation-left">
......@@ -69,9 +69,9 @@
dataList: props.dataList
});
let methods = {
JobDetails(){
JobDetails(item){
uni.navigateTo({
url: '/pages/index/jobDetails'
url: '/pages/index/jobDetails?HomeWorkId=' + item.HomeWorkId + '&obj=' + JSON.stringify(item)
});
}
}
......
......@@ -47,6 +47,7 @@
});
let methods = {
selectStuHandler(item){
console.log(item)
ctx.emit("selected",item.StuId,item.StuName)
}
}
......
<template>
<view class="jobDetails-box">
<view class="jobDetails-box-bj"></view>
<navbar class="navbarSticky" bg="#F6F6F6">
<navbar class="navbarSticky" bg="#FCEEEF">
<view class="jobDetails-header-box">
<van-icon class="jobDetails-header-left" name="arrow-left" @click="back"/>
<text class="jobDetails-header-title">考试详情</text>
......@@ -10,17 +10,17 @@
<view class="jobDetails-content">
<view class="jobDetails-content-header">
<view class="jobDetails-conten-title flex">
<text>2022年5月28日</text>
<view>化学第一次测试</view>
<text>{{CreateTime}}</text>
<view>{{ExamName}}</view>
</view>
<view class="jobDetails-num-box flex">
<view class="jobDetails-num flex">
<text>人数</text>
<view>15</view>
<view>{{ExamNum}}</view>
</view>
<view class="jobDetails-num flex">
<text>平均得分</text>
<view>12</view>
<view>{{AvgScore}}</view>
</view>
</view>
</view>
......@@ -39,13 +39,14 @@
getCurrentInstance,
inject
} from "vue";
import navbar from '../../components/navbar.vue'
export default {
props: {
},
components: {
examDetailsComponents
examDetailsComponents,
navbar
},
setup() {
let {
......@@ -56,6 +57,10 @@
ExamId:0,
StuName:""
},
CreateTime:"2022-05-30",
ExamName:"测试需要绑",
ExamNum:0,
AvgScore:0,
ExamStu:[]
});
let methods = {
......@@ -67,9 +72,9 @@
})
},
back(){
uni.reLaunch({
url: '/pages/index/workSituation?tabNme=' + '考试信息'
});
uni.navigateBack({
delta:1
})
}
}
return {
......@@ -78,7 +83,12 @@
};
},
onLoad(options){
this.Msg.ExamId = options.examId;
let json=JSON.parse(decodeURIComponent(options.exam))
this.Msg.ExamId = json.ExamId;
this.CreateTime = json.CreateTime;
this.ExamName = json.ExamName;
this.ExamNum = json.StuNum;
this.AvgScore = json.AvgScore;
},
onShow() {
this.userData = uni.getStorageSync('userInfo');
......
......@@ -19,18 +19,23 @@
<view style="font-size: 50rpx;">您的学情反馈已准备好</view>
</view>
</view>
<course-card :stuCourseList="stuCourseList"></course-card>
<course-card :stuCourseList="stuCourseList" @change="changeCourseHandler"></course-card>
<view class="index-student-title flex">
<text>学情反馈</text>
<view>(共{{workList!=null&&workList.length>0?workList.length:0}}条)</view>
</view>
<view class="index-student-information">
<view class="index-student-information" v-if="workList && workList.length>0">
<template v-for="(item,index) in workList">
<JobComponents v-if="item.ResultType==1" :jobData="item"></JobComponents>
<examComponents v-if="item.ResultType==2" :jobData="item"></examComponents>
<commentsComponents v-if="item.ResultType==3" :jobData="item"></commentsComponents>
</template>
</view>
<view class="index-student-information" v-else>
<view class="noData">
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653902791000_806.png" mode="widthFix"></image>
<view>暂无反馈信息</view>
</view>
</view>
</view>
</template>
......@@ -92,51 +97,10 @@
url: url,
});
},
jumpTimetable() {
uni.switchTab({
url: '/pages/timetable/timeTable',
})
changeCourseHandler(id){
console.log(id,',,,,,,,,,,,,,')
methods.getStuHomeWorkAndExam(id)
},
base64_decode(data) {
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var o1,
o2,
o3,
h1,
h2,
h3,
h4,
bits,
i = 0,
ac = 0,
dec = "",
tmp_arr = [];
if (!data) {
return data;
}
data += "";
do {
h1 = b64.indexOf(data.charAt(i++));
h2 = b64.indexOf(data.charAt(i++));
h3 = b64.indexOf(data.charAt(i++));
h4 = b64.indexOf(data.charAt(i++));
bits = (h1 << 18) | (h2 << 12) | (h3 << 6) | h4;
o1 = (bits >> 16) & 0xff;
o2 = (bits >> 8) & 0xff;
o3 = bits & 0xff;
if (h3 == 64) {
tmp_arr[ac++] = String.fromCharCode(o1);
} else if (h4 == 64) {
tmp_arr[ac++] = String.fromCharCode(o1, o2);
} else {
tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);
}
} while (i < data.length);
dec = tmp_arr.join("");
return dec;
},
//获取学员课程列表
getStuCourse() {
proxy.$request("/Stu/GetStuCourse", {}).then(res => {
let tempArray = res.Data;
......@@ -148,22 +112,15 @@
},
//获取学员作业、考试、评语
getStuHomeWorkAndExam(courseId) {
this.workMsg.courseId = courseId;
uni.showLoading()
data.workMsg.courseId = courseId;
data.workList = [];
proxy.$request("/Stu/GetStuWork", this.workMsg).then(res => {
proxy.$request("/Stu/GetStuWork", data.workMsg).then(res => {
data.workList = res.Data;
uni.hideLoading()
})
},
async getColor(src, index, y) {
let res = await getImageColor('myCanvas', 'img' + index, src)
let obj = {}
obj.formatres = `rgba(${res.r},${res.g},${res.b},0.01)`
obj.formatres1 = `rgba(${res.r},${res.g},${res.b},0.6)`
obj.formatres2 = `rgba(${res.r},${res.g},${res.b},1)`
obj.index = index
obj.y = y
return obj
},
};
onMounted(() => {
......@@ -201,6 +158,20 @@
</script>
<style scoped>
.indexpage .noData{
text-align: center;
flex:1;
width: 100%;
}
.indexpage .noData image{
width:200rpx;
margin-bottom: 40rpx;
}
.indexpage .noData view{
font-size: 24rpx;
color: #cecece;
text-align: center;
}
.index-student-title view {
font-size: 25rpx;
color: #ABABAB;
......
......@@ -9,35 +9,38 @@
<view class="jobDetails-content">
<view class="jobDetails-content-header">
<view class="jobDetails-conten-title flex">
<text>成都2022科学益智L4 -05乐思会</text>
<view>高一作业11</view>
<text>{{jobDetails.CourseName}}</text>
<view>{{jobDetails.HomeWorkTitle}}</view>
</view>
<view class="jobDetails-num-box flex">
<view class="jobDetails-num flex">
<text>学生数</text>
<view>15</view>
<view>{{jobDetails.StuNum}}</view>
</view>
<view class="jobDetails-num flex">
<text>已提交</text>
<view>12</view>
<view>{{jobDetails.SubmitNum}}</view>
</view>
<view class="jobDetails-num flex">
<text>已批阅</text>
<view>10</view>
<view>{{jobDetails.ReviewNum?jobDetails.ReviewNum:0}}</view>
</view>
<view class="jobDetails-num flex">
<text>优秀</text>
<view>5</view>
<view>{{jobDetails.ExcellentNum?jobDetails.ExcellentNum:0}}</view>
</view>
</view>
</view>
<view class="index-student-information">
<jobDetailsComponents></jobDetailsComponents>
<van-empty description="暂无数据" v-if="dataList.length === 0" />
<jobDetailsComponents v-if="dataList.length>0" :dataList="dataList"></jobDetailsComponents>
</view>
<Loadmore :state="pageState" />
</view>
</view>
</template>
<script>
import Loadmore from "@/components/loadmore.vue";
import jobDetailsComponents from '@/components/index/scoreDetails/jobDetailsComponents'
import {
reactive,
......@@ -53,33 +56,54 @@
},
components: {
jobDetailsComponents,
navbar
navbar,
Loadmore
},
setup() {
let {
proxy
} = getCurrentInstance();
let data = reactive({
obj: {
Name: '',
Photo: '',
obj:{},
Msg: {
HomeWorkId: '',
},
showPhone: false,
showLogin: true, //多次点击
HomeWorkId:'',
jobDetails: {},
dataList:[],
pageState:'more'
});
let methods = {
back(){
// uni.reLaunch({
// url: '/pages/index/workSituation?tabNme=' + '作业情况'
// });
uni.navigateBack({
delta: 1
})
}
},
//获取作业情况列表
getHomeWorkDetailsList(){
data.pageState = "loading";
proxy.$request("/Teacher/GetHomeWorkDetails", data.Msg).then(res => {
if(res){
data.jobDetails = res.Data
data.dataList = res.Data.DataList;
data.pageState = "none";
}
})
},
}
return {
...toRefs(data),
...methods
};
}
},
onLoad(option) {
this.Msg.HomeWorkId = option.HomeWorkId
this.getHomeWorkDetailsList()
},
};
</script>
<style scoped>
......
......@@ -128,7 +128,8 @@
userData: {},
Msg:{
ExamId:0,
StuUId:0
StuUId:0,
StuId:0
},
ExamScore:{},
Loading :true
......@@ -143,9 +144,9 @@
})
},
back() {
uni.navigateTo({
url: '/pages/index/index'
});
uni.navigateBack({
delta:1
});
},
};
......@@ -160,6 +161,7 @@
onLoad(options){
this.Msg.ExamId = options.examId;
this.Msg.StuUId = options.stuUId;
this.Msg.StuId = options.stuId;
},
onShow() {
this.userData = uni.getStorageSync('userInfo');
......
......@@ -44,7 +44,9 @@
<studentList @selected="selectStuHandler" v-if="tabNme=='学生列表'" :dataList="students"></studentList>
<examList v-if="tabNme=='考试信息'" :dataList="exams"></examList>
<!-- <Loadmore :state="pageState" /> -->
</scroll-view>
<Loadmore :state="pageState" />
</view>
</view>
</template>
......@@ -101,7 +103,7 @@
PageIndex: 1,
PageSize: 10,
ExamName:'',
courseId:''
CourseId:''
},
OperationMsg:{
courseId:'',
......@@ -118,10 +120,10 @@
});
data.userData=uni.getStorageSync("userInfo")
let methods = {
back() {
uni.navigateTo({
url: '/pages/index/index'
});
back(){
uni.navigateBack({
delta: 1
})
},
selectStuHandler(id,name){
uni.navigateTo({
......@@ -135,20 +137,22 @@
data.currentCourseId=id
methods.getCourseStuList()
methods.getExamPageList()
methods.getGetCourseHomeWorkList()
methods.getCourseHomeWorkList()
},
toggleTitle(t) {
data.tabNme = t
if(data.tabNme=='学生列表'){
that.getCourseStuList()
}else if(data.tabNme=='作业情况'){
that.getGetCourseHomeWorkList()
}else{
that.getExamPageList()
}
// if(t=='学生列表'){
// this.getCourseStuList()
// }else if(data.tabNme=='作业情况'){
// this.getCourseHomeWorkList()
// }else{
// this.getExamPageList()
// }
},
//获取学生列表
getCourseStuList(){
data.pageState = "loading";
proxy.$request("/Teacher/GetCourseStu", data.OperationMsg).then(res => {
if(res){
data.titleList.forEach(item => {
......@@ -162,7 +166,8 @@
})
},
//获取作业情况列表
getGetCourseHomeWorkList(){
getCourseHomeWorkList(){
data.pageState = "loading";
proxy.$request("/Teacher/GetCourseHomeWork", data.OperationMsg).then(res => {
if(res){
data.titleList.forEach(item => {
......@@ -177,6 +182,7 @@
},
//获取考试信息列表
getExamPageList(){
data.pageState = "loading";
proxy.$request("/Exam/GetExamPageList", data.Msg).then(res => {
if(res){
data.titleList.forEach(item => {
......@@ -206,11 +212,11 @@
if (data.timer) clearTimeout(data.timer);
data.timer = setTimeout(() => {
if(data.tabNme=='学生列表'){
that.getCourseStuList()
this.getCourseStuList()
}else if(data.tabNme=='作业情况'){
that.getGetCourseHomeWorkList()
this.getCourseHomeWorkList()
}else{
that.getExamPageList()
this.getExamPageList()
}
}, 1000);
} else {
......@@ -241,6 +247,20 @@
// }else{
// this.getExamPageList()
// }
// this.tabNme = option.tabNme?option.tabNme:'作业情况'
// this.OperationMsg.courseId = option.courseId
// this.Msg.CourseId = option.courseId
},
onShow() {
// this.dataList = []
// if(this.tabNme=='学生列表'){
// this.getCourseStuList()
// }else if(this.tabNme=='作业情况'){
// this.getCourseHomeWorkList()
// }else{
// this.getExamPageList()
// }
},
onShareAppMessage() {
......
......@@ -67,10 +67,10 @@
});
let methods = {
back() {
uni.navigateTo({
url: '/pages/index/index'
});
back(){
uni.navigateBack({
delta: 1
})
},
//获取学员作业、考试、评语
getStuHomeWorkAndExam() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment