feat:增加项目-排行榜-学时排行榜数据接入

This commit is contained in:
wyx
2023-02-09 16:47:11 +08:00
4 changed files with 335 additions and 93 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>
@@ -2131,7 +2139,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";
@@ -2466,12 +2474,10 @@ export default {
className: "h",
},
],
scoreRankLoading:true,
processRankLoading:true,
scoreRankLoading: true,
processRankLoading: true,
//学分排行表
xuefentabledata: [
],
xuefentabledata: [],
xuefentablecolumns: [
{
title: "排名",
@@ -2745,15 +2751,15 @@ 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 xsSelectChange = (e) => {
@@ -2765,20 +2771,20 @@ export default {
state.scoreRankLoading = true;
state.datascore = [];
state.datascoreg = [];
console.log("projectId----->", state.projectId,period, type);
console.log('我是查询榜单传递的数据',{
console.log("projectId----->", state.projectId, period, type);
console.log("我是查询榜单传递的数据", {
projectId: state.projectId, // 项目id
name: "", // 名字,没有则传空字符串
startTime: state.rankStartTime?state.rankStartTime:0, // 数据查询的起始时间 10位时间戳
endTime: state.rankEndTime?state.rankEndTime:0,
startTime: state.rankStartTime ? state.rankStartTime : 0, // 数据查询的起始时间 10位时间戳
endTime: state.rankEndTime ? state.rankEndTime : 0,
size: 10, // 前多少名
type: Number(state.valuestu3), // 查询类型 0 学员积分榜 1 小组积分榜
})
});
let obj = {
projectId: state.projectId, // 项目id
name: "", // 名字,没有则传空字符串
startTime: state.rankStartTime?state.rankStartTime:0, // 数据查询的起始时间 10位时间戳
endTime: state.rankEndTime?state.rankEndTime:0,
startTime: state.rankStartTime ? state.rankStartTime : 0, // 数据查询的起始时间 10位时间戳
endTime: state.rankEndTime ? state.rankEndTime : 0,
size: 10, // 前多少名
type: Number(state.valuestu3), // 查询类型 0 学员积分榜 1 小组积分榜
};
@@ -2787,12 +2793,12 @@ export default {
.scoreRank(obj)
.then((res) => {
console.log("获取项目积分-榜单", res);
if(res.data.code==200){
if (res.data.code == 200) {
state.datascore = res.data.data;
state.datascoreg = res.data.data;
state.xuefentabledata = res.data.data;
state.scoreRankLoading = false;
}else{
} else {
state.datascore = [];
state.datascoreg = [];
state.xuefentabledata = [];
@@ -2802,7 +2808,7 @@ export default {
.catch((err) => {
console.log("获取项目积分-榜单失败", err);
message.destroy();
message.error('榜单获取失败');
message.error("榜单获取失败");
state.datascore = [];
state.datascoreg = [];
state.xuefentabledata = [];
@@ -2819,25 +2825,27 @@ 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)
if(res.data.datas){
state.jindutabledata = res.data.datas;
state.processRankLoading = false;
}else{
console.log("我是获取得项目进度排行榜--》", obj);
api
.completionRank(obj)
.then((res) => {
console.log("项目进度榜单获取", res);
if (res.data.datas) {
state.jindutabledata = res.data.datas;
state.processRankLoading = false;
} else {
state.jindutabledata = [];
state.processRankLoading = false;
}
})
.catch((err) => {
console.log(err);
state.jindutabledata = [];
state.processRankLoading = false;
}
}).catch(err=>{
console.log(err)
state.jindutabledata = [];
state.processRankLoading = false;
})
}
});
};
// 项目学时榜单
const studytimeRank = () => {
@@ -2931,26 +2939,29 @@ export default {
}
levelList.stageList = res.data.data.stageList;
if(levelList.stageList.length==1){
if (levelList.stageList.length == 1) {
// 无解段任务
state.rankjieduan = [{value:0, label:'无阶段'}];
state.rankjieduan = [{ value: 0, label: "无阶段" }];
state.valuestu2 = 0;
}else{
} else {
// 有阶段任务
let arrStage = []
for(let i=0; i<levelList.stageList.length;i++){
if(levelList.stageList[i].stageId!=='0'){
let arrStage = [];
for (let i = 0; i < levelList.stageList.length; i++) {
if (levelList.stageList[i].stageId !== "0") {
let obj = {
value:levelList.stageList[i].stageId,
label:levelList.stageList[i].name
}
arrStage.push(obj)
value: levelList.stageList[i].stageId,
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
@@ -3203,13 +3214,13 @@ export default {
};
//考试管理的抽屉
const showTest = (name, id, data) => {
if(data.startTime==null && data.endTime==null){
if (data.startTime == null && data.endTime == null) {
// 外部考试抽屉显示
state.TMvisibleExternal = true;
state.examData = data;
state.showTestText = name;
state.projectTaskId = id;
}else{
} else {
// 系统考试抽屉显示
state.TMvisible = true;
state.examData = data;
@@ -3625,8 +3636,8 @@ export default {
state.tabFlag = false;
}
if(e!=7){
state.ischeckCertificate=false
if (e != 7) {
state.ischeckCertificate = false;
}
console.log("切换了", state.tabFlag);
};
@@ -4566,8 +4577,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) + "]二维码",
@@ -4582,7 +4790,7 @@ state.ischeckCertificate=false
let obj = {
title: "[项目]二维码",
name: state.name,
url: codeUrl,
// url: codeUrl,
};
state.codeInfo = obj;
};