This commit is contained in:
李志发
2024-05-17 09:27:15 +08:00
parent c1dd6426c7
commit c3d34b0c66
27 changed files with 500 additions and 245 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -1,11 +0,0 @@
<script setup>
</script>
<template>
<div>2222</div>
</template>
<style scoped lang="scss">
</style>

View File

@@ -198,7 +198,8 @@
<template slot="title"> <template slot="title">
<svg-icon icon-class="lecturer" style="font-size:16px"></svg-icon> <svg-icon icon-class="lecturer" style="font-size:16px"></svg-icon>
<span>讲师认证</span> <span>讲师认证</span>
<div v-if="instructor==''" 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">1</div> <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">
{{ instructor }}</div>
</template> </template>
</el-menu-item> </el-menu-item>
<el-submenu index="u004" v-show="curIdentity == 2"> <el-submenu index="u004" v-show="curIdentity == 2">
@@ -381,9 +382,8 @@
<script> <script>
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import apiCourse from '../../api/modules/course.js';
import apicourseStudy from "../../api/modules/courseStudy.js" import apicourseStudy from "../../api/modules/courseStudy.js"
import pageList from "../../api/modules/lecturer.js" import {pageList} from "@/api/modules/lecturer"
import courseImage from "@/components/Course/courseImage.vue" import courseImage from "@/components/Course/courseImage.vue"
import testUser from '@/utils/testUsers.js' import testUser from '@/utils/testUsers.js'
export default { export default {
@@ -413,7 +413,7 @@ export default {
isCollapse: false, isCollapse: false,
lastStudy:{}, lastStudy:{},
overlayShow: false, overlayShow: false,
instructor:'' instructor:0
}; };
}, },
created() { created() {
@@ -436,7 +436,7 @@ export default {
methods: { methods: {
//讲师认证条数 //讲师认证条数
instructorCertification(){ instructorCertification(){
pageList({ teacherNo:'',courseName:'', pageIndex: 1, pageSize: 1}).then(res=>{ pageList({ teacherNo:this.userInfo.userNo,courseName:'', pageNo: 1, pageSize: 10}).then(res=>{
this.instructor=res.data.count this.instructor=res.data.count
}) })
}, },

View File

@@ -0,0 +1,254 @@
<script setup>
import {getCertificationProcess} from "@/api/modules/lecturer";
export default {
props: ['teacherId'],
data(){
return{
status:{
draftStatus:0,
onlineLearning:0,
offlineTutoring:0,
endStatus:0,
reviewResult:0,
offlineTutoring1:0,
endStatus1:0,
reviewResult1:0,
}
}
},
mounted() {
this.getCertificationProcess()
},
methods:{
getCertificationProcess(){
getCertificationProcess({teacherId:this.teacherId}).then(res=>{
let data=res.data
if (data.secondResult==0 && data.reviewResult==0){
this.status={
secondResult:0,
draftStatus:0,
onlineLearning:0,
offlineTutoring:0,
endStatus:0,
reviewResult:1,
offlineTutoring1:0,
endStatus1:0,
reviewResult1:0,
}
}else if (data.secondResult==0 && data.reviewResult==1){
this.status={
secondResult:0,
draftStatus:0,
onlineLearning:0,
offlineTutoring:0,
endStatus:0,
reviewResult:1,
offlineTutoring1:0,
endStatus1:0,
reviewResult1:1,
}
}else if (data.secondResult==0 && data.endStatus==0){
this.status={
secondResult:0,
draftStatus:0,
onlineLearning:0,
offlineTutoring:0,
endStatus:0,
reviewResult:1,
offlineTutoring1:0,
endStatus1:0,
reviewResult1:2,
}
}else if (data.secondResult==0 && data.offlineTutoring==0){
this.status={
secondResult:0,
draftStatus:0,
onlineLearning:0,
offlineTutoring:0,
endStatus:0,
reviewResult:1,
offlineTutoring1:0,
endStatus1:1,
reviewResult1:2,
}
}else if (data.secondResult==1 && data.reviewResult==0){
this.status={
secondResult:1,
draftStatus:0,
onlineLearning:0,
offlineTutoring:0,
endStatus:0,
reviewResult:0,
offlineTutoring1:1,
endStatus1:1,
reviewResult1:2,
}
}else if (data.secondResult==1 && data.reviewResult==1){
this.status={
secondResult:1,
draftStatus:0,
onlineLearning:0,
offlineTutoring:0,
endStatus:0,
reviewResult:1,
offlineTutoring1:1,
endStatus1:1,
reviewResult1:2,
}
}else if (data.secondResult==1 && data.endStatus==0){
this.status={
secondResult:1,
draftStatus:0,
onlineLearning:0,
offlineTutoring:0,
endStatus:0,
reviewResult:2,
offlineTutoring1:1,
endStatus1:1,
reviewResult1:2,
}
}else if (data.secondResult==1 && data.offlineTutoring==0){
this.status={
secondResult:1,
draftStatus:0,
onlineLearning:0,
offlineTutoring:0,
endStatus:1,
reviewResult:2,
offlineTutoring1:1,
endStatus1:1,
reviewResult1:2,
}
}else if (data.secondResult==1 && data.onlineLearning==0){
this.status={
secondResult:1,
draftStatus:0,
onlineLearning:0,
offlineTutoring:1,
endStatus:1,
reviewResult:2,
offlineTutoring1:1,
endStatus1:1,
reviewResult1:2,
}
}else if (data.secondResult==1 && data.draftStatus==0){
this.status={
secondResult:1,
draftStatus:0,
onlineLearning:1,
offlineTutoring:1,
endStatus:1,
reviewResult:2,
offlineTutoring1:1,
endStatus1:1,
reviewResult1:2,
}
}else{
this.status={
secondResult:1,
draftStatus:1,
onlineLearning:1,
offlineTutoring:1,
endStatus:1,
reviewResult:2,
offlineTutoring1:1,
endStatus1:1,
reviewResult1:2,
}
}
})
}
}
};
</script>
<template>
<div class="main">
<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>
<div class="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>
<div class="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>
<div class="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>
<div class="line"></div>
<div class="process">
<img src="../assets/images/certification.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>
<div class="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>
<div class="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>
<div class="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/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>
</div>
</template>
<style scoped lang="scss">
.main {
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 20px;
}
.process {
display: flex;
flex-direction: column;
align-items: center;
img {
width: 46px;
height: 46px;
}
div {
font-weight: 400;
font-size: 14px;
color: #409EFF;
line-height: 20px;
margin-top: 12px;
}
}
.line {
width: 81px;
height: 1px;
border: 1px solid #409EFF;
margin: 0 8px 30px 8px;
}
</style>

View File

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

View File

@@ -1,80 +1,79 @@
<script> <script>
import {addTeacher, getCertificationProcess, getProgress, getTeacherInfo} from "@/api/modules/lecturer"; import {addTeacher, getCertificationProcess, getProgress, getTeacherInfo} from "@/api/modules/lecturer";
import processStatus from "@/components/processStatus.vue";
export default { export default {
name: "CoachingSuccess", name: "CoachingSuccess",
data(){ components: {processStatus},
return{ data() {
teacherId:'', return {
form:{ teacherId: '',
teacherName:'', form: {
teacherNo:'', teacherName: '',
orgName:'' teacherNo: '',
orgName: ''
}, },
progressData:{}, progressData: {},
fileBaseUrl:process.env.VUE_APP_FILE_BASE_URL, fileBaseUrl: process.env.VUE_APP_FILE_BASE_URL,
disabled:false, disabled: false,
statusInfo:'' statusInfo: ''
} }
}, },
mounted() { created() {
//读取路由参数 //读取路由参数
this.teacherId=this.$route.query.teacherId this.teacherId = this.$route.query.teacherId
//获取教师基本信息 //获取教师基本信息
this.baseInfo() this.baseInfo()
this.getStatus() this.getStatus()
}, },
methods:{ methods: {
//获取教师认证状态 //获取教师认证状态
getStatus(){ getStatus() {
getCertificationProcess({teacherId:this.teacherId}).then(res=>{ getCertificationProcess({teacherId: this.teacherId}).then(res => {
this.statusInfo=res.data this.statusInfo = res.data
}) })
}, },
baseInfo(){ baseInfo() {
getTeacherInfo({teacherId:this.teacherId}).then(res=>{ getTeacherInfo({teacherId: this.teacherId}).then(res => {
/* /*
* teacherName:教师姓名 teacherNo:教师工号 orgName:组织 positionName:岗位 bandCode:职级 courseName:认证课程名称 courseContent课程内容分类 * teacherName:教师姓名 teacherNo:教师工号 orgName:组织 positionName:岗位 bandCode:职级 courseName:认证课程名称 courseContent课程内容分类
* courseIntroduction:课程简介 * courseIntroduction:课程简介
* */ * */
this.form.teacherName=res.data[0].teacherName this.form.teacherName = res.data[0].teacherName
this.form.teacherNo=res.data[0].teacherNo this.form.teacherNo = res.data[0].teacherNo
this.form.orgName=res.data[0].orgName this.form.orgName = res.data[0].orgName
this.form.positionName=res.data[0].positionName this.form.positionName = res.data[0].positionName
this.form.bandCode=res.data[0].bandCode this.form.bandCode = res.data[0].bandCode
this.form.courseName=res.data[0].courseName this.form.courseName = res.data[0].courseName
this.form.courseContent=res.data[0].courseContent this.form.courseContent = res.data[0].courseContent
this.form.courseIntroduction=res.data[0].courseIntroduction this.form.courseIntroduction = res.data[0].courseIntroduction
this.form.coursewareName=res.data[0].examineCourseware.coursewareName this.form.coursewareName = res.data[0].examineCourseware.coursewareName
this.form.tutor=res.data[0].tutor.split(',') this.form.tutor = res.data[0].tutor.split(',')
this.form.tutorTime=res.data[0].tutorTime this.form.tutorTime = res.data[0].tutorTime
//获取学习进度 //获取学习进度
this.addTeacher() this.addTeacher()
}) })
}, },
addTeacher(){ addTeacher() {
addTeacher({pageNo:1,pageSize:10,keyword:this.form.teacherNo}).then(res=>{ addTeacher({pageNo: 1, pageSize: 10, keyword: this.form.teacherNo}).then(res => {
this.getProgress(res.data[0].id) this.getProgress(res.data[0].id)
}) })
}, },
getProgress(id){ getProgress(id) {
getProgress({teacherId:id}).then(res=>{ getProgress({teacherId: id}).then(res => {
this.progressData=res.data this.progressData = res.data
res.data.forEach((item,index)=>{ res.data.forEach((item, index) => {
if (item.progress!=100){ if (item.progress != 100) {
this.disabled=true this.disabled = true
return return
} }
}) })
}) })
}, },
format(percentage) { getJump() {
return percentage === 100 ? '满' : `${percentage}%`;
},
getJump(){
this.$router.push({ this.$router.push({
path:'/need/final', path: '/need/final',
query:{teacherId:this.teacherId} query: {teacherId: this.teacherId}
}) })
} }
@@ -84,73 +83,78 @@ export default {
<template> <template>
<div> <div>
<process-status :teacherId="teacherId"></process-status>
<div class="title">基本信息</div> <div class="title">基本信息</div>
<el-container> <el-container>
<div class="form-table"> <div class="form-table">
<el-form label-width="140px"> <el-form>
<div> <div>
<el-col :span="10"> <el-col :span="11">
<el-form-item label="姓名:"> <el-form-item label="姓名:">
{{form.teacherName}} {{ form.teacherName }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="4"> <el-col :span="11" :offset="2">
<el-form-item label="工号:"> <el-form-item label="工号:">
{{form.teacherNo}} {{ form.teacherNo }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</div> </div>
<el-form-item label="组织:">
{{form.orgName}}
</el-form-item>
<div> <div>
<el-col :span="10"> <el-col :span="11">
<el-form-item label="岗位"> <el-form-item label="组织">
{{form.positionName}} {{ form.orgName }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="4"> <el-col :span="11" :offset="2">
<el-form-item label="职级"> <el-form-item label="岗位">
{{form.bandCode}} {{ form.positionName }}
</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-form-item>
</el-col> </el-col>
</div> </div>
<el-form-item label="认证课程名称:" prop="courseName">
{{form.courseName}}
</el-form-item>
<el-form-item label="课程内容分类:" prop="courseContent">
{{form.courseContent}}
</el-form-item>
<el-form-item label="课程简介:" prop="courseIntroduction"> <el-form-item label="课程简介:" prop="courseIntroduction">
{{form.courseIntroduction}} {{ form.courseIntroduction }}
</el-form-item> </el-form-item>
<el-form-item label="初稿课件:" prop="courseIntroduction"> <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">查看</span>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
</el-container> </el-container>
<div class="title" style="margin-top: 20px">线上课程</div> <div class="title" style="margin-top: 20px">线上课程</div>
<div class="progress"> <div class="progress">
<div v-for="(item,index) in progressData" :key="item"> <div v-for="(item,index) in progressData" :key="index">
<div class="uc-course-img" style="width: 212px;height:119px"> <div class="uc-course-img" style="width: 212px;height:119px">
<img :src="item.courseImage"> <img :src="item.courseImage">
</div> </div>
<div class="courseName">{{item.courseName}}</div> <div class="courseName">{{ item.courseName }}</div>
<div class="smallTitle">当前进度</div> <div class="smallTitle">当前进度</div>
<el-progress :percentage="item.progress" :format="format"></el-progress> <el-progress :percentage="parseInt(item.progress)"></el-progress>
</div> </div>
</div> </div>
<div> <div>
<div class="title" style="margin-top: 20px">线下辅导</div> <div class="title" style="margin-top: 20px">线下辅导</div>
<el-container> <el-container>
<div class="form-table"> <div class="form-table">
<el-form label-width="140px"> <el-form>
<el-form-item label="辅导老师:"> <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>
<el-form-item label="辅导时间:"> <el-form-item label="辅导时间:">
{{form.tutorTime}} {{ form.tutorTime }}
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@@ -165,45 +169,58 @@ export default {
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.title{ .title {
font-size: 16px; font-size: 16px;
font-weight: 800; font-weight: 800;
width: 850px; border-bottom: 1px solid rgba(153, 153, 153, 0.2);
border-bottom: 1px solid rgba(215, 215, 215, 0.66);
padding: 2px 2px 20px 2px; padding: 2px 2px 20px 2px;
} }
.form-table{
width: 850px; .form-table {
width: 100%;
margin-top: 20px; margin-top: 20px;
} }
.progress{ .progress{
display: flex; display: flex;
align-items: center; align-items: center;
margin-top: 20px;
} }
.progress>div{ .progress>div{
max-width: 250px; width: 300px;
margin-right: 20px; margin-right: 30px;
} }
.courseName{
.courseName {
font-weight: 650; font-weight: 650;
color: #333333; color: #333333;
font-size: 14px; font-size: 14px;
margin-top: 12px; margin-top: 12px;
} }
.smallTitle{
color:#134054; .smallTitle {
font-size:12px; color: #134054;
font-size: 12px;
margin-top: 7px; margin-top: 7px;
} }
::v-deep .el-form-item__content{
::v-deep .el-form-item__content {
font-weight: 500; font-weight: 500;
} }
::v-deep .el-form-item{
::v-deep .el-form-item {
margin-bottom: 0px; margin-bottom: 0px;
} }
.tip{
.tip {
color: #7d7c7c; color: #7d7c7c;
font-size: 14px; font-size: 14px;
margin-top: 20px; 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);
}
</style> </style>

View File

@@ -1,8 +1,10 @@
<script> <script>
import {mapActions, mapGetters} from "vuex"; import {mapActions, mapGetters} from "vuex";
import {getCertificationProcess, getTeacherInfo, setOfflineTutoring, treeList} from "@/api/modules/lecturer" import {getCertificationProcess, getTeacherInfo, setOfflineTutoring, treeList} from "@/api/modules/lecturer"
import processStatus from "@/components/processStatus.vue";
export default { export default {
name: "FinalDraft", name: "FinalDraft",
components: {processStatus},
computed: { computed: {
...mapGetters(['userInfo']) ...mapGetters(['userInfo'])
}, },
@@ -74,10 +76,6 @@ export default {
this.form.orgName=res.data[0].orgName this.form.orgName=res.data[0].orgName
this.form.positionName=res.data[0].positionName this.form.positionName=res.data[0].positionName
this.form.bandCode=res.data[0].bandCode this.form.bandCode=res.data[0].bandCode
//获取初始值
this.form.courseNameOne=res.data[0].courseName
this.form.courseIntroductionOne=res.data[0].courseIntroduction
this.form.courseContent_2=res.data[0].courseContent
}) })
}, },
onSubmit(formName){ onSubmit(formName){
@@ -93,9 +91,9 @@ export default {
this.form.courseContent = this.form.courseContent_1.join('/'); this.form.courseContent = this.form.courseContent_1.join('/');
setOfflineTutoring( setOfflineTutoring(
{teacherId:this.teacherId, {teacherId:this.teacherId,
courseName:this.form.courseNameOne==this.form.courseName?null:this.form.courseName, courseName:this.form.courseName,
courseContent:this.form.courseContent_2==this.form.courseContent?null:this.form.courseContent, courseContent:this.form.courseContent,
courseIntroduction:this.form.courseIntroductionOne==this.form.courseIntroduction?null:this.form.courseIntroduction, courseIntroduction:this.form.courseIntroduction,
coursewareUrl:this.form.coursewareUrl, coursewareUrl:this.form.coursewareUrl,
coursewareName:this.form.coursewareName, coursewareName:this.form.coursewareName,
version:1 version:1
@@ -109,6 +107,11 @@ export default {
path:'/need/finalsuccess', path:'/need/finalsuccess',
query:{teacherId:this.teacherId} query:{teacherId:this.teacherId}
}) })
}else {
this.$message({
message: res.msg,
type: 'error'
});
} }
}) })
} }
@@ -138,7 +141,7 @@ export default {
}); });
} }
}, },
mounted() { created() {
//获取基本信息 //获取基本信息
this.teacherId=this.$route.query.teacherId this.teacherId=this.$route.query.teacherId
this.baseInfo() this.baseInfo()
@@ -152,6 +155,7 @@ export default {
<template> <template>
<div> <div>
<process-status :teacherId="teacherId"></process-status>
<div class="title">上传终稿</div> <div class="title">上传终稿</div>
<el-container> <el-container>
<div class="form-table"> <div class="form-table">
@@ -186,13 +190,13 @@ export default {
<el-form-item label="认证课程名称:" prop="courseName"> <el-form-item label="认证课程名称:" prop="courseName">
<el-input v-model="form.courseName" placeholder="请输入认证课程名称"></el-input> <el-input v-model="form.courseName" placeholder="请输入认证课程名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="课程内容分类:" prop="courseContent_1"> <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>
<el-form-item label="课程简介:" prop="courseIntroduction"> <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> </el-form-item>
<div style="margin-left: 140px;margin-bottom: 20px"> <el-form-item label="上传终稿:" required>
<el-upload <el-upload
class="upload-demo" class="upload-demo"
drag drag
@@ -207,46 +211,13 @@ export default {
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div> <div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip" slot="tip">请上传解密后的文件仅支持上传pptpptxpdf格式文件</div> <div class="el-upload__tip" slot="tip">请上传解密后的文件仅支持上传pptpptxpdf格式文件</div>
</el-upload> </el-upload>
</div> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="onSubmit('form')">提交</el-button> <el-button type="primary" @click="onSubmit('form')">提交</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
</el-container> </el-container>
<div style="height: 600px;position: absolute;right: 60px;top: 40px">
<div style="display: flex;justify-content: center;align-items: center;flex-direction: column">
<div class="iconImg">
<img src="../../assets/images/firstDraft.png" alt="" v-if="statusInfo.draftStatus==1">
<img src="../../assets/images/firstDraft1.png" alt="" v-if="statusInfo.draftStatus==0">
<div class="iconName">{{ statusInfo.draftStatus==0?'初稿已上传':'初稿未上传' }}</div>
</div>
<div class="line"></div>
<div class="iconImg">
<img src="../../assets/images/learn.png" alt="" v-if="statusInfo.onlineLearning==1">
<img src="../../assets/images/learn1.png" alt="" v-if="statusInfo.onlineLearning==0">
<div class="iconName">线上学习未开始</div>
</div>
<div class="line"></div>
<div class="iconImg">
<img src="../../assets/images/coaching.png" alt="" v-if="statusInfo.offlineTutoring==1">
<img src="../../assets/images/coaching1.png" alt="" v-if="statusInfo.offlineTutoring==0">
<div class="iconName">线下辅导未完成</div>
</div>
<div class="line"></div>
<div class="iconImg">
<img src="../../assets/images/draft.png" alt="" v-if="statusInfo.endStatus==1">
<img src="../../assets/images/draft1.png" alt="" v-if="statusInfo.endStatus==0">
<div class="iconName">终稿未上传</div>
</div>
<div class="line"></div>
<div class="iconImg">
<img src="../../assets/images/authentication.png" alt="" v-if="statusInfo.reviewResult!=0">
<img src="../../assets/images/authentication1.png" alt="" v-if="statusInfo.reviewResult==0">
<div class="iconName">认证</div>
</div>
</div>
</div>
</div> </div>
</template> </template>
@@ -254,12 +225,11 @@ export default {
.title{ .title{
font-size: 16px; font-size: 16px;
font-weight: 800; font-weight: 800;
width: 850px; border-bottom: 1px solid rgba(153, 153, 153, 0.2);
border-bottom: 1px solid rgba(215, 215, 215, 0.66);
padding: 2px 2px 20px 2px; padding: 2px 2px 20px 2px;
} }
.form-table{ .form-table{
width: 850px; width: 100%;
margin-top: 20px; margin-top: 20px;
} }
.iconImg{ .iconImg{

View File

@@ -40,7 +40,7 @@ export default {
this.newTeacherId=res.data.replace(/[^0-9]/ig,'') this.newTeacherId=res.data.replace(/[^0-9]/ig,'')
if (res.code==200){ if (res.code==200){
this.$router.push({ this.$router.push({
path:'/need/twoauthentication', path:'/need/twoathentication',
query:{teacherId:this.newTeacherId} query:{teacherId:this.newTeacherId}
}) })
} }

View File

@@ -1,12 +1,15 @@
<script> <script>
import {mapActions, mapGetters} from "vuex"; import {mapActions, mapGetters} from "vuex";
import {getCertificationProcess, getTeacherInfo, setOfflineTutoring, treeList} from "@/api/modules/lecturer" import {getCertificationProcess, getTeacherInfo, setOfflineTutoring, treeList} from "@/api/modules/lecturer"
import processStatus from '@/components/processStatus.vue';
export default { export default {
name: "FirstDraft", name: "FirstDraft",
computed: { computed: {
...mapGetters(['userInfo']) ...mapGetters(['userInfo'])
}, },
components:{
processStatus
},
data(){ data(){
return{ return{
disabled:false, disabled:false,
@@ -47,6 +50,15 @@ export default {
], ],
} }
} }
},
created() {
//获取基本信息
this.teacherId=this.$route.query.teacherId
this.baseInfo()
this.getStatus()
this.getSysTypeTree().then(rs=>{
this.sysTypeListMap=rs;
})
}, },
methods:{ methods:{
...mapActions({ ...mapActions({
@@ -74,46 +86,46 @@ export default {
}) })
}, },
onSubmit(formName){ onSubmit(formName){
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
if (this.form.coursewareUrl==''){ if (this.form.coursewareUrl==''){
this.$message({ this.$message({
message: '未上传文件', message: '未上传文件',
type: 'error' type: 'error'
}); });
return return
}else { }else {
this.form.courseContent = this.form.courseContent_1.join('/'); this.form.courseContent = this.form.courseContent_1.join('/');
setOfflineTutoring( setOfflineTutoring(
{teacherId:this.teacherId, {teacherId:this.teacherId,
courseName:this.form.courseName, courseName:this.form.courseName,
courseContent:this.form.courseContent, courseContent:this.form.courseContent,
courseIntroduction:this.form.courseIntroduction, courseIntroduction:this.form.courseIntroduction,
coursewareUrl:this.form.coursewareUrl, coursewareUrl:this.form.coursewareUrl,
coursewareName:this.form.coursewareName, coursewareName:this.form.coursewareName,
version:0 version:0
}).then(res=>{ }).then(res=>{
if (res.code==200){ if (res.code==200){
this.$message({ this.$message({
message: '设置成功', message: '设置成功',
type: 'success' type: 'success'
}); });
this.$router.push({ this.$router.push({
path:'/need/onlinelearning', path:'/need/onlinelearning',
query:{teacherId:this.teacherId} query:{teacherId:this.teacherId}
}) })
}else { }else {
this.$message({ this.$message({
message:res.msg, message:res.msg,
type: 'error' type: 'error'
}); });
} }
}) })
}
} else {
return false;
} }
}); } else {
return false;
}
});
}, },
handRemove(file){ handRemove(file){
this.form.coursewareUrl='' this.form.coursewareUrl=''
@@ -136,20 +148,13 @@ export default {
}); });
} }
}, },
mounted() {
//获取基本信息
this.teacherId=this.$route.query.teacherId
this.baseInfo()
this.getStatus()
this.getSysTypeTree().then(rs=>{
this.sysTypeListMap=rs;
})
}
} }
</script> </script>
<template> <template>
<div> <div>
<process-status :teacherId="teacherId"></process-status>
<div class="title">上传初稿</div> <div class="title">上传初稿</div>
<el-container> <el-container>
<div class="form-table"> <div class="form-table">
@@ -219,12 +224,11 @@ export default {
.title{ .title{
font-size: 16px; font-size: 16px;
font-weight: 800; font-weight: 800;
width: 850px; border-bottom: 1px solid rgba(153, 153, 153, 0.2);
border-bottom: 1px solid rgba(215, 215, 215, 0.66);
padding: 2px 2px 20px 2px; padding: 2px 2px 20px 2px;
} }
.form-table{ .form-table{
width: 850px; width: 100%;
margin-top: 20px; margin-top: 20px;
} }
.iconImg{ .iconImg{

View File

@@ -112,6 +112,16 @@ export default {
}) })
} }
}) })
},
//控制跳转
getJump(item){
if (item.reviewResult==1 || item.reviewResult==0){
this.getRecording(item)
}else if (item.reviewResult==2){
this.getView(item)
}else if (item.reviewResult==3){
this.jumpRouter(item.teacherId)
}
} }
} }
} }
@@ -132,9 +142,8 @@ export default {
</div> </div>
</div> </div>
<div v-if="this.couresList.length!=0"> <div v-if="this.couresList.length!=0">
<div class="uc-course" v-for="(item, idx) in couresList" :key="idx" > <div class="uc-course" v-for="(item, idx) in couresList" :key="idx" @click="getJump(item)">
<div class="uc-course-img" style="width: 212px;height:119px"> <div class="uc-course-img" style="width: 212px;height:119px">
<!-- <course-image :course="item"></course-image>-->
<img :src="item.cover"> <img :src="item.cover">
</div> </div>
<div class="uc-course-info"> <div class="uc-course-info">
@@ -150,9 +159,9 @@ export default {
</div> </div>
<div class="uc-course-text"> <div class="uc-course-text">
{{ item.reviewResult==3||item.reviewResult==2?'报名时间':'认证时间' }}{{ item.reviewResult==3||item.reviewResult==2?item.createTime:item.reviewTime }} {{ item.reviewResult==3||item.reviewResult==2?'报名时间':'认证时间' }}{{ item.reviewResult==3||item.reviewResult==2?item.createTime:item.reviewTime }}
<span type="text" style="margin-left:10px;font-size:14px;cursor: pointer;color:#b6b6b6" v-if="item.reviewResult==1||item.reviewResult==0" @click="getRecording(item)">查看认证记录</span> <span type="text" style="margin-left:10px;font-size:14px;cursor: pointer;color:#b6b6b6" v-if="item.reviewResult==1||item.reviewResult==0">查看认证记录</span>
<span type="text" style="margin-left:10px;font-size:14px;cursor: pointer;color:#3da8f0" v-if="item.reviewResult==3" @click="jumpRouter(item.teacherId)">填写信息</span> <span type="text" style="margin-left:10px;font-size:14px;cursor: pointer;color:#3da8f0" v-if="item.reviewResult==3">填写信息</span>
<span type="text" style="margin-left:10px;font-size:14px;cursor: pointer;color:#3da8f0" v-if="item.reviewResult==2" @click="getView(item)">查看</span> <span type="text" style="margin-left:10px;font-size:14px;cursor: pointer;color:#3da8f0" v-if="item.reviewResult==2">查看</span>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -1,8 +1,10 @@
<script> <script>
import {addTeacher, getCertificationProcess, getProgress, getTeacherInfo} from "@/api/modules/lecturer"; import {addTeacher, getCertificationProcess, getProgress, getTeacherInfo} from "@/api/modules/lecturer";
import processStatus from "@/components/processStatus.vue";
export default { export default {
name: "OnlineLearning", name: "OnlineLearning",
components: {processStatus},
data(){ data(){
return{ return{
teacherId:'', teacherId:'',
@@ -17,7 +19,7 @@ export default {
statusInfo:'' statusInfo:''
} }
}, },
mounted() { created() {
//读取路由参数 //读取路由参数
this.teacherId=this.$route.query.teacherId this.teacherId=this.$route.query.teacherId
//获取教师基本信息 //获取教师基本信息
@@ -59,9 +61,7 @@ export default {
}) })
}) })
}, },
format(percentage) {
return percentage === 100 ? '满' : `${percentage}%`;
},
getJump(){ getJump(){
this.$router.push({ this.$router.push({
path:'/need/coaching', path:'/need/coaching',
@@ -75,43 +75,47 @@ export default {
<template> <template>
<div> <div>
<process-status :teacherId="teacherId"></process-status>
<div class="title">基本信息</div> <div class="title">基本信息</div>
<el-container> <el-container>
<div class="form-table"> <div class="form-table">
<el-form label-width="140px"> <el-form>
<div> <div>
<el-col :span="10"> <el-col :span="11">
<el-form-item label="姓名:"> <el-form-item label="姓名:">
{{form.teacherName}} {{form.teacherName}}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="4"> <el-col :span="11" :offset="2">
<el-form-item label="工号:"> <el-form-item label="工号:">
{{form.teacherNo}} {{form.teacherNo}}
</el-form-item> </el-form-item>
</el-col> </el-col>
</div> </div>
<el-form-item label="组织:">
{{form.orgName}}
</el-form-item>
<div> <div>
<el-col :span="10"> <el-col :span="11">
<el-form-item label="组织:">
{{form.orgName}}
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
<el-form-item label="岗位:"> <el-form-item label="岗位:">
{{form.positionName}} {{form.positionName}}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="4"> </div>
<el-form-item label="职级:"> <div>
{{form.bandCode}} <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-form-item>
</el-col> </el-col>
</div> </div>
<el-form-item label="认证课程名称:" prop="courseName">
{{form.courseName}}
</el-form-item>
<el-form-item label="课程内容分类:" prop="courseContent">
{{form.courseContent}}
</el-form-item>
<el-form-item label="课程简介:" prop="courseIntroduction"> <el-form-item label="课程简介:" prop="courseIntroduction">
{{form.courseIntroduction}} {{form.courseIntroduction}}
</el-form-item> </el-form-item>
@@ -123,13 +127,13 @@ export default {
</el-container> </el-container>
<div class="title" style="margin-top: 20px">线上课程</div> <div class="title" style="margin-top: 20px">线上课程</div>
<div class="progress"> <div class="progress">
<div v-for="(item,index) in progressData" :key="item"> <div v-for="(item,index) in progressData" :key="index">
<div class="uc-course-img" style="width: 212px;height:119px"> <div class="uc-course-img" style="width: 212px;height:119px">
<img :src="item.courseImage"> <img :src="item.courseImage">
</div> </div>
<div class="courseName">{{item.courseName}}</div> <div class="courseName">{{item.courseName}}</div>
<div class="smallTitle">当前进度</div> <div class="smallTitle">当前进度</div>
<el-progress :percentage="item.progress" :format="format"></el-progress> <el-progress :percentage="parseInt(item.progress)"></el-progress>
</div> </div>
</div> </div>
<div class="tip"> <div class="tip">
@@ -143,21 +147,21 @@ export default {
.title{ .title{
font-size: 16px; font-size: 16px;
font-weight: 800; font-weight: 800;
width: 850px; border-bottom: 1px solid rgba(153, 153, 153, 0.2);
border-bottom: 1px solid rgba(215, 215, 215, 0.66);
padding: 2px 2px 20px 2px; padding: 2px 2px 20px 2px;
} }
.form-table{ .form-table{
width: 850px; width: 100%;
margin-top: 20px; margin-top: 20px;
} }
.progress{ .progress{
display: flex; display: flex;
align-items: center; align-items: center;
margin-top: 20px;
} }
.progress>div{ .progress>div{
max-width: 250px; width: 300px;
margin-right: 20px; margin-right: 30px;
} }
.courseName{ .courseName{
font-weight: 650; font-weight: 650;
@@ -181,4 +185,10 @@ export default {
font-size: 14px; font-size: 14px;
margin-top: 20px; 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);
}
</style> </style>