Commit 72610769 authored by 罗超's avatar 罗超

2

parent 95d22c35
...@@ -119,6 +119,8 @@ ...@@ -119,6 +119,8 @@
provide provide
} from "vue"; } from "vue";
import Explain from './explain.vue' import Explain from './explain.vue'
const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.autoplay = false;
export default { export default {
components: { components: {
Explain Explain
...@@ -151,15 +153,18 @@ ...@@ -151,15 +153,18 @@
let data = reactive({ let data = reactive({
current: '', //用户选择 current: '', //用户选择
isShowExplain: false, isShowExplain: false,
}) })
let methods = { let methods = {
choice(x) { choice(x) {
data.current = x.Name; data.current = x.Name;
if (data.current !== props.item.Answer) { if (data.current !== props.item.Answer) {
methods.play('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/educationStu/audio/false.mp3')
setTimeout(() => { setTimeout(() => {
data.isShowExplain = true data.isShowExplain = true
}, 800) }, 800)
} else { } else {
methods.play('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/educationStu/audio/true.mp3')
setTimeout(() => { setTimeout(() => {
emit('next',1) emit('next',1)
}, 500) }, 500)
...@@ -168,6 +173,10 @@ ...@@ -168,6 +173,10 @@
todo() { todo() {
emit('next') emit('next')
data.isShowExplain = false data.isShowExplain = false
},
play(url) {
innerAudioContext.src =url
innerAudioContext.play()
} }
} }
onMounted(() => { onMounted(() => {
......
...@@ -99,6 +99,8 @@ ...@@ -99,6 +99,8 @@
import {ref,reactive,toRefs,toRef,getCurrentInstance,watch,computed,onMounted,provide} from "vue"; import {ref,reactive,toRefs,toRef,getCurrentInstance,watch,computed,onMounted,provide} from "vue";
import mypone from './myp-one.vue' import mypone from './myp-one.vue'
import Explain from './explain.vue' import Explain from './explain.vue'
const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.autoplay = false;
export default { export default {
components: { components: {
mypone, mypone,
...@@ -146,11 +148,13 @@ ...@@ -146,11 +148,13 @@
} }
if(data.test==props.item.Answer||props.item.Answer.indexOf(data.test)>-1){ if(data.test==props.item.Answer||props.item.Answer.indexOf(data.test)>-1){
data.type=1 data.type=1
methods.play('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/educationStu/audio/true.mp3')
setTimeout(()=>{ setTimeout(()=>{
emit('next',1) emit('next',1)
},500) },500)
}else{ }else{
data.type=2 data.type=2
methods.play('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/educationStu/audio/false.mp3')
setTimeout(()=>{ setTimeout(()=>{
data.isShowExplain=true data.isShowExplain=true
},500) },500)
...@@ -162,6 +166,10 @@ ...@@ -162,6 +166,10 @@
todo(){ todo(){
emit('next') emit('next')
data.isShowExplain = false data.isShowExplain = false
},
play(url) {
innerAudioContext.src =url
innerAudioContext.play()
} }
} }
onMounted(()=>{ onMounted(()=>{
......
...@@ -63,7 +63,8 @@ ...@@ -63,7 +63,8 @@
<view class="wordDuration" style="visibility: hidden;"> <view class="wordDuration" style="visibility: hidden;">
预计用时10分钟 预计用时10分钟
</view> </view>
<view class="wordBtn" <view class="wordBtn" v-if="(pageData.Words.NextWord==0||!pageData.Words.NextWord)&&(pageData.Words.ReviewWord==0||!pageData.Words.ReviewWord)"> 暂无新词</view>
<view class="wordBtn" v-else
@click="jumpPage(`/pages/word/word?CourseId=${pageData.Words.CourseId||0}&&ChapterId=${pageData.Words.NextCourseNo||0}&&ReviewChapterId=${pageData.Words.ReviewCourseNo||0}&&ClassId=${pageData.Words.ClassId||0}`)"> @click="jumpPage(`/pages/word/word?CourseId=${pageData.Words.CourseId||0}&&ChapterId=${pageData.Words.NextCourseNo||0}&&ReviewChapterId=${pageData.Words.ReviewCourseNo||0}&&ClassId=${pageData.Words.ClassId||0}`)">
开始学习 开始学习
</view> </view>
......
<style scoped> <style scoped>
.studyindex{ .studyindex {
width: 100%; width: 100%;
height: 100vh; height: 100vh;
background: #F5F5F5; background: #F5F5F5;
overflow-y: auto; overflow-y: auto;
} }
.row{
display: flex;align-items: center; .row {
display: flex;
align-items: center;
} }
::-webkit-scrollbar {display:none}
::-webkit-scrollbar {
display: none
}
.page-title { .page-title {
font-size: 44rpx; font-size: 44rpx;
font-weight: bold; font-weight: bold;
color: #0f1b35; color: #0f1b35;
} }
.curriculum{
.curriculum {
width: 100%; width: 100%;
} }
.box{
.box {
padding: 100rpx 0rpx 50rpx; padding: 100rpx 0rpx 50rpx;
} }
.box-top{
.box-top {
width: 100%; width: 100%;
} }
.box_t{
.box_t {
padding: 18px; padding: 18px;
} }
.box_tb{
.box_tb {
height: 388rpx; height: 388rpx;
background: #FFFFFF; background: #FFFFFF;
border-radius: 12px; border-radius: 12px;
padding: 15px; padding: 15px;
} }
.box_tb_c{
.box_tb_c {
width: 50%; width: 50%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
padding: 46rpx; padding: 46rpx;
} }
.box_tb_c span{
.box_tb_c span {
font-size: 12px; font-size: 12px;
color: #666666; color: #666666;
} }
.box_tb_c text{
.box_tb_c text {
font-size: 22rpx; font-size: 22rpx;
color: #111111; color: #111111;
font-weight: bold; font-weight: bold;
} }
.box_tb_b{
.box_tb_b {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
margin-top: 5px; margin-top: 5px;
} }
.box_tb_b .btn{
.box_tb_b .btn {
width: 130rpx; width: 130rpx;
height: 50rpx; height: 50rpx;
display: flex; display: flex;
...@@ -68,15 +84,17 @@ ...@@ -68,15 +84,17 @@
color: #FFFFFF; color: #FFFFFF;
margin-top: 7px; margin-top: 7px;
} }
.box_review{
.box_review {
background: #EBEBEB; background: #EBEBEB;
padding: 36rpx; padding: 36rpx;
margin-top: 10px; margin-top: 10px;
position: relative; position: relative;
height: 660rpx; height: 660rpx;
} }
.box_review_date_item{
.box_review_date_item {
width: calc((100vw - 67rpx)/7); width: calc((100vw - 67rpx)/7);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
...@@ -85,16 +103,18 @@ ...@@ -85,16 +103,18 @@
font-size: 17px; font-size: 17px;
color: #999999; color: #999999;
height: 140rpx; height: 140rpx;
border-radius: 12px 12px 0px 0px; border-radius: 12px 12px 0px 0px;
} }
.box_review_date_item2{
.box_review_date_item2 {
background: #4C50E7; background: #4C50E7;
color: #FFF; color: #FFF;
font-weight: bold; font-weight: bold;
} }
.box_review_sp{
.box_review_sp {
width: calc(100vw - 67rpx); width: calc(100vw - 67rpx);
height: 420rpx; height: 420rpx;
border-radius: 12px; border-radius: 12px;
...@@ -106,7 +126,8 @@ ...@@ -106,7 +126,8 @@
/* left: 18px; */ /* left: 18px; */
top: 248rpx; top: 248rpx;
} }
.box_review_box{
.box_review_box {
background: #000000; background: #000000;
display: flex; display: flex;
align-items: center; align-items: center;
...@@ -116,30 +137,38 @@ ...@@ -116,30 +137,38 @@
height: 100%; height: 100%;
border-radius: 12px; border-radius: 12px;
} }
.box_review_swiper{
.box_review_swiper {
width: calc(100vw - 36px - 10px); width: calc(100vw - 36px - 10px);
height: 380rpx; height: 380rpx;
} }
.myVideo{
.myVideo {
width: 100%; width: 100%;
height: 100%; height: 100%;
border-radius: 12px; border-radius: 12px;
} }
.examination{
.examination {
margin-top: 25px; margin-top: 25px;
} }
.examination-box{
.examination-box {
background: #FFF; background: #FFF;
margin: 10px 0; margin: 10px 0;
} }
.examination-box-c{
.examination-box-c {
height: 180rpx; height: 180rpx;
background: #F9F9F9; background: #F9F9F9;
overflow-x:scroll;width:100%;white-space:nowrap; overflow-x: scroll;
width: 100%;
white-space: nowrap;
} }
.examination-boxb{
.examination-boxb {
width: 200rpx; width: 200rpx;
/* height: 100%; */ /* height: 100%; */
display: inline-block; display: inline-block;
...@@ -147,16 +176,18 @@ ...@@ -147,16 +176,18 @@
box-sizing: border-box; box-sizing: border-box;
/* border-right: 1px solid #E2E2E2; */ /* border-right: 1px solid #E2E2E2; */
} }
.shuxian{
.shuxian {
width: 2rpx; width: 2rpx;
height: 100%; height: 100%;
display: inline-block; display: inline-block;
padding: 20px 0; padding: 20px 0;
box-sizing: border-box; box-sizing: border-box;
} }
.shuxianbox{
.shuxianbox {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
...@@ -165,7 +196,8 @@ ...@@ -165,7 +196,8 @@
color: #8F8F92; color: #8F8F92;
height: 100%; height: 100%;
} }
.examination-box-c-item{
.examination-box-c-item {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
...@@ -174,24 +206,27 @@ ...@@ -174,24 +206,27 @@
color: #8F8F92; color: #8F8F92;
height: 100%; height: 100%;
} }
.examination-box-c-item .item_o{
.examination-box-c-item .item_o {
color: #A3A3A3; color: #A3A3A3;
} }
.examination-box-c-item .item_t{
color: #A3A3A3; .examination-box-c-item .item_t {
font-size: 19px; color: #A3A3A3;
font-weight: bold; font-size: 19px;
margin:8rpx 0; font-weight: bold;
margin: 8rpx 0;
} }
.examination-box-btnbox{ .examination-box-btnbox {
width: 100%; width: 100%;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.examination-btn{
.examination-btn {
width: 150rpx; width: 150rpx;
height: 60rpx; height: 60rpx;
border-radius: 30rpx; border-radius: 30rpx;
...@@ -204,34 +239,35 @@ ...@@ -204,34 +239,35 @@
color: #FFF; color: #FFF;
margin: 20px 0; margin: 20px 0;
} }
.status-blue { .status-blue {
color: #00acf9; color: #00acf9;
} }
.status-green { .status-green {
color: #00df9f; color: #00df9f;
} }
.status-black { .status-black {
color: #111111; color: #111111;
} }
.status-red { .status-red {
color: #ff3816; color: #ff3816;
} }
.reviewcenter{
.reviewcenter {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
margin-top: 100rpx; margin-top: 100rpx;
} }
</style> </style>
<template> <template>
<view class="studyindex"> <view class="studyindex">
<van-nav-bar :border="fasle" fixed :z-index="99"> <van-nav-bar :border="fasle" fixed :z-index="99">
<view slot="left" class="page-title" title="shouye">学习</view> <view slot="left" class="page-title" title="shouye">学习</view>
</van-nav-bar> </van-nav-bar>
<view class="curriculum"> <view class="curriculum">
<template v-if="CourseList.length==0"> <template v-if="CourseList.length==0">
...@@ -248,7 +284,7 @@ ...@@ -248,7 +284,7 @@
<view class="box_tb"> <view class="box_tb">
<view class="row" style="justify-content: space-between;"> <view class="row" style="justify-content: space-between;">
<view class="row" style="color: #111111;font-size: 28rpx;font-weight: bold;"> <view class="row" style="color: #111111;font-size: 28rpx;font-weight: bold;">
<view >单词练习 </view> <view>单词练习 </view>
<view style="margin-left: 5px;">{{InfoData.TotalScore}}</view> <view style="margin-left: 5px;">{{InfoData.TotalScore}}</view>
</view> </view>
<view style="font-size: 22rpx;color: #4C50E7;" @click="gourl()">所有单词</view> <view style="font-size: 22rpx;color: #4C50E7;" @click="gourl()">所有单词</view>
...@@ -264,55 +300,67 @@ ...@@ -264,55 +300,67 @@
<view class="box_tb_c"> <view class="box_tb_c">
<span>需要复习</span> <span>需要复习</span>
<view class="row" style="align-items: flex-end;"> <view class="row" style="align-items: flex-end;">
<text style="font-size: 78rpx;font-style: italic">{{InfoData.Words.ReviewWord}}</text> <text
style="font-size: 78rpx;font-style: italic">{{InfoData.Words.ReviewWord}}</text>
<text style="margin-left: 5px;margin-bottom: 10px;"></text> <text style="margin-left: 5px;margin-bottom: 10px;"></text>
</view> </view>
</view> </view>
</view> </view>
<view class="box_tb_b"> <view class="box_tb_b">
<view style="font-size: 22rpx;color: #999999;visibility: hidden;">预计用时10分钟</view> <view style="font-size: 22rpx;color: #999999;visibility: hidden;">预计用时10分钟</view>
<view class="btn" @click="jumpStudyPage()">立即学习</view> <view class="btn"
v-if="(InfoData.Words.NextWord==0||!InfoData.Words.NextWord)&&(InfoData.Words.ReviewWord==0||!InfoData.Words.ReviewWord)">
暂无新词</view>
<view class="btn" @click="jumpStudyPage()" v-else>立即学习</view>
</view> </view>
</view> </view>
</view> </view>
<view class="box_review" v-if='InfoData' :style="{height:InfoData.Review && InfoData.Review.length>0?'660rpx':'300rpx'}"> <view class="box_review" v-if='InfoData'
:style="{height:InfoData.Review && InfoData.Review.length>0?'660rpx':'300rpx'}">
<view class="row" style="justify-content: space-between;height: 50rpx;"> <view class="row" style="justify-content: space-between;height: 50rpx;">
<view class="row" style="color: #111111;font-size: 28rpx;font-weight: bold;"> <view class="row" style="color: #111111;font-size: 28rpx;font-weight: bold;">
<view >课程回顾 </view> <view>课程回顾 </view>
<view style="font-size: 20rpx;color: #999999;">(最近7天课程)</view> <view style="font-size: 20rpx;color: #999999;">(最近7天课程)</view>
</view> </view>
<view style="font-size: 22rpx;color: #4C50E7;" @click="gourl()">所有课程</view> <view style="font-size: 22rpx;color: #4C50E7;" @click="gourl()">所有课程</view>
</view> </view>
<view class="reviewcenter" v-if='InfoData.Review && InfoData.Review.length==0'> <view class="reviewcenter" v-if='InfoData.Review && InfoData.Review.length==0'>
<view style="font-size: 26rpx;font-family: PingFang SC;font-weight: bold;color: #111111;">暂无课程</view> <view style="font-size: 26rpx;font-family: PingFang SC;font-weight: bold;color: #111111;">暂无课程
<view style="font-size: 20rpx;font-family: PingFang SC;font-weight: 400;color: #888888;margin-top: 10px;">购买课程后可回顾</view> </view>
<view
style="font-size: 20rpx;font-family: PingFang SC;font-weight: 400;color: #888888;margin-top: 10px;">
购买课程后可回顾</view>
</view> </view>
<view class="box_review_date row" style="margin-top: 40rpx;" v-if='InfoData.Review && InfoData.Review.length>0'> <view class="box_review_date row" style="margin-top: 40rpx;"
v-if='InfoData.Review && InfoData.Review.length>0'>
<view v-for="(x,y) in InfoData.Review" :key='y'> <view v-for="(x,y) in InfoData.Review" :key='y'>
<view :class="{'box_review_date_item2':current==y}" class="box_review_date_item" @click="goreview(x,y)"> <view :class="{'box_review_date_item2':current==y}" class="box_review_date_item"
@click="goreview(x,y)">
<text>{{getdate(x,1)}}</text> <text>{{getdate(x,1)}}</text>
<text style="font-size: 22rpx;margin-top: 5px;">{{getdate(x,2)}}</text> <text style="font-size: 22rpx;margin-top: 5px;">{{getdate(x,2)}}</text>
</view> </view>
</view> </view>
</view> </view>
<view class="box_review_sp" v-if='InfoData.Review && InfoData.Review.length>0'> <view class="box_review_sp" v-if='InfoData.Review && InfoData.Review.length>0'>
<view class="box_review_box" v-if="loading"> <view class="box_review_box" v-if="loading">
<van-loading size="24px" vertical color="#FFF"text-color="#FFF">加载中...</van-loading> <van-loading size="24px" vertical color="#FFF" text-color="#FFF">加载中...</van-loading>
</view> </view>
<view class="box_review_box" v-if="!loading"> <view class="box_review_box" v-if="!loading">
<view v-if="InfoData.Review[current].videolist.length==0">暂无回顾视频...</view> <view v-if="InfoData.Review[current].videolist.length==0">暂无回顾视频...</view>
<template v-if="InfoData.Review[current].videolist.length>0"> <template v-if="InfoData.Review[current].videolist.length>0">
<swiper class="box_review_swiper" @change="swiperChange"> <swiper class="box_review_swiper" @change="swiperChange">
<swiper-item style="width: 100%;height: 100%;" v-for="(item, index) in InfoData.Review[current].videolist" :key="index"> <swiper-item style="width: 100%;height: 100%;"
<video class="myVideo" :id="'Video'+current+'-'+index" :src="item.URL" controls @error="spcuowu"></video> v-for="(item, index) in InfoData.Review[current].videolist" :key="index">
<video class="myVideo" :id="'Video'+current+'-'+index" :src="item.URL" controls
@error="spcuowu"></video>
</swiper-item> </swiper-item>
</swiper> </swiper>
</template> </template>
</view> </view>
</view> </view>
</view> </view>
<view class="examination" v-if='InfoData'> <view class="examination" v-if='InfoData'>
<view style="padding: 0 20px;"> <view style="padding: 0 20px;">
...@@ -324,7 +372,9 @@ ...@@ -324,7 +372,9 @@
<view style="font-size: 28rpx;color: #4C50E7;" @click="gourlkaoshilist()">更多考试</view> <view style="font-size: 28rpx;color: #4C50E7;" @click="gourlkaoshilist()">更多考试</view>
</view> </view>
</view> </view>
<view class="reviewcenter" style="height: 300rpx;margin-top: 0;align-items: center;justify-content: center;" v-if="InfoData.ExamList.length==0"> <view class="reviewcenter"
style="height: 300rpx;margin-top: 0;align-items: center;justify-content: center;"
v-if="InfoData.ExamList.length==0">
<view style="font-size: 26rpx; <view style="font-size: 26rpx;
font-family: PingFang SC; font-family: PingFang SC;
font-weight: bold; font-weight: bold;
...@@ -336,34 +386,36 @@ ...@@ -336,34 +386,36 @@
color: #999999;">参与考试后可查看</view> color: #999999;">参与考试后可查看</view>
</view> </view>
<view v-if="InfoData.ExamList.length>0"> <view v-if="InfoData.ExamList.length>0">
<view v-for="(x,y) in InfoData.ExamList" :key='y' > <view v-for="(x,y) in InfoData.ExamList" :key='y'>
<view class="examination-box"> <view class="examination-box">
<view style="padding: 20px;"> <view style="padding: 20px;">
<view style="font-size: 36rpx;font-weight: bold;color: #111111;">{{x.PaperName}}</view> <view style="font-size: 36rpx;font-weight: bold;color: #111111;">{{x.PaperName}}
</view>
<view style="font-size: 24rpx;font-weight: 500;color: #999999;margin-top: 9px;"> <view style="font-size: 24rpx;font-weight: 500;color: #999999;margin-top: 9px;">
测评次数:<text v-if="x.ExamStatus==1||x.ExamStatus==2||x.ExamStatus==4">0</text> 测评次数:<text v-if="x.ExamStatus==1||x.ExamStatus==2||x.ExamStatus==4">0</text>
<text v-if="x.ExamStatus==3||x.ExamStatus==5">1</text> <text v-if="x.ExamStatus==3||x.ExamStatus==5">1</text>
</view> </view>
</view> </view>
<view > <view>
<view class="examination-box-c"> <view class="examination-box-c">
<div class='examination-boxb' > <div class='examination-boxb'>
<view class="examination-box-c-item"> <view class="examination-box-c-item">
<text class="item_o">我的排名</text> <text class="item_o">我的排名</text>
<text class="item_t">#{{x.MyRank}}</text> <text class="item_t">#{{x.MyRank}}</text>
<text class="">分数</text> <text class="">分数</text>
</view> </view>
</div> </div>
<!-- 这个竖线不知道咋回事弄不出来 如果有好的方案麻烦改下 --> <!-- 这个竖线不知道咋回事弄不出来 如果有好的方案麻烦改下 -->
<view class="shuxian"> <view class="shuxian">
<view class="examination-box-c-item" style="border-left: 1px solid #E2E2E2;"> <view class="examination-box-c-item"
style="border-left: 1px solid #E2E2E2;">
<text class="item_o"></text> <text class="item_o"></text>
<text class="item_t" ></text> <text class="item_t"></text>
<text class="" style="opacity: 0;height: 34rpx;">.</text> <text class="" style="opacity: 0;height: 34rpx;">.</text>
</view> </view>
</view> </view>
<div class='examination-boxb' > <div class='examination-boxb'>
<view class="examination-box-c-item"> <view class="examination-box-c-item">
<text class="item_o">我的得分</text> <text class="item_o">我的得分</text>
<text class="item_t">{{x.TotalScore}}</text> <text class="item_t">{{x.TotalScore}}</text>
...@@ -371,34 +423,36 @@ ...@@ -371,34 +423,36 @@
</view> </view>
</div> </div>
<view class="shuxian"> <view class="shuxian">
<view class="examination-box-c-item" style="border-left: 1px solid #E2E2E2;"> <view class="examination-box-c-item"
style="border-left: 1px solid #E2E2E2;">
<text class="item_o"></text> <text class="item_o"></text>
<text class="item_t" ></text> <text class="item_t"></text>
<text class="" style="opacity: 0;height: 34rpx;">.</text> <text class="" style="opacity: 0;height: 34rpx;">.</text>
</view> </view>
</view> </view>
<!-- ExamStatus 1未开始 2已开始 3已考试 4缺考 5已阅卷 --> <!-- ExamStatus 1未开始 2已开始 3已考试 4缺考 5已阅卷 -->
<div class='examination-boxb' > <div class='examination-boxb'>
<view class="examination-box-c-item"> <view class="examination-box-c-item">
<text class="item_o">考试状态</text> <text class="item_o">考试状态</text>
<text class="" style="opacity: 0;height: 34rpx;">.</text> <text class="" style="opacity: 0;height: 34rpx;">.</text>
<text style="font-size: 28rpx;font-weight: bold" :class="{ <text style="font-size: 28rpx;font-weight: bold" :class="{
'status-blue': x.ExamStatus==1, 'status-blue': x.ExamStatus==1,
'status-green': x.ExamStatus==2, 'status-green': x.ExamStatus==2,
'status-black': x.ExamStatus==3, 'status-black': x.ExamStatus==3,
'status-red': x.ExamStatus==4, 'status-red': x.ExamStatus==4,
}">{{x.ExamStatusStr}}</text> }">{{x.ExamStatusStr}}</text>
</view> </view>
</div> </div>
<view class="shuxian"> <view class="shuxian">
<view class="examination-box-c-item" style="border-left: 1px solid #E2E2E2;"> <view class="examination-box-c-item"
style="border-left: 1px solid #E2E2E2;">
<text class="item_o"></text> <text class="item_o"></text>
<text class="item_t" ></text> <text class="item_t"></text>
<text class="" style="opacity: 0;height: 34rpx;">.</text> <text class="" style="opacity: 0;height: 34rpx;">.</text>
</view> </view>
</view> </view>
<div class='examination-boxb' > <div class='examination-boxb'>
<view class="examination-box-c-item"> <view class="examination-box-c-item">
<text class="item_o">我的耗时</text> <text class="item_o">我的耗时</text>
<text class="item_t">{{getTimems(x.ExamSecondTime) }}</text> <text class="item_t">{{getTimems(x.ExamSecondTime) }}</text>
...@@ -406,13 +460,14 @@ ...@@ -406,13 +460,14 @@
</view> </view>
</div> </div>
<view class="shuxian"> <view class="shuxian">
<view class="examination-box-c-item" style="border-left: 1px solid #E2E2E2;"> <view class="examination-box-c-item"
style="border-left: 1px solid #E2E2E2;">
<text class="item_o"></text> <text class="item_o"></text>
<text class="item_t" ></text> <text class="item_t"></text>
<text class="" style="opacity: 0;height: 34rpx;">.</text> <text class="" style="opacity: 0;height: 34rpx;">.</text>
</view> </view>
</view> </view>
<div class='examination-boxb' > <div class='examination-boxb'>
<view class="examination-box-c-item"> <view class="examination-box-c-item">
<text class="item_o">最高得分</text> <text class="item_o">最高得分</text>
<text class="item_t">{{x.MaxScore}}</text> <text class="item_t">{{x.MaxScore}}</text>
...@@ -440,37 +495,47 @@ ...@@ -440,37 +495,47 @@
import indexNo from './components/indexNo.vue' import indexNo from './components/indexNo.vue'
import carousel from './components/vear-carousel/vear-carousel.vue' import carousel from './components/vear-carousel/vear-carousel.vue'
import bottom from '../../components/bottom.vue' import bottom from '../../components/bottom.vue'
import {ref,reactive,toRefs,toRef,getCurrentInstance,watch,computed,onMounted,provide,} from "vue"; import {
ref,
reactive,
toRefs,
toRef,
getCurrentInstance,
watch,
computed,
onMounted,
provide,
} from "vue";
export default { export default {
components: { components: {
indexNo, indexNo,
bottom, bottom,
carousel carousel
}, },
setup(props) { setup(props) {
let { let {
proxy proxy
} = getCurrentInstance(); } = getCurrentInstance();
let data = reactive({ let data = reactive({
CourseList:[],//课程列表 CourseList: [], //课程列表
statusBarHeight: 0, statusBarHeight: 0,
CourseInfoMsg:{ CourseInfoMsg: {
ClassId:0, ClassId: 0,
GuestId:0, GuestId: 0,
CourseId:0 CourseId: 0
}, },
InfoData:null, InfoData: null,
current:0, current: 0,
loading:false,//获取视频加载中 loading: false, //获取视频加载中
checkIndex:0 checkIndex: 0
}) })
let methods = { let methods = {
getCourseList() { getCourseList() {
proxy.$request("/AppletIndex/GetMyStudyCourseList", {}).then(res => { proxy.$request("/AppletIndex/GetMyStudyCourseList", {}).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
data.CourseList = res.Data data.CourseList = res.Data
if(data.CourseList.length>0){ if (data.CourseList.length > 0) {
data.CourseInfoMsg.ClassId = data.CourseList[0].ClassId; data.CourseInfoMsg.ClassId = data.CourseList[0].ClassId;
data.CourseInfoMsg.GuestId = data.CourseList[0].GuestId; data.CourseInfoMsg.GuestId = data.CourseList[0].GuestId;
data.CourseInfoMsg.CourseId = data.CourseList[0].CourseId; data.CourseInfoMsg.CourseId = data.CourseList[0].CourseId;
...@@ -478,174 +543,178 @@ ...@@ -478,174 +543,178 @@
} }
} }
}) })
}, },
getCourseInfo() {//详情 getCourseInfo() { //详情
proxy.$request("/AppletIndex/GetMyStudyCourseInfo", data.CourseInfoMsg).then(res => { proxy.$request("/AppletIndex/GetMyStudyCourseInfo", data.CourseInfoMsg).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
data.InfoData = res.Data data.InfoData = res.Data
if(res.Data && res.Data.Review.length>0){ if (res.Data && res.Data.Review.length > 0) {
data.InfoData.Review.forEach(x=>{ data.InfoData.Review.forEach(x => {
x.videolist = [] x.videolist = []
}) })
that.getvideo() that.getvideo()
} }
} }
}) })
}, },
spcuowu(e){ spcuowu(e) {
console.log(e,'视频错误') console.log(e, '视频错误')
}, },
selectedBanner(index){//切换轮播图的时候 调取接口 selectedBanner(index) { //切换轮播图的时候 调取接口
data.checkIndex = index; data.checkIndex = index;
data.CourseInfoMsg.ClassId = data.CourseList[index].ClassId; data.CourseInfoMsg.ClassId = data.CourseList[index].ClassId;
that.getCourseInfo() that.getCourseInfo()
}, },
goreview(x,y){//回顾选择 goreview(x, y) { //回顾选择
that.swiperChange()//让当前页面的视频暂停 that.swiperChange() //让当前页面的视频暂停
data.current = y; data.current = y;
that.getvideo() that.getvideo()
}, },
getvideo(){ getvideo() {
if(data.InfoData.Review[data.current].videolist.length==0){ if (data.InfoData.Review[data.current].videolist.length == 0) {
let datalist = data.InfoData.Review[data.current].List let datalist = data.InfoData.Review[data.current].List
if(datalist.length>0){ if (datalist.length > 0) {
data.loading = true data.loading = true
datalist.forEach((x,y)=>{ datalist.forEach((x, y) => {
that.getvideoId(x,y) that.getvideoId(x, y)
}) })
} }
} }
}, },
getvideoId(x,y) {//获取视频id getvideoId(x, y) { //获取视频id
if(x.VideoUrl){//判断是否有视频id if (x.VideoUrl) { //判断是否有视频id
proxy.$request("/Video/GetVideoPlayAuth", {strVid:x.VideoUrl}).then(res => { proxy.$request("/Video/GetVideoPlayAuth", {
strVid: x.VideoUrl
}).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
that.getvideourl(res.Data,y) that.getvideourl(res.Data, y)
} }
}) })
}else{ } else {
data.loading = false data.loading = false
} }
}, },
async getvideourl(x,y) {//获取视频地址 async getvideourl(x, y) { //获取视频地址
proxy.$request("/Video/GetPlayInfo", {strVid:x.VideoMeta.VideoId}).then(res => { proxy.$request("/Video/GetPlayInfo", {
if (res.Code == 1) {//地址赋值 strVid: x.VideoMeta.VideoId
data.InfoData.Review[data.current].videolist.push(res.Data) }).then(res => {
if(y+1 == data.InfoData.Review[data.current].List.length){ if (res.Code == 1) { //地址赋值
data.loading = false data.InfoData.Review[data.current].videolist.push(res.Data)
if (y + 1 == data.InfoData.Review[data.current].List.length) {
data.loading = false
}
} }
} })
})
}, },
swiperChange(){//当前选择视频全部暂停 swiperChange() { //当前选择视频全部暂停
let trailer = data.InfoData.Review[data.current].videolist // 获取视频列表 let trailer = data.InfoData.Review[data.current].videolist // 获取视频列表
if(trailer.length>0){ if (trailer.length > 0) {
trailer.forEach((item, index) => { trailer.forEach((item, index) => {
if(item.URL != null && item.URL != ''){ if (item.URL != null && item.URL != '') {
let temp = 'Video'+data.current+'-'+index; let temp = 'Video' + data.current + '-' + index;
// 暂停其他视频 // 暂停其他视频
uni.createVideoContext(temp, this).pause() uni.createVideoContext(temp, this).pause()
} }
}) })
} }
}, },
gourl(){//学习列表 gourl() { //学习列表
let ClassId = data.CourseList[data.checkIndex].ClassId; let ClassId = data.CourseList[data.checkIndex].ClassId;
let CourseId = data.CourseList[data.checkIndex].CourseId; let CourseId = data.CourseList[data.checkIndex].CourseId;
let CourseName = data.CourseList[data.checkIndex].CourseName; let CourseName = data.CourseList[data.checkIndex].CourseName;
let TotalHours = data.CourseList[data.checkIndex].TotalHours; let TotalHours = data.CourseList[data.checkIndex].TotalHours;
uni.navigateTo({ uni.navigateTo({
url:'/pages/study/courseList?ClassId='+ClassId+'&CourseId='+CourseId+'&CourseName='+CourseName+'&TotalHours='+TotalHours url: '/pages/study/courseList?ClassId=' + ClassId + '&CourseId=' + CourseId +
'&CourseName=' + CourseName + '&TotalHours=' + TotalHours
}) })
}, },
gourlkaoshilist(){ gourlkaoshilist() {
let indexData = uni.getStorageSync("indexData") let indexData = uni.getStorageSync("indexData")
uni.navigateTo({ uni.navigateTo({
url:`/pages/exam/examPaperList?Id=${indexData.GuestId}` url: `/pages/exam/examPaperList?Id=${indexData.GuestId}`
}) })
}, },
jumpPage(url) { jumpPage(url) {
uni.navigateTo({ uni.navigateTo({
url: url, url: url,
}); });
}, },
jumpStudyPage(){ jumpStudyPage() {
let url = `/pages/word/word?CourseId=${data.InfoData.Words.CourseId}&&ChapterId=${data.InfoData.Words.NextCourseNo}&&ReviewChapterId=${data.InfoData.Words.ReviewCourseNo}&&ClassId=${data.InfoData.Words.ClassId}` let url =
`/pages/word/word?CourseId=${data.InfoData.Words.CourseId}&&ChapterId=${data.InfoData.Words.NextCourseNo}&&ReviewChapterId=${data.InfoData.Words.ReviewCourseNo}&&ClassId=${data.InfoData.Words.ClassId}`
uni.navigateTo({ uni.navigateTo({
url: url url: url
}); });
}, },
gourlkaoshixq(item){ gourlkaoshixq(item) {
let indexData = uni.getStorageSync("indexData") let indexData = uni.getStorageSync("indexData")
//ExamStatus 1未开始 2已开始 3已考试 4缺考 5已阅卷 //ExamStatus 1未开始 2已开始 3已考试 4缺考 5已阅卷
if (item.ExamStatus == 5) { if (item.ExamStatus == 5) {
this.jumpPage( this.jumpPage(
`/pages/exam/examScore?GuestId=${indexData.GuestId}&&PaperId=${item.PaperId}&&Id=${item.Id}&&Exam_Student_Id=${item.Exam_Student_Id}&&ExamStatus=${item.ExamStatus}` `/pages/exam/examScore?GuestId=${indexData.GuestId}&&PaperId=${item.PaperId}&&Id=${item.Id}&&Exam_Student_Id=${item.Exam_Student_Id}&&ExamStatus=${item.ExamStatus}`
); );
} else { } else {
this.jumpPage( this.jumpPage(
`/pages/exam/examPaper?GuestId=${indexData.GuestId}&&PaperId=${item.PaperId}&&Id=${item.Id}&&Exam_Student_Id=${item.Exam_Student_Id}&&ExamStatus=${item.ExamStatus}` `/pages/exam/examPaper?GuestId=${indexData.GuestId}&&PaperId=${item.PaperId}&&Id=${item.Id}&&Exam_Student_Id=${item.Exam_Student_Id}&&ExamStatus=${item.ExamStatus}`
); );
} }
}, },
getdate(x,type){//获取月和天 getdate(x, type) { //获取月和天
let day = '',month=''; let day = '',
if(type==1){ month = '';
if (type == 1) {
day = x.ClassDate.split('-')[2] day = x.ClassDate.split('-')[2]
return day return day
}else{ } else {
month = x.ClassDate.split('-')[1] month = x.ClassDate.split('-')[1]
month = Number(month)+'月' month = Number(month) + '月'
return month return month
} }
}, },
getTimems(data){//获取分秒 getTimems(data) { //获取分秒
let time = Number(data) let time = Number(data)
if(time>0){ if (time > 0) {
let second = Math.floor(time % 60); // 秒 let second = Math.floor(time % 60); // 秒
let minute = Math.floor(time % 3600 / 60); // 分 let minute = Math.floor(time % 3600 / 60); // 分
let hour = Math.floor(time / 3600); // 时 let hour = Math.floor(time / 3600); // 时
let str = ''; let str = '';
if (minute > 0 || hour > 0) { if (minute > 0 || hour > 0) {
if (hour > 0) { if (hour > 0) {
str = hour*60+minute + '′'; str = hour * 60 + minute + '′';
}else{ } else {
str = minute + '′'; str = minute + '′';
} }
} }
if (second > 0) { if (second > 0) {
str = str + second + '″'; str = str + second + '″';
} }
return str return str
}else{ } else {
return '0″' return '0″'
} }
} }
} }
onMounted(()=>{ onMounted(() => {
data.statusBarHeight = uni.getSystemInfoSync().statusBarHeight; data.statusBarHeight = uni.getSystemInfoSync().statusBarHeight;
}) })
let that = methods; let that = methods;
return { return {
...toRefs(data), ...toRefs(data),
...methods, ...methods,
}; };
}, },
onShow() { onShow() {
if(this.$isLogin()){ if (this.$isLogin()) {
this.getCourseList()//我的课程列表 this.getCourseList() //我的课程列表
} }
}, },
} }
</script> </script>
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