mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-13 04:46:46 +08:00
讲师认证
This commit is contained in:
@@ -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
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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 ){
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user