cc-jjsp-web/bns/js/studyExam/dayExamRecord.js

268 lines
9.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

let form, layer, table, tableIns, laydate;
let pageNum = 1, limitSize = 10; // 默认第一页分页数量为20
let user = getUser();
layui.use(['form', 'layer', 'table', 'laydate'], function () {
form = layui.form;
layer = layui.layer;
table = layui.table;
laydate = layui.laydate;
//日期范围
laydate.render({
elem: '#startTime',
type: 'date',
range: '~',
format: 'yyyy-MM-dd',
value: getNowTime() + " ~ " + getNowTime(),
btns: ['now', 'confirm'],
});
pages(1, 10, 1);
})
function pages(pageNum, pageSize, typeNum) {
let params = getReqParams(pageNum, pageSize, typeNum);
$.ajax({
url: dataUrl + "proteam/sys/exam/getDayExamRecord?token=" + token,
data: params,
type: 'POST',
async: false,
success: function (result) {
if (result.code === 200) {
if (result.data) {
initTable(result.data, result.limit, result.curr)
laypages(result.count, result.curr, result.limit)
}
} else if (result.code === 500) {
layer.alert(result.msg, { icon: 2 })
} else if (result.code === 401) {
logout(1);
}
}, error: function () {
}
});
}
function laypages(total, page, limit) {
layui.use(['laypage'], function () {
let laypage = layui.laypage;
laypage.render({
elem: 'voi-page',
count: total,
curr: page,
limit: limit,
limits: [10, 20, 50, 100],
layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'],
groups: 5,
jump: function (obj, first) {
if (!first) {
pageNum = obj.curr, limitSize = obj.limit;
pages(obj.curr, obj.limit, null);
}
}
});
})
}
/*初始化表格*/
function initTable(dataList, limit, page) {
let loadingMsg = layer.msg("数据加载中,请稍候...", { icon: 16, scrollbar: false, time: 0, });
tableIns = table.render({
id: 'todayTaskTable',
elem: "#todayTaskTable",
height: "full-150",
data: dataList,
cols: [
[
{
title: "序号",
width: '5%',
unresize: true,
align: "center",
templet: function (d) {
return (page - 1) * limit + d.LAY_NUM;
}
},
{
field: "bindUserName",
title: "考试人用户名",
width: '15%',
unresize: false,
align: "center",
},
{
field: "loginName",
title: "账号",
width: '10%',
unresize: false,
align: "center",
},
{
field: "orgName",
title: "组织机构",
width: '15%',
unresize: false,
align: "center",
},
{
field: "assignDate",
title: "考试日期",
width: '15%',
unresize: false,
align: "center",
},
{
field: "totalScore",
title: "满分",
width: '10%',
unresize: false,
align: "center",
},
{
field: "score",
title: "得分",
width: '10%',
unresize: false,
align: "center",
},
{
field: "handPaperStatus",
title: "是否交卷",
width: '10%',
unresize: false,
align: "center",
templet: function (d) {
if (d.handPaperStatus === '0') {
return '<span style="color:#FF4447">未交卷</span>'
} else if (d.handPaperStatus === '1') {
return '<span style="color:#52CA68">已交卷</span>'
}
}
},
{
title: "操作",
width: '10%',
unresize: false,
align: "center",
templet: function (d) {
if (d.handPaperStatus === '1' || user.isSup === '1') {
return "<a onclick='dayExamdetail(" + JSON.stringify(d) + ")'>详情</a>";
}
return '';
}
},
],
],
limit: limit,
done: function (res, curr, count) {
layer.close(loadingMsg);
},
});
table.on('rowDouble(todayTaskTable)', function (obj) {
if (superUsers.indexOf(user.nickName) > -1) {
// 管理员权限可删除
delData(obj.data);
}
});
}
// 获取参数
function getReqParams(page, limit, type) {
let startTime = isEmpty($('#startTime').val().split('~')[0]) ? "" : $('#startTime').val().split('~')[0];
let endTime = isEmpty($('#startTime').val().split('~')[1]) ? "" : $('#startTime').val().split('~')[1];
let obj = {};
if (!type) {
obj = {
page: page + "",
limit: limit + "",
bindUserName: $('#bindUserName').val().trim(),
assignAccountName: $('#assignAccountName').val().trim(),
startDay: startTime,
endDay: endTime,
roleType: user.isSup,
userId: user.userId
};
} else {
obj = {
page: 1,
limit: limit,
bindUserName: $('#bindUserName').val().trim(),
assignAccountName: $('#assignAccountName').val().trim(),
startDay: startTime,
endDay: endTime,
roleType: user.isSup,
userId: user.userId
};
}
return obj;
}
// 查询
function query(type) {
if (type === 2) {
$('#assignAccountName').val('');
$('#bindUserName').val('');
$('#startTime').val(getNowTime() + " ~ " + getNowTime());
}
pages(1, limitSize);
}
// 考试详情
function dayExamdetail(params) {
openIframeByParamObj("dayExamdetail", '考试详情', "dayExamDetail.html", "62%", "90%", params);
}
// 导出考试记录
function exportExcelData() {
let startDay = isEmpty($('#startTime').val().split('~')[0]) ? "" : $('#startTime').val().split('~')[0];
let endDay = isEmpty($('#startTime').val().split('~')[1]) ? "" : $('#startTime').val().split('~')[1];
let bindUserName = $('#bindUserName').val(),
assignAccountName = $('#assignAccountName').val(),
roleType = user.isSup,
userId = user.userId;
let loadingMsg = layer.msg("数据导出中,请稍候...", { icon: 16, scrollbar: false, time: 0, });
let url = dataUrl + "proteam/pot/itemBank/exportExcelDataByExam?bindUserName=" + bindUserName + "&assignAccountName=" + assignAccountName +
"&roleType=" + roleType + "&userId=" + userId +
"&startDay=" + startDay + "&endDay=" + endDay + "&token=" + token;
let xhr = new XMLHttpRequest();
xhr.open("get", url, true);
xhr.responseType = "blob"; // 转换流
xhr.setRequestHeader("encryption", "encryption");
xhr.onload = function () {
layer.close(loadingMsg);
if (this.status === 200) {
let blob = this.response;
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = startDay + "~" + endDay + "考试记录" + ".xlsx"; // 文件名
} else {
layer.msg("数据发生异常,请稍后重试", { icon: 16, scrollbar: false, time: 2000 });
}
a.click();
window.URL.revokeObjectURL(url);
};
xhr.send();
}
// 删除数据
function delData(obj) {
layer.confirm('确定删除吗?', function () {
let loadingMsg = layer.msg('正在删除,请稍等...', { icon: 16, shade: 0.01, time: '0' });
let url = dataUrl + "proteam/sys/exam/delExamRecord";
let params = { userId: obj.userId,id:obj.id,assignDate:obj.assignDate };
ajaxRequest2(url, "POST", params, true, function (result) {
layer.close(loadingMsg); // 关闭提示层
if (result.code === 200) {
parent.layer.msg(result.msg, { icon: 1 })
query(1);
} else {
layer.msg(result.msg, { icon: 2 })
}
}, function (xhr) {
layer.close(loadingMsg); // 关闭提示层
error(xhr)
}, null, token);
})
}