mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-07 18:06:46 +08:00
细节
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
<img :src="types[type]" alt=""/>
|
||||
</div>
|
||||
<span>提示</span>
|
||||
<div class="close_exit" @click="close"></div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<div><span>{{ content }}</span></div>
|
||||
|
||||
@@ -114,62 +114,13 @@
|
||||
}}条数据导入失败
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="loadborder">
|
||||
<div class="content">
|
||||
<div class="img"></div>
|
||||
<div class="timebox">
|
||||
<div class="timetop">
|
||||
<div class="tit">{{ fileName }}</div>
|
||||
<div class="statedefeat">上传失败</div>
|
||||
</div>
|
||||
<div class="prog">
|
||||
<div class="inprogdefeat"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="curloading">
|
||||
<div class="cur">55%</div>
|
||||
<div class="cancel" style="margin-left: 20px">重传</div>
|
||||
<div class="cancel" style="margin-left: 15px">取消</div>
|
||||
</div>
|
||||
<div class="defeat">
|
||||
<div class="detext">下载失败数据</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="defeatbox">
|
||||
<div class="lefimg"></div>
|
||||
<div class="tacl">20条数据导入成功,5条数据导入失败</div>
|
||||
</div>
|
||||
<div class="loadborder">
|
||||
<div class="content">
|
||||
<div class="img"></div>
|
||||
<div class="timebox">
|
||||
<div class="timetop">
|
||||
<div class="tit">{{ fileName }}</div>
|
||||
<div class="statesucce">上传成功</div>
|
||||
</div>
|
||||
<div class="prog">
|
||||
<div class="inprogsucce"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="curloading">
|
||||
<div class="cur">55%</div>
|
||||
<div class="cancel" style="margin-left: 20px">删除</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="succebox">
|
||||
<div class="lefimg"></div>
|
||||
<div class="tacl">20条数据导入成功,5条数据导入失败</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btnn">
|
||||
<button class="btn2" @click="closeDrawer">取消</button>
|
||||
<button class="btn2" @click="closeDrawer">确定</button>
|
||||
<button class="btn2" @click="closeDrawerTrue">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 加载动画 -->
|
||||
@@ -240,7 +191,11 @@ export default {
|
||||
state.courseList = res.data.map(item => item.courseId)
|
||||
})
|
||||
}
|
||||
const closeDrawer = () => {
|
||||
const closeDrawerTrue = () => {
|
||||
if(state.errorIds.length==0&&state.successIds.length==0){
|
||||
message.warning("请导入数据");
|
||||
return
|
||||
}
|
||||
if(state.successIds.length!=0){
|
||||
getTeacherId({ids:state.successIds.join(',')}).then(res=>{
|
||||
state.studentLists = res.data
|
||||
@@ -271,6 +226,10 @@ export default {
|
||||
|
||||
}
|
||||
})
|
||||
closeDrawer()
|
||||
}
|
||||
const closeDrawer = () => {
|
||||
|
||||
state.successIds = []
|
||||
state.errorIds = []
|
||||
// clearInterval(state.timers);
|
||||
@@ -334,36 +293,6 @@ export default {
|
||||
state.errorIds = info.file.response.data.failIds
|
||||
state.fileName = info.file.name;
|
||||
let i = 0;
|
||||
// state.timers = setInterval(() => {
|
||||
// let uid = info.file.response.data;
|
||||
// api
|
||||
// .getImportStatus(uid)
|
||||
// .then((res) => {
|
||||
// console.log("查询导入状态", res);
|
||||
// if (res.data.code === 200) {
|
||||
// if (res.data.data.status !== "START") {
|
||||
// i++;
|
||||
// if (i === 1) {
|
||||
// message.destroy();
|
||||
// message.success(`${info.file.name}上传成功`);
|
||||
// state.showBottomBar = true;
|
||||
// state.addLoading = false;
|
||||
// state.isAddStudent = true;
|
||||
// }
|
||||
// state.succNum = res.data.data.successNum;
|
||||
// state.errNum = res.data.data.failedNum;
|
||||
// state.downloadErrUrl = res.data.data.url;
|
||||
// clearInterval(state.timers);
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// .catch((err) => {
|
||||
// clearInterval(state.timers);
|
||||
// state.showBottomBar = true;
|
||||
// state.addLoading = false;
|
||||
// console.log("查询导入状态失败", err);
|
||||
// });
|
||||
// }, 500);
|
||||
} else if (status === "error") {
|
||||
state.addLoading = false;
|
||||
state.uploadErr = true;
|
||||
@@ -389,6 +318,10 @@ export default {
|
||||
state.succNum = 0;
|
||||
state.errNum = 0;
|
||||
state.downloadErrUrl = "";
|
||||
successNum.value = null
|
||||
errfile.value = null
|
||||
state.successIds = []
|
||||
state.errorIds = []
|
||||
};
|
||||
|
||||
return {
|
||||
@@ -396,6 +329,7 @@ export default {
|
||||
afterVisibleChange,
|
||||
userInfo,
|
||||
closeDrawer,
|
||||
closeDrawerTrue,
|
||||
// change,
|
||||
headers,
|
||||
handleChange,
|
||||
|
||||
@@ -49,6 +49,8 @@ const columns = [
|
||||
{
|
||||
title: '操作',
|
||||
key: 'action',
|
||||
fixed: "right",
|
||||
width: 250,
|
||||
},
|
||||
];
|
||||
const ViewReviewcolumns =[
|
||||
@@ -58,6 +60,7 @@ const ViewReviewcolumns =[
|
||||
dataIndex: 'courseName',
|
||||
key: 'id',
|
||||
ellipsis: true,
|
||||
width: 400,
|
||||
},
|
||||
{
|
||||
title: "创建人",
|
||||
@@ -65,6 +68,7 @@ const ViewReviewcolumns =[
|
||||
dataIndex: 'createName',
|
||||
key: 'id',
|
||||
align: "center",
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: "发布时间",
|
||||
@@ -73,6 +77,7 @@ const ViewReviewcolumns =[
|
||||
key: 'id',
|
||||
align: "center",
|
||||
ellipsis: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: "操作",
|
||||
@@ -81,6 +86,7 @@ const ViewReviewcolumns =[
|
||||
key: "id",
|
||||
fixed: 'right',
|
||||
align: "center",
|
||||
width: 150,
|
||||
slots: { customRender: "action" },
|
||||
},
|
||||
]
|
||||
@@ -407,7 +413,7 @@ function handleOper(record, type, status = "") {
|
||||
|
||||
:row-selection="rowSelection"
|
||||
:pagination="false"
|
||||
:scroll="{ x: 'max-content' }"
|
||||
:scroll="{ x: 1000 }"
|
||||
:columns="ViewReviewcolumns"
|
||||
:data-source="ViewReviewdata"
|
||||
|
||||
@@ -528,28 +534,21 @@ function handleOper(record, type, status = "") {
|
||||
<a-modal v-model:visible="visible" :title="editId?'编辑认证':'创建认证'" @ok="!editId?handleOk():handleEdit()" width="610px">
|
||||
<a-form class="form_item">
|
||||
|
||||
<a-form-item :rules="[{ required: true, message: 'Please input your password!' }]" label="认证项目名称" style="width: 381px;margin-left: 32px;margin-top: 24px">
|
||||
<a-input :showCount="true" :maxlength="50" v-model:value="createParam.name" placeholder="认证项目名称" style="border-radius: 8px;" />
|
||||
<a-form-item :rules="[{ required: true, message: 'Please input your password!' }]" label="认证项目名称" style="margin-left: 32px;margin-top: 24px">
|
||||
<a-input :showCount="true" :maxlength="50" v-model:value="createParam.name" placeholder="认证项目名称" style="border-radius: 8px;width: 410px;height: 36px;" />
|
||||
</a-form-item>
|
||||
<a-form-item :rules="[{ required: true, message: 'Please input your password!' }]" label="封面图" style="width: 560px;margin-left: 32px;margin-top: 24px;">
|
||||
<!-- <img style="width: 127px; height: 70px;margin-bottom: 13px;" src="../../assets/50.png" alt=""> -->
|
||||
<!-- <a-image style="width: 127px; height: 70px;margin-bottom: 13px;" src="../../assets/50.png"></a-image> -->
|
||||
<!-- <img style="width: 127px; height: 70px;margin-bottom: 13px;margin-left: 15px" src="../../assets/39.png" alt="">
|
||||
<img style="width: 127px; height: 70px;margin-bottom: 13px;margin-left: 15px" src="../../assets/46.png" alt="">
|
||||
<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=""> -->
|
||||
<a-form-item :rules="[{ required: true, message: 'Please input your password!' }]" label="封面图" style="width: 560px;margin-left: 73px;margin-top: 24px;">
|
||||
<div class="img_box_item" @click="imgClick(item)" v-for="(item,index) in imageList" :key="index">
|
||||
<img :style="createParam?.cover==item.value?{border:'3px solid rgba(78, 166, 255, 1)'}:{border:'1px solid #ccc'}" style="width: 127px; height: 70px;" :src="item.value" alt="">
|
||||
</div>
|
||||
</a-form-item>
|
||||
<a-form-item style="margin-left: 32px;margin-top: 24px" label="具体说明">
|
||||
<a-form-item style="margin-left: 71px;margin-top: 24px" label="具体说明">
|
||||
<a-textarea
|
||||
style="width: 408px;"
|
||||
style="width: 410px;"
|
||||
:maxlength="150"
|
||||
:showCount="true"
|
||||
v-model:value="createParam.description"
|
||||
:auto-size="{ minRows: 2, maxRows: 5 }"
|
||||
:auto-size="{ minRows: 4,}"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
|
||||
@@ -36,6 +36,8 @@ const CancelReview = ()=>{
|
||||
formState.reviewname = ''
|
||||
formState.time = ''
|
||||
InitiateReviewShow.value = false;
|
||||
teacherNames.value = []
|
||||
teacherid.value = []
|
||||
}
|
||||
const namelist = ref([])
|
||||
//表格点击时间
|
||||
@@ -55,6 +57,8 @@ const InitReview = () => {
|
||||
formState.reviewname = ''
|
||||
formState.time = ''
|
||||
rwname.value = null
|
||||
teacherNames.value = []
|
||||
teacherid.value = []
|
||||
addTeacherList()
|
||||
}
|
||||
const teacherid = ref(null)
|
||||
@@ -187,30 +191,40 @@ const reviewcolumn = [
|
||||
name: 'Name',
|
||||
dataIndex: 'name',
|
||||
key: 'name',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: '评审名称',
|
||||
dataIndex: 'reviewName',
|
||||
key: 'reviewName',
|
||||
width: 190,
|
||||
ellipsis: true,
|
||||
},
|
||||
{
|
||||
title: '认证讲师',
|
||||
dataIndex: 'teacherName',
|
||||
key: 'teacherName',
|
||||
ellipsis: true,
|
||||
width: 500,
|
||||
},
|
||||
{
|
||||
title: '认证时间',
|
||||
title: '评审时间',
|
||||
key: 'reviewTime',
|
||||
dataIndex: 'reviewTime',
|
||||
width: 200,
|
||||
ellipsis: true,
|
||||
},
|
||||
{
|
||||
title: '认证状态',
|
||||
key: 'reviewResult',
|
||||
dataIndex: 'reviewResult',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
key: 'action',
|
||||
width: 200,
|
||||
fixed: 'right',
|
||||
},
|
||||
];
|
||||
const columnsTeacher = [
|
||||
@@ -316,7 +330,7 @@ const getReviewList = async () => {
|
||||
const res = await getReview({
|
||||
examineId:route.query.id,
|
||||
pageNo: ReviewPageNo.value,
|
||||
pageSize: 15,
|
||||
pageSize: 10,
|
||||
reviewName: ""
|
||||
})
|
||||
console.log(res, 'pings');
|
||||
@@ -418,7 +432,7 @@ const searchReview = async () => {
|
||||
const res = await getReview({
|
||||
examineId:route.query.id,
|
||||
pageNo: ReviewPageNo.value,
|
||||
pageSize: 15,
|
||||
pageSize: 10,
|
||||
reviewName: reviewValue.value
|
||||
|
||||
})
|
||||
@@ -454,6 +468,7 @@ const delteacherIdList = async () => {
|
||||
current1.value = current1.value - 1
|
||||
}
|
||||
console.log(data.value.length,'sha c sss');
|
||||
current1.value = 1
|
||||
getTeacher()
|
||||
getTeacher2()
|
||||
}
|
||||
@@ -492,7 +507,7 @@ function handleOper(record, type, status = "") {
|
||||
const SearchTeachers =async()=>{
|
||||
const res = await getTeacherList({
|
||||
pageNo: 1,
|
||||
pageSize: 8,
|
||||
pageSize: 15,
|
||||
examineId: route.query.id,
|
||||
secondResult: value2.value==null?'1':value2.value,
|
||||
reviewResult:value.value,
|
||||
@@ -542,14 +557,13 @@ const data = ref([])
|
||||
const current1 = ref(1);
|
||||
const onChangeTeacher = (pageNo, pageSize) => {
|
||||
current1.value = pageNo
|
||||
console.log(pageNo, 1111);
|
||||
getTeacher()
|
||||
};
|
||||
//教师列表
|
||||
const getTeacher =async()=>{
|
||||
const res = await getTeacherList({
|
||||
pageNo: current1.value,
|
||||
pageSize: 8,
|
||||
pageSize: 15,
|
||||
examineId: route.query.id.toString(),
|
||||
secondResult: "1"
|
||||
})
|
||||
@@ -890,8 +904,8 @@ const vwtext = ref(null)
|
||||
<div style="width: 100%;">
|
||||
<div class="page-top">
|
||||
<div style="margin-top: -16px">
|
||||
<p>认证项目名称:{{ route.query.time }}</p>
|
||||
<p style="width:80%;line-height: 35px;height: 40px;" v-if="route.query.description">具体说明:{{ route.query.description }}</p>
|
||||
<p class="title" :title="route.query.time">认证项目名称:{{ route.query.time }}</p>
|
||||
<p class="item" :title="route.query.description" style="width:80%;line-height: 35px;height: 40px;" v-if="route.query.description">具体说明:{{ route.query.description }}</p>
|
||||
|
||||
</div>
|
||||
<div @click="$router.push({ path: '/instructorcertification' })" style="cursor: pointer;">
|
||||
@@ -916,6 +930,7 @@ const vwtext = ref(null)
|
||||
</div>
|
||||
<div class="select" style="margin-left: 15px;">
|
||||
<a-select v-model:value="value" style="width: 270px; border-radius: 8px" placeholder="请选择认证结果">
|
||||
<a-select-option value="3">已报名</a-select-option>
|
||||
<a-select-option value="2">认证中</a-select-option>
|
||||
<a-select-option value="1">未通过</a-select-option>
|
||||
<a-select-option value="0">已通过</a-select-option>
|
||||
@@ -981,7 +996,7 @@ const vwtext = ref(null)
|
||||
|
||||
<template v-else-if="column.key === 'draftStatus'">
|
||||
<span>
|
||||
{{ text===1?'未开始':(text===2?'进行中':'已完成') }}
|
||||
{{ text===1?'未上传':(text===2?'已退回':'已上传') }}
|
||||
</span>
|
||||
</template>
|
||||
<template v-else-if="column.key === 'onlineLearning'">
|
||||
@@ -994,12 +1009,12 @@ const vwtext = ref(null)
|
||||
</span>
|
||||
</template> <template v-else-if="column.key === 'endStatus'">
|
||||
<span>
|
||||
{{ text===1?'未开始':(text===2?'进行中':'已完成') }}
|
||||
{{ text===1?'未上传':(text===2?'已退回':'已上传') }}
|
||||
</span>
|
||||
</template>
|
||||
<template v-else-if="column.key === 'reviewResult'">
|
||||
<span>
|
||||
{{ text===1?'未开始':(text===2?'进行中':'已报名') }}
|
||||
{{ text===1?'未通过':(text===2?'进行中':text==3?'已报名':'通过') }}
|
||||
</span>
|
||||
</template>
|
||||
<template v-else-if="column.key === 'second'">
|
||||
@@ -1048,7 +1063,7 @@ const vwtext = ref(null)
|
||||
|
||||
<template v-else-if="column.key === 'draftStatus'">
|
||||
<span>
|
||||
{{ text===1?'未开始':(text===2?'进行中':'已完成') }}
|
||||
{{ text===1?'未上传':(text===2?'已退回':'已上传') }}
|
||||
</span>
|
||||
</template>
|
||||
<template v-else-if="column.key === 'onlineLearning'">
|
||||
@@ -1165,11 +1180,11 @@ const vwtext = ref(null)
|
||||
<a style="margin-right: 7px;"
|
||||
@click='getreviewdetail({ reviewId: record.id, examineId: route.query.id},record.examineResult), vwtext = record.id'>查看</a>
|
||||
|
||||
<a v-if="record.examineResult === 0&&uploadAdmin('examine-admin')" @click="editReviewSave(record.reviewName, record.reviewTime, record.id)"
|
||||
<a v-if="record.examineResult === 0" @click="editReviewSave(record.reviewName, record.reviewTime, record.id)"
|
||||
style="margin-right: 7px;">
|
||||
编辑
|
||||
</a>
|
||||
<a v-if="record.examineResult === 0&&uploadAdmin('examine-admin')" @click="handleOperReview(record.id)" style="color: #de2139">删除</a>
|
||||
<a v-if="record.examineResult === 0||uploadAdmin('examine-admin')" @click="handleOperReview(record.id)" style="color: #de2139">删除</a>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
@@ -1207,8 +1222,8 @@ const vwtext = ref(null)
|
||||
<!-- <span>
|
||||
{{ text === 0 ? '通过' : (text === 1 ? '未通过' : (text === 2 ? '进行中' : '已报名')) }}
|
||||
</span> -->
|
||||
<span>
|
||||
{{ record.平均分 >= 80 ? '通过' : (record.平均分 < 80 ? '未通过' : (null)) }}
|
||||
<span :style="{ color: text >= 80 ? '#44e778' : (text < 80 ? '#f5222d' : '#3da8f0') }">
|
||||
{{ record.平均分==null?'': record.平均分 >= 80 ? '通过' : (record.平均分 < 80 ? '未通过' : (null)) }}
|
||||
</span>
|
||||
</template>
|
||||
<template v-else-if="column.key === '平均分'">
|
||||
@@ -1259,8 +1274,8 @@ const vwtext = ref(null)
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item label="评审时间" :rules="[{ required: true, message: '请填写评审时间' }]">
|
||||
<a-date-picker v-model:value="formState.time" placeholder="请选择评审时间" :show-time="{ format: 'HH:mm:ss' }"
|
||||
:format="['YYYY-MM-DD HH:mm:ss']" valueFormat="YYYY-MM-DD HH:mm:ss" @change="timeChangeEnd" />
|
||||
<a-date-picker v-model:value="formState.time" placeholder="请选择评审时间" :show-time="{ format: 'HH:mm' }"
|
||||
:format="['YYYY-MM-DD HH:mm']" valueFormat="YYYY-MM-DD HH:mm" @change="timeChangeEnd" />
|
||||
</a-form-item>
|
||||
<div>选择讲师</div>
|
||||
<div style="width: 430px; height: 1px;background-color: #e2e0e0;margin-top: 8px;"></div>
|
||||
@@ -1398,9 +1413,9 @@ const vwtext = ref(null)
|
||||
</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>
|
||||
<div v-if="techerDetail?.secondList" style="font-size: 14px;margin-bottom: 19px;margin-top: 40px;font-size: 18px;font-weight: 500;">二次认证</div>
|
||||
<div v-if="techerDetail?.secondList" style="font-size: 14px;margin-bottom: 15px;">评委打分信息表:</div>
|
||||
<div v-if="techerDetail?.secondList">
|
||||
<a-table :columns="twiceolumnsTwo" :data-source="techerDetail?.secondList" :scroll="{ x: 1000 }" :pagination="false">
|
||||
<template #footer>
|
||||
<div v-if="techerDetail?.secondList" class="footer_table">
|
||||
@@ -1455,6 +1470,21 @@ const vwtext = ref(null)
|
||||
padding-right: 33px;
|
||||
|
||||
// flex-direction: row;
|
||||
.title{
|
||||
width: 600px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.item{
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
box-sizing: border-box;
|
||||
word-break: break-word;
|
||||
}
|
||||
}
|
||||
|
||||
.boundary {
|
||||
|
||||
Reference in New Issue
Block a user