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

@@ -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,34 +2771,34 @@ 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 小组积分榜
};
api
.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 = () => {
@@ -2930,27 +2938,30 @@ 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;
};