mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-06 17:36:44 +08:00
讲师认证管理认证
This commit is contained in:
BIN
src/assets/images/gratefulteacher/e2.png
Normal file
BIN
src/assets/images/gratefulteacher/e2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
BIN
src/assets/images/gratefulteacher/e3.png
Normal file
BIN
src/assets/images/gratefulteacher/e3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 8.0 KiB |
BIN
src/assets/images/gratefulteacher/success.png
Normal file
BIN
src/assets/images/gratefulteacher/success.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
@@ -98,10 +98,12 @@ const createParam = ref({
|
||||
name: '',
|
||||
description: '',
|
||||
cover: '',
|
||||
index:''
|
||||
})
|
||||
const imgClick = (url) => {
|
||||
const imgClick = (item) => {
|
||||
console.log(url,'url')
|
||||
createParam.value.cover = url
|
||||
createParam.value.cover = item.url
|
||||
createParam.value.index = item.id
|
||||
}
|
||||
//创建认证确定
|
||||
const handleOk = async () => {
|
||||
@@ -478,7 +480,7 @@ function handleOper(record, type, status = "") {
|
||||
<img style="width: 127px; height: 70px;margin-bottom: 13px;" src="../../assets/33.png" alt="">
|
||||
<img style="width: 127px; height: 70px;margin-bottom: 13px;margin-left: 15px" src="../../assets/47.png" alt="">
|
||||
<img style="width: 127px; height: 70px;margin-bottom: 13px;margin-left: 15px" src="../../assets/49.png" alt=""> -->
|
||||
<div class="img_box_item" @click="imgClick(item.img)" v-for="(item,index) in imgData" :key="index">
|
||||
<div class="img_box_item" :style="createParam?.index==item.id?{border:'1px solid #4ea6ff'}:{}" @click="imgClick(item)" v-for="(item,index) in imgData" :key="index">
|
||||
<img style="width: 127px; height: 70px;" :src="require(`../../assets/${item.img}`)" alt="">
|
||||
</div>
|
||||
</a-form-item>
|
||||
|
||||
@@ -302,20 +302,26 @@ const getReviewList = async () => {
|
||||
|
||||
//查看评审
|
||||
const ViewReList = ref()
|
||||
const arrayLists = ref([])
|
||||
const remould = () => {
|
||||
|
||||
console.log(2222);
|
||||
console.log(ViewReList.value)
|
||||
let newData = ViewReList.value["认证结果"].map((res, index) => ({
|
||||
"认证结果": res,
|
||||
"姓名": ViewReList.value["姓名"][index],
|
||||
// "评委-黄盛发10867418": ViewReList.value["评委-黄盛发10867418"][index],
|
||||
"工号": ViewReList.value["工号"][index],
|
||||
"平均分": ViewReList.value["平均分"][index]
|
||||
}));
|
||||
console.log(99999999);
|
||||
ViewReviewdata.value = newData
|
||||
console.log(newData, '基础上九四');
|
||||
let keys = Object.keys(ViewReList.value);
|
||||
arrayLists.value = keys.filter(key => Array.isArray(ViewReList.value[key]));
|
||||
arrayLists.value.forEach(arrayKey => {
|
||||
if (!ViewReviewcolumns.some(column => column.key === arrayKey)) {
|
||||
ViewReviewcolumns.push({
|
||||
title: arrayKey,
|
||||
key: arrayKey,
|
||||
dataIndex: arrayKey,
|
||||
});
|
||||
}
|
||||
});
|
||||
ViewReviewdata.value = arrayLists.value.map((key, index) => {
|
||||
return Object.fromEntries([key, ViewReList.value[key][index]]);
|
||||
});
|
||||
console.log(ViewReviewdata.value, '基础上九四');
|
||||
}
|
||||
const getreviewdetail = async (object) => {
|
||||
ViewReviewShow.value = true
|
||||
@@ -692,6 +698,8 @@ const showViewInstructor =ref(false)
|
||||
const techerDetail = ref(null)
|
||||
const processData = ref()
|
||||
const attestation = ref([])
|
||||
const scoreTwo = ref()
|
||||
const scoreOne = ref()
|
||||
const show= async (record)=>{
|
||||
showViewInstructor.value=true
|
||||
await getDataById({teacherId:record.teacherId}).then(res=>{
|
||||
@@ -699,44 +707,48 @@ const show= async (record)=>{
|
||||
if(res.code == 200){
|
||||
console.log(res.data,'data')
|
||||
techerDetail.value = res.data
|
||||
if(techerDetail.value.firstList){
|
||||
const totalScore = techerDetail.value.firstList.reduce((acc, item) => acc + item.score, 0);
|
||||
// 计算平均分
|
||||
const averageScore = totalScore / techerDetail.value.firstList.length;
|
||||
scoreOne.value = averageScore.toFixed(2)
|
||||
}
|
||||
if(techerDetail.value.secondList){
|
||||
const totalScore = techerDetail.value.secondList.reduce((acc, item) => acc + item.score, 0);
|
||||
// 计算平均分
|
||||
const averageScore = totalScore / techerDetail.value.secondList.length;
|
||||
scoreTwo.value = averageScore.toFixed(2)
|
||||
}
|
||||
}
|
||||
})
|
||||
await getCertificationProcess({teacherId:record.teacherId}).then(res=>{
|
||||
console.log(res,'getCertificationProcess')
|
||||
processData.value = res.data
|
||||
//认证流程
|
||||
attestation.value =[
|
||||
//0: 已上传 1: 未上传 2:已退回
|
||||
{name:{0:'初稿已上传',1:'初稿未上传',2:'初稿已退回'},status:processData?.value.draftStatus,images:{
|
||||
0:'su3.png',
|
||||
1:'su3.png',
|
||||
2:''
|
||||
}},
|
||||
{name:{0:'线上学习已完成',1:'线上学习未完成',2:'线上学习已退回'},status:processData?.value.onlineLearning,images:{
|
||||
0:'su4.png',
|
||||
1:'s1.png',
|
||||
2:''
|
||||
}},
|
||||
{name:{0:'线下辅导已完成',1:'线上辅导未完成',2:'线上辅导已退回'},status:processData?.value.offlineTutoring,images:{
|
||||
0:'su5.png',
|
||||
1:'s2.png',
|
||||
2:''
|
||||
}},
|
||||
{name:{0:'终稿已上传',1:'终稿未上传',2:'终稿已退回'},status:processData?.value.endStatus,images:{
|
||||
0:'su1.png',
|
||||
1:'s3.png',
|
||||
2:''
|
||||
}},
|
||||
{name:{0:'认证已通过',1:'认证未通过',2:'认证进行中',3:'认证已报名'},status:processData?.value.reviewResult,images:{
|
||||
0:'su2.png',
|
||||
1:'s4.png',
|
||||
2:'e1.png',
|
||||
3:'e1.png',
|
||||
}},
|
||||
// {name:'线下辅导已完成',success:'su5.png',error:'',initial:'s2.png'},
|
||||
// {name:'终稿已上传',success:'su1.png',error:'',initial:'s3.png'},
|
||||
// {name:'认证',success:'su2.png',error:'e1.png',initial:'s4.png'},
|
||||
{name:{0:'初稿已上传',1:'初稿未上传',2:'初稿已退回'},status:processData?.value.draftStatus,images:{0:'su1.png',1:'s1.png',2:'e2.png'}},
|
||||
{name:{0:'线上学习已完成',1:'线上学习未完成',2:'线上学习已退回'},status:processData?.value.onlineLearning,images:{0:'su2.png',1:'s2.png',2:''}},
|
||||
{name:{0:'线下辅导已完成',1:'线上辅导未完成',2:'线上辅导已退回'},status:processData?.value.offlineTutoring,images:{0:'su3.png',1:'s3.png',2:''}},
|
||||
{name:{0:'终稿已上传',1:'终稿未上传',2:'终稿已退回'},status:processData?.value.endStatus,images:{0:'su4.png',1:'s4.png',2:'e3.png'}},
|
||||
{name:{0:'认证已通过',1:'认证未通过',2:'认证进行中',3:'认证已报名'},status:processData?.value.reviewResult,images:{0:'su5.png',2:'su5.png',1:'e1.png',3:'success.png',}},
|
||||
]
|
||||
if(processData.value.secondResult == '0'){
|
||||
processData.value.draftStatus = 0
|
||||
processData.value.onlineLearning = 0
|
||||
processData.value.offlineTutoringOne = 0
|
||||
processData.value.endStatusOne = 0
|
||||
processData.value.reviewResultOne = 1
|
||||
attestation.value = [
|
||||
{name:{0:'初稿已上传',1:'初稿未上传',2:'初稿已退回'},status:processData?.value.draftStatus,images:{0:'su1.png',1:'s1.png',2:'e2.png'}},
|
||||
{name:{0:'线上学习已完成',1:'线上学习未完成',2:'线上学习已退回'},status:processData?.value.onlineLearning,images:{0:'su2.png',1:'s2.png',2:''}},
|
||||
{name:{0:'线下辅导已完成',1:'线上辅导未完成',2:'线上辅导已退回'},status:processData?.value.offlineTutoringOne,images:{0:'su3.png',1:'s3.png',2:''}},
|
||||
{name:{0:'终稿已上传',1:'终稿未上传',2:'终稿已退回'},status:processData?.value.endStatusOne,images:{0:'su4.png',1:'s4.png',2:'e3.png'}},
|
||||
{name:{0:'认证已通过',1:'认证未通过',2:'认证进行中',3:'认证已报名'},status:processData?.value.reviewResultOne,images:{0:'su5.png',2:'su5.png',1:'e1.png',3:'success.png',}},
|
||||
{name:{0:'线下辅导已完成',1:'线下辅导未通过',2:'线下辅导已退回'},status:processData?.value.offlineTutoring,images:{0:'su3.png',1:'s3.png',2:''}},
|
||||
{name:{0:'终稿已上传',1:'终稿未上传',2:'终稿已退回'},status:processData?.value.endStatus,images:{0:'su4.png',1:'s4.png',2:'e3.png'}},
|
||||
{name:{0:'认证已通过',1:'认证未通过',2:'认证进行中',3:'认证已报名'},status:processData?.value.reviewResult,images:{0:'su5.png',2:'su5.png',1:'e1.png',3:'success.png',}},
|
||||
]
|
||||
}
|
||||
console.log(attestation.value,'value')
|
||||
})
|
||||
}
|
||||
@@ -979,13 +991,13 @@ const vwtext = ref(null)
|
||||
<template v-else-if="column.key === 'action'">
|
||||
<span style="text-align: center;">
|
||||
|
||||
<a style="margin-right: 7px;">
|
||||
<a style="margin-right: 7px;" @click="show(record)">
|
||||
查看
|
||||
</a>
|
||||
<a v-if="record.draftStatus == 0" style="margin-right: 7px;" @click="returnPageTwo(record)">
|
||||
退回终稿
|
||||
</a>
|
||||
<a style="color: #de2139">删除</a>
|
||||
<a style="color: #de2139" @click="handleOper(record, 'del')">删除</a>
|
||||
</span>
|
||||
</template>
|
||||
</template>
|
||||
@@ -1253,9 +1265,9 @@ const vwtext = ref(null)
|
||||
<div style="display:flex;">
|
||||
<div style="padding-left:16px; width: 136px;height: 56px;background: #FFFFFF;border: 1px solid #F0F6FC;line-height: 56px;">课程终稿</div>
|
||||
<div style="width: 559px;height: 56px;line-height: 56px;border: 1px solid #F0F6FC;padding-left:16px;">
|
||||
<img src="" alt="">
|
||||
<img src="../../assets/images/gratefulteacher/ppt.png" alt="">
|
||||
学习能力提升课件.pptx
|
||||
<span style="" @click="downLoadCoures(techerDetail?.coursewareId)">下载</span>
|
||||
<span style="color:#3da8f0" @click="downLoadCoures(techerDetail?.coursewareId)">下载</span>
|
||||
</div>
|
||||
<div style="width: 136px;height: 56px;line-height: 56px;background: #FFFFFF;border: 1px solid #F0F6FC;padding-left:16px;">上传时间</div>
|
||||
<div style="width: 342px;height: 56px;line-height: 56px;border: 1px solid #F0F6FC;padding-left:16px;">{{techerDetail?.uploadTime}}</div>
|
||||
@@ -1270,59 +1282,33 @@ const vwtext = ref(null)
|
||||
<div class="step_box" v-for="(item,index) in attestation" :key="index">
|
||||
<div v-if="index != 0" style="height: 1px;width: 81px;background-color: #DEDEDE;"></div>
|
||||
<div style="display: flex;width: 70px;height: 78px;flex-direction: column;align-items: center">
|
||||
<img :src="require(`../../assets/images/gratefulteacher/${item.images[item.status]}`)" alt="">
|
||||
<img style="width: 46px;height: 46px;" :src="require(`../../assets/images/gratefulteacher/${item.images[item.status]}`)" alt="">
|
||||
<div style="color: #409EFF;font-size: 14px;">{{item.name[item.status]}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div style="display: flex;width: 70px;height: 78px;flex-direction: column;align-items: center">
|
||||
<img src="../../assets/8.png" alt="">
|
||||
<div style="color: #409EFF;font-size: 14px;">初稿已上传</div>
|
||||
</div>
|
||||
<div style="height: 1px;width: 81px;background-color: #DEDEDE;"></div>
|
||||
<div style="display: flex;width: 70px;height: 78px;flex-direction: column;align-items: center">
|
||||
<img src="../../assets/8.png" alt="">
|
||||
<div style="color: #409EFF;font-size: 14px;">初稿已上传</div>
|
||||
</div>
|
||||
<div style="height: 1px;width: 81px;background-color: #DEDEDE;"></div>
|
||||
<div style="display: flex;width: 70px;height: 78px;flex-direction: column;align-items: center">
|
||||
<img src="../../assets/8.png" alt="">
|
||||
<div style="color: #409EFF;font-size: 14px;">初稿已上传</div>
|
||||
</div>
|
||||
<div style="height: 1px;width: 81px;background-color: #DEDEDE;"></div>
|
||||
<div style="display: flex;width: 70px;height: 78px;flex-direction: column;align-items: center">
|
||||
<img src="../../assets/8.png" alt="">
|
||||
<div style="color: #409EFF;font-size: 14px;">初稿已上传</div>
|
||||
</div>
|
||||
<div style="height: 1px;width: 81px;background-color: #DEDEDE;"></div>
|
||||
<div style="display: flex;width: 70px;height: 78px;flex-direction: column;align-items: center">
|
||||
<img src="../../assets/8.png" alt="">
|
||||
<div style="color: #409EFF;font-size: 14px;">初稿已上传</div>
|
||||
</div>
|
||||
<div style="height: 1px;width: 81px;background-color: #DEDEDE;"></div>
|
||||
<div style="display: flex;width: 70px;height: 78px;flex-direction: column;align-items: center">
|
||||
<img src="../../assets/8.png" alt="">
|
||||
<div style="color: #409EFF;font-size: 14px;">初稿已上传</div>
|
||||
</div>
|
||||
<div style="height: 1px;width: 81px;background-color: #DEDEDE;"></div>
|
||||
|
||||
<div style="display: flex;width: 70px;height: 78px;flex-direction: column;align-items: center">
|
||||
<img src="../../assets/8.png" alt="">
|
||||
<div style="color: #409EFF;font-size: 14px;">初稿已上传</div>
|
||||
</div> -->
|
||||
|
||||
</div>
|
||||
<div style="font-size: 14px;margin-bottom: 15px;">评委打分信息表:</div>
|
||||
<div>
|
||||
<a-table :columns="twiceolumnsOne" :data-source="techerDetail?.firstList" :scroll="{ x: 1000 }" :pagination="false">
|
||||
|
||||
</a-table>
|
||||
<template #footer="{ record }">
|
||||
<div v-if="techerDetail?.firstList" class="footer_table">
|
||||
<div class="footer_left">平均分</div>
|
||||
<div class="footer_right">{{ scoreOne }}</div>
|
||||
</div>
|
||||
</template>
|
||||
</a-table>
|
||||
</div>
|
||||
<div style="font-size: 14px;margin-bottom: 19px;margin-top: 40px;font-size: 18px;font-weight: 500;">二次认证</div>
|
||||
<div style="font-size: 14px;margin-bottom: 15px;">评委打分信息表:</div>
|
||||
<div>
|
||||
<a-table :columns="twiceolumnsTwo" :data-source="techerDetail?.secondList" :scroll="{ x: 1000 }" :pagination="false">
|
||||
|
||||
</a-table>
|
||||
<template #footer>
|
||||
<div v-if="techerDetail?.secondList" class="footer_table">
|
||||
<div class="footer_left">平均分</div>
|
||||
<div class="footer_right">{{scoreTwo}}</div>
|
||||
</div>
|
||||
</template>
|
||||
</a-table>
|
||||
</div>
|
||||
<div>
|
||||
|
||||
@@ -1532,4 +1518,17 @@ const vwtext = ref(null)
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
::v-deep .ant-table-footer{
|
||||
background-color: #ffffff,
|
||||
}
|
||||
.footer_table{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.footer_left{
|
||||
margin-left: 84px;
|
||||
}
|
||||
.footer_right{
|
||||
margin-right: 85px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user