613 lines
14 KiB
JavaScript
613 lines
14 KiB
JavaScript
|
// pages/newAddPage/safetyBriefingLearning/index.js
|
|||
|
const app = getApp()
|
|||
|
Page({
|
|||
|
/**
|
|||
|
* 页面的初始数据
|
|||
|
*/
|
|||
|
data: {
|
|||
|
//所有三级安全教育视频
|
|||
|
allVideo:{},
|
|||
|
// 声明一个数组,里面放着要展示的视频链接
|
|||
|
videoList:[],
|
|||
|
formatanswer:'',
|
|||
|
second:0,
|
|||
|
second_state:true,
|
|||
|
timer:'',
|
|||
|
|
|||
|
index:0,
|
|||
|
answer:false,
|
|||
|
|
|||
|
up:false,
|
|||
|
down:false,
|
|||
|
to:false,
|
|||
|
|
|||
|
questionsData:[],
|
|||
|
//单独视频url
|
|||
|
videoUrl:'',
|
|||
|
videoObj:{},
|
|||
|
//学习时长
|
|||
|
learnTime:1,
|
|||
|
watchTimer:'',
|
|||
|
openId:'',
|
|||
|
activeState:1,
|
|||
|
//答案提示
|
|||
|
answerTip:'',
|
|||
|
//考试分数
|
|||
|
fullScore:'',
|
|||
|
examPaperId:'',
|
|||
|
//控制视频时长
|
|||
|
companyTimer:'',
|
|||
|
companyTime:0,
|
|||
|
projectTimer:'',
|
|||
|
projectTime:0,
|
|||
|
groupTimer:'',
|
|||
|
groupTime:0,
|
|||
|
//试题显示标识
|
|||
|
paperFlag:false
|
|||
|
},
|
|||
|
trainingTypeJump(e){
|
|||
|
var that = this
|
|||
|
// this.onClickShow();
|
|||
|
let index = e.currentTarget.dataset.index;
|
|||
|
var videoList = []
|
|||
|
let titleName = '';
|
|||
|
|
|||
|
switch(index) {
|
|||
|
case '1':
|
|||
|
titleName = '公司级';
|
|||
|
videoList = that.data.allVideo.companyList
|
|||
|
break;
|
|||
|
case '2':
|
|||
|
if(that.data.companyTime < 30) {
|
|||
|
app.toast("温馨提示:当前视频学习完成后,方可进行下一个视频学习。");
|
|||
|
return;
|
|||
|
} else {
|
|||
|
if( that.data.projectTime <30) {
|
|||
|
var projectTimer = setInterval(() => {
|
|||
|
var projectTime = that.data.projectTime;
|
|||
|
if(projectTime >= 0 && projectTime <= 29){
|
|||
|
this.setData({
|
|||
|
projectTime:parseInt(projectTime) + 1,
|
|||
|
projectTimer:projectTimer
|
|||
|
})
|
|||
|
}else{
|
|||
|
clearInterval(this.data.projectTimer);
|
|||
|
}
|
|||
|
}, 1000);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
titleName = '项目级';
|
|||
|
videoList = that.data.allVideo.projectList
|
|||
|
|
|||
|
break;
|
|||
|
case '3':
|
|||
|
if(that.data.companyTime < 30 || that.data.projectTime < 30) {
|
|||
|
app.toast("温馨提示:当前视频学习完成后,方可进行下一个视频学习。");
|
|||
|
return;
|
|||
|
} else {
|
|||
|
if(that.data.groupTime < 30) {
|
|||
|
var groupTimer = setInterval(() => {
|
|||
|
var groupTime = that.data.groupTime;
|
|||
|
if(groupTime >= 0 && groupTime <= 29){
|
|||
|
this.setData({
|
|||
|
groupTime:parseInt(groupTime) + 1,
|
|||
|
groupTimer:groupTimer
|
|||
|
})
|
|||
|
}else{
|
|||
|
clearInterval(this.data.groupTimer);
|
|||
|
that.setData({
|
|||
|
paperFlag:true
|
|||
|
})
|
|||
|
}
|
|||
|
}, 1000);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
titleName = '班组级';
|
|||
|
videoList = that.data.allVideo.groupList
|
|||
|
break;
|
|||
|
default:
|
|||
|
videoList = []
|
|||
|
break
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
this.setData({
|
|||
|
titleName:titleName,
|
|||
|
activeState:index,
|
|||
|
videoList:videoList,
|
|||
|
pageNo:1,
|
|||
|
type:1,
|
|||
|
trainingType:index,
|
|||
|
startDate:'',
|
|||
|
endDate:'',
|
|||
|
collaborateRanksId:''
|
|||
|
});
|
|||
|
console.log(videoList)
|
|||
|
// this.getTrainingList();
|
|||
|
// this.getTrainingNumberOfPeopleCount();
|
|||
|
},
|
|||
|
//打开视频
|
|||
|
bindplay_click(){
|
|||
|
var timer = setInterval(() => {
|
|||
|
var second = this.data.second
|
|||
|
if(second == parseInt(this.data.videoObj.effectiveDuration)) {
|
|||
|
this.addUserRecord()
|
|||
|
}
|
|||
|
if(second > 0){
|
|||
|
this.setData({
|
|||
|
second:second - 1,
|
|||
|
timer:timer
|
|||
|
})
|
|||
|
}
|
|||
|
else{
|
|||
|
clearInterval(this.data.timer);
|
|||
|
this.setData({
|
|||
|
second_state:false,
|
|||
|
})
|
|||
|
}
|
|||
|
}, 1000);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
var watchTimer = setInterval(() => {
|
|||
|
var learnTime = this.data.learnTime;
|
|||
|
if(learnTime >= 0){
|
|||
|
this.setData({
|
|||
|
learnTime:parseInt(learnTime) + 1,
|
|||
|
watchTimer:watchTimer
|
|||
|
})
|
|||
|
}else{
|
|||
|
clearInterval(this.data.watchTimer);
|
|||
|
}
|
|||
|
}, 1000);
|
|||
|
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
//暂停视频
|
|||
|
bindpause_click(){
|
|||
|
if(this.data.second > 0){
|
|||
|
clearInterval(this.data.timer);
|
|||
|
}
|
|||
|
if(this.data.learnTime > 0) {
|
|||
|
clearInterval(this.data.watchTimer);
|
|||
|
}
|
|||
|
},
|
|||
|
// 点击查看详情
|
|||
|
chakanBtn(e){
|
|||
|
var data = this.data.questionsData
|
|||
|
var i = this.data.index
|
|||
|
data[i].type=true
|
|||
|
var tempList = data[i].answer_list
|
|||
|
var str = ''
|
|||
|
for(var j =0;j <tempList.length;j++) {
|
|||
|
if(data[i].correct_answer == tempList[j].letter) {
|
|||
|
str = tempList[j].answer;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
this.setData({
|
|||
|
questionsData:data,
|
|||
|
answerTip:str
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
//选择答案
|
|||
|
chooseAnswer(e){
|
|||
|
var data = this.data.questionsData
|
|||
|
var i = this.data.index
|
|||
|
var j = e.currentTarget.dataset.j
|
|||
|
var item =e.currentTarget.dataset.item
|
|||
|
console.log(item);
|
|||
|
|
|||
|
if(data[i].topic_state == false){
|
|||
|
data[i].type = true
|
|||
|
for(var z = 0;z<data[i].answer_list.length;z++){
|
|||
|
data[i].answer_list[z].answer_state = false
|
|||
|
}
|
|||
|
data[i].answer_list[j].answer_state = true
|
|||
|
|
|||
|
if(data[i].correct_answer == item.letter){
|
|||
|
data[i].topic_state = true
|
|||
|
if(i < data.length-1){
|
|||
|
this.setData({
|
|||
|
index:i+1
|
|||
|
})
|
|||
|
}
|
|||
|
if(data.length == 1){
|
|||
|
this.setData({
|
|||
|
to:true,
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
var tempList = data[i].answer_list
|
|||
|
var str = ''
|
|||
|
for(var j =0;j <tempList.length;j++) {
|
|||
|
if(data[i].correct_answer == tempList[j].letter) {
|
|||
|
str = tempList[j].answer;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
this.setData({
|
|||
|
questionsData:data,
|
|||
|
answerTip:str
|
|||
|
})
|
|||
|
|
|||
|
if(this.data.index > 0 ){
|
|||
|
this.setData({
|
|||
|
up:true,
|
|||
|
})
|
|||
|
if(this.data.questionsData.length - 1 == this.data.index && this.data.questionsData[this.data.index].topic_state == true){
|
|||
|
this.setData({
|
|||
|
to:true,
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
},
|
|||
|
|
|||
|
//点击上一题
|
|||
|
onClickUp(){
|
|||
|
var that = this
|
|||
|
this.setData({
|
|||
|
index:this.data.index - 1
|
|||
|
})
|
|||
|
|
|||
|
|
|||
|
if(that.data.index == 0){
|
|||
|
that.setData({
|
|||
|
up:false,
|
|||
|
down:true
|
|||
|
})
|
|||
|
}else{
|
|||
|
if(that.data.questionsData[that.data.index].topic_state == false){
|
|||
|
that.setData({
|
|||
|
up:true,
|
|||
|
down:false,
|
|||
|
to:false
|
|||
|
|
|||
|
})
|
|||
|
}else{
|
|||
|
that.setData({
|
|||
|
up:true,
|
|||
|
down:true,
|
|||
|
to:false
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
var data = this.data.questionsData
|
|||
|
var i = this.data.index
|
|||
|
var tempList = data[i].answer_list
|
|||
|
var str = ''
|
|||
|
for(var j =0;j <tempList.length;j++) {
|
|||
|
if(data[i].correct_answer == tempList[j].letter) {
|
|||
|
str = tempList[j].answer;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
this.setData({
|
|||
|
answerTip:str
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
//点击下一题
|
|||
|
onClickDown(){
|
|||
|
this.setData({
|
|||
|
index:this.data.index + 1
|
|||
|
})
|
|||
|
if(this.data.index == this.data.questionsData.length-1 ){
|
|||
|
if(this.data.questionsData[this.data.index].topic_state == false){
|
|||
|
this.setData({
|
|||
|
up:true,
|
|||
|
down:false,
|
|||
|
to:false
|
|||
|
})
|
|||
|
}else{
|
|||
|
this.setData({
|
|||
|
up:true,
|
|||
|
down:false,
|
|||
|
to:true
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
}else{
|
|||
|
if(this.data.questionsData[this.data.index].topic_state == false){
|
|||
|
this.setData({
|
|||
|
up:true,
|
|||
|
down:false,
|
|||
|
to:false
|
|||
|
})
|
|||
|
}else{
|
|||
|
this.setData({
|
|||
|
up:true,
|
|||
|
down:true,
|
|||
|
to:false
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
var data = this.data.questionsData
|
|||
|
var i = this.data.index
|
|||
|
var tempList = data[i].answer_list
|
|||
|
var str = ''
|
|||
|
for(var j =0;j <tempList.length;j++) {
|
|||
|
if(data[i].correct_answer == tempList[j].letter) {
|
|||
|
str = tempList[j].answer;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
this.setData({
|
|||
|
answerTip:str
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面加载
|
|||
|
*/
|
|||
|
onLoad(options) {
|
|||
|
var that = this;
|
|||
|
that.setData({
|
|||
|
openId:wx.getStorageSync('userOenId')
|
|||
|
})
|
|||
|
|
|||
|
//获取视频链接
|
|||
|
that.getVideoURL(options.projectId,options.firstWorkType,options.secondWorkType)
|
|||
|
//获取在线答题题目信息
|
|||
|
that.getOnlineExamList(1,options.projectId,options.firstWorkType,options.secondWorkType);
|
|||
|
|
|||
|
|
|||
|
// 拿取video盒子的宽高
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面加载
|
|||
|
*/
|
|||
|
// var that = this;
|
|||
|
// var query = wx.createSelectorQuery(); //创建节点选择器
|
|||
|
// //#box需要与wxml里面的id保持一致
|
|||
|
// query.select('#myVideo').boundingClientRect(function (rect) {
|
|||
|
// console.log('00000',rect);
|
|||
|
// that.setData({
|
|||
|
// myVideo: rect
|
|||
|
// });
|
|||
|
// }).exec();
|
|||
|
var companyTimer = setInterval(() => {
|
|||
|
var companyTime = this.data.companyTime;
|
|||
|
if(companyTime >= 0 && companyTime <= 29){
|
|||
|
this.setData({
|
|||
|
companyTime:parseInt(companyTime) + 1,
|
|||
|
companyTimer:companyTimer
|
|||
|
})
|
|||
|
console.log(this.data.companyTime)
|
|||
|
}else{
|
|||
|
clearInterval(this.data.companyTimer);
|
|||
|
}
|
|||
|
}, 1000);
|
|||
|
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面初次渲染完成
|
|||
|
*/
|
|||
|
onReady(){
|
|||
|
|
|||
|
},
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面显示
|
|||
|
*/
|
|||
|
onShow() {
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面隐藏
|
|||
|
*/
|
|||
|
onHide() {
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面卸载
|
|||
|
*/
|
|||
|
onUnload() {
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 页面相关事件处理函数--监听用户下拉动作
|
|||
|
*/
|
|||
|
onPullDownRefresh() {
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 页面上拉触底事件的处理函数
|
|||
|
*/
|
|||
|
onReachBottom() {
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 用户点击右上角分享
|
|||
|
*/
|
|||
|
onShareAppMessage() {
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 获取在线答题题目信息
|
|||
|
* @param {*} questionType 题目类型(1:安全,2施工技艺)
|
|||
|
*/
|
|||
|
getOnlineExamList(questionType,projectId,firstWorkType,secondWorkType){
|
|||
|
var that = this
|
|||
|
wx.request({
|
|||
|
url: app.globalData.szhUrl+'/mkl/api/getOnlineExamList',
|
|||
|
data:{
|
|||
|
"questionType":questionType,
|
|||
|
"projectId":projectId,
|
|||
|
"firstWorkType":firstWorkType,
|
|||
|
"secondWorkType":secondWorkType
|
|||
|
},
|
|||
|
method:"GET",
|
|||
|
success:function(res){
|
|||
|
that.setData({
|
|||
|
questionsData:res.data,
|
|||
|
examPaperId:res.data[0].examPaperId == undefined ?null:res.data[0].examPaperId,
|
|||
|
fullScore:res.data[0].totalScore== undefined ?null:res.data[0].totalScore
|
|||
|
})
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 提交答题记录
|
|||
|
*/
|
|||
|
onClickTo(){
|
|||
|
var that = this
|
|||
|
wx.request({
|
|||
|
url: app.globalData.szhUrl+'/mkl/api/addOnlineExamLog',
|
|||
|
data:{
|
|||
|
"openId": wx.getStorageSync('userOpenId'),
|
|||
|
"idCardNo": wx.getStorageSync('idCardNo'),
|
|||
|
"score":that.data.fullScore,
|
|||
|
"fullScore":that.data.fullScore,
|
|||
|
"examPaperId":that.data.examPaperId,
|
|||
|
"randomScore":Math.floor(Math.random()*10)
|
|||
|
},
|
|||
|
method:"GET",
|
|||
|
success:function(res){
|
|||
|
if(res.data.code == '200'){
|
|||
|
that.setData({ up:false });
|
|||
|
that.setData({ down:false });
|
|||
|
that.setData({ to:false });
|
|||
|
wx.redirectTo({
|
|||
|
url: '../letterCommitment/index'
|
|||
|
})
|
|||
|
}else{
|
|||
|
app.toast(res.data.msg);
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 获取视频链接
|
|||
|
*/
|
|||
|
getVideoURL(projectId,firstWorkType,secondWorkType) {
|
|||
|
var that = this
|
|||
|
wx.request({
|
|||
|
url: app.globalData.szhUrl+'/mkl/api/getOnlineVideoList',
|
|||
|
data:{
|
|||
|
fileType: 1,//视频
|
|||
|
projectId:projectId,
|
|||
|
firstWorkType:firstWorkType,
|
|||
|
secondWorkType:secondWorkType
|
|||
|
},
|
|||
|
method:"GET",
|
|||
|
success:function(res){
|
|||
|
console.log(res)
|
|||
|
console.log(res.data.code)
|
|||
|
if(res.data.code == 0) {
|
|||
|
that.setData({
|
|||
|
allVideo:res.data.data
|
|||
|
})
|
|||
|
}
|
|||
|
var videoList = []
|
|||
|
switch(that.data.activeState ) {
|
|||
|
case 1:
|
|||
|
videoList = that.data.allVideo.companyList
|
|||
|
break;
|
|||
|
case 2:
|
|||
|
videoList = that.data.allVideo.projectList
|
|||
|
break;
|
|||
|
case 3:
|
|||
|
videoList = that.data.allVideo.groupList
|
|||
|
break;
|
|||
|
default:
|
|||
|
videoList = []
|
|||
|
break
|
|||
|
}
|
|||
|
that.setData({
|
|||
|
videoList:videoList
|
|||
|
})
|
|||
|
console.log(that.data.videoList)
|
|||
|
// if(res.data.length > 0) {
|
|||
|
// var list = res.data
|
|||
|
// let url = list[0].videoUrl;
|
|||
|
// let effectiveDuration = parseInt(list[0].effectiveDuration)
|
|||
|
// that.setData({
|
|||
|
// videoObj:list[0],
|
|||
|
// videoUrl:url,
|
|||
|
// second:effectiveDuration
|
|||
|
// })
|
|||
|
// }
|
|||
|
that.checkUserFinishedFlag()
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 添加用户学习记录
|
|||
|
*/
|
|||
|
addUserRecord() {
|
|||
|
var that = this
|
|||
|
var completeFlag = parseInt(that.data.learnTime) >= parseInt(that.data.videoObj.effectiveDuration == ""?0: that.data.videoObj.effectiveDuration)?1:0
|
|||
|
wx.request({
|
|||
|
url:app.globalData.szhUrl+'/mkl/api/addEducationRecord',
|
|||
|
data:{
|
|||
|
initialId:that.data.videoObj.id,
|
|||
|
userId:wx.getStorageSync('idCardNo'),
|
|||
|
openId:wx.getStorageSync('userOpenId'),
|
|||
|
learningDuration:that.data.learnTime,
|
|||
|
completeFlag:completeFlag
|
|||
|
},
|
|||
|
method:"POST",
|
|||
|
success:function(res){
|
|||
|
if(res.data.code == 0){
|
|||
|
console.log("添加学习记录成功!")
|
|||
|
}else{
|
|||
|
console.log("添加学习记录失败!")
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 获取用户学习时长
|
|||
|
*/
|
|||
|
getUserLearnTime() {
|
|||
|
this.addUserRecord()
|
|||
|
this.onClickTo()
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 查询用户是否学习
|
|||
|
*/
|
|||
|
checkUserFinishedFlag() {
|
|||
|
var that = this
|
|||
|
wx.request({
|
|||
|
url:app.globalData.szhUrl+'/mkl/api/getUserFinishList',
|
|||
|
data:{
|
|||
|
initialId:parseInt(that.data.videoObj.id),
|
|||
|
userId:wx.getStorageSync('idCardNo')
|
|||
|
},
|
|||
|
method:"POST",
|
|||
|
success:function(res){
|
|||
|
if(res.data.code == 0){
|
|||
|
if(res.data.data.length >0) {
|
|||
|
var obj = res.data.data[0];
|
|||
|
if(obj.completeFlag == "1") {
|
|||
|
that.setData({
|
|||
|
second_state:false
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
|
|||
|
})
|