Compare commits
5 Commits
c45fa85a3f
...
9f5c8e59b2
Author | SHA1 | Date |
---|---|---|
zhangyanli | 9f5c8e59b2 | |
zhangyanli | 198927a265 | |
zhangyanli | 52f23a7647 | |
zhangyanli | 145ceb69da | |
zhangyanli | 39b128660b |
|
@ -1458,3 +1458,37 @@
|
|||
.tasks-warp .tasks-item .flex .tasks-time {
|
||||
color: #808080;
|
||||
}
|
||||
|
||||
.is-required{
|
||||
position: relative;
|
||||
}
|
||||
.is-required::before{
|
||||
content: '*';
|
||||
position: absolute;
|
||||
left: -20upx;
|
||||
top: 10upx;
|
||||
color: #f00;
|
||||
font-size: 36upx;
|
||||
}
|
||||
.is-required-cu{
|
||||
position: relative;
|
||||
}
|
||||
.is-required-cu::before{
|
||||
content: '*';
|
||||
position: absolute;
|
||||
left: -20upx;
|
||||
top: 30upx;
|
||||
color: #f00;
|
||||
font-size: 36upx;
|
||||
}
|
||||
.is-required-pic{
|
||||
position: relative;
|
||||
}
|
||||
.is-required-pic::before{
|
||||
content: '*';
|
||||
position: absolute;
|
||||
left: -10upx;
|
||||
top: 20upx;
|
||||
color: #f00;
|
||||
font-size: 36upx;
|
||||
}
|
||||
|
|
|
@ -224,8 +224,8 @@
|
|||
}
|
||||
|
||||
.livePusher {
|
||||
width: 350px;
|
||||
height: 350px;
|
||||
width: 700upx;
|
||||
height: 700upx;
|
||||
}
|
||||
|
||||
.livefater {
|
||||
|
@ -236,7 +236,7 @@
|
|||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin-bottom: 50rpx;
|
||||
height: 350px;
|
||||
height: 700upx;
|
||||
position: relative;
|
||||
}
|
||||
.fat{
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="studies_wrap-main">
|
||||
<view class="">行业类型:{{ item.INDUSTRY_ALL_NAME }}</view>
|
||||
<view class="">行业类型:{{ item.CORP_TYPE_NAME }}</view>
|
||||
<view class="">岗位类型:{{ item.POSTTYPE_NAME }}</view>
|
||||
<view class="">
|
||||
培训时间:{{ item.START_TIME }} 至 {{ item.END_TIME }}
|
||||
|
|
|
@ -114,6 +114,7 @@ import {basePath, loginUser, baseImgPath} from "@/common/tool";
|
|||
let faceAuthTimer; // 人脸认证计时器
|
||||
let throttleTimer;
|
||||
let throttleFlag;
|
||||
let videoContext;
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
@ -141,7 +142,8 @@ export default {
|
|||
videoSrc: "", // 视频地址
|
||||
videoPoster: "", // 视频封面图
|
||||
scrollHeight: '0px', // scroll-view减去的高度
|
||||
videoContext: null, // 视频上下文
|
||||
// videoContext: null, // 视频上下文
|
||||
submitTimeWaitForCount: 0, // 提交时间等待次数
|
||||
verification:false,// 是否人脸认证
|
||||
}
|
||||
},
|
||||
|
@ -325,7 +327,8 @@ export default {
|
|||
this.videoList = resData.pd.VIDEOLIST;
|
||||
},
|
||||
async fnVideoSwitching(videoData, hasNodes, index, index1) {
|
||||
this.videoContext && this.videoContext.pause();
|
||||
videoContext && videoContext.pause();
|
||||
this.submitTimeWaitForCount = 0;
|
||||
if (this.changeVideoPlayTime !== 0) {
|
||||
await this.fnSubmitPlayTime("0", this.changeVideoPlayTime);
|
||||
this.changeVideoPlayTime = 0;
|
||||
|
@ -361,10 +364,9 @@ export default {
|
|||
if (!resData.pd.RESOURCETIME) {
|
||||
await this.fnSubmitPlayTime("0", 0);
|
||||
}
|
||||
this.serverVideoPlayTime =
|
||||
resData.pd.RESOURCETIME > 10
|
||||
? Math.floor(resData.pd.RESOURCETIME - 10)
|
||||
: 0;
|
||||
console.log('resData.pd.RESOURCETIME:'+resData.pd.RESOURCETIME)
|
||||
this.serverVideoPlayTime = Math.floor(resData.pd.RESOURCETIME) || 0
|
||||
console.log('this.serverVideoPlayTime:'+this.serverVideoPlayTime)
|
||||
if (this.ISFACE === "1") {
|
||||
if (this.verification) {
|
||||
this.fnCreateVideo();
|
||||
|
@ -376,26 +378,45 @@ export default {
|
|||
}
|
||||
},
|
||||
fnCreateVideo() {
|
||||
if (!this.videoContext) {
|
||||
this.videoContext = uni.createVideoContext("video");
|
||||
}
|
||||
this.videoContext.play();
|
||||
this.serverVideoPlayTime !== 0 && this.videoContext.seek(this.serverVideoPlayTime);
|
||||
videoContext = null;
|
||||
videoContext = uni.createVideoContext("video");
|
||||
videoContext.play();
|
||||
console.log('fnCreateVideo:'+this.serverVideoPlayTime)
|
||||
this.serverVideoPlayTime !== 0 && videoContext.seek(this.serverVideoPlayTime);
|
||||
},
|
||||
fnTimeUpdate(event) {
|
||||
this.throttle(async () => {
|
||||
async fnTimeUpdate(event) {
|
||||
const currentTime = event.detail.currentTime;
|
||||
if (currentTime - this.serverVideoPlayTime >= 10) {
|
||||
uni.navigateBack();
|
||||
return;
|
||||
}
|
||||
//app视频自带bug,判断当前视频进度与服务器进度差,如果小于10秒,则退出重新进
|
||||
if(currentTime !== 0 && Math.abs(currentTime - this.serverVideoPlayTime) > 10) {
|
||||
videoContext.pause();
|
||||
uni.showModal({
|
||||
title: "提示",
|
||||
content: "app开发环境问题,偶现当前视频进度获取不准确,为了防止进度被覆盖,请退出重新进入!",
|
||||
showCancel:false,
|
||||
success: (res) => {
|
||||
uni.navigateBack();
|
||||
return;
|
||||
},
|
||||
});
|
||||
}
|
||||
this.changeVideoPlayTime = currentTime;
|
||||
if (currentTime - this.serverVideoPlayTime >= 5) {
|
||||
this.serverVideoPlayTime = currentTime;
|
||||
this.submitTimeWaitForCount = ++this.submitTimeWaitForCount;
|
||||
}
|
||||
if (this.submitTimeWaitForCount === 6) {
|
||||
this.submitTimeWaitForCount = 0;
|
||||
await this.fnSubmitPlayTime("0", currentTime);
|
||||
}
|
||||
}, 1000);
|
||||
},
|
||||
async fnSubmitPlayTime(IS_END, RESOURCETIME) {
|
||||
if(!this.videoData.VIDEOCOURSEWARE_ID) {
|
||||
return
|
||||
}
|
||||
const resData = await this.post('/app/coursestudyvideorecord/save',{
|
||||
USERNAME: loginUser.NAME,
|
||||
VIDEOCOURSEWARE_ID: this.videoData.VIDEOCOURSEWARE_ID,
|
||||
|
@ -442,7 +463,7 @@ export default {
|
|||
this.videoList[this.firstIndex].percent = percent;
|
||||
}
|
||||
if (resData.pd.CANEXAM === "1") {
|
||||
this.videoContext.pause();
|
||||
videoContext.pause();
|
||||
uni.showModal({
|
||||
title: "提示",
|
||||
content: "当前班级内所有课程均已学完,是否直接参加考试?",
|
||||
|
@ -450,20 +471,27 @@ export default {
|
|||
cancelButtonText: "否",
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
if (videoContext && videoContext.fullScreen) {
|
||||
videoContext.exitFullScreen()
|
||||
}
|
||||
uni.navigateTo({
|
||||
url: '/pages/application/onlinexxks/course_exam?STAGEEXAMPAPERINPUT_ID=' + resData.paper.STAGEEXAMPAPERINPUT_ID + '&STAGEEXAMPAPER_ID=' + resData.paper.STAGEEXAMPAPERINPUT_ID + '&CLASS_ID=' + this.CLASS_ID + '&POST_ID=' + resData.pd.POST_ID + '&STUDENT_ID=' + this.STUDENT_ID + '&NUMBEROFEXAMS=' + resData.pd.NUMBEROFEXAMS + '&entrySite=video_study'
|
||||
})
|
||||
} else if (res.cancel) {
|
||||
this.videoContext.play();
|
||||
videoContext.play();
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
},
|
||||
fnEnded() {
|
||||
if (this.changeVideoPlayTime - this.serverVideoPlayTime >= 10) {
|
||||
uni.navigateBack();
|
||||
return;
|
||||
}
|
||||
this.changeVideoPlayTime = 0;
|
||||
this.fnSubmitPlayTime("1", 0);
|
||||
this.videoContext.pause();
|
||||
videoContext.pause();
|
||||
this.fnClearInterval();
|
||||
},
|
||||
fnPlay() {
|
||||
|
@ -474,6 +502,7 @@ export default {
|
|||
}
|
||||
faceAuthTimer = setInterval(async () => {
|
||||
if (new Date().getTime() >= this.randomTime) {
|
||||
this.randomTime = 0;
|
||||
await this.fnSubmitPlayTime("0", this.changeVideoPlayTime);
|
||||
await this.fnNavigationFaceAuth();
|
||||
}
|
||||
|
@ -496,6 +525,9 @@ export default {
|
|||
CHAPTER_ID: this.videoData.CHAPTER_ID,
|
||||
VIDEOCOURSEWARE_ID: this.videoData.VIDEOCOURSEWARE_ID,
|
||||
})
|
||||
if (videoContext && videoContext.fullScreen) {
|
||||
videoContext.exitFullScreen()
|
||||
}
|
||||
const resData = await this.post('/app/user/getUserFace', {
|
||||
USERNAME: loginUser.NAME,
|
||||
USER_ID: loginUser.USER_ID,
|
||||
|
|
|
@ -7,16 +7,16 @@
|
|||
<scroll-view scroll-y="false" >
|
||||
<view class="form">
|
||||
<view class="cu-form-group">
|
||||
<view class="title">身份证号</view>
|
||||
<view class="title is-required">身份证号</view>
|
||||
<input v-model="formData.USER_ID_CARD" disabled placeholder="请输入身份证号" maxlength="18" name="input" style="color:#cccccc" />
|
||||
</view>
|
||||
<view class="cu-form-group margin-top-xs">
|
||||
<view class="title">姓名</view>
|
||||
<view class="title is-required">姓名</view>
|
||||
<input v-model="formData.NAME" :disabled="forbidEdit" placeholder="请输入姓名" maxlength="50" name="input" :style="'color:' + colorValue + ';'" />
|
||||
</view>
|
||||
<view class="cu-form-group margin-top-xs">
|
||||
<view class="title">手机</view>
|
||||
<input v-model="formData.PHONE" :disabled="forbidEdit" placeholder="请输入手机证号" maxlength="11" name="input" :style="'color:' + colorValue + ';'" />
|
||||
<view class="title is-required">手机</view>
|
||||
<input v-model="formData.PHONE" :disabled="forbidEdit" placeholder="请输入手机号码" maxlength="11" name="input" :style="'color:' + colorValue + ';'" />
|
||||
</view>
|
||||
<view v-if="forbidEdit && formData.CORPINFO_ID" class="cu-form-group margin-top-xs">
|
||||
<view class="title">服务单位</view>
|
||||
|
@ -24,8 +24,8 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="cu-bar btn-group" style="margin-top: 30upx;">
|
||||
<button v-if="!forbidEdit" class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(confirmAccount,'1')">下一步</button>
|
||||
<button v-if="forbidEdit && applyStatus !== '0'" class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(goEdit)">编辑</button>
|
||||
<button v-if="!forbidEdit" class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(confirmAccount)">下一步</button>
|
||||
<button v-if="forbidEdit && applyStatus !== '0'" class="cu-btn bg-blue margin-tb-sm lg" @click="goEdit">编辑</button>
|
||||
<!-- <button class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goback)">返回</button>-->
|
||||
</view>
|
||||
</scroll-view>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
</view>
|
||||
<view class="cu-form-group margin-top-xs">
|
||||
<view class="title">手机</view>
|
||||
<input v-model="formData.PHONE" disabled placeholder="请输入手机证号" maxlength="11" name="input" style="color: #cccccc" />
|
||||
<input v-model="formData.PHONE" disabled placeholder="请输入手机号码" maxlength="11" name="input" style="color: #cccccc" />
|
||||
</view>
|
||||
<view class="cu-form-group margin-top-xs">
|
||||
<view class="title">人员类型</view>
|
||||
|
@ -53,7 +53,7 @@
|
|||
</view>
|
||||
<view class="cu-bar btn-group" style="margin-top: 30upx;">
|
||||
<button v-if="!forbidEdit" :loading="buttonloading" :disabled="buttonloading" class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(confirmApply)">提 交</button>
|
||||
<button v-if="forbidEdit" class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(goEdit)">编辑</button>
|
||||
<button v-if="forbidEdit" class="cu-btn bg-blue margin-tb-sm lg" @click="goEdit">编辑</button>
|
||||
<!-- <button class="cu-btn bg-green margin-tb-sm lg" @click="$noMultipleClicks(goback)">返回</button>-->
|
||||
</view>
|
||||
</scroll-view>
|
||||
|
@ -147,6 +147,9 @@ export default {
|
|||
}
|
||||
this.$forceUpdate();//强制刷新
|
||||
},
|
||||
goEdit(){
|
||||
this.$emit("goEdit", false);
|
||||
},
|
||||
goback(){
|
||||
var pages = getCurrentPages(); // 获取当前页面栈
|
||||
var prePage = pages[pages.length - 2]; // 上二级页面
|
||||
|
|
|
@ -7,16 +7,16 @@
|
|||
<scroll-view scroll-y="false" >
|
||||
<view class="form">
|
||||
<view class="cu-form-group">
|
||||
<view class="title">身份证号</view>
|
||||
<view class="title is-required">身份证号</view>
|
||||
<input v-model="formData.USER_ID_CARD" placeholder="请输入身份证号" maxlength="18" name="input" />
|
||||
</view>
|
||||
<view class="cu-form-group margin-top-xs">
|
||||
<view class="title">姓名</view>
|
||||
<view class="title is-required">姓名</view>
|
||||
<input v-model="formData.NAME" placeholder="请输入姓名" maxlength="50" name="input" />
|
||||
</view>
|
||||
<view class="cu-form-group margin-top-xs">
|
||||
<view class="title">手机</view>
|
||||
<input v-model="formData.PHONE" placeholder="请输入手机证号" maxlength="11" name="input" />
|
||||
<view class="title is-required">手机</view>
|
||||
<input v-model="formData.PHONE" placeholder="请输入手机号码" maxlength="11" name="input" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="cu-bar btn-group" style="margin-top: 30upx;">
|
||||
|
|
|
@ -7,19 +7,19 @@
|
|||
<scroll-view scroll-y="false" >
|
||||
<view class="form">
|
||||
<view class="cu-form-group">
|
||||
<view class="title">姓名</view>
|
||||
<view class="title is-required">姓名</view>
|
||||
<input v-model="formData.NAME" disabled placeholder="请输入姓名" maxlength="50" name="input" style="color: #cccccc" />
|
||||
</view>
|
||||
<view class="cu-form-group margin-top-xs">
|
||||
<view class="title">身份证号</view>
|
||||
<view class="title is-required">身份证号</view>
|
||||
<input v-model="formData.USER_ID_CARD" disabled placeholder="请输入身份证号" maxlength="18" name="input" style="color: #cccccc" />
|
||||
</view>
|
||||
<view class="cu-form-group margin-top-xs">
|
||||
<view class="title">手机</view>
|
||||
<input v-model="formData.PHONE" disabled placeholder="请输入手机证号" maxlength="11" name="input" style="color: #cccccc" />
|
||||
<view class="title is-required">手机</view>
|
||||
<input v-model="formData.PHONE" disabled placeholder="请输入手机号码" maxlength="11" name="input" style="color: #cccccc" />
|
||||
</view>
|
||||
<view class="cu-form-group margin-top-xs">
|
||||
<view class="title">人员类型</view>
|
||||
<view class="title is-required">人员类型</view>
|
||||
<picker @change="pickerChangeData($event,'PERSONNEL_TYPE')" disabled :value="dictData.PERSONNEL_TYPE.index" :range="dictData.PERSONNEL_TYPE.list" range-key="NAME">
|
||||
<view class="picker" style="color: #cccccc">
|
||||
{{formData.PERSONNEL_TYPE.join()}}
|
||||
|
@ -30,7 +30,7 @@
|
|||
<!-- 入职申请 -->
|
||||
<uni-section title="入职申请" type="line" class="margin-top" padding>
|
||||
<view class="cu-form-group margin-top-xs">
|
||||
<view class="title">入职企业</view>
|
||||
<view class="title is-required">入职企业</view>
|
||||
<zqs-select
|
||||
:multiple="false"
|
||||
:list="dictData.APPLY_CORP.list"
|
||||
|
|
Loading…
Reference in New Issue