feat:修改证书

This commit is contained in:
lixg
2023-02-09 15:45:35 +08:00
parent e9a2fc0a6b
commit be4b4d0c2e
4 changed files with 338 additions and 98 deletions

View File

@@ -307,7 +307,7 @@
id="inputNumber"
v-model:value="score"
:min="1"
:max="100"
:max="projectPoints"
style="width: 70px"
:disabled="condition !== 5"
/>
@@ -320,7 +320,7 @@
margin-left: 5px;
"
>
分可获得当前项目积分为 10
分可获得当前项目积分为 {{ projectPoints }}
</div>
</div>
<!-- <a-radio v-model:checked="checked" :value="6" >
@@ -422,6 +422,7 @@ export default {
selectExamName: null,
selectExamId: null,
score: null, //积分
projectPoints: 0,
fileType: ["jpg", "jpeg", "png", "gif", "svg", "bmp"],
});
@@ -471,6 +472,7 @@ export default {
.then((res) => {
if (res.data.code === 200) {
console.log("获取项目总积分", res);
state.projectPoints = res.data.data;
}
})
.catch((err) => {

View File

@@ -38,7 +38,7 @@
<a-button
class="cus-btn"
style="background: #4ea6ff; color: #fff; width: 100px"
@click="getStuList"
@click="search"
>
<template #icon>
<img
@@ -56,7 +56,7 @@
重置
</a-button>
</div>
<div class="batch">批量取消证书</div>
<div class="batch" @click="cancelOrAuthAll">批量取消证书</div>
<div class="tableBox" style="margin-top: 20px">
<a-table
:columns="tablecolumns"
@@ -93,6 +93,8 @@ import { reactive, toRefs } from "vue";
import * as api from "@/api/index1";
import OrgClass from "@/components/project/OrgClass";
import { message } from "ant-design-vue";
import { toDate } from "@/api/method";
import dayjs from "dayjs";
export default {
name: "TableCertificateStudent",
components: {
@@ -118,7 +120,7 @@ export default {
studentName: null,
tstudentDepartId: null,
studentDepartName: null,
selectTime: null,
selectTime: [],
tablecolumns: [
{
title: "工号",
@@ -154,11 +156,21 @@ export default {
},
{
title: "取得证书时间",
dataIndex: "time",
key: "time",
dataIndex: "createTime",
key: "createTime",
width: 60,
align: "center",
className: "h",
customRender: (record) => {
// console.log(text.record.checked1);
return (
<div>
{record.record.createTime
? toDate(record.record.createTime / 1000, "Y-M-D h:m")
: "-"}
</div>
);
},
},
{
title: "操作",
@@ -191,13 +203,13 @@ export default {
},
],
stuList: [
{
studentUserNo: "1234",
studentName: "li",
studentDepartName: "开发部",
studentJobName: "岗位一",
time: "2023-02-04",
},
// {
// studentUserNo: "1234",
// studentName: "li",
// studentDepartName: "开发部",
// studentJobName: "岗位一",
// time: "2023-02-04",
// },
],
pageSize: 10,
currentPage: 1,
@@ -207,9 +219,22 @@ export default {
//获取证书学员
const stuCertList = () => {
console.log("state.selectTime", state.selectTime);
let obj = {
name: state.studentName,
orgName: state.studentDepartName,
beginDate:
state.selectTime.length !== 0
? dayjs(new Date(state.selectTime[0]).getTime()).format(
"YYYY-MM-DD"
)
: null,
endDate:
state.selectTime.length !== 0
? dayjs(new Date(state.selectTime[1]).getTime()).format(
"YYYY-MM-DD"
)
: null,
id: props.ACertificateCheckId,
pid: props.projectId,
size: state.pageSize,
@@ -221,8 +246,9 @@ export default {
.then((res) => {
console.log("获取证书学员", res);
if (res.data.code === 200) {
state.stuList = res.data.data.record;
state.tableDataTotal = res.data.data.total;
state.stuList = res.data.data.records;
state.tableDataTotal = Number(res.data.data.total);
console.log("state.tableDataTotal", state.tableDataTotal);
}
})
.catch((err) => {
@@ -242,7 +268,8 @@ export default {
state.studentName = null;
state.tstudentDepartId = null;
state.studentDepartName = null;
state.selectTime = null;
state.selectTime = [];
stuCertList();
};
//取消证书
@@ -265,6 +292,28 @@ export default {
console.log("取消证书失败", err);
});
};
//批量取消证书
const cancelOrAuthAll = () => {
if (state.selectedRowKeys.length === 0)
return message.warning("请选择学员");
let obj = {
ids: state.selectedRowKeys,
status: -1,
};
api
.cancelOrAuth(obj)
.then((res) => {
console.log("取消证书成功", res);
if (res.data.code === 200) {
message.success("取消证书成功");
stuCertList();
state.selectedRowKeys = [];
}
})
.catch((err) => {
console.log("取消证书失败", err);
});
};
const onSelectChange = (selectedRowKeys, e) => {
console.log("selectedRowKeys changed: ", selectedRowKeys, e);
state.selectedRowKeys = selectedRowKeys;
@@ -288,6 +337,7 @@ export default {
onSelectChange,
changePaginationStu,
returnClick,
cancelOrAuthAll,
};
},
};

View File

@@ -2727,26 +2727,8 @@ export default {
window.location.protocol +
process.env.VUE_APP_H5 +
"/projectdetails?courseId=" +
item.courseId
item.courseId;
}
// let path = {
// 1: window.location.protocol + import.meta.env.VITE_BOE_ONLINE_CLASS_URL, //在线
// 2: "/faceteach",
// 3: window.location.protocol + import.meta.env.VITE_BOE_CASS_DETAIL_URL, //案例
// 4: "/homeworkpage",
// 5: window.location.protocol + import.meta.env.VITE_BOE_EXAM_DETAIL_URL, //考试
// 6: "/livebroadcast",
// 7: "/outerchain", //外联
// 8: "/discusspage",
// 9: "/moreactive",
// 10: "/evaluation", //测评
// 11: "/surveydetail",
// 12: "/ballotpage",
// 13: "/projectdetails",
// };
state.codevisible = true;
let obj = {
title: "[" + checkType(item.type) + "]二维码",

View File

@@ -877,11 +877,19 @@
</div>
</div>
<div class="right">
<div class="btn btn1" @click="rankSearch" style="cursor: pointer;">
<div
class="btn btn1"
@click="rankSearch"
style="cursor: pointer"
>
<div class="img1"></div>
<div class="te">搜索</div>
</div>
<div class="btn btn2" @click="rankReset" style="cursor: pointer;">
<div
class="btn btn2"
@click="rankReset"
style="cursor: pointer"
>
<div class="img2"></div>
<div class="te">重置</div>
</div>
@@ -2130,7 +2138,7 @@ import { message, Modal } from "ant-design-vue";
import * as apitl from "../../api/index";
import { getTask } from "../../api/indexTaskadd";
import { editProj } from "../../api/indexTaskadd";
import { toDate, codeUrl } from "../../api/method";
import { toDate } from "../../api/method";
import projSet from "../../components/Modals/projSet";
import { overview } from "../../api/indexProjStu";
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
@@ -2468,9 +2476,7 @@ export default {
scoreRankLoading: true,
processRankLoading: true,
//学分排行表
xuefentabledata: [
],
xuefentabledata: [],
xuefentablecolumns: [
{
title: "排名",
@@ -2795,31 +2801,31 @@ export default {
// 积分排行榜 Top10
// 项目积分切换查询 -- 学员 小组
const jfSelectChange = (e) => {
console.log(e)
console.log(e);
scoreRank();
}
};
const jdSelectChange = (e) => {
console.log(e)
console.log(e);
completionRank();
}
};
const jdSelectChange1 = (e) => {
console.log(e)
console.log(e);
completionRank();
}
};
//项目积分榜单
const scoreRank = (period, type) => {
state.scoreRankLoading = true;
state.datascore = [];
state.datascoreg = [];
console.log("projectId----->", state.projectId, period, type);
console.log('我是查询榜单传递的数据',{
console.log("我是查询榜单传递的数据", {
projectId: state.projectId, // 项目id
name: "", // 名字,没有则传空字符串
startTime: state.rankStartTime ? state.rankStartTime : 0, // 数据查询的起始时间 10位时间戳
endTime: state.rankEndTime ? state.rankEndTime : 0,
size: 10, // 前多少名
type: Number(state.valuestu3), // 查询类型 0 学员积分榜 1 小组积分榜
})
});
let obj = {
projectId: 290, // 项目id
name: "", // 名字,没有则传空字符串
@@ -2848,7 +2854,7 @@ export default {
.catch((err) => {
console.log("获取项目积分-榜单失败", err);
message.destroy();
message.error('榜单获取失败');
message.error("榜单获取失败");
state.datascore = [];
state.datascoreg = [];
state.xuefentabledata = [];
@@ -2865,11 +2871,13 @@ export default {
endTime: state.rankEndTime ? state.rankEndTime : 0,
stageId: state.valuestu2, // 阶段ID
type: Number(state.valuestu3), // 查询类型 0 学员积分榜 1 小组积分榜
}
};
console.log('我是获取得项目进度排行榜--》', obj)
api.completionRank(obj).then(res=>{
console.log('项目进度榜单获取',res)
console.log("我是获取得项目进度排行榜--》", obj);
api
.completionRank(obj)
.then((res) => {
console.log("项目进度榜单获取", res);
if (res.data.datas) {
state.jindutabledata = res.data.datas;
state.processRankLoading = false;
@@ -2877,13 +2885,13 @@ export default {
state.jindutabledata = [];
state.processRankLoading = false;
}
}).catch(err=>{
console.log(err)
})
.catch((err) => {
console.log(err);
state.jindutabledata = [];
state.processRankLoading = false;
})
}
});
};
// 排行榜 - end
@@ -2951,24 +2959,27 @@ export default {
if (levelList.stageList.length == 1) {
// 无解段任务
state.rankjieduan = [{value:0, label:'无阶段'}];
state.rankjieduan = [{ value: 0, label: "无阶段" }];
state.valuestu2 = 0;
} else {
// 有阶段任务
let arrStage = []
let arrStage = [];
for (let i = 0; i < levelList.stageList.length; i++) {
if(levelList.stageList[i].stageId!=='0'){
if (levelList.stageList[i].stageId !== "0") {
let obj = {
value: levelList.stageList[i].stageId,
label:levelList.stageList[i].name
}
arrStage.push(obj)
label: levelList.stageList[i].name,
};
arrStage.push(obj);
}
}
state.rankjieduan = arrStage;
state.valuestu2 = arrStage[0].value;
}
console.log('----------------------------------->', res.data.data.stageList)
console.log(
"----------------------------------->",
res.data.data.stageList
);
//暂时传个固定的id用 到时候看数据里面是否有在更换
// state.projectTaskId = res.data.data.stageList[0].taskList[0].projectTaskId
@@ -3633,7 +3644,6 @@ export default {
scoreRank();
// 获取项目进度排行榜
completionRank();
} else if (e == 3) {
state.tabFlag = true;
} else {
@@ -3642,7 +3652,7 @@ export default {
}
if (e != 7) {
state.ischeckCertificate=false
state.ischeckCertificate = false;
}
console.log("切换了", state.tabFlag);
};
@@ -4578,8 +4588,205 @@ state.ischeckCertificate=false
return typeRules[type];
};
// 判断当前任务已结束及时间意义上的结束 提示用户
function judgeTaskIsEnd(type, endTimes, status) {
// type 任务类型 endTime 结束时间 status 任务状态 (状态 0 未完成 1 已完成 2 未开始 3 已结束)
console.log(type, endTimes, status);
let isEnd = false;
let nowTime = new Date().getTime();
let endTime = new Date().getTime(endTimes);
switch (type) {
case 1:
status == 3
? (isEnd = true)
: nowTime > endTime
? (isEnd = true)
: (isEnd = false);
break;
case 3:
status == 3
? (isEnd = true)
: nowTime > endTime
? (isEnd = true)
: (isEnd = false);
break;
case 5:
status == 3
? (isEnd = true)
: nowTime > endTime
? (isEnd = true)
: (isEnd = false);
break;
case 7:
status == 3
? (isEnd = true)
: nowTime > endTime
? (isEnd = true)
: (isEnd = false);
break;
case 10:
status == 3
? (isEnd = true)
: nowTime > endTime
? (isEnd = true)
: (isEnd = false);
break;
}
return isEnd;
}
//显示二维码弹窗
const showCodeModel = (item) => {
if (judgeTaskIsEnd(item.type, state.endTime, state.status)) {
message.error("当前任务已结束");
return;
}
console.log("item", item);
let codeUrl = "";
// 在线课 停用 -- 暂时没有在线课停用标记
if (item.type == 1) {
if (item.taskStatus == 1 || item.taskStatus == 2)
return message.error("该任务无法学习,请联系管理员进行替换。");
window.open(
window.location.protocol +
import.meta.env.VITE_BOE_ONLINE_CLASS_URL +
item.targetId,
"_top"
);
}
if (item.type == 2) {
let date1 = new Date(item.endTime).getTime();
let date2 = new Date().getTime();
if (date1 < date2) return message.warning("当前面授课已结束");
if (item.taskStatus == 1 || item.taskStatus == 2)
return message.error("该任务无法学习,请联系管理员进行替换。");
codeUrl =
window.location.protocol +
process.env.VUE_APP_H5 +
"/externalexam?courseId=" +
item.courseId;
}
if (item.type == 4) {
let date1 = new Date(item.endTime).getTime();
let date2 = new Date().getTime();
if (date1 < date2) return message.warning("当前作业已结束");
codeUrl =
window.location.protocol +
process.env.VUE_APP_H5 +
"/homeworkpage?courseId=" +
item.courseId +
"&type=1&id=" +
item.projectTaskId;
}
// 考试 停用
if (item.type == 5) {
if (item.taskStatus == 1 || item.taskStatus == 2)
return message.error("该任务无法学习,请联系管理员进行替换。");
// 此处判断外部考试跳转
if (item.startTime == null || item.endTime == null) {
codeUrl =
window.location.protocol +
process.env.VUE_APP_H5 +
"/externalexam?courseId=" +
item.courseId;
}
}
// 直播结束时间
if (item.type == 6) {
let date1 = new Date(item.endTime).getTime();
let date2 = new Date().getTime();
if (date1 < date2) return message.warning("当前直播已结束");
codeUrl =
window.location.protocol +
process.env.VUE_APP_H5 +
"/livebroadcast?courseId=" +
item.courseId +
"&type=1&id=" +
item.projectTaskId;
}
// 外链
if (item.type == 7) {
codeUrl =
window.location.protocol +
process.env.VUE_APP_H5 +
"/outerchain?courseId=" +
item.courseId +
"&type=1&id=" +
item.projectTaskId +
"&status=" +
item.status +
"&chapterOrStageId=" +
item.stageId +
"&infoId=" +
state.projectId;
}
//讨论
if (item.type == 8) {
codeUrl =
window.location.protocol +
process.env.VUE_APP_H5 +
"/discusspage?courseId=" +
item.courseId +
"&type=1&id=" +
item.projectTaskId;
}
//活动
if (item.type == 9) {
let date1 = new Date(item.endTime).getTime();
let date2 = new Date().getTime();
if (date1 < date2) return message.warning("当前活动已结束");
codeUrl =
window.location.protocol +
process.env.VUE_APP_H5 +
"/activitiespage?courseId=" +
item.courseId +
"&type=1&id=" +
item.projectTaskId;
}
//活动
if (item.type == 10) {
codeUrl =
window.location.protocol +
process.env.VUE_APP_H5 +
"/evaluation?courseId=" +
item.courseId +
"&evaType=" +
item.evaType +
"&targetId=" +
item.targetId;
}
// 评估 停用
if (item.type == 11) {
if (item.taskStatus == 1 || item.taskStatus == 2)
return message.error("该任务无法学习,请联系管理员进行替换。");
codeUrl =
window.location.protocol +
process.env.VUE_APP_H5 +
"/investigatage?courseId=" +
item.courseId +
"&type=1&id=" +
item.projectTaskId +
"&chapterOrStageId=" +
item.stageId +
"&infoId=" +
state.projectId;
}
// 投票
if (item.type == 12) {
codeUrl =
window.location.protocol +
process.env.VUE_APP_H5 +
"/ballotpage?courseId=" +
item.courseId +
"&btype=2&id=" +
item.projectTaskId +
"&chapterOrStageId=" +
item.chapterId +
"&infoId=" +
state.projectId;
}
state.codevisible = true;
let obj = {
title: "[" + checkType(item.type) + "]二维码",
@@ -4594,7 +4801,7 @@ state.ischeckCertificate=false
let obj = {
title: "[项目]二维码",
name: state.name,
url: codeUrl,
// url: codeUrl,
};
state.codeInfo = obj;
};
@@ -4821,7 +5028,6 @@ state.ischeckCertificate=false
completionRank,
jdSelectChange,
jdSelectChange1,
};
},
};