integrated_traffic_uniapp/pages/application/onlinexxks/my_learning.vue

301 lines
8.8 KiB
Vue

<template>
<view>
<cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">我的学习</block>
</cu-custom>
<view class="container">
<scroll-view @scrolltolower="scrolltolower" scroll-y style="height: calc(100vh - 65px)">
<view v-if="list.length > 0">
<view class="studies_wrap" v-for="(item, index) in list" :key="index">
<view class="studies_wrap-top">
<view class="studies_wrap_title">班级名称: {{ item.NAME }}</view>
<view class="studies_wrap_state">
<view class="fcb" v-if="item.STUDYSTATE === '1'">学习中</view>
<view class="fcg" v-if="item.STUDYSTATE === '2'">已学完</view>
<view class="fch" v-if="item.STUDYSTATE === '0'">未学习</view>
<view class="fch" v-if="item.STUDYSTATE === '3'">已完成</view>
<view class="fch" v-if="item.STUDYSTATE === '4'">未完成</view>
<view class="fch" v-if="item.STUDYSTATE === '5'">待评估</view>
<view class="fch" v-if="item.STUDYSTATE === '6'">评估未合格</view>
</view>
</view>
<view class="studies_wrap-main">
<view class="">行业类型:{{ item.INDUSTRY_ALL_NAME }}</view>
<view class="">岗位类型:{{ item.POSTTYPE_NAME }}</view>
<view class="">
培训时间:{{ item.START_TIME }} 至 {{ item.END_TIME }}
</view>
</view>
<view class="studies_wrap-bottom">
<view class="flex">
<image src="/static/study/time.png" alt=""/>
<view>
<uni-countdown :second="item.second"/>
</view>
</view>
<view class="">
<button
class="cu-btn round bg-blue"
v-show="
item.STUDYSTATE >= '2' &&
item.STAGEEXAMSTATE >= '2' &&
(item.ISSTRENGTHEN === '1' || item.ISSTRENGTHEN === '2') &&
item.STRENGTHENEXAMSTATE === '0'
"
type="primary"
round
@click="fnJudgeToStrengthen(item)"
>
加强学习
</button>
<button
class="cu-btn round bg-blue"
v-show="item.STUDYSTATE <= '1' && item.STATE === '5'"
@click="fnJudgeSignature(item)"
>
立即学习
</button>
<button
class="cu-btn round bg-green"
v-show="
item.STUDYSTATE === '2' &&
item.STATE !== '6' &&
item.EXAMINATION === 1 &&
item.STAGEEXAMSTATE === '1' &&
item.ksCount < item.NUMBEROFEXAMS
"
@click="fnStageExam(item)"
>
立即考试
</button>
</view>
</view>
</view>
</view>
<view v-if="list.length===0" class="dy-null">
<view class="dy-null-img">
<image src="../../../static/null.png" mode=""></image>
</view>
<view class="dy-null-title">
暂无数据
</view>
</view>
</scroll-view>
</view>
<view class="cu-modal" :class="modalName=='Modal'?'show':''">
<landscape-sign @confirm="subCanvas" @cancel="hideModal"></landscape-sign>
</view>
</view>
</template>
<script>
import LandscapeSign from "@/components/landscape_sign/index.vue";
import {basePath, loginUser} from "@/common/tool";
export default {
components: {
LandscapeSign,
},
data() {
return {
list: [],
showCount: 10,
currentPage: 1,
totalPage: 0,
modalName: '',
CLASS_ID: '',
POST_ID: '',
STAGESTUDENTRELATION_ID: '',
STUDENT_ID: '',
}
},
onShow() {
this.list = []
this.currentPage = 1
this.totalPage = 0
this.showCount = 10
this.getData()
},
methods: {
scrolltolower() {
this.currentPage++
if (this.totalPage >= this.currentPage) {
this.getData()
}
},
getData() {
uni.showLoading({
title: '请稍候'
})
uni.request({
url: basePath + '/app/stagestudentrelation/pageTaskByUser',
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
data: {
CORPINFO_ID: loginUser.CORPINFO_ID,
USER_ID: loginUser.USER_ID,
showCount: this.showCount,
currentPage: this.currentPage,
},
success: (res) => {
uni.hideLoading(); //结束加载中动画
var resData = res.data;
if ("success" == resData.result) {
for (let i = 0; i < resData.varList.length; i++) {
resData.varList[i].second = (new Date(resData.varList[i].END_TIME.replace(/-/g, '/')).getTime() - new Date().getTime()) / 1000
}
this.list = [...this.list,...resData.varList];
}
}
});
},
fnJudgeSignature(item) {
if (item.STUDYSTATE === "0") {
this.CLASS_ID = item.CLASS_ID;
this.POST_ID = item.POST_ID;
this.STAGESTUDENTRELATION_ID = item.STAGESTUDENTRELATION_ID;
this.STUDENT_ID = item.STUDENT_ID;
this.modalName = 'Modal';
} else {
this.fnNavigationCurriculumSchedule(
item.CLASS_ID,
item.POST_ID,
item.STUDENT_ID
);
}
},
fnJudgeToStrengthen({CLASS_ID,POST_ID,STUDENT_ID}){
uni.navigateTo({
url: `/pages/application/onlinexxks/strengthen_video_study?CLASS_ID=${CLASS_ID}&POST_ID=${POST_ID}&STUDENT_ID=${STUDENT_ID}`,
});
},
hideModal() {
this.modalName = ''
},
subCanvas({base64}) {
uni.showLoading({
title: '请稍候'
})
uni.request({
url: basePath + '/app/stagestudentrelation/sign',
method: 'POST',
dataType: 'json',
header: {
'Content-type': 'application/x-www-form-urlencoded'
},
data: {
FFILE:base64,
STUDYSTATE: 1,
CLASS_ID: this.CLASS_ID,
STAGESTUDENTRELATION_ID: this.STAGESTUDENTRELATION_ID,
USER_ID: loginUser.USER_ID,
OPERATOR: loginUser.NAME,
},
success: (res) => {
uni.hideLoading(); //结束加载中动画
var result = res.data.result;
if ("success" == result) {
this.hideModal()
this.fnNavigationCurriculumSchedule(this.CLASS_ID, this.POST_ID, this.STUDENT_ID)
}
}
});
},
fnNavigationCurriculumSchedule(CLASS_ID, POST_ID, STUDENT_ID) {
uni.navigateTo({
url: `/pages/application/onlinexxks/curriculum_schedule?CLASS_ID=${CLASS_ID}&POST_ID=${POST_ID}&STUDENT_ID=${STUDENT_ID}`,
});
},
fnStageExam(item){
uni.navigateTo({
url:'/pages/application/onlinexxks/course_exam?STAGEEXAMPAPERINPUT_ID=' + item.STAGEEXAMPAPERINPUT_ID+'&STAGEEXAMPAPER_ID='+item.STAGEEXAMPAPERINPUT_ID+'&CLASS_ID='+item.CLASS_ID+'&POST_ID='+ item.POST_ID+'&STUDENT_ID='+item.STUDENT_ID+'&NUMBEROFEXAMS='+ item.NUMBEROFEXAMS+'&entrySite=list'
})
}
},
}
</script>
<style scoped lang="scss">
.container {
box-sizing: border-box;
padding: 0 20upx 20upx;
.studies_wrap {
width: 100%;
padding: 0 20upx;
background: #ffffff;
border-radius: 10upx;
box-sizing: border-box;
margin-top: 20upx;
.studies_wrap-top {
width: 100%;
display: flex;
justify-content: space-between;
border-bottom: 1upx solid #eee;
padding: 20upx 0;
.studies_wrap_title {
font-weight: bold;
font-size: 30upx;
}
.studies_wrap_state {
font-size: 30upx;
flex-basis: 130upx;
margin-left: 20upx;
}
}
.studies_wrap-main {
line-height: 50upx;
margin-top: 10upx;
font-size: 30upx;
color: #666;
}
.studies_wrap-bottom {
width: 100%;
display: flex;
border-top: 1upx solid #eee;
padding: 20upx 0;
margin-top: 10upx;
font-size: 30upx;
color: #999;
justify-content: space-between;
align-items: center;
.flex {
display: flex;
align-items: center;
image {
width: 40upx;
height: 42upx;
}
view {
margin-left: 10upx;
}
}
}
}
.fcb {
color: #3377ff;
}
.fcg {
color: #33c76d;
}
.fch {
color: #999;
}
}
</style>