2024-05-21 01:30:43 +08:00

155 lines
3.2 KiB
Vue

<template>
<view class="main-content">
<headers :showBack="true" :themeType="true">
<view class="headerName">
学习详情
</view>
</headers>
<view class="video">
<video id="myVideo" :src="src"
:danmu-list="danmuList" enable-danmu danmu-btn controls @play="videoStart" @ended="videoEnd"></video>
<!-- @error="videoErrorCallback" -->
</view>
<view class="studybox">
<view class="studybox-line"></view>
<view class="studybox-text1">
<text>安全教育视频</text>
</view>
</view>
<button type="primary" class="btn" @click="goHiidden">开始考试</button>
</view>
</template>
<script>
export default {
data() {
return {
src: '',
danmuList: [{
text: '哈喽,欢迎收看',
color: '#ff0000',
time: 1
},
{
text: '欢迎收看',
color: '#ff00ff',
time: 3
}
],
pageData: {},
videoStartTime: "",
userInfo: ""
}
},
onReady: function(res) {
// #ifndef MP-ALIPAY
this.videoContext = uni.createVideoContext('myVideo')
// #endif
},
onLoad(options) {
this.userInfo = JSON.parse(uni.getStorageSync("userInfo"))
this.pageData = JSON.parse(options.transportData)
this.getDataFn();
},
methods: {
videoStart(){
this.videoStartTime = this.$formatDates(new Date().getTime(),'yyyy-MM-dd hh:mm:ss');
},
videoEnd(){
var that = this
let requestData = {
workerId: this.userInfo.id,
trainId: this.pageData.trainId,
beginTime: this.videoStartTime,
endTime: this.$formatDates(new Date().getTime(),'yyyy-MM-dd hh:mm:ss')
}
this.sendRequest({
url: "xmgl/workerExam/submitStudy",
data: requestData,
method: 'post',
success(res) {
}
})
},
getDataFn(){
var that = this
let requestData = {
courseId: this.pageData.courseId
}
this.sendRequest({
url: "xmgl/workerExam/queryCourse",
data: requestData,
method: 'post',
success(res) {
console.log('试题信息', res)
if(res.result){
that.src = JSON.parse(res.result.fileUrl)[0].url
console.log(that.src)
}
}
})
},
videoErrorCallback: function(e) {
uni.showModal({
content: e.target.errMsg,
showCancel: false
})
},
goHiidden() {
var that = this
let requestData = {
id: this.pageData.trainRecordId
}
this.sendRequest({
url: "xmgl/workerExam/startExam",
data: requestData,
method: 'post',
success(res) {
if(res.code == 200){
uni.navigateTo({
url: '../beginexam/beginexam?transportData=' + JSON.stringify(that.pageData)
});
}
}
})
},
}
}
</script>
<style scoped lang="scss">
.main-content {
.video {
width: 100%;
}
#myVideo {
width: 100%;
height: 386.25rpx;
}
.studybox {
height: 170rpx;
background: #FFFFFF;
box-shadow: 18rpx 8rpx 16rpx 4rpx rgba(168,193,255,0.17);
display: flex;
align-items: center;
.studybox-line{
width: 14rpx;
height: 100%;
background: #4B8DEC;
}
.studybox-text1{
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 40rpx;
color: #000000;
margin-left: 40rpx;
}
}
.btn {
margin: 159.62rpx 40.38rpx;
}
}
</style>