# Conflicts:
#	src/views/gratefulteacher/LecturerManagement.vue
This commit is contained in:
zhangsir
2024-05-13 20:01:56 +08:00
18 changed files with 467 additions and 394 deletions

View File

@@ -121,4 +121,9 @@ export const deleteCourse = (data) => http.post('/activityApi/examine/deleteCour
export const addCourse = (data) => http.post('/activityApi/examine/addCourse',data)
//保存导入的教师信息
export const saveTeacher = (data) => http.post('/activityApi/teacher/saveTeacher',data)
//退回初稿或终稿
export const backDraft = (data) => http.post('/activityApi/examine/rejected',data)
//获取教师详情
export const getDataById = (data) => http.post('/activityApi/teacher/getDataById',data)
//获取认证状态
export const getCertificationProcess = (data) => http.post('/activityApi/teacher/getCertificationProcess',data)

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 834 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -96,7 +96,7 @@
</div>
<div class="cancel" style="margin-left: 15px"></div>
</div>
<div class="defeat">
<div class="defeat" v-if="errorIds.length > 0">
<div class="detext" @click="downloadEeeorData">
下载失败数据
</div>
@@ -232,6 +232,9 @@ export default {
teacherIds:state.successIds
}).then(res=>{
console.log(res,'res')
if(res.code == 200){
ctx.emit("AddImpStuvisibleClose", state.isAddStudent);
}
})
state.successIds = []
state.errorIds = []
@@ -246,7 +249,7 @@ export default {
state.downloadErrUrl = "";
ctx.emit("update:AddImpStuvisible", false);
// 通知父组件重新获取学员列表
ctx.emit("AddImpStuvisibleClose", state.isAddStudent);
// ctx.emit("AddImpStuvisibleClose", state.isAddStudent);
state.isAddStudent = false;
};
@@ -327,8 +330,8 @@ export default {
// 下载失败数据
const downloadEeeorData = () => {
if (state.downloadErrUrl !== "") {
window.open(`/activityApi/teacher/errorExport?ids=${state.errorIds}`);
if (state.errorIds.length !== 0) {
window.open(`/activityApi/teacher/errorExport?ids=${state.errorIds.join(',')}`);
}
};

View File

@@ -128,6 +128,15 @@ const OnlineLearning = async () => {
}
})
}
//创建认证
const createData = () => {
createParam.value = {
name: '',
description: '',
cover: '',
}
visible.value = true
}
//删除数据
const deleteReview = (record) =>{
dialog({
@@ -202,6 +211,7 @@ console.log(999);
}
//重置
const handleRest = ()=>{
searchValue.value = null
getlist()
}
@@ -367,7 +377,7 @@ function handleOper(record, type, status = "") {
<div class="btns" @click="centerDialogVisible=true">
<div class="btn btn3">
<div class="search"></div>
<div class="btnText" @click="visible=true">创建认证</div>
<div class="btnText" @click="createData">创建认证</div>
</div>
</div>

View File

@@ -1,10 +1,10 @@
<script setup>
import { ref, reactive, onMounted, computed } from 'vue'
<script setup >
import { ref,reactive,onMounted,computed } from 'vue'
import { message } from 'ant-design-vue';
import AddInstructor from './AddInstructor.vue'
import LeadInstructor from './LeadInstructor.vue'
import { useRoute, useRouter } from 'vue-router'
import { getTeacherList, deleTeTeacher, getReview, delreview, reviewdetail, reviewSave, endreview, addTeacher, editreview } from '@/api/examineApi.js'
import {getTeacherList,deleTeTeacher,getReview,delreview,reviewdetail,reviewSave,endreview,addTeacher,editreview,backDraft,getDataById,getCertificationProcess} from '@/api/examineApi.js'
import dialog from "@/utils/dialog";
// import QrCode from './QrCode.vue'
import ViewReview from './ViewReview.vue'
@@ -35,13 +35,13 @@ const CancelReview = ()=>{
const namelist = ref([])
//表格点击时间
const rowClick = (record) => {
return {
onClick: () => {
onClick: () => {
namelist.value.push(record.teacherName)
console.log(record);
console.log(namelist.value);
},
}
}
@@ -70,11 +70,11 @@ const startReviewSave = async () => {
}).then(res => {
console.log(res);
message.info('添加成功');
rwname.value = null
InitiateReviewShow.value = false
getReviewList()
return
}).catch(err => {
@@ -221,6 +221,17 @@ const columnsTeacher = [
dataIndex: 'reviewTime',
},
]
//认证流程
const attestation = [
{name:'初稿已上传',success:'su3.png',error:'',initial:''},
{name:'线上学习已完成',success:'su4.png',error:'',initial:'s1.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:'线下辅导已完成',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'},
]
//老师重置
const resetTeacher = () => {
addTeacherList()
@@ -352,7 +363,7 @@ const searchReview = async () => {
// return message.info('搜索内容不能为空');
// }
// console.log(reviewValue.value.trim().length);
// console.log(reviewValue.value.trim().length);
const res = await getReview({
pageNo: ReviewPageNo.value,
@@ -405,36 +416,53 @@ function handleOper(record, type, status = "") {
});
}
//搜索教师
const SearchTeachers = async () => {
const res = await getTeacherList({
PageNo: 1,
PageSize: 8,
examineId: route.query.id.toString(),
secondResult: value2.value.toString(),
reviewResult: value.value.toString(),
keyWord: value3.value.toString()
})
const SearchTeachers =async()=>{
const res = await getTeacherList({
pageNo: 1,
pageSize: 8,
examineId: route.query.id,
secondResult: value2.value,
reviewResult:value.value,
keyWord:value3.value
})
total.value = res.data.total
data.value = res.data.records
if(value2.value=='1'){
getTeacher2()
}
}
//重置教师
const handleRest = () => {
const handleRest=()=>{
value2.value = null
value.value = null
value3.value = null
getTeacher()
getTeacher2()
}
//刷新列表
const translateTeacher = (flag) => {
handleRest()
}
const translate = (flag) => {
handleRest()
}
//2次认证
const total2 = ref(null)
const data2 = ref([])
//教师列表2
const getTeacher2 = async () => {
const res = await getTeacherList({
PageNo: 1,
PageSize: 8,
examineId: route.query.id.toString(),
secondResult: '0',
})
console.log(res, 'resaaaa')
total2.value = res.data.total
data2.value = res.data.records
const getTeacher2 =async()=>{
const res = await getTeacherList({
pageNo: 1,
pageSize: 8,
examineId: route.query.id.toString(),
secondResult: '1',
reviewResult:value.value,
keyWord:value3.value
})
console.log(res,'resaaaa')
total2.value = res.data.total
data2.value = res.data.records
}
//讲师列表
const total = ref(null)
@@ -446,16 +474,16 @@ const onChangeTeacher = (pageNo, pageSize) => {
getTeacher()
};
//教师列表
const getTeacher = async () => {
const res = await getTeacherList({
PageNo: current1.value,
PageSize: 8,
examineId: route.query.id.toString(),
secondResult: "0"
})
console.log(res, 'resaaaa')
total.value = res.data.total
data.value = res.data.records
const getTeacher =async()=>{
const res = await getTeacherList({
pageNo: current1.value,
pageSize: 8,
examineId: route.query.id.toString(),
secondResult: "0"
})
console.log(res,'resaaaa')
total.value = res.data.total
data.value = res.data.records
}
// 提交
@@ -473,7 +501,7 @@ onMounted(() => {
}
getTeacher()
getReviewList()
// getTeacher2()
getTeacher2()
})
const activeName = ref('first')
const ViewReviewShow = ref(null)
@@ -571,6 +599,52 @@ const twiceolumns = [
key: 'action',
},
];
const twiceolumnsOne = [
{
title: '序号',
dataIndex: 'index',
key: 'index',
customRender: ({ text,record,index }) => index + 1
},
{
title: '评委姓名',
dataIndex: 'judgesName',
key: 'judgesName',
},
{
title: '评委工号',
dataIndex: 'judgesWorkNum',
key: 'judgesWorkNum',
},
{
title: '评分',
dataIndex: 'score',
key: 'score',
},
];
const twiceolumnsTwo = [
{
title: '序号',
dataIndex: 'index',
key: 'index',
customRender: ({ text,record,index }) => index + 1
},
{
title: '评委姓名',
dataIndex: 'judgesName',
key: 'judgesName',
},
{
title: '评委工号',
dataIndex: 'judgesWorkNum',
key: 'judgesWorkNum',
},
{
title: '评分',
dataIndex: 'score',
key: 'score',
},
]
const selectedRowKeysList = ref(null)
const rowSelection = {
onChange: async (selectedRowKeys, selectedRows) => {
@@ -593,7 +667,7 @@ const teacherRowSelection = {
// 使用Set数据结构进行数组去重
let uniqueArr = [...new Set(arr.value)];
console.log(uniqueArr); // 去重后的数组
selectedRows.forEach((item, index) => {
teacherNames.value.push(item.teacherName)
})
@@ -617,10 +691,49 @@ const delVisible = ref(false)
const activeKey = ref('1');
const showViewInstructor = ref(false)
const show = () => {
showViewInstructor.value = true
const showViewInstructor =ref(false)
const techerDetail = ref(null)
const processData = ref()
const show= async (record)=>{
showViewInstructor.value=true
await getDataById({teacherId:record.teacherId}).then(res=>{
console.log(res,'res')
if(res.code == 200){
console.log(res.data,'data')
techerDetail.value = res.data
}
})
await getCertificationProcess({teacherId:record.teacherId}).then(res=>{
console.log(res,'getCertificationProcess')
processData = res.data
})
}
const returnPage = (record) => {
console.log(record,'record')
dialog({
content: "确定退回初稿吗?",
ok:()=>{
backDraft({
teacherId:record.id,
version:0
}).then(res=>{
console.log(res,'res')
})
}
});
}
const returnPageTwo = (record) => {
dialog({
content: "确定退回初稿吗?",
ok:()=>{
backDraft({
teacherId:record.id,
version:1
}).then(res=>{
console.log(res,'res')
})
}
});
}
const InitiateReviewShow = ref(false)
//二维码显示
@@ -689,183 +802,183 @@ const vwtext = ref(null)
</a-select>
</div>
<div class="select" style="margin-left: 15px;">
<a-select v-model:value="value2" style="width: 270px; border-radius: 8px" placeholder="请选择二次认证">
<a-select-option value="1"></a-select-option>
<a-select-option value="0"></a-select-option>
</a-select>
</div>
<div style="display: flex; margin-left: 20px">
<div class="btn btn1" @click="SearchTeachers()">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
<div class="select" style="margin-left: 15px;">
<a-select v-model:value="value2" style="width: 270px; border-radius: 8px" placeholder="请选择二次认证" >
<a-select-option value="1"></a-select-option>
<a-select-option value="0"></a-select-option>
</a-select>
</div>
<div style="display: flex; margin-left: 20px">
<div class="btn btn1" @click="SearchTeachers()">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
<div class="btn btn2" style="width: 105px" @click="handleRest">
<div class="search"></div>
<div class="btnText">重置</div>
</div>
</div>
<div class="btn btn2" style="width: 105px" @click="handleRest">
<div class="search"></div>
<div class="btnText">重置</div>
</div>
<div style="display: flex; align-items: center; margin-top: 15px;margin-bottom: 15px;">
<div class="btns" style="margin-left: 15px;">
<proj-check-ship @finash="translate">
<div class="btn btn3">
<div class="search"></div>
<div class="btnText" @click="Tecvisible=true">添加讲师</div>
</div>
</proj-check-ship>
</div>
<div class="btns" style="margin-left: 15px;">
<div class="btn btn3">
<div class="search"></div>
<div class="btnText" @click="AddImpStuvisible=true">导入讲师</div>
</div>
</div>
</div>
</div>
<a-button type="primary" @click="exportExcel" style="color: #fff ;background-color: #4ea6ff; width: 100px; height: 40px; border-radius: 8px;margin-left: 15px; padding-left: 10px;">导出讲师</a-button>
<a-button type="primary" @click="batchhandleOper()" style="width: 100px; height: 40px; border-radius: 8px;margin-left: 12px; padding-left: 10px;" ghost>批量删除</a-button>
</div>
<!-- 表格 -->
<div style="display: flex; flex-direction: column;margin-left: 15px">
<div class="table">
<a-table :row-selection="rowSelection" row-key="id" :columns="columns" :data-source="data" :scroll="{ x: 1000 }" :pagination="false">
<template #headerCell="{ column }">
<template v-if="column.key === 'name'">
<span>
姓名
</span>
</template>
</template>
<div style="display: flex; align-items: center; margin-top: 15px;margin-bottom: 15px;">
<div class="btns" style="margin-left: 15px;">
<proj-check-ship>
<div class="btn btn3">
<div class="search"></div>
<div class="btnText" @click="Tecvisible = true">添加讲师</div>
</div>
</proj-check-ship>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'name'">
<a>
{{ record.name }}
</a>
</template>
<template v-else-if="column.key === 'draftStatus'">
<span>
{{ text===1?'未开始':(text===2?'进行中':'已完成') }}
</span>
</template>
<template v-else-if="column.key === 'onlineLearning'">
<span>
{{ text===1?'未开始':(text===2?'进行中':'已完成') }}
</span>
</template> <template v-else-if="column.key === 'offlineTutoring'">
<span>
{{ text===1?'未开始':(text===2?'进行中':'已完成') }}
</span>
</template> <template v-else-if="column.key === 'endStatus'">
<span>
{{ text===1?'未开始':(text===2?'进行中':'已完成') }}
</span>
</template>
<template v-else-if="column.key === 'reviewResult'">
<span>
{{ text===1?'未开始':(text===2?'进行中':'已完成') }}
</span>
</template>
<template v-else-if="column.key === 'action'">
<span style="text-align: center;">
<a style="margin-right: 7px;" @click="show(record)">
查看
</a>
<a v-if="record.draftStatus == 0" style="margin-right: 7px;" @click="returnPage(record)">
退回初稿
</a>
<a style="color: #de2139" @click="handleOper(record, 'del')">删除</a>
</span>
</template>
</template>
</a-table>
</div>
</div>
<div style="text-align: center; margin-top: 18px;">
<a-pagination :showSizeChanger="false" v-model:current="current1" show-quick-jumper :total="total" @change="onChangeTeacher" />
</div>
<div style="height: 1px; width: 100%; background-color: #eceff4; margin-top: 15px;margin-left: 14px;"></div>
<div style="margin-left: 14px; margin-top: 15px;margin-bottom: 12px;" >二次认证</div>
<div style="display: flex; flex-direction: column;margin-left: 15px">
<div class="table">
<a-table :row-selection="rowSelection" row-key="id" :columns="twiceolumns" :data-source="data2" :scroll="{ x: 1000 }" :pagination="false">
<template #headerCell="{ column }">
<template v-if="column.key === '姓名'">
<span>
姓名
</span>
</template>
</template>
</div>
<div class="btns" style="margin-left: 15px;">
<div class="btn btn3">
<div class="search"></div>
<div class="btnText" @click="AddImpStuvisible = true">导入讲师</div>
</div>
</div>
<a-button type="primary"
style="color: #fff ;background-color: #4ea6ff; width: 100px; height: 40px; border-radius: 8px;margin-left: 15px; padding-left: 10px;">导出讲师</a-button>
<a-button type="primary" @click="batchhandleOper()"
style="width: 100px; height: 40px; border-radius: 8px;margin-left: 12px; padding-left: 10px;"
ghost>批量删除</a-button>
</div>
<!-- 表格 -->
<div style="display: flex; flex-direction: column;margin-left: 15px">
<div class="table">
<a-table :row-selection="rowSelection" row-key="id" :columns="columns" :data-source="data"
:scroll="{ x: 1000 }" :pagination="false">
<template #headerCell="{ column }">
<template v-if="column.key === 'name'">
<span>
姓名
</span>
</template>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'name'">
<a>
{{ record.name }}
</a>
</template>
<template v-else-if="column.key === 'draftStatus'">
<span>
{{ text === 1 ? '未开始' : (text === 2 ? '进行中' : '已完成') }}
</span>
</template>
<template v-else-if="column.key === 'onlineLearning'">
<span>
{{ text === 1 ? '未开始' : (text === 2 ? '进行中' : '已完成') }}
</span>
</template> <template v-else-if="column.key === 'offlineTutoring'">
<span>
{{ text === 1 ? '未开始' : (text === 2 ? '进行中' : '已完成') }}
</span>
</template> <template v-else-if="column.key === 'endStatus'">
<span>
{{ text === 1 ? '未开始' : (text === 2 ? '进行中' : '已完成') }}
</span>
</template>
<template v-else-if="column.key === 'reviewResult'">
<span>
{{ text === 1 ? '未开始' : (text === 2 ? '进行中' : '已完成') }}
</span>
</template>
<template v-else-if="column.key === 'action'">
<span style="text-align: center;">
<a style="margin-right: 7px;" @click="show()">
查看
</a>
<a style="margin-right: 7px;" @click="show()">
退回初搞
</a>
<a style="color: #de2139" @click="handleOper(record, 'del')">删除</a>
</span>
</template>
</template>
</a-table>
</div>
</div>
<div style="text-align: center; margin-top: 18px;">
<a-pagination :showSizeChanger="false" v-model:current="current1" show-quick-jumper :total="total"
@change="onChangeTeacher" />
</div>
<div style="height: 1px; width: 100%; background-color: #eceff4; margin-top: 15px;margin-left: 14px;"></div>
<div style="margin-left: 14px; margin-top: 15px;margin-bottom: 12px;">二次认证</div>
<div style="display: flex; flex-direction: column;margin-left: 15px">
<div class="table">
<a-table :row-selection="rowSelection" row-key="id" :columns="twiceolumns" :data-source="data2"
:scroll="{ x: 1000 }" :pagination="false">
<template #headerCell="{ column }">
<template v-if="column.key === '姓名'">
<span>
姓名
</span>
</template>
</template>
<template #bodyCell="{ column, record, text }">
<template v-if="column.key === 'name'">
<a>
{{ record.name }}
</a>
</template>
<template v-else-if="column.key === 'draftStatus'">
<span>
{{ text === 1 ? '未开始' : (text === 2 ? '进行中' : '已完成') }}
</span>
</template>
<template v-else-if="column.key === 'onlineLearning'">
<span>
{{ text === 1 ? '未开始' : (text === 2 ? '进行中' : '已完成') }}
</span>
</template> <template v-else-if="column.key === 'offlineTutoring'">
<span>
{{ text === 1 ? '未开始' : (text === 2 ? '进行中' : '已完成') }}
</span>
</template> <template v-else-if="column.key === 'endStatus'">
<span>
{{ text === 1 ? '未开始' : (text === 2 ? '进行中' : '已完成') }}
</span>
</template>
<template v-else-if="column.key === 'reviewResult'">
<span>
{{ text === 1 ? '未开始' : (text === 2 ? '进行中' : '已完成') }}
</span>
</template>
<template v-else-if="column.key === 'action'">
<span style="text-align: center;">
<a style="margin-right: 7px;">
查看
</a>
<a style="color: #de2139">删除</a>
</span>
</template>
</template>
</a-table>
</div>
</div>
<template #bodyCell="{ column, record,text }">
<template v-if="column.key === 'name'">
<a>
{{ record.name }}
</a>
</template>
<template v-else-if="column.key === 'draftStatus'">
<span>
{{ text===1?'未开始':(text===2?'进行中':'已完成') }}
</span>
</template>
<template v-else-if="column.key === 'onlineLearning'">
<span>
{{ text===1?'未开始':(text===2?'进行中':'已完成') }}
</span>
</template> <template v-else-if="column.key === 'offlineTutoring'">
<span>
{{ text===1?'未开始':(text===2?'进行中':'已完成') }}
</span>
</template> <template v-else-if="column.key === 'endStatus'">
<span>
{{ text===1?'未开始':(text===2?'进行中':'已完成') }}
</span>
</template>
<template v-else-if="column.key === 'reviewResult'">
<span>
{{ text===1?'未开始':(text===2?'进行中':'已完成') }}
</span>
</template>
<template v-else-if="column.key === 'action'">
<span style="text-align: center;">
<a style="margin-right: 7px;">
查看
</a>
<a v-if="record.draftStatus == 0" style="margin-right: 7px;" @click="returnPageTwo(record)">
退回终稿
</a>
<a style="color: #de2139">删除</a>
</span>
</template>
</template>
</a-table>
</div>
</div>
</div>
<LeadInstructor :imprtlecturer='imprtlecturer' @CloseImprt="showImprtlecturer"></LeadInstructor>
<AddInstructor :AddSwitch="AddSwitch" @myClick="handleChildEmit"></AddInstructor>
<proj-check-ship>
<a-button class="cus-btn" style="background: #4ea6ff; color: #fff">
<template #icon><img style="margin-right: 10px"
src="../../assets/images/courseManage/add0.png" /></template>
添加学员
</a-button>
</proj-check-ship>
<!-- 导入学员抽屉 -->
<imp-stu v-model:AddImpStuvisible="AddImpStuvisible" />
</a-tab-pane>
<!-- <LeadInstructor :imprtlecturer='imprtlecturer' @CloseImprt="showImprtlecturer"></LeadInstructor>
<AddInstructor :AddSwitch="AddSwitch" @myClick="handleChildEmit"></AddInstructor>
<proj-check-ship>
<a-button class="cus-btn" style="background: #4ea6ff; color: #fff">
<template #icon
><img
style="margin-right: 10px"
src="../../assets/images/courseManage/add0.png"
/></template>
添加学员
</a-button>
</proj-check-ship> -->
<!-- 导入讲师抽屉 -->
<imp-stu @AddImpStuvisibleClose="translateTeacher" v-model:AddImpStuvisible="AddImpStuvisible" :courseId="route.query.id"/>
</a-tab-pane>
<a-tab-pane key="2" tab="发起评审" force-render>
<!-- <QrCode ></QrCode> -->
@@ -922,7 +1035,7 @@ const vwtext = ref(null)
<a v-if="record.examineResult === 0" style="margin-right: 7px;"
@click="handleMenuClick(record.reviewName, record.reviewTime.slice(0, 7), record)">二维码</a>
<div>
<a style="margin-right: 7px;"
@click='getreviewdetail({ reviewId: record.id, examineId: route.query.id }), vwtext = record.id'>查看</a>
@@ -1057,7 +1170,7 @@ const vwtext = ref(null)
<div class="ch" ></div>
</div>
</div>
</div>
</div>
@@ -1071,178 +1184,115 @@ const vwtext = ref(null)
<div class="drawerMain">
<div class="header">
<div class="headerTitle">查看讲师</div>
<img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png"
@click="closeDrawer" />
<img v-if="techerDetail?.avatar" style="width: 29px; height: 29px; cursor: pointer" :src="techerDetail?.avatar"/>
<img
v-else
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
/>
</div>
<div>
<div style="display: flex;width: 100%; height: 88px;">
<div>
<img src="../../assets/2.png" alt="">
</div>
<div style="margin-left: 18px;">
<div style="font-size: 18px;font-weight: 500;color: #333333;line-height: 25px;font-style: normal;">张三
<span style="margin-left: 8px;"> 01011098</span></div>
<div style="font-size: 14px;color: #979797;margin-top: 12px;">后台(业务支援体系)/BOEU/企划中心/数据资产部数据资产部</div>
<div style="font-size: 14px;color: #979797;">产品企划岗 Band 1</div>
</div>
<div >
<div style="display: flex;width: 100%; height: 88px;">
<div>
<img src="../../assets/2.png" alt="">
</div>
<div style="margin-left: 18px;">
<div style="font-size: 18px;font-weight: 500;color: #333333;line-height: 25px;font-style: normal;">{{techerDetail?.teacherName}} {{techerDetail?.workNo}}<span style="margin-left: 8px;"> 01011098</span></div>
<div style="font-size: 14px;color: #979797;margin-top: 12px;">{{techerDetail?.orgName}}</div>
<div style="font-size: 14px;color: #979797;">{{techerDetail?.orgPath}} {{techerDetail?.bandCode}}</div>
</div>
</div>
<div style="margin-top: 24px">
<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;">{{techerDetail?.courseName}}</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?.courseContent}}</div>
</div>
<div style="margin-top: 24px">
<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;">
关于提升学习能力
</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;">影响力
</div>
</div>
<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;">{{techerDetail?.courseIntroduction}}</div>
</div>
<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;">
这是我的认证课程关于提升学习能力的课程</div>
</div>
<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="">
学习能力提升课件.pptx
<a href="">下载</a>
</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;">
2024.04.10 20:58</div>
</div>
<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="">
学习能力提升课件.pptx
<a href="">下载</a>
</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>
</div>
</div>
<div style='font-size: 18px;font-weight: 500;margin-top: 39px;'>
认证流程
</div>
<div
style="margin-top: 13px; height: 125px;width: 100%;display: flex;align-items: center;justify-content: center;">
<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 style="height: 1px;width: 81px;background-color: #DEDEDE;"></div>
</div>
<div style='font-size: 18px;font-weight: 500;margin-top: 39px;'>
认证流程
</div>
<div style="margin-top: 13px; height: 125px;width: 100%;display: flex;align-items: center;justify-content: center;" >
<div class="step_box" v-for="item in 5">
<div v-if="item != 1" 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="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 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="twiceolumns" :data-source="data" :scroll="{ x: 1000 }" :pagination="false">
<template #headerCell="{ column }">
<template v-if="column.key === 'name'">
<span>
姓名
</span>
</template>
</template>
</div>
<div style="font-size: 14px;margin-bottom: 15px;">评委打分信息表</div>
<div>
<a-table :columns="twiceolumnsOne" :data-source="techerDetail?.firstList" :scroll="{ x: 1000 }" :pagination="false">
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'name'">
<a>
{{ record.name }}
</a>
</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">
<template v-else-if="column.key === 'tags'">
<span>
<a-tag v-for="tag in record.tags" :key="tag"
:color="tag === 'loser' ? 'volcano' : tag.length > 5 ? 'geekblue' : 'green'">
{{ tag.toUpperCase() }}
</a-tag>
</span>
</template>
<template v-else-if="column.key === 'action'">
</template>
</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="twiceolumns" :data-source="data" :scroll="{ x: 1000 }" :pagination="false">
<template #headerCell="{ column }">
<template v-if="column.key === 'name'">
<span>
姓名
</span>
</template>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'name'">
<a>
{{ record.name }}
</a>
</template>
<template v-else-if="column.key === 'tags'">
<span>
<a-tag v-for="tag in record.tags" :key="tag"
:color="tag === 'loser' ? 'volcano' : tag.length > 5 ? 'geekblue' : 'green'">
{{ tag.toUpperCase() }}
</a-tag>
</span>
</template>
<template v-else-if="column.key === 'action'">
</template>
</template>
</a-table>
</div>
<div>
</a-table>
</div>
<div>
</div>
</div>
@@ -1336,7 +1386,6 @@ const vwtext = ref(null)
:deep(.ant-table-tbody > tr > td) {
text-align: center;
}
.btn1 {
.search {
width: 15px;
@@ -1353,9 +1402,9 @@ const vwtext = ref(null)
}
}
.btn1:active {
background: #0982ff;
}
.btn1:active {
background: #0982ff;
}
.btn2:active {
background: rgba(64, 158, 255, 0.2);
@@ -1432,7 +1481,7 @@ const vwtext = ref(null)
color: rgba(56, 139, 225, 1);
font-size: 12px;
position: relative;
.ch {
position: absolute;
width: 18px;
@@ -1442,7 +1491,13 @@ const vwtext = ref(null)
top: -8px;
}
}
// :deep(.ant-form-item-label){
// text-align: left;
// }</style>
// }
.step_box{
display: flex;
justify-content: center;
align-items: center;
}
</style>

View File

@@ -651,7 +651,7 @@ const route = useRoute()
deleteDepSelect();
emit("finash", true);
message.info('添加成功');
});
// saveStu({
// targetId: props.id,