Merge branch 'zcwy0417-out' into dev0515

This commit is contained in:
zhangsir
2024-05-20 08:40:57 +08:00
19 changed files with 1148 additions and 781 deletions

View File

@@ -16,11 +16,11 @@ VUE_APP_CESOURCE_BASE_API = '/socialApi'
VUE_APP_STAT_BASE_API = '/statApi'
# BOE系统网址
VUE_APP_BOE_WEB_URL = 'https://u-pre.boe.com'
VUE_APP_BOE_WEB_URL = 'https://pretest.zcwytd.com'
# BOE 移动端url
# VUE_APP_BOE_MOBILE_URL = 'http://127.0.0.1:8082/mobile'
VUE_APP_BOE_MOBILE_URL = 'https://u-pre.boe.com'
VUE_APP_BOE_MOBILE_URL = 'https://pretest.zcwytd.com'
# File路径的基础url
# VUE_APP_FILE_BASE_URL = 'http://127.0.0.1:9090/cdn/upload'
@@ -31,7 +31,7 @@ VUE_APP_FILE_RELATIVE_PATH = '/upload'
# 受众批量导入人员信息URL
VUE_APP_AUDIENCE_IMPORT_URL = 'https://u-pre.boe.com/userbasic/audience/import'
VUE_APP_AUDIENCE_IMPORT_URL = 'https://pretest.zcwytd.com/userbasic/audience/import'
# 登录地址
VUE_APP_LOGIN_URL='/pc/login'
@@ -47,7 +47,7 @@ VUE_CLI_BABEL_TRANSPILE_MODULES = true
# scorm课件的播放url地址
# VUE_APP_SCORM_URL = 'http://localhost:9083/scorm-player'
VUE_APP_SCORM_URL = 'https://u-pre.boe.com/newscorm/scorm-player'
VUE_APP_SCORM_URL = 'https://pretest.zcwytd.com/newscorm/scorm-player'
#案例组织领域类型
VUE_APP_CASE_TYPE = '90'

View File

@@ -37,6 +37,13 @@ export const secondExamine = function(query) {
return ajax.postJson(baseURL,'/activityApi/certification/secondExamine',query);
}
export const download = function(data) {
return ajax.get(baseURL,'/activityApi/teacher/download?coursewareId='+data.coursewareId);
}
const exportPdf=function (data){
return ajax.getJsonToFile(baseURL,`/activityApi/teacher/download?coursewareId=${data.coursewareId}`);
}
export default {
pageList,
getTeacherInfo,
@@ -44,5 +51,6 @@ export default {
getCertificationProcess,
setOfflineTutoring,
getReviewResult,
secondExamine
secondExamine,
exportPdf
}

View File

@@ -4,6 +4,7 @@ import { Notification, MessageBox, Message } from 'element-ui'
import store from '@/store'
import {getToken} from '@/utils/token'
import errorCode from '@/utils/errorCode'
/**
*request请求 axios.request(config)
*requestJson请求 axios.request(config)
@@ -74,11 +75,9 @@ const formRequest=axios.create({
let {message} = error;
if (message == "Network Error") {
message = "网络异常,请稍后重试";
}
else if (message.includes("timeout")) {
} else if (message.includes("timeout")) {
message = "网络异常或接口错误,请求超时";
}
else if (message.includes("Request failed with status code")) {
} else if (message.includes("Request failed with status code")) {
message = "系统接口" + message.substr(message.length - 3) + "异常";
}
Message({
@@ -158,6 +157,16 @@ const postJsonToFile=function(baseURL,url,postData){
})
}
const getJsonToFile = function (baseURL, url, postData) {
return request({
baseURL,
url: url,
method: 'get',
data: postData,
headers: {'Content-Type': 'application/json;charset=utf-8'},
responseType: 'blob'
})
}
/**
* put请求
@@ -186,7 +195,6 @@ const putJson=function(baseURL,url,data){
}
export default {
tokenName: TokenName,
request,
@@ -196,4 +204,5 @@ export default {
postJsonToFile,
put,
putJson,
getJsonToFile
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 890 B

View File

@@ -198,7 +198,7 @@
<template slot="title">
<svg-icon icon-class="lecturer" style="font-size:16px"></svg-icon>
<span>讲师认证</span>
<div v-if="instructor!=0" style="position: absolute;right: 70px;top: 0;background-color: red;width: 15px;height: 15px;color: #fff;border-radius: 50%;display: flex;justify-content: center;align-items: center">
<div v-if="instructor!=0" style="position: absolute;right: 60px;top: 0;background-color: red;width: 20px;height: 20px;color: #fff;border-radius: 50%;display: flex;justify-content: center;align-items: center">
{{ instructor }}</div>
</template>
</el-menu-item>

View File

@@ -6,14 +6,15 @@ export default {
data(){
return{
status:{
draftStatus:0,
onlineLearning:0,
offlineTutoring:0,
endStatus:0,
reviewResult:0,
offlineTutoring1:0,
endStatus1:0,
reviewResult1:0,
secondResult:1,
draftStatus:1,
onlineLearning:1,
offlineTutoring:1,
endStatus:1,
reviewResult:2,
offlineTutoring1:1,
endStatus1:1,
reviewResult1:2,
}
}
},
@@ -72,6 +73,18 @@ export default {
endStatus1:1,
reviewResult1:2,
}
}else if (data.secondResult==0 && data.reviewResult==2){
this.status={
secondResult:0,
draftStatus:0,
onlineLearning:0,
offlineTutoring:0,
endStatus:0,
reviewResult:1,
offlineTutoring1:1,
endStatus1:1,
reviewResult1:2,
}
} else if (data.secondResult==1 && data.reviewResult==0){
this.status={
secondResult:1,
@@ -154,7 +167,7 @@ export default {
reviewResult:2,
offlineTutoring1:1,
endStatus1:1,
reviewResult1:2,
reviewResult1:3,
}
}
@@ -169,51 +182,55 @@ export default {
<div class="process">
<img src="../assets/images/first_draft.png" alt="" v-if="status.draftStatus==1">
<img src="../assets/images/first_draft1.png" alt="" v-if="status.draftStatus==0">
<div>{{status.draftStatus==1?'初稿未上传':'初稿已上传'}}</div>
<div :class="status.draftStatus==1?'tim1':'tim'">{{status.draftStatus==1?'初稿未上传':'初稿已上传'}}</div>
</div>
<div class="line"></div>
<div :class="status.draftStatus==1?'line1':'line'"></div>
<div class="process">
<img src="../assets/images/E-learning1.png" alt="" v-if="status.onlineLearning==0">
<img src="../assets/images/E-learning.png" alt="" v-if="status.onlineLearning==1">
<div>{{status.onlineLearning==1?'线上学习未完成':'线上学习已完成'}}</div>
<div :class="status.onlineLearning==1?'tim1':'tim'">{{status.onlineLearning==1?'线上学习未完成':'线上学习已完成'}}</div>
</div>
<div class="line"></div>
<div :class="status.onlineLearning==1?'line1':'line'"></div>
<div class="process">
<img src="../assets/images/tutoring1.png" alt="" v-if="status.offlineTutoring==0">
<img src="../assets/images/tutoring.png" alt="" v-if="status.offlineTutoring==1">
<div>{{status.offlineTutoring==1?'线下辅导未完成':'线下辅导已完成'}}</div>
<div :class="status.offlineTutoring==1?'tim1':'tim'">{{status.offlineTutoring==1?'线下辅导未完成':'线下辅导已完成'}}</div>
</div>
<div class="line"></div>
<div :class="status.offlineTutoring==1?'line1':'line'"></div>
<div class="process">
<img src="../assets/images/final_draft1.png" alt="" v-if="status.endStatus==0">
<img src="../assets/images/final_draft.png" alt="" v-if="status.endStatus==1">
<div>{{status.endStatus==1?'终稿未上传':'终稿已上传'}}</div>
<div :class="status.endStatus==1?'tim1':'tim'">{{status.endStatus==1?'终稿未上传':'终稿已上传'}}</div>
</div>
<div class="line"></div>
<div :class="status.endStatus==1?'line1':'line'"></div>
<div class="process">
<img src="../assets/images/certification.png" alt="" v-if="status.reviewResult==2">
<img src="../assets/images/certification.png" alt="" v-if="status.reviewResult==3">
<img src="../assets/images/certification2.png" alt="" v-if="status.reviewResult==2">
<img src="../assets/images/certification3.png" alt="" v-if="status.reviewResult==1">
<img src="../assets/images/certification1.png" alt="" v-if="status.reviewResult==0">
<div>{{status.reviewResult==0?'认证通过':status.reviewResult==1?'认证失败':'未认证'}}</div>
<div :class="status.reviewResult==3?'tim1':status.reviewResult==2?'tim3':status.reviewResult==1?'tim2':'tim'">
{{status.reviewResult==3?'未认证':status.reviewResult==2?'认证中':status.reviewResult==1?'认证未通过':'认证通过'}}</div>
</div>
<div class="line" v-if="status.secondResult==0"></div>
<div :class="status.reviewResult==3?'line1':status.reviewResult==2?'line3':status.reviewResult==1?'line2':'line'" v-if="status.secondResult==0"></div>
<div class="process" v-if="status.secondResult==0">
<img src="../assets/images/tutoring1.png" alt="" v-if="status.offlineTutoring1==0">
<img src="../assets/images/tutoring.png" alt="" v-if="status.offlineTutoring1==1">
<div>{{status.offlineTutoring1==1?'线下辅导未完成':'线下辅导已完成'}}</div>
<div :class="status.offlineTutoring1==1?'tim1':'tim'">{{status.offlineTutoring1==1?'线下辅导未完成':'线下辅导已完成'}}</div>
</div>
<div class="line" v-if="status.secondResult==0"></div>
<div :class="status.offlineTutoring1==1?'line1':'line'"v-if="status.secondResult==0"></div>
<div class="process" v-if="status.secondResult==0">
<img src="../assets/images/final_draft1.png" alt="" v-if="status.endStatus1==0">
<img src="../assets/images/final_draft.png" alt="" v-if="status.endStatus1==1">
<div>{{status.endStatus1==1?'终稿未上传':'终稿已上传'}}</div>
<div :class="status.endStatus1==1?'tim1':'tim'">{{status.endStatus1==1?'终稿未上传':'终稿已上传'}}</div>
</div>
<div class="line" v-if="status.secondResult==0"></div>
<div :class="status.endStatus1==1?'line1':'line'" v-if="status.secondResult==0"></div>
<div class="process" v-if="status.secondResult==0">
<img src="../assets/images/certification.png" alt="" v-if="status.reviewResult1==2">
<img src="../assets/images/certification.png" alt="" v-if="status.reviewResult1==3">
<img src="../assets/images/certification2.png" alt="" v-if="status.reviewResult1==2">
<img src="../assets/images/certification3.png" alt="" v-if="status.reviewResult1==1">
<img src="../assets/images/certification1.png" alt="" v-if="status.reviewResult1==0">
<div>{{status.reviewResult1==0?'认证通过':status.reviewResult1==1?'认证失败':'未认证'}}</div>
<div :class="status.reviewResult1==3?'tim1':status.reviewResult1==2?'tim3':status.reviewResult1==1?'tim2':'tim'">
{{status.reviewResult1==3?'未认证':status.reviewResult1==2?'认证中':status.reviewResult1==1?'认证未通过':'认证通过'}}</div>
</div>
</div>
</template>
@@ -236,13 +253,34 @@ export default {
height: 46px;
}
div {
.tim {
font-weight: 400;
font-size: 14px;
color: #409EFF;
line-height: 20px;
margin-top: 12px;
}
.tim1 {
font-weight: 400;
font-size: 14px;
color: #979797;
line-height: 20px;
margin-top: 12px;
}
.tim2 {
font-weight: 400;
font-size: 14px;
color: #FF4040;
line-height: 20px;
margin-top: 12px;
}
.tim3 {
font-weight: 400;
font-size: 14px;
color: #ffa050;
line-height: 20px;
margin-top: 12px;
}
}
.line {
@@ -251,4 +289,22 @@ export default {
border: 1px solid #409EFF;
margin: 0 8px 30px 8px;
}
.line1 {
width: 81px;
height: 1px;
border: 1px solid #DEDEDE;
margin: 0 8px 30px 8px;
}
.line2 {
width: 81px;
height: 1px;
border: 1px solid #FF4040;
margin: 0 8px 30px 8px;
}
.line3 {
width: 81px;
height: 1px;
border: 1px solid #ffa050;
margin: 0 8px 30px 8px;
}
</style>

View File

@@ -1,5 +1,5 @@
<script>
import {addTeacher, getCertificationProcess, getProgress, getTeacherInfo} from "@/api/modules/lecturer";
import lecturer, {addTeacher, getCertificationProcess, getProgress, getTeacherInfo} from "@/api/modules/lecturer";
import processStatus from "@/components/processStatus.vue";
export default {
@@ -16,7 +16,8 @@ export default {
progressData: {},
fileBaseUrl: process.env.VUE_APP_FILE_BASE_URL,
disabled: false,
statusInfo: ''
statusInfo: '',
teacherInfo:''
}
},
created() {
@@ -35,6 +36,8 @@ export default {
},
baseInfo() {
getTeacherInfo({teacherId: this.teacherId}).then(res => {
this.teacherInfo=res.data[0]
/*
* teacherName:教师姓名 teacherNo:教师工号 orgName:组织 positionName:岗位 bandCode:职级 courseName:认证课程名称 courseContent课程内容分类
* courseIntroduction:课程简介
@@ -78,8 +81,24 @@ export default {
},
toCaseData(courseId){
this.$router.push("/course/studyindex?id=" + courseId);
},
downloadFile(){
lecturer.exportPdf({coursewareId:this.teacherInfo.examineCourseware.id}).then(res=>{
if(res.status) {
this.$message.error('导出失败');
} else {
const link = document.createElement('a');// 创建a标签
let blob = new Blob([res],{type: 'application/vnd.;charset=UTF-8'}); // 设置文件类型
link.style.display = "none";
link.href = URL.createObjectURL(blob); // 创建URL
link.setAttribute("download", this.teacherInfo.examineCourseware.coursewareName);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
this.dialogVisible = false;
}
})
}
}
}
</script>
@@ -131,7 +150,7 @@ export default {
{{ form.courseIntroduction }}
</el-form-item>
<el-form-item label="初稿课件:" prop="courseIntroduction">
{{ form.coursewareName }} <span style="color: #1378f6;display: inline-block;margin-left: 16px">查看</span>
{{ form.coursewareName }} <span style="color: #1378f6;display: inline-block;margin-left: 16px;cursor: pointer;" @click="downloadFile">查看</span>
</el-form-item>
</el-form>
</div>
@@ -145,7 +164,7 @@ export default {
</div>
<div class="courseName">{{ item.courseName }}</div>
<div class="smallTitle">当前进度</div>
<el-progress :percentage="parseInt(item.progress)"></el-progress>
<el-progress :percentage="parseInt(item.progress)" :color="parseInt(item.progress)=='100'?'#31AF0D':'#FFA050'"></el-progress>
</div>
</div>
<div>
@@ -168,7 +187,7 @@ export default {
<div class="tip">
提示您已完成线下辅导快去进行下一步吧
</div>
<el-button type="primary" style="margin-top: 20px;margin-left: 80px" @click="getJump()">下一步</el-button>
<el-button type="primary" style="margin-top: 20px;" @click="getJump()">下一步</el-button>
</div>
</template>
@@ -218,14 +237,23 @@ export default {
}
.tip {
color: #7d7c7c;
color: #333333;
font-size: 14px;
margin-top: 20px;
}
::v-deep .el-progress-bar__outer{
background-color: rgba(255, 160, 80, 0.2);
}
::v-deep .el-progress-bar__inner{
background-color: rgba(255, 160, 80, 1);
::v-deep .el-form-item__label{
font-weight: 400;
font-size: 14px;
color: #333333;
line-height: 40px;
}
::v-deep .el-form-item__content{
font-weight: 400;
font-size: 14px;
color: #333333;
line-height: 40px;
}
</style>

View File

@@ -1,5 +1,5 @@
<script>
import {
import lecturer, {
addTeacher,
getCertificationProcess,
getProgress,
@@ -26,6 +26,7 @@ export default {
result: '',
newTeacherId: '',
isFalse: true,
teacherInfo: ''
}
},
created() {
@@ -50,6 +51,11 @@ export default {
} else {
this.isFalse = false
}
}else {
this.$message({
message: res.msg,
type: 'error'
});
}
})
},
@@ -67,6 +73,7 @@ export default {
},
baseInfo() {
getTeacherInfo({teacherId: this.teacherId}).then(res => {
this.teacherInfo = res.data[0]
/*
* teacherName:教师姓名 teacherNo:教师工号 orgName:组织 positionName:岗位 bandCode:职级 courseName:认证课程名称 courseContent课程内容分类
* courseIntroduction:课程简介
@@ -110,8 +117,27 @@ export default {
},
toCaseData(courseId) {
this.$router.push("/course/studyindex?id=" + courseId);
},
downloadFile() {
lecturer.exportPdf({coursewareId: this.teacherInfo.examineCourseware.id}).then(res => {
if (res.status) {
this.$message.error('导出失败');
} else {
const link = document.createElement('a');// 创建a标签
let blob = new Blob([res], {type: 'application/vnd.;charset=UTF-8'}); // 设置文件类型
link.style.display = "none";
link.href = URL.createObjectURL(blob); // 创建URL
link.setAttribute("download", this.teacherInfo.examineCourseware.coursewareName);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
this.dialogVisible = false;
}
})
},
getJumplist(){
this.$router.push('/need/lecturer')
}
}
}
</script>
@@ -162,8 +188,10 @@ export default {
<el-form-item label="课程简介:" prop="courseIntroduction">
{{ form.courseIntroduction }}
</el-form-item>
<el-form-item label="稿课件:" prop="courseIntroduction">
{{form.coursewareName}} <span style="color: #1378f6;display: inline-block;margin-left: 16px">查看</span>
<el-form-item label="稿课件:" prop="courseIntroduction">
{{ form.coursewareName }} <span
style="color: #1378f6;display: inline-block;margin-left: 16px;cursor: pointer;"
@click="downloadFile">查看</span>
</el-form-item>
</el-form>
</div>
@@ -177,7 +205,8 @@ export default {
</div>
<div class="courseName">{{ item.courseName }}</div>
<div class="smallTitle">当前进度</div>
<el-progress :percentage="parseInt(item.progress)"></el-progress>
<el-progress :percentage="parseInt(item.progress)"
:color="parseInt(item.progress)=='100'?'#31AF0D':'#FFA050'"></el-progress>
</div>
</div>
<div>
@@ -186,7 +215,8 @@ export default {
<div class="form-table">
<el-form>
<el-form-item label="辅导老师:">
<span v-for="(item,index) in form.tutor" :key="item" style="display: inline-block;margin-right: 20px">{{item}}</span>
<span v-for="(item,index) in form.tutor" :key="item"
style="display: inline-block;margin-right: 20px">{{ item }}</span>
</el-form-item>
<el-form-item label="辅导时间:">
{{ form.tutorTime }}
@@ -197,16 +227,19 @@ export default {
</div>
<div>
<div class="title" style="margin-top: 20px">认证结果</div>
<div v-if="statusInfo.reviewResult==2" class="score" style="color: #797979">请您耐心等待线下认证安排</div>
<div v-if="statusInfo.reviewResult==0" class="score" style="color: #4b7900;">恭喜您您的认证分数为{{ result.avgScore }}已经通过认证</div>
<div v-if="statusInfo.reviewResult==1" class="score" style="color: #ff0000">很遗憾您的认证分数为{{ result.avgScore }}没有通过认证</div>
<div v-if="statusInfo.reviewResult==2" class="score">请您耐心等待线下认证安排</div>
<div v-if="statusInfo.reviewResult==0" class="score" style="color: #4b7900;">
恭喜您您的认证分数为{{ result.avgScore }}已经通过认证
</div>
<div v-if="statusInfo.reviewResult==1" class="score" style="color: #ff0000">
很遗憾您的认证分数为{{ result.avgScore }}没有通过认证
</div>
</div>
<div class="twoFactorAuthentication" v-if="statusInfo.reviewResult==1&&isFalse&&statusInfo.second!=2">
<div class="remind">是否进行二次认证</div>
<div style="display: flex;justify-content: center;align-items: center">
<el-button type="primary" @click="getoFactor(1)"></el-button>
<el-button @click="getoFactor(2)"></el-button>
</div>
<img src="../../assets/images/rightImg.png" alt="">
<div class="titleAuthentication">是否进行二次认证</div>
<div class="yes" @click="getoFactor(1)"></div>
<div class="no" @click="getJumplist"></div>
</div>
</div>
</template>
@@ -218,63 +251,130 @@ export default {
border-bottom: 1px solid rgba(153, 153, 153, 0.2);
padding: 2px 2px 20px 2px;
}
.form-table {
width: 100%;
margin-top: 20px;
}
.progress {
display: flex;
align-items: center;
margin-top: 20px;
}
.progress > div {
width: 300px;
margin-right: 30px;
}
.courseName {
font-weight: 650;
color: #333333;
font-size: 14px;
margin-top: 12px;
}
.smallTitle {
color: #134054;
font-size: 12px;
margin-top: 7px;
}
::v-deep .el-form-item__content {
font-weight: 500;
}
::v-deep .el-form-item {
margin-bottom: 0px;
}
.tip {
color: #7d7c7c;
font-size: 14px;
margin-top: 20px;
}
.score {
margin-top: 28px;
font-size: 20px;
font-size: 14px;
color: #333333;
font-weight: 400;
}
.twoFactorAuthentication {
width: 344px;
height: 135px;
padding: 2px 2px 2px 2px;
border: 1px solid #d7d7d7;
background-color: #ffffff;
box-sizing: border-box;
width: 100%;
height: 56px;
background: #F0F6FC;
margin-top: 20px;
border-radius: 6px;
display: flex;
align-items: center;
img{
width: 20px;
height: 20px;
margin-left: 23px;
}
.titleAuthentication{
font-weight: 500;
font-size: 16px;
color: #333333;
margin-left: 16px;
}
.yes{
width: 64px;
height: 24px;
background: #409EFF;
border: 1px solid #409EFF;
font-weight: 400;
font-size: 14px;
color: #FFFFFF;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
border-radius: 3px;
margin-left: 20px;
cursor: pointer;
}
.no{
width: 64px;
height: 24px;
background:rgba(64,158,255,0.1);
border: 1px solid #409EFF;
font-weight: 400;
font-size: 14px;
color: #409EFF;
display: flex;
justify-content: center;
align-items: center;
border-radius: 3px;
margin-left: 16px;
cursor: pointer;
}
}
.remind {
margin-bottom: 20px;
box-sizing: border-box;
color: #797979;
}
::v-deep .el-progress-bar__outer {
background-color: rgba(255, 160, 80, 0.2);
}
::v-deep .el-form-item__label {
font-weight: 400;
font-size: 14px;
color: #333333;
line-height: 40px;
}
::v-deep .el-form-item__content {
font-weight: 400;
font-size: 14px;
color: #333333;
line-height: 40px;
}
</style>

View File

@@ -39,14 +39,14 @@ export default {
rules: {
courseName: [
{required: true, message: '请输入认证课程名称', trigger: 'change'},
{ min: 1, max: 50, message: '最多五十字', trigger: 'blur' }
{ min: 1, max: 30, message: '最多30字', trigger: 'blur' }
],
courseContent_1: [
{required: true, message: '请选择课程分类', trigger: 'change'}
],
courseIntroduction: [
{required: true, message: '请输入课程简介', trigger: 'change'},
{ min: 1, max: 500, message: '最多五百字', trigger: 'blur' }
{ min: 1, max: 150, message: '最多150字', trigger: 'blur' }
],
}
}
@@ -153,7 +153,7 @@ export default {
</script>
<template>
<div>
<div class="main">
<process-status :teacherId="teacherId"></process-status>
<div class="title">上传初稿</div>
<el-container>

View File

@@ -134,7 +134,7 @@ export default {
<div class="zan-wu">暂无数据</div>
</div>
</div>
<div style="display: flex;justify-content:space-between;position: relative;" v-if="this.couresList.length!=0">
<div style="display: flex;justify-content:space-between;position: relative;">
<div style="display: flex;justify-content: flex-start; padding: 12px 32px 10px 12px;">
<div style="margin-left:10px"><el-input v-model="params.courseName" placeholder="请输入认证课程名称" clearable ></el-input></div>
<div style="padding-left: 10px;"><el-button type="primary" icon="el-icon-search" @click="getList">搜索</el-button></div>
@@ -187,7 +187,7 @@ export default {
margin: 40px;
color: #333;
}
.ybm {
.ytg {
color: #2ab28b;
font-size: 18px;
}
@@ -200,7 +200,7 @@ export default {
color: #1378f6;
}
.ytg {
.ybm {
font-size: 18px;
color: #1378f6;
}

View File

@@ -1,5 +1,6 @@
<script>
import {addTeacher, getCertificationProcess, getProgress, getTeacherInfo} from "@/api/modules/lecturer";
import {addTeacher, getProgress, getTeacherInfo} from "@/api/modules/lecturer";
import lecturer from "@/api/modules/lecturer";
import processStatus from "@/components/processStatus.vue";
export default {
@@ -16,7 +17,8 @@ export default {
progressData:{},
fileBaseUrl:process.env.VUE_APP_BOE_MOBILE_URL,
disabled:false,
statusInfo:''
statusInfo:'',
teacherInfo:''
}
},
created() {
@@ -28,6 +30,7 @@ export default {
methods:{
baseInfo(){
getTeacherInfo({teacherId:this.teacherId}).then(res=>{
this.teacherInfo=res.data[0]
/*
* teacherName:教师姓名 teacherNo:教师工号 orgName:组织 positionName:岗位 bandCode:职级 courseName:认证课程名称 courseContent课程内容分类
* courseIntroduction:课程简介
@@ -61,7 +64,6 @@ export default {
})
})
},
getJump(){
this.$router.push({
path:'/need/coaching',
@@ -70,6 +72,23 @@ export default {
},
toCaseData(courseId){
this.$router.push("/course/studyindex?id=" + courseId);
},
downloadFile(){
lecturer.exportPdf({coursewareId:this.teacherInfo.examineCourseware.id}).then(res=>{
if(res.status) {
this.$message.error('导出失败');
} else {
const link = document.createElement('a');// 创建a标签
let blob = new Blob([res],{type: 'application/vnd.;charset=UTF-8'}); // 设置文件类型
link.style.display = "none";
link.href = URL.createObjectURL(blob); // 创建URL
link.setAttribute("download", this.teacherInfo.examineCourseware.coursewareName);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
this.dialogVisible = false;
}
})
}
}
}
@@ -122,7 +141,7 @@ export default {
{{form.courseIntroduction}}
</el-form-item>
<el-form-item label="初稿课件:" prop="courseIntroduction">
{{form.coursewareName}} <span style="color: #1378f6;display: inline-block;margin-left: 16px">查看</span>
{{form.coursewareName}} <span style="color: #1378f6;display: inline-block;margin-left: 16px; cursor: pointer;" @click="downloadFile">查看</span>
</el-form-item>
</el-form>
</div>
@@ -136,13 +155,13 @@ export default {
</div>
<div class="courseName">{{ item.courseName }}</div>
<div class="smallTitle">当前进度</div>
<el-progress :percentage="parseInt(item.progress)"></el-progress>
<el-progress :percentage="parseInt(item.progress)" :color="parseInt(item.progress)=='100'?'#31AF0D':'#FFA050'"></el-progress>
</div>
</div>
<div class="tip">
{{ disabled==false?'提示:您的线上课程已经学习完毕,快去进行下一步吧':'提示:您的课程还未学习完毕,不能进行下一步!'}}
</div>
<el-button type="primary" :disabled="disabled" style="margin-top: 20px;margin-left: 80px" @click="getJump()">下一步</el-button>
<el-button type="primary" :disabled="disabled" style="margin-top: 20px;" @click="getJump()">下一步</el-button>
</div>
</template>
@@ -161,6 +180,11 @@ export default {
display: flex;
align-items: center;
margin-top: 20px;
}
.progress>div{
width: 300px;
margin-right: 30px;
}
.progress>div{
width: 300px;
@@ -184,14 +208,25 @@ export default {
margin-bottom: 0px;
}
.tip{
color: #7d7c7c;
color: #333333;
font-weight: 400;
font-size: 14px;
margin-top: 20px;
}
::v-deep .el-progress-bar__outer{
background-color: rgba(255, 160, 80, 0.2);
}
::v-deep .el-progress-bar__inner{
background-color: rgba(255, 160, 80, 1);
::v-deep .el-form-item__label{
font-weight: 400;
font-size: 14px;
color: #333333;
line-height: 40px;
}
::v-deep .el-form-item__content{
font-weight: 400;
font-size: 14px;
color: #333333;
line-height: 40px;
}
</style>

View File

@@ -1,14 +1,16 @@
<script>
import {
import lecturer, {
addTeacher,
getCertificationProcess,
getProgress,
getReviewResult,
getTeacherInfo, secondExamine
} from "@/api/modules/lecturer";
import processStatus from "@/components/processStatus.vue";
export default {
name: "TwoAthentication",
components: {processStatus},
data(){
return{
teacherId:'',
@@ -24,10 +26,11 @@ export default {
result:'',
newTeacherId:'',
pid:'',
statusInfo1:''
statusInfo1:'',
teacherInfo:''
}
},
mounted() {
created() {
//读取路由参数
this.teacherId=this.$route.query.teacherId
//获取教师基本信息
@@ -35,12 +38,6 @@ export default {
// this.getReviewResult()
},
methods:{
//前往二次认证
getoFactor(){
secondExamine({teacherId:this.teacherId}).then(res=>{
this.newTeacherId=res.data.replace(/[^0-9]/ig,'')
})
},
//获取认证结果
getReviewResult(){
getReviewResult({teacherId:this.pid}).then(res=>{
@@ -58,25 +55,28 @@ export default {
},
baseInfo(){
getTeacherInfo({teacherId:this.teacherId}).then(res=>{
/*
* teacherName:教师姓名 teacherNo:教师工号 orgName:组织 positionName:岗位 bandCode:职级 courseName:认证课程名称 courseContent课程内容分类
* courseIntroduction:课程简介
* */
this.form.teacherName=res.data[0].teacherName
this.form.teacherNo=res.data[0].teacherNo
this.form.orgName=res.data[0].orgName
this.form.positionName=res.data[0].positionName
this.form.bandCode=res.data[0].bandCode
this.form.courseName=res.data[0].courseName
this.form.courseContent=res.data[0].courseContent
this.form.courseIntroduction=res.data[0].courseIntroduction
this.form.coursewareName=res.data[0].examineCourseware.coursewareName
this.pid=res.data[0].pid
getTeacherInfo({teacherId:res.data[0].pid}).then(resquest=>{
this.teacherInfo = resquest.data[0]
this.form.teacherName=resquest.data[0].teacherName
this.form.teacherNo=resquest.data[0].teacherNo
this.form.orgName=resquest.data[0].orgName
this.form.positionName=resquest.data[0].positionName
this.form.bandCode=resquest.data[0].bandCode
this.form.courseName=resquest.data[0].courseName
this.form.courseContent=resquest.data[0].courseContent
this.form.courseIntroduction=resquest.data[0].courseIntroduction
this.form.coursewareName=resquest.data[0].examineCourseware.coursewareName
//获取学习进度
this.getReviewResult()
this.addTeacher()
this.getStatus()
})
/*
* teacherName:教师姓名 teacherNo:教师工号 orgName:组织 positionName:岗位 bandCode:职级 courseName:认证课程名称 courseContent课程内容分类
* courseIntroduction:课程简介
* */
})
},
addTeacher(){
addTeacher({pageNo:1,pageSize:10,keyword:this.form.teacherNo}).then(res=>{
@@ -105,77 +105,98 @@ export default {
},
toCaseData(courseId){
this.$router.push("/course/studyindex?id=" + courseId);
},
downloadFile() {
lecturer.exportPdf({coursewareId: this.teacherInfo.examineCourseware.id}).then(res => {
if (res.status) {
this.$message.error('导出失败');
} else {
const link = document.createElement('a');// 创建a标签
let blob = new Blob([res], {type: 'application/vnd.;charset=UTF-8'}); // 设置文件类型
link.style.display = "none";
link.href = URL.createObjectURL(blob); // 创建URL
link.setAttribute("download", this.teacherInfo.examineCourseware.coursewareName);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
this.dialogVisible = false;
}
})
}
}
}
</script>
<template>
<div>
<process-status :teacherId="teacherId"></process-status>
<div class="title">基本信息</div>
<el-container>
<div class="form-table">
<el-form label-width="140px">
<el-form>
<div>
<el-col :span="10">
<el-col :span="11">
<el-form-item label="姓名:">
{{ form.teacherName }}
</el-form-item>
</el-col>
<el-col :span="10" :offset="4">
<el-col :span="11" :offset="2">
<el-form-item label="工号:">
{{ form.teacherNo }}
</el-form-item>
</el-col>
</div>
<div>
<el-col :span="11">
<el-form-item label="组织:">
{{ form.orgName }}
</el-form-item>
<div>
<el-col :span="10">
</el-col>
<el-col :span="11" :offset="2">
<el-form-item label="岗位:">
{{ form.positionName }}
</el-form-item>
</el-col>
<el-col :span="10" :offset="4">
<el-form-item label="职级:">
{{form.bandCode}}
</el-form-item>
</el-col>
</div>
<div>
<el-col :span="11">
<el-form-item label="认证课程名称:" prop="courseName">
{{ form.courseName }}
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
<el-form-item label="课程内容分类:" prop="courseContent">
{{ form.courseContent }}
</el-form-item>
</el-col>
</div>
<el-form-item label="课程简介:" prop="courseIntroduction">
{{ form.courseIntroduction }}
</el-form-item>
<el-form-item label="稿课件:" prop="courseIntroduction">
{{form.coursewareName}} <span style="color: #1378f6;display: inline-block;margin-left: 16px">查看</span>
<el-form-item label="稿课件:" prop="courseIntroduction">
{{ form.coursewareName }} <span
style="color: #1378f6;display: inline-block;margin-left: 16px;cursor: pointer;"
@click="downloadFile">查看</span>
</el-form-item>
</el-form>
</div>
</el-container>
<div class="title" style="margin-top: 20px">线上课程</div>
<div class="progress">
<div v-for="(item,index) in progressData" :key="item">
<div class="progress-item" @click="toCaseData(item.courseId)">
<div v-for="(item,index) in progressData" :key="index" @click="toCaseData(item.courseId)">
<div class="uc-course-img" style="width: 212px;height:119px">
<img style="width: 100%;" v-if="item.courseImage!=''" :src="item.courseImage">
<img style="width: 100%;" v-else :src="fileBaseUrl+'/pc/images/bgimg/course.png'">
</div>
<div class="courseName">{{ item.courseName }}</div>
<div class="smallTitle">当前进度</div>
<el-progress :percentage="item.progress" :format="format"></el-progress>
</div>
<el-progress :percentage="parseInt(item.progress)"
:color="parseInt(item.progress)=='100'?'#31AF0D':'#FFA050'"></el-progress>
</div>
</div>
<div>
<div class="title" style="margin-top: 20px">认证结果</div>
<div v-if="statusInfo1.reviewResult==2" class="score" style="color: #797979">请您耐心等待线下认证安排</div>
<div v-if="statusInfo1.reviewResult==2" class="score">请您耐心等待线下认证安排</div>
<div v-if="statusInfo1.reviewResult==0" class="score" style="color: #4b7900;">恭喜您您的认证分数为{{ result.avgScore }}已经通过认证</div>
<div v-if="statusInfo1.reviewResult==1" class="score" style="color: #ff0000">很遗憾您的认证分数为{{ result.avgScore }}没有通过认证</div>
</div>
@@ -191,26 +212,21 @@ export default {
.title{
font-size: 16px;
font-weight: 800;
width: 850px;
border-bottom: 1px solid rgba(215, 215, 215, 0.66);
border-bottom: 1px solid rgba(153, 153, 153, 0.2);
padding: 2px 2px 20px 2px;
}
.form-table{
width: 850px;
width: 100%;
margin-top: 20px;
}
.progress {
display: flex;
align-items: center;
.progress-item{
margin-top: 10px;
margin-right: 10px;
cursor: pointer;
}
margin-top: 20px;
}
.progress > div {
max-width: 250px;
margin-right: 20px;
width: 300px;
margin-right: 30px;
}
.courseName{
font-weight: 650;
@@ -230,14 +246,15 @@ export default {
margin-bottom: 0px;
}
.tip{
color: #7d7c7c;
color: #333333;
font-size: 14px;
margin-top: 20px;
}
.score {
margin-top: 28px;
font-size: 20px;
font-size: 14px;
color: #333333;
font-weight: 400;
}
.twoFactorAuthentication{
width: 344px;
@@ -257,4 +274,21 @@ export default {
box-sizing: border-box;
color: #797979;
}
::v-deep .el-progress-bar__outer {
background-color: rgba(255, 160, 80, 0.2);
}
::v-deep .el-form-item__label {
font-weight: 400;
font-size: 14px;
color: #333333;
line-height: 40px;
}
::v-deep .el-form-item__content {
font-weight: 400;
font-size: 14px;
color: #333333;
line-height: 40px;
}
</style>

View File

@@ -1,18 +1,19 @@
<script>
import {addTeacher, getCertificationProcess, setOfflineTutoring} from "@/api/modules/lecturer";
import processStatus from "@/components/processStatus.vue";
export default {
name: "TwoCoaching",
components: {processStatus},
data(){
return{
options: [],
value: '',
value2:'',
teacherId:''
}
},
mounted() {
created() {
//读取路由参数
this.teacherId=this.$route.query.teacherId
//获取老师列表
@@ -55,11 +56,12 @@ export default {
<template>
<div>
<div class="title">线下辅导</div>
<process-status :teacherId="teacherId"></process-status>
<div class="title">二次线下辅导</div>
<el-container>
<div class="form-table">
<div class="tip" style="margin-bottom: 20px;color: #d7d7d7;margin-left: 50px">您还未完成线下辅导快去约辅导老师辅导课件吧</div>
<el-form label-width="140px" >
<div class="tip" style="margin-bottom: 20px;color: #d7d7d7;">您还未完成线下辅导快去约辅导老师辅导课件吧</div>
<el-form>
<el-form-item required label="辅导老师:">
<el-select
v-model="value"
@@ -83,13 +85,13 @@ export default {
v-model="value2"
type="date"
placeholder="选择日期"
format="yyyy 年 MM 月 dd 日"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
<el-button type="primary" size="medium" style="margin-top: 20px;margin-left: 120px" @click="getJump()">已完成</el-button>
<el-button type="primary" size="medium" style="margin-top: 20px;margin-left: 70px" @click="getJump()">已完成</el-button>
</el-form>
<div class="tip" style="margin-bottom: 20px;margin-left: 50px;color: #797979;margin-top: 24px">提示如若未完成线下辅导请勿点击已完成</div>
<div class="tip" style="margin-bottom: 20px;margin-top: 24px;font-size: 14px;color: #333333">提示如若未完成线下辅导请勿点击已完成</div>
</div>
</el-container>
@@ -99,13 +101,12 @@ export default {
<style scoped lang="scss">
.title{
font-size: 16px;
font-weight: 800;
width: 850px;
border-bottom: 1px solid rgba(215, 215, 215, 0.66);
border-bottom: 1px solid rgba(153, 153, 153, 0.2);
padding: 2px 2px 20px 2px;
}
.form-table{
width: 850px;
width: 100%;
margin-top: 20px;
}
</style>

View File

@@ -1,14 +1,16 @@
<script>
import {
import lecturer, {
addTeacher,
getCertificationProcess,
getProgress,
getReviewResult,
getTeacherInfo, secondExamine
} from "@/api/modules/lecturer";
import processStatus from "@/components/processStatus.vue";
export default {
name: "TwoCos",
components: {processStatus},
data() {
return {
teacherId: '',
@@ -25,22 +27,16 @@ export default {
result: '',
newTeacherId: '',
pid: '',
teacherInfo: ''
}
},
mounted() {
created() {
//读取路由参数
this.teacherId = this.$route.query.teacherId
//获取教师基本信息
this.baseInfo()
},
methods: {
//前往二次认证
getoFactor(){
secondExamine({teacherId:this.teacherId}).then(res=>{
this.newTeacherId=res.data.replace(/[^0-9]/ig,'')
})
},
//获取认证结果
getReviewResult() {
getReviewResult({teacherId: this.pid}).then(res => {
@@ -58,31 +54,36 @@ export default {
},
baseInfo() {
getTeacherInfo({teacherId: this.teacherId}).then(res => {
/*
* teacherName:教师姓名 teacherNo:教师工号 orgName:组织 positionName:岗位 bandCode:职级 courseName:认证课程名称 courseContent课程内容分类
* courseIntroduction:课程简介
* */
this.form.teacherName=res.data[0].teacherName
this.form.teacherNo=res.data[0].teacherNo
this.form.orgName=res.data[0].orgName
this.form.positionName=res.data[0].positionName
this.form.bandCode=res.data[0].bandCode
this.form.courseName=res.data[0].courseName
this.form.courseContent=res.data[0].courseContent
this.form.courseIntroduction=res.data[0].courseIntroduction
if (res.data[0].examineCourseware==''||res.data[0].examineCourseware==null){
}else {
this.form.coursewareName=res.data[0].examineCourseware.coursewareName
}
this.pid = res.data[0].pid
this.form.tutor = res.data[0].tutor.split(',')
this.form.tutorTime = res.data[0].tutorTime
this.pid=res.data[0].pid
getTeacherInfo({teacherId: res.data[0].pid}).then(resquest => {
this.teacherInfo = resquest.data[0]
this.form.teacherName = resquest.data[0].teacherName
this.form.teacherNo = resquest.data[0].teacherNo
this.form.orgName = resquest.data[0].orgName
this.form.positionName = resquest.data[0].positionName
this.form.bandCode = resquest.data[0].bandCode
this.form.courseName = resquest.data[0].courseName
this.form.courseContent = resquest.data[0].courseContent
this.form.courseIntroduction = resquest.data[0].courseIntroduction
if (res.data[0].examineCourseware == '' || resquest.data[0].examineCourseware == null) {
} else {
this.form.coursewareName = resquest.data[0].examineCourseware.coursewareName
}
//获取学习进度
this.addTeacher()
this.getStatus()
this.getReviewResult()
})
/*
* teacherName:教师姓名 teacherNo:教师工号 orgName:组织 positionName:岗位 bandCode:职级 courseName:认证课程名称 courseContent课程内容分类
* courseIntroduction:课程简介
* */
})
},
addTeacher() {
addTeacher({pageNo: 1, pageSize: 10, keyword: this.form.teacherNo}).then(res => {
@@ -111,87 +112,115 @@ export default {
},
toCaseData(courseId) {
this.$router.push("/course/studyindex?id=" + courseId);
},
downloadFile() {
lecturer.exportPdf({coursewareId: this.teacherInfo.examineCourseware.id}).then(res => {
if (res.status) {
this.$message.error('导出失败');
} else {
const link = document.createElement('a');// 创建a标签
let blob = new Blob([res], {type: 'application/vnd.;charset=UTF-8'}); // 设置文件类型
link.style.display = "none";
link.href = URL.createObjectURL(blob); // 创建URL
link.setAttribute("download", this.teacherInfo.examineCourseware.coursewareName);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
this.dialogVisible = false;
}
})
}
}
}
</script>
<template>
<div>
<process-status :teacherId="teacherId"></process-status>
<div class="title">基本信息</div>
<el-container>
<div class="form-table">
<el-form label-width="140px">
<el-form>
<div>
<el-col :span="10">
<el-col :span="11">
<el-form-item label="姓名:">
{{ form.teacherName }}
</el-form-item>
</el-col>
<el-col :span="10" :offset="4">
<el-col :span="11" :offset="2">
<el-form-item label="工号:">
{{ form.teacherNo }}
</el-form-item>
</el-col>
</div>
<div>
<el-col :span="11">
<el-form-item label="组织:">
{{ form.orgName }}
</el-form-item>
<div>
<el-col :span="10">
</el-col>
<el-col :span="11" :offset="2">
<el-form-item label="岗位:">
{{ form.positionName }}
</el-form-item>
</el-col>
<el-col :span="10" :offset="4">
<el-form-item label="职级:">
{{form.bandCode}}
</el-form-item>
</el-col>
</div>
<div>
<el-col :span="11">
<el-form-item label="认证课程名称:" prop="courseName">
{{ form.courseName }}
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
<el-form-item label="课程内容分类:" prop="courseContent">
{{ form.courseContent }}
</el-form-item>
</el-col>
</div>
<el-form-item label="课程简介:" prop="courseIntroduction">
{{ form.courseIntroduction }}
</el-form-item>
<el-form-item label="稿课件:" prop="courseIntroduction">
{{form.coursewareName}} <span style="color: #1378f6;display: inline-block;margin-left: 16px">查看</span>
<el-form-item label="稿课件:" prop="courseIntroduction">
{{ form.coursewareName }} <span
style="color: #1378f6;display: inline-block;margin-left: 16px;cursor: pointer;"
@click="downloadFile">查看</span>
</el-form-item>
</el-form>
</div>
</el-container>
<div class="title" style="margin-top: 20px">线上课程</div>
<div class="progress">
<div v-for="(item,index) in progressData" :key="item">
<div class="progress-item" @click="toCaseData(item.courseId)">
<div v-for="(item,index) in progressData" :key="index" @click="toCaseData(item.courseId)">
<div class="uc-course-img" style="width: 212px;height:119px">
<img style="width: 100%;" v-if="item.courseImage!=''" :src="item.courseImage">
<img style="width: 100%;" v-else :src="fileBaseUrl+'/pc/images/bgimg/course.png'">
</div>
<div class="courseName">{{ item.courseName }}</div>
<div class="smallTitle">当前进度</div>
<el-progress :percentage="item.progress" :format="format"></el-progress>
</div>
<el-progress :percentage="parseInt(item.progress)"
:color="parseInt(item.progress)=='100'?'#31AF0D':'#FFA050'"></el-progress>
</div>
</div>
<div>
<div class="title" style="margin-top: 20px">认证结果</div>
<div v-if="result.reviewResult==2" class="score" style="color: #797979">请您耐心等待线下认证安排</div>
<div v-if="result.reviewResult==0" class="score" style="color: #4b7900;">恭喜您您的认证分数为{{ result.avgScore }}已经通过认证</div>
<div v-if="result.reviewResult==1" class="score" style="color: #ff0000">很遗憾您的认证分数为{{ result.avgScore }}没有通过认证</div>
<div v-if="result.reviewResult==0" class="score" style="color: #4b7900;">恭喜您您的认证分数为{{
result.avgScore
}}已经通过认证
</div>
<div v-if="result.reviewResult==1" class="score" style="color: #ff0000">很遗憾您的认证分数为{{
result.avgScore
}}没有通过认证
</div>
</div>
<div>
<div class="title" style="margin-top: 20px">二次线下辅导</div>
<el-container>
<div class="form-table">
<el-form label-width="140px">
<el-form>
<el-form-item label="辅导老师:">
<span v-for="(item,index) in form.tutor" :key="item" style="display: inline-block;margin-right: 20px">{{item}}</span>
<span v-for="(item,index) in form.tutor" :key="item"
style="display: inline-block;margin-right: 20px">{{ item }}</span>
</el-form-item>
<el-form-item label="辅导时间:">
{{ form.tutorTime }}
@@ -204,7 +233,7 @@ export default {
<div class="tip">
提示您已完成线下辅导快去进行下一步吧
</div>
<el-button type="primary" style="margin-top: 20px;margin-left: 80px" @click="getJump()">下一步</el-button>
<el-button type="primary" style="margin-top: 20px;" @click="getJump()">下一步</el-button>
</div>
</template>
@@ -212,54 +241,60 @@ export default {
.title {
font-size: 16px;
font-weight: 800;
width: 850px;
border-bottom: 1px solid rgba(215, 215, 215, 0.66);
border-bottom: 1px solid rgba(153, 153, 153, 0.2);
padding: 2px 2px 20px 2px;
}
.form-table {
width: 850px;
width: 100%;
margin-top: 20px;
}
.progress {
display: flex;
align-items: center;
.progress-item{
margin-top: 10px;
margin-right: 10px;
cursor: pointer;
}
margin-top: 20px;
}
.progress > div {
max-width: 250px;
margin-right: 20px;
width: 300px;
margin-right: 30px;
}
.courseName {
font-weight: 650;
color: #333333;
font-size: 14px;
margin-top: 12px;
}
.smallTitle {
color: #134054;
font-size: 12px;
margin-top: 7px;
}
::v-deep .el-form-item__content {
font-weight: 500;
}
::v-deep .el-form-item {
margin-bottom: 0px;
}
.tip {
color: #7d7c7c;
color: #333333;
font-size: 14px;
margin-top: 20px;
}
.score {
margin-top: 28px;
font-size: 20px;
font-size: 14px;
color: #333333;
font-weight: 400;
}
.twoFactorAuthentication {
width: 344px;
height: 135px;
@@ -273,9 +308,27 @@ export default {
justify-content: center;
align-items: center;
}
.remind {
margin-bottom: 20px;
box-sizing: border-box;
color: #797979;
}
::v-deep .el-progress-bar__outer {
background-color: rgba(255, 160, 80, 0.2);
}
::v-deep .el-form-item__label {
font-weight: 400;
font-size: 14px;
color: #333333;
line-height: 40px;
}
::v-deep .el-form-item__content {
font-weight: 400;
font-size: 14px;
color: #333333;
line-height: 40px;
}
</style>

View File

@@ -1,8 +1,10 @@
<script>
import {mapActions, mapGetters} from "vuex";
import {getCertificationProcess, getTeacherInfo, setOfflineTutoring, treeList} from "@/api/modules/lecturer"
import processStatus from "@/components/processStatus.vue";
export default {
name: "TwoFinal",
components: {processStatus},
computed: {
...mapGetters(['userInfo'])
},
@@ -36,14 +38,14 @@ export default {
rules: {
courseName: [
{required: true, message: '请输入认证课程名称', trigger: 'change'},
{ min: 1, max: 50, message: '最多五十字', trigger: 'blur' }
{ min: 1, max: 30, message: '最多30字', trigger: 'blur' }
],
courseContent_1: [
{required: true, message: '请选择课程分类', trigger: 'change'}
],
courseIntroduction: [
{required: true, message: '请输入课程简介', trigger: 'change'},
{ min: 1, max: 500, message: '最多五百字', trigger: 'blur' }
{ min: 1, max: 150, message: '最多150字', trigger: 'blur' }
],
}
}
@@ -143,7 +145,7 @@ export default {
});
}
},
mounted() {
created() {
//获取基本信息
this.teacherId=this.$route.query.teacherId
this.baseInfo()
@@ -157,7 +159,8 @@ export default {
<template>
<div>
<div class="title">上传初稿</div>
<process-status :teacherId="teacherId"></process-status>
<div class="title">二次认证-上传终稿</div>
<el-container>
<div class="form-table">
<el-form ref="form" :model="form" :rules="rules" :label-position="labelPosition" label-width="140px">
@@ -192,12 +195,12 @@ export default {
<el-input v-model="form.courseName" placeholder="请输入认证课程名称"></el-input>
</el-form-item>
<el-form-item label="课程内容分类:" prop="courseContent_1">
<el-cascader placeholder="选择内容分类" style="width: 90%;" clearable v-model="form.courseContent_1" :props="sysProps" :options="sysTypeListMap"></el-cascader>
<el-cascader placeholder="选择内容分类" style="width: 100%;" clearable v-model="form.courseContent_1" :props="sysProps" :options="sysTypeListMap"></el-cascader>
</el-form-item>
<el-form-item label="课程简介:" prop="courseIntroduction">
<el-input type="textarea" v-model="form.courseIntroduction"></el-input>
<el-input type="textarea" rows="5" v-model="form.courseIntroduction"></el-input>
</el-form-item>
<div style="margin-left: 140px;margin-bottom: 20px">
<el-form-item label="上传终稿:" required>
<el-upload
class="upload-demo"
drag
@@ -212,7 +215,7 @@ export default {
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip" slot="tip">请上传解密后的文件仅支持上传pptpptxpdf格式文件</div>
</el-upload>
</div>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit('form')">提交</el-button>
</el-form-item>
@@ -226,12 +229,11 @@ export default {
.title{
font-size: 16px;
font-weight: 800;
width: 850px;
border-bottom: 1px solid rgba(215, 215, 215, 0.66);
border-bottom: 1px solid rgba(153, 153, 153, 0.2);
padding: 2px 2px 20px 2px;
}
.form-table{
width: 850px;
width: 100%;
margin-top: 20px;
}
.iconImg{

View File

@@ -1,14 +1,16 @@
<script>
import {
import lecturer, {
addTeacher,
getCertificationProcess,
getProgress,
getReviewResult,
getTeacherInfo, secondExamine
} from "@/api/modules/lecturer";
import processStatus from "@/components/processStatus.vue";
export default {
name: "TwoFinals",
components: {processStatus},
data(){
return{
teacherId:'',
@@ -26,21 +28,16 @@ export default {
result1:'',
newTeacherId:'',
pid:'',
teacherInfo:''
}
},
mounted() {
created() {
//读取路由参数
this.teacherId=this.$route.query.teacherId
//获取教师基本信息
this.baseInfo()
},
methods:{
//前往二次认证
getoFactor(){
secondExamine({teacherId:this.teacherId}).then(res=>{
this.newTeacherId=res.data.replace(/[^0-9]/ig,'')
})
},
//获取认证结果
getReviewResult(){
getReviewResult({teacherId:this.teacherId}).then(res=>{
@@ -61,6 +58,7 @@ export default {
},
baseInfo(){
getTeacherInfo({teacherId:this.teacherId}).then(res=>{
this.teacherInfo = res.data[0]
/*
* teacherName:教师姓名 teacherNo:教师工号 orgName:组织 positionName:岗位 bandCode:职级 courseName:认证课程名称 courseContent课程内容分类
* courseIntroduction:课程简介
@@ -114,6 +112,23 @@ export default {
},
toCaseData(courseId){
this.$router.push("/course/studyindex?id=" + courseId);
},
downloadFile() {
lecturer.exportPdf({coursewareId: this.teacherInfo.examineCourseware.id}).then(res => {
if (res.status) {
this.$message.error('导出失败');
} else {
const link = document.createElement('a');// 创建a标签
let blob = new Blob([res], {type: 'application/vnd.;charset=UTF-8'}); // 设置文件类型
link.style.display = "none";
link.href = URL.createObjectURL(blob); // 创建URL
link.setAttribute("download", this.teacherInfo.examineCourseware.coursewareName);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
this.dialogVisible = false;
}
})
}
}
@@ -122,69 +137,74 @@ export default {
<template>
<div>
<process-status :teacherId="teacherId"></process-status>
<div class="title">基本信息</div>
<el-container>
<div class="form-table">
<el-form label-width="140px">
<el-form>
<div>
<el-col :span="10">
<el-col :span="11">
<el-form-item label="姓名:">
{{ form.teacherName }}
</el-form-item>
</el-col>
<el-col :span="10" :offset="4">
<el-col :span="11" :offset="2">
<el-form-item label="工号:">
{{ form.teacherNo }}
</el-form-item>
</el-col>
</div>
<div>
<el-col :span="11">
<el-form-item label="组织:">
{{ form.orgName }}
</el-form-item>
<div>
<el-col :span="10">
</el-col>
<el-col :span="11" :offset="2">
<el-form-item label="岗位:">
{{ form.positionName }}
</el-form-item>
</el-col>
<el-col :span="10" :offset="4">
<el-form-item label="职级:">
{{form.bandCode}}
</el-form-item>
</el-col>
</div>
<div>
<el-col :span="11">
<el-form-item label="认证课程名称:" prop="courseName">
{{ form.courseName }}
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
<el-form-item label="课程内容分类:" prop="courseContent">
{{ form.courseContent }}
</el-form-item>
</el-col>
</div>
<el-form-item label="课程简介:" prop="courseIntroduction">
{{ form.courseIntroduction }}
</el-form-item>
<el-form-item label="稿课件:" prop="courseIntroduction">
{{form.coursewareName}} <span style="color: #1378f6;display: inline-block;margin-left: 16px">查看</span>
<el-form-item label="稿课件:" prop="courseIntroduction">
{{ form.coursewareName }} <span
style="color: #1378f6;display: inline-block;margin-left: 16px;cursor: pointer;"
@click="downloadFile">查看</span>
</el-form-item>
</el-form>
</div>
</el-container>
<div class="title" style="margin-top: 20px">线上课程</div>
<div class="progress">
<div v-for="(item,index) in progressData" :key="item">
<div class="progress-item" @click="toCaseData(item.courseId)">
<div v-for="(item,index) in progressData" :key="index" @click="toCaseData(item.courseId)">
<div class="uc-course-img" style="width: 212px;height:119px">
<img style="width: 100%;" v-if="item.courseImage!=''" :src="item.courseImage">
<img style="width: 100%;" v-else :src="fileBaseUrl+'/pc/images/bgimg/course.png'">
</div>
<div class="courseName">{{ item.courseName }}</div>
<div class="smallTitle">当前进度</div>
<el-progress :percentage="item.progress" :format="format"></el-progress>
</div>
<el-progress :percentage="parseInt(item.progress)"
:color="parseInt(item.progress)=='100'?'#31AF0D':'#FFA050'"></el-progress>
</div>
</div>
<div>
<div class="title" style="margin-top: 20px">认证结果</div>
<div v-if="result1.reviewResult==2" class="score" style="color: #797979">请您耐心等待线下认证安排</div>
<div v-if="result1.reviewResult==2" class="score">请您耐心等待线下认证安排</div>
<div v-if="result1.reviewResult==0" class="score" style="color: #4b7900;">恭喜您您的认证分数为{{ result1.avgScore }}已经通过认证</div>
<div v-if="result1.reviewResult==1" class="score" style="color: #ff0000">很遗憾您的认证分数为{{ result1.avgScore }}没有通过认证</div>
</div>
@@ -192,7 +212,7 @@ export default {
<div class="title" style="margin-top: 20px">二次线下辅导</div>
<el-container>
<div class="form-table">
<el-form label-width="140px">
<el-form>
<el-form-item label="辅导老师:">
<span v-for="(item,index) in form.tutor" :key="item" style="display: inline-block;margin-right: 20px">{{item}}</span>
</el-form-item>
@@ -205,7 +225,7 @@ export default {
</div>
<div>
<div class="title" style="margin-top: 20px">二次认证结果</div>
<div v-if="result.reviewResult==2" class="score" style="color: #797979">请您耐心等待线下认证安排</div>
<div v-if="result.reviewResult==2" class="score">请您耐心等待线下认证安排</div>
<div v-if="result.reviewResult==0" class="score" style="color: #4b7900;">恭喜您您的认证分数为{{ result.avgScore }}已经通过认证</div>
<div v-if="result.reviewResult==1" class="score" style="color: #ff0000">很遗憾您的认证分数为{{ result.avgScore }}没有通过认证</div>
</div>
@@ -216,26 +236,21 @@ export default {
.title{
font-size: 16px;
font-weight: 800;
width: 850px;
border-bottom: 1px solid rgba(215, 215, 215, 0.66);
border-bottom: 1px solid rgba(153, 153, 153, 0.2);
padding: 2px 2px 20px 2px;
}
.form-table{
width: 850px;
width: 100%;
margin-top: 20px;
}
.progress {
display: flex;
align-items: center;
.progress-item{
margin-top: 10px;
margin-right: 10px;
cursor: pointer;
}
margin-top: 20px;
}
.progress > div {
max-width: 250px;
margin-right: 20px;
width: 300px;
margin-right: 30px;
}
.courseName{
font-weight: 650;
@@ -255,14 +270,15 @@ export default {
margin-bottom: 0px;
}
.tip{
color: #7d7c7c;
color: #333333;
font-size: 14px;
margin-top: 20px;
}
.score {
margin-top: 28px;
font-size: 20px;
font-size: 14px;
color: #333333;
font-weight: 400;
}
.twoFactorAuthentication{
width: 344px;
@@ -282,4 +298,21 @@ export default {
box-sizing: border-box;
color: #797979;
}
::v-deep .el-progress-bar__outer {
background-color: rgba(255, 160, 80, 0.2);
}
::v-deep .el-form-item__label {
font-weight: 400;
font-size: 14px;
color: #333333;
line-height: 40px;
}
::v-deep .el-form-item__content {
font-weight: 400;
font-size: 14px;
color: #333333;
line-height: 40px;
}
</style>

View File

@@ -97,7 +97,8 @@
<!-- <a :href="returnRouter(item)"> -->
<div v-if="item.refType !== '99'">
<div style="cursor: pointer;" @click="returnRouter(item)" class="msg-body-content" v-if="item.content">
{{ item.tip }}-{{ item.content }}</div>
{{ item.tip }}-{{ item.content }}
</div>
<div style="cursor: pointer;" @click="returnRouter(item)" class="msg-body-content" v-else>{{ item.tip }}
</div>
</div>

View File

@@ -16,8 +16,6 @@ const port = process.env.port || process.env.npm_config_port || 80 // 端口
const timeStamp = new Date().getTime()
module.exports = {
filenameHashing: false,
// 部署生产环境和开发环境下的URL。
// 默认情况下Vue CLI 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.sss.com/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.aaa.com/admin/,则设置 baseUrl 为 /admin/。
@@ -128,7 +126,8 @@ module.exports = {
proxy: {
'/manageApi': {
// 目标代理服务器地址
target: 'https://u-pre.boe.com',
target: 'https://pretest.zcwytd.com',
// target: 'https://u-pre.boe.com',
changeOrigin: true,
secure: false,
pathRewrite: {
@@ -138,7 +137,8 @@ module.exports = {
'/systemapi': {
// 目标代理服务器地址
// target: 'http://127.0.0.1:9090',
target: 'https://u-pre.boe.com',
target: 'https://pretest.zcwytd.com',
// target: 'https://u-pre.boe.com',
changeOrigin: true,
logLevel: 'debug',
secure: false,
@@ -148,7 +148,8 @@ module.exports = {
},
'/uboeApi': {
// 目标代理服务器地址
target: 'https://u-pre.boe.com',
target: 'https://pretest.zcwytd.com',
// target: 'https://u-pre.boe.com',
changeOrigin: true,
secure: false,
pathRewrite: {
@@ -157,7 +158,8 @@ module.exports = {
},
'/userbasic': {
// 目标代理服务器地址
target: 'https://u-pre.boe.com',
target: 'https://pretest.zcwytd.com',
// target: 'https://u-pre.boe.com',
changeOrigin: true,
secure: false,
pathRewrite: {
@@ -167,7 +169,8 @@ module.exports = {
'/statApi': {
// 目标代理服务器地址
// target: 'http://127.0.0.1:9080',
target: 'https://u-pre.boe.com',
target: 'https://pretest.zcwytd.com',
// target: 'https://u-pre.boe.com',
changeOrigin: true,
logLevel: 'debug',
secure: false,
@@ -178,7 +181,8 @@ module.exports = {
'/socialApi': {
// 目标代理服务器地址
// target: 'http://127.0.0.1:9081',
target: 'https://u-pre.boe.com',
target: 'https://pretest.zcwytd.com',
// target: 'https://u-pre.boe.com',
changeOrigin: true,
logLevel: 'debug',
secure: false,
@@ -188,7 +192,8 @@ module.exports = {
},
'/report': {
// 目标代理服务器地址
target: 'https://u-pre.boe.com',
target: 'https://pretest.zcwytd.com',
// target: 'https://u-pre.boe.com',
changeOrigin: true,
secure: false,
pathRewrite: {
@@ -197,13 +202,15 @@ module.exports = {
},
'/infrasApi': {
// 目标代理服务器地址
target: 'https://u-pre.boe.com',
target: 'https://pretest.zcwytd.com',
// target: 'https://u-pre.boe.com',
changeOrigin: true,
secure: false,
},
'/activityApi': {
// 目标代理服务器地址
target: 'https://u-pre.boe.com',
target: 'https://pretest.zcwytd.com',
// target: 'https://u-pre.boe.com',
changeOrigin: true,
secure: false,
},