讲师认证

This commit is contained in:
zhangsir
2024-05-16 17:47:15 +08:00
parent 979c7e6a33
commit 0bce613fda
4 changed files with 71 additions and 54 deletions

View File

@@ -104,13 +104,13 @@
</div> </div>
</div> </div>
<div <div
v-if="showBottomBar" v-if="successNum && errfile "
:class="downloadErrUrl == '' ? 'succebox' : 'defeatbox'" :class="downloadErrUrl == '' ? 'succebox' : 'defeatbox'"
> >
<div class="lefimg"></div> <div class="lefimg"></div>
<div class="tacl"> <div class="tacl">
{{ succNum }}条数据导入成功{{ {{ successNum }}条数据导入成功{{
downloadErrUrl == "" ? 0 : errNum errfile
}}条数据导入失败 }}条数据导入失败
</div> </div>
</div> </div>
@@ -180,13 +180,14 @@
</template> </template>
<script> <script>
import { computed, reactive, toRefs } from "vue"; import { computed, reactive, toRefs,ref} from "vue";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import * as api from "../../api/index1"; import * as api from "../../api/index1";
import { BATCH_IMPORT_SCORE } from "@/api/config"; import { BATCH_IMPORT_SCORE } from "@/api/config";
import { useStore } from "vuex"; import { useStore } from "vuex";
import {getCookieForName} from "@/api/method"; import {getCookieForName} from "@/api/method";
import { saveTeacher } from "@/api/examineApi"; import { saveTeacher } from "@/api/examineApi";
import {errorExport} from '@/api/examineApi.js'
export default { export default {
name: "ImpStu", name: "ImpStu",
props: { props: {
@@ -225,15 +226,18 @@ export default {
}); });
const headers = { token: getCookieForName("token") }; const headers = { token: getCookieForName("token") };
const userInfo = computed(() => store.state.userInfo); const userInfo = computed(() => store.state.userInfo);
const CountingBar =ref(null)
const successNum =ref(null)
const errfile = ref(null)
const closeDrawer = () => { const closeDrawer = () => {
saveTeacher({ saveTeacher({
examineId:props.courseId, examineId:props.courseId,
teacherIds:state.successIds teacherIds:state.successIds
}).then(res=>{ }).then(res=>{
console.log(res,'res')
if(res.code == 200){ if(res.code == 200){
ctx.emit("AddImpStuvisibleClose", state.isAddStudent); ctx.emit("AddImpStuvisibleClose", state.isAddStudent);
} }
}) })
state.successIds = [] state.successIds = []
@@ -251,12 +255,15 @@ export default {
// 通知父组件重新获取学员列表 // 通知父组件重新获取学员列表
// ctx.emit("AddImpStuvisibleClose", state.isAddStudent); // ctx.emit("AddImpStuvisibleClose", state.isAddStudent);
state.isAddStudent = false; state.isAddStudent = false;
errfile.value= null
successNum.value = null
}; };
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
console.log("state", bool); console.log("state", bool);
console.log("store", store.state.userInfo); console.log("store", store.state.userInfo);
}; };
//上传文件 //上传文件
const handleChange = (info) => { const handleChange = (info) => {
console.log("info", info); console.log("info", info);
@@ -275,13 +282,18 @@ export default {
// state.addLoading = true; // state.addLoading = true;
state.uploadErr = false; state.uploadErr = false;
state.uploadpercent = parseInt(info.file.percent); state.uploadpercent = parseInt(info.file.percent);
console.log("我是文件上传的进度---------->", info.file.percent); console.log("我是文件上传的进度---------->", info.file.percent);
const status = info.file.status; const status = info.file.status;
if (status !== "uploading") { if (status !== "uploading") {
console.log(info.file, info.fileList); console.log(info.file, info.fileList);
} }
if (status === "done") { if (status === "done") {
console.log("上传成功返回的UUID", info.file.response.data); console.log("上传成---功返回的UUID", info.file.response.data);
CountingBar.value = info.file.response.data
errfile.value = CountingBar.value.fail
successNum.value = CountingBar.value.success
console.log(CountingBar.value.fail,'sssssssssssssssssssss'); //success
console.log("上传成功返回的UUID----->", info); console.log("上传成功返回的UUID----->", info);
console.log("我是导入学员接口传递的参数", { console.log("我是导入学员接口传递的参数", {
file: info.file.originFileObj, file: info.file.originFileObj,
@@ -359,6 +371,8 @@ export default {
BATCH_IMPORT_SCORE, BATCH_IMPORT_SCORE,
downloadEeeorData, downloadEeeorData,
removeUpload, removeUpload,
successNum,
errfile
}; };
}, },
}; };

View File

@@ -298,6 +298,7 @@ const deleteExamine = async(id)=>{
await delExamine({ await delExamine({
id id
}) })
message.success('删除成功')
getlist() getlist()
@@ -396,7 +397,7 @@ function handleOper(record, type, status = "") {
:closable="false" :closable="false"
placement="right" placement="right"
width="726px"> width="70%">
<div class="header"> <div class="header">
<div class="headerTitle">线上学习课程设置</div> <div class="headerTitle">线上学习课程设置</div>
<img <img
@@ -419,11 +420,11 @@ function handleOper(record, type, status = "") {
:row-selection="rowSelection" :row-selection="rowSelection"
:pagination="false" :pagination="false"
:row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped' : null)"
:columns="ViewReviewcolumns" :columns="ViewReviewcolumns"
:data-source="ViewReviewdata" :data-source="ViewReviewdata"
class="ant-table-striped"
size="middle"
> >
<template #action="{ record, column }"> <template #action="{ record, column }">
<a-space> <a-space>
@@ -651,7 +652,7 @@ function handleOper(record, type, status = "") {
} }
.filter { .filter {
margin-left: 40px; margin-left: 40px;
margin-right: 62px; margin-right: 40px;
margin-top: 28px; margin-top: 28px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@@ -667,38 +668,13 @@ function handleOper(record, type, status = "") {
} }
.table { .table {
margin-left: 40px; margin-left: 40px;
margin-right: 62px; margin-right: 40px;
margin-top: 28px; margin-top: 28px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
:deep(.ant-table-container table > thead > tr:first-child th:first-child) {
width: 83px;
}
:deep(.ant-table-container table > thead > tr:first-child th:last-child) {
width: 199px;
text-align: center;
}
:deep(.ant-table-container table > thead > tr:first-child th:last-child) {
width: 199px;
}
:deep(.ant-table-container table > thead > tr:first-child th:nth-last-child(2)) {
width: 143px;
}
:deep(.ant-table-container table > thead > tr:first-child th:nth-last-child(3)) {
width: 113px;
}
:deep(.ant-table-container table > thead > tr:first-child th:nth-last-child(4)) {
width: 326px;
}
:deep(.ant-table-tbody > tr > td ){ :deep(.ant-table-tbody > tr > td ){

View File

@@ -110,7 +110,7 @@ const startReviewSave = async () => {
editreview({ editreview({
"reviewId": editId.value, "reviewId": editId.value,
"reviewName": formState.reviewname, "reviewName": formState.reviewname,
"reviewTime": formState.value, "reviewTime": formState.time,
"teacherIds": teacherid.value "teacherIds": teacherid.value
}).then(res => { }).then(res => {
if (res) { if (res) {
@@ -288,14 +288,25 @@ const onChange3 = (pageNo) => {
} }
//结束评审 //结束评审
const qrshow = ref(null) const qrshow = ref(null)
const finishreview = async () => { const finishreview = async () => {
console.log(vwtext.value, 'shcsuchsuchu次就是'); dialog({
content: "是否结束评审?",
ok: () => {
closereview()
}
});
}
const closereview = async () => {
const res = await endreview({ const res = await endreview({
"reviewId": vwtext.value "reviewId": vwtext.value
}) })
console.log(res, 99999); console.log(res, 99999);
qrshow.value = res.data.show qrshow.value = res.data.show
ViewReviewShow.value = false ViewReviewShow.value = false
getReviewList() getReviewList()
} }
@@ -342,7 +353,11 @@ const remould = () => {
} }
} }
} }
const getreviewdetail = async (object) => { //评审按钮显示
const ButtunReviewShow = ref(false)
const getreviewdetail = async (object,examineResult) => {
ButtunReviewShow.value = examineResult
ViewReviewShow.value = true ViewReviewShow.value = true
const res = await reviewdetail(object) const res = await reviewdetail(object)
console.log(res, 'cscs成熟市场'); console.log(res, 'cscs成熟市场');
@@ -760,7 +775,9 @@ const show= async (record)=>{
{name:{0:'线上学习已完成',1:'线上学习未完成',2:'线上学习已退回'},status:processData?.value.onlineLearning,images:{0:'su2.png',1:'s2.png',2:''}}, {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.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:'终稿已退回'},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',}}, {
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'){ if(processData.value.secondResult == '0'){
processData.value.draftStatus = 0 processData.value.draftStatus = 0
@@ -843,9 +860,9 @@ const vwtext = ref(null)
<template> <template>
<div style="width: 100%;"> <div style="width: 100%;">
<div class="page-top"> <div class="page-top">
<div> <div style="margin-top: -16px">
<p>认证项目名称{{ route.query.time }}</p> <p>认证项目名称{{ route.query.time }}</p>
<p>具体说明{{ route.query.description }}</p> <p style="width:80%;line-height: 35px;height: 40px;" v-if="route.query.description">具体说明{{ route.query.description }}</p>
</div> </div>
<div @click="$router.push({ path: '/InstructorCertification' })" style="cursor: pointer;"> <div @click="$router.push({ path: '/InstructorCertification' })" style="cursor: pointer;">
@@ -1112,7 +1129,7 @@ const vwtext = ref(null)
<div> <div>
<a style="margin-right: 7px;" <a style="margin-right: 7px;"
@click='getreviewdetail({ reviewId: record.id, examineId: route.query.id }), vwtext = record.id'>查看</a> @click='getreviewdetail({ reviewId: record.id, examineId: route.query.id},record.examineResult), vwtext = record.id'>查看</a>
<a @click="editReviewSave(record.reviewName, record.reviewTime, record.id)" <a @click="editReviewSave(record.reviewName, record.reviewTime, record.id)"
style="margin-right: 7px;"> style="margin-right: 7px;">
@@ -1134,7 +1151,7 @@ const vwtext = ref(null)
<!-- 查看评审 --> <!-- 查看评审 -->
<a-drawer v-model:visible="ViewReviewShow" class="custom-class" :closable="false" placement="right" <a-drawer v-model:visible="ViewReviewShow" class="custom-class" :closable="false" placement="right"
width="726px"> width="726px">
<div class="header"> <div class="header" style="margin-bottom: 20px;">
<div class="headerTitle">查看评审</div> <div class="headerTitle">查看评审</div>
<img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png" <img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png"
@click="ViewReviewShow = false" /> @click="ViewReviewShow = false" />
@@ -1153,20 +1170,24 @@ const vwtext = ref(null)
</span> </span>
</template> </template>
<template v-else-if="column.key === '认证结果'"> <template v-else-if="column.key === '认证结果'">
<span> <!-- <span>
{{ text === 0 ? '通过' : (text === 1 ? '未通过' : (text === 2 ? '进行中' : '已报名')) }} {{ text === 0 ? '通过' : (text === 1 ? '未通过' : (text === 2 ? '进行中' : '已报名')) }}
</span> -->
<span>
{{ text === 0 ? '通过' : (text === 1 ? '未通过' : (null)) }}
</span> </span>
</template> </template>
<template v-else-if="column.key === '平均分'"> <template v-else-if="column.key === '平均分'">
<span :style="{ color: text >= 80 ? '#44e778' : (text < 80 ? '#f5222d' : '#3da8f0') }"> <span :style="{ color: text >= 80 ? '#44e778' : (text < 80 ? '#f5222d' : '#3da8f0') }">
{{ text >= 80 ? '已通过' : (text < 80 ? '未通过' : text) }} <!-- {{ text >= 80 ? '已通过' : (text < 80 ? '未通过' : text) }} -->
{{text}}
</span> </span>
</template> </template>
</template> </template>
</a-table> </a-table>
</div> </div>
<div style="align-self: center;"> <div v-if="ButtunReviewShow===0" style="align-self: center;">
<div @click="finishreview()" <div @click="finishreview()"
style=" border-radius: 8px; color: #fff;font-weight: 900;font-size: 16px; display: flex; justify-content: center;align-items: center; width: 176px; height: 55px; margin-top: 36px;background: #3da8f0;"> style=" border-radius: 8px; color: #fff;font-weight: 900;font-size: 16px; display: flex; justify-content: center;align-items: center; width: 176px; height: 55px; margin-top: 36px;background: #3da8f0;">
结束评审并通知结果</div> 结束评审并通知结果</div>
@@ -1266,8 +1287,8 @@ const vwtext = ref(null)
<!-- 查看讲师 --> <!-- 查看讲师 -->
<a-drawer v-model:visible="showViewInstructor" class="custom-class" :closable="false" placement="right" <a-drawer v-model:visible="showViewInstructor" class="custom-class" :closable="false" placement="right"
width="1248px" @after-visible-change="afterVisible"> width="1248px" @after-visible-change="afterVisible">
<div class="drawerMain"> <div class="drawerMain" >
<div class="header"> <div class="header" style="margin-bottom: 20px;">
<div class="headerTitle">查看讲师</div> <div class="headerTitle">查看讲师</div>
<img <img
@click="showViewInstructor = false" @click="showViewInstructor = false"
@@ -1303,7 +1324,7 @@ const vwtext = ref(null)
</div> </div>
<div style="display:flex;"> <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="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 class="courseIntroduction" style="">{{techerDetail?.courseIntroduction}}</div>
</div> </div>
@@ -1577,4 +1598,10 @@ const vwtext = ref(null)
margin-right: 85px; margin-right: 85px;
} }
} }
.courseIntroduction{
width: 559px;height: 56px;line-height: 56px;border: 1px solid #F0F6FC;padding-left:16px; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;
}
.courseIntroduction:hover{
overflow: visible;
}
</style> </style>

View File

@@ -195,8 +195,8 @@ import { message } from "ant-design-vue";
const columns = ref([ const columns = ref([
{ {
title: "姓名", title: "姓名",
dataIndex: "createName", dataIndex: "name",
key: "createName", key: "name",
width: 30, width: 30,
align: "center", align: "center",
ellipsis: true, ellipsis: true,