文档存档-章节

beetlsql3-dev
姚丹ab 2 years ago
parent 88f064ee44
commit f676d84fcd

@ -75,7 +75,8 @@ public class QuestionLogSummaryController extends BaseController {
}else{
PageQuery page = condition.getPageQuery();
questionLogSummaryService.queryByConditionQuery(page);
return JsonResult.success(page);
return
JsonResult.success(page);
}
}
@ -555,8 +556,10 @@ public class QuestionLogSummaryController extends BaseController {
* @param questionSettingType
* @return
*/
@PostMapping(MODEL + "/exportAnalysis.json")
public void exportAnalysis(Long teacherOpenCourseId, @RequestParam(required = false) ResourcesQuestionSnapshotFromTypeEnum questionSettingType, @SCoreUser CoreUser coreUser) throws IOException {
@GetMapping(MODEL + "/exportAnalysis.json")
public void exportAnalysis(Long teacherOpenCourseId,
@RequestParam(required = false) ResourcesQuestionSnapshotFromTypeEnum questionSettingType,
@SCoreUser CoreUser coreUser) throws IOException {
// 不需要分页,直接查询出来所有的
PageQuery<Object> objectPageQuery = new PageQuery<>();

@ -5,12 +5,20 @@ layui.define([ 'form', 'laydate', 'table' ,'laytpl'], function(exports) {
var laytpl= layui.laytpl;
var questionLogSummaryTable = null;
var data = [];
var data = {};
var teacherOpenCourseId = $("input[name='teacherOpenCourseId']").val();
var ret = Common.postAjax("/jlw/teacherOpenCourseQuestionSetting/analysis.json",
{'teacherOpenCourseId':teacherOpenCourseId,'questionSettingType':'CHAPTER_EXERCISE'});
if(ret.code==0){
data = ret.data;
if($.isEmpty(data)){
data = {
questionTotalCount:'',
avgCorrectCount:'',
avgWrongCount:'',
avgStudentScore:'',
};
}
var getTpl = demo.innerHTML
,view = document.getElementById('view');
laytpl(getTpl).render(data, function(html){
@ -46,149 +54,45 @@ layui.define([ 'form', 'laydate', 'table' ,'laytpl'], function(exports) {
,defaultToolbar: ['filter', 'print', 'exports'] //头部右侧工具栏*/
,limit : 10,
cols : [ [ // 表头
{
type : 'checkbox',
},
{
field : 'questionLogSummaryId',
title : '学生做题日志汇总ID',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryId'])?false:sx_['questionLogSummaryId'],
width : 60,
},
{
field : 'questionSettingId',
title : '题目配置ID',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionSettingId'])?false:sx_['questionSettingId'],
},
{
field : 'questionSettingName',
title : '题目配置名称',
field : 'questionSettingName',
title : '章节名称',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionSettingName'])?false:sx_['questionSettingName'],
},
{
field : 'questionSettingType',
title : '类型 枚举ResourcesQuestionSnapshotFromTypeEnum',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionSettingType'])?false:sx_['questionSettingType'],
},
{
field : 'questionLogSummaryFromType',
title : '来源类型 枚举',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryFromType'])?false:sx_['questionLogSummaryFromType'],
},
{
field : 'questionSettingTotalScore',
title : '配置的题目总分数',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionSettingTotalScore'])?false:sx_['questionSettingTotalScore'],
},
{
field : 'personId',
title : '人员ID学生ID等等',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['personId'])?false:sx_['personId'],
},
{
field : 'questionLogIds',
title : '关联的做题日志IDs',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogIds'])?false:sx_['questionLogIds'],
},
{
field : 'questionLogSummaryQuestionTotalCount',
title : '配置的题目总数',
field : 'questionTotalCount',
title : '章节练习题目数量',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryQuestionTotalCount'])?false:sx_['questionLogSummaryQuestionTotalCount'],
hide:$.isEmpty(sx_['questionTotalCount'])?false:sx_['questionTotalCount'],
},
{
field : 'questionLogSummaryStudentDoCount',
title : '学生做题总数',
field : 'avgCorrectCount',
title : '平均答对数量',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryStudentDoCount'])?false:sx_['questionLogSummaryStudentDoCount'],
hide:$.isEmpty(sx_['avgCorrectCount'])?false:sx_['avgCorrectCount'],
},
{
field : 'questionLogSummarySuccessCount',
title : '正确数量',
field : 'avgWrongCount',
title : '平均答错数量',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummarySuccessCount'])?false:sx_['questionLogSummarySuccessCount'],
hide:$.isEmpty(sx_['avgWrongCount'])?false:sx_['avgWrongCount'],
},
{
field : 'questionLogSummaryErrorCount',
title : '错误数量',
field : 'avgStudentScore',
title : '合计得分',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryErrorCount'])?false:sx_['questionLogSummaryErrorCount'],
},
{
field : 'questionLogSummarySuccessRate',
title : '正确率',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummarySuccessRate'])?false:sx_['questionLogSummarySuccessRate'],
},
{
field : 'questionLogSummaryCurrentPassRate',
title : '当前配置的及格比率',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryCurrentPassRate'])?false:sx_['questionLogSummaryCurrentPassRate'],
},
{
field : 'questionLogSummaryIsPass',
title : '是否及格',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryIsPass'])?false:sx_['questionLogSummaryIsPass'],
},
{
field : 'questionLogSummaryStatusText', //数据字典类型为 global_status
title : '状态1正常 2删除',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryStatusText'])?false:sx_['questionLogSummaryStatusText'],
},
{
field : 'questionLogSummaryAddTime',
title : '添加时间',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['questionLogSummaryAddTime'])?false:sx_['questionLogSummaryAddTime'],
},
{
field : 'orgId',
title : '组织ID',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['orgId'])?false:sx_['orgId'],
},
{
field : 'userId',
title : '用户ID',
align:"center",
hideField :false,
hide:$.isEmpty(sx_['userId'])?false:sx_['userId'],
hide:$.isEmpty(sx_['avgStudentScore'])?false:sx_['avgStudentScore'],
}
,{
field : 'operation_',title : '操作',align:"center", templet: function (d) {
var htm = '<button type="button" class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit">编辑</button>';
htm += '<button type="button" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button>';
var htm = '<button type="button" class="layui-btn layui-btn-normal layui-btn-xs" lay-event="details">详情</button>';
/*htm += '<button type="button" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button>';*/
return htm;
}
}
@ -240,14 +144,23 @@ layui.define([ 'form', 'laydate', 'table' ,'laytpl'], function(exports) {
Lib.doSearchForm($("#searchForm"), questionLogSummaryTable, 1);
view.initToolBar()
},
addButton_cancel:function () {
parent.Lib.tableRefresh();
Lib.closeFrame();
},
exportDocument: function () {
layui.use([ 'questionLogSummaryApi' ], function() {
/*layui.use([ 'questionLogSummaryApi' ], function() {
var questionLogSummaryApi = layui.questionLogSummaryApi
Common.openConfirm("确认要导出这些通用题目日志汇总数据?", function() {
questionLogSummaryApi.exportExcel($("#searchForm"), function(fileId) {
Lib.download(fileId);
})
})
});*/
layer.confirm('是否确定导出章节练习表吗?', function (index) {
var url =Common.ctxPath + "/jlw/questionLogSummary/exportAnalysis.json?teacherOpenCourseId="+teacherOpenCourseId+'&questionSettingType=CHAPTER_EXERCISE';
$.downFile(url);
layer.close(index);
});
},
importDocument: function () {
@ -283,6 +196,9 @@ layui.define([ 'form', 'laydate', 'table' ,'laytpl'], function(exports) {
}
});
});
}else if (obj.event === 'details') {
var url = "/jlw/teacherOpenCourseStudentSigninLog/index.do?signinSettingId=" + data.teacherOpenCourseStudentSigninSettingId + "&tOCId=" + teacherOpenCourseId;
Common.openDlg(url,"/详情");
}
})
}

@ -13,9 +13,10 @@ layui.define([], function(exports) {
})
}
,
exportExcel:function(form,callback){
exportExcel:function(form,param){
console.log(callback)
var formPara = form.serializeJson();
Common.downLoad("/jlw/questionLogSummary/excel/export.json", formPara, 'POST')
Common.downLoad("/jlw/questionLogSummary/exportAnalysis.json", formPara, 'POST')
// Common.post("/jlw/questionLogSummary/excel/export.json", formPara, function(fileId) {
// callback(fileId);
// })

@ -230,6 +230,7 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find
courseInfoAllData = ret.data;
if(ret.code == 0){
courseInfoAllData.forEach(item => {
/*根据课程类型值判断章节*/
item.resourcesInfo.forEach(function (e, i) {
e.courseInfoParentId = e.courseInfoId;
e.courseInfoId = 0;
@ -246,7 +247,7 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find
treeSpid: courseInfoParentId, //最上级的父级id
treeIdName: 'courseInfoId', //id字段的名称
treePidName: 'courseInfoParentId', //父级节点字段
treeDefaultClose: true, //是否默认折叠
treeDefaultClose: false, //是否默认折叠
treeLinkage: true //父级展开时是否自动展开所有子级
, limit: 1000
/*, rowDrag:{/!*trigger: 'row',*!/
@ -264,6 +265,7 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find
{
field: 'LAY_TABLE_INDEX',
title: '序号',
width:280,
align: "center",
},
{
@ -302,6 +304,7 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find
field: 'courseInfoId',
title: '操作',
align: "center",
width: 380,
style: "text-align: left;",
templet: function (d) {
var htm = '';
@ -318,11 +321,8 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find
}
htm += '<a class="layui-table-link" lay-event="edit">编辑</a>';
htm += '<a class="layui-table-link" lay-event="del">删除</a>';
htm += '<a class="layui-table-link" lay-event="move">拖动</a>';
if (!$.isEmpty(d.resourcesInfoType)) {
htm += '<a class="layui-table-link" lay-event="moveUp">上移</a>';
htm += '<a class="layui-table-link" lay-event="moveDown">下移</a>';
}
htm += '<a class="layui-table-link" lay-event="moveUp">上移</a>';
htm += '<a class="layui-table-link" lay-event="moveDown">下移</a>';
return htm;
}
}
@ -423,45 +423,42 @@ type="course_info.course_info_name.course_info_status!=3,course_info_type=1,find
}else if (obj.event === 'move') {//拖动
//soulTable.suspend('myTable', 'drag', !data.elem.checked)
}else if (obj.event === 'moveUp') {//上移
layer.confirm('是否确定上移 "<span style="color: red">' + data.courseInfoName + '</span>" 该信息?', function (index) {
var param = {
id: data.resourcesInfoId,
moveType: 'MOVE_LEFT'
};
var ret = Common.postAjax("/jlw/resourcesInfo/move.json", param);
layer.msg(ret.code == 0 ? "移动成功!" : ret.msg, {
offset: ['50%'],
icon: ret.code == 0 ? 1 : 2,
time: 1500 //2秒关闭如果不配置默认是3秒
}, function () {
if (ret.code == 0) {
courseInfoTable();
Lib.tableRefresh();
layer.closeAll();
}
});
var param = {
id: data.courseInfoId,
moveType: 'MOVE_LEFT'
};
if(!$.isEmpty(data.resourcesInfoId)){
param.id = data.resourcesInfoId;
}
var ret = Common.postAjax("/jlw/resourcesInfo/move.json", param);
if (ret.code == 0) {
courseInfoTable();
Lib.tableRefresh();
layer.closeAll();
}
layer.msg(ret.code == 0 ? "移动成功!" : ret.msg, {
offset: ['50%'],
icon: ret.code == 0 ? 1 : 2,
time: 1500 //2秒关闭如果不配置默认是3秒
});
}else if (obj.event === 'moveDown') {//下移
layer.confirm('是否确定下移 "<span style="color: red">' + data.courseInfoName + '</span>" 该信息?', function (index) {
var param = {
id: data.resourcesInfoId,
moveType: 'MOVE_RIGHT'
};
var ret = Common.postAjax("/jlw/resourcesInfo/move.json", param);
layer.msg(ret.code == 0 ? "移动成功!" : ret.msg, {
offset: ['50%'],
icon: ret.code == 0 ? 1 : 2,
time: 1500 //2秒关闭如果不配置默认是3秒
}, function () {
if (ret.code == 0) {
courseInfoTable();
Lib.tableRefresh();
layer.closeAll();
}
});
var param = {
id: data.courseInfoId,
moveType: 'MOVE_RIGHT'
};
if(!$.isEmpty(data.resourcesInfoId)){
param.id = data.resourcesInfoId;
}
var ret = Common.postAjax("/jlw/resourcesInfo/move.json", param);
if (ret.code == 0) {
courseInfoTable();
Lib.tableRefresh();
layer.closeAll();
}
layer.msg(ret.code == 0 ? "移动成功!" : ret.msg, {
offset: ['50%'],
icon: ret.code == 0 ? 1 : 2,
time: 1500 //2秒关闭如果不配置默认是3秒
});
}
});

@ -1,20 +1,21 @@
<!--#layout("/common/layout.html",{"jsBase":"/js/jlw/questionLogSummary/"}){ -->
<div class="layui-row" style="float: right;margin-bottom: 20px">
<layui:accessButton function="teacherOpenCourseStudentSigninSetting.query" class="layui-btn-primary"
action="addButton_cancel"><span class="iconfont">&#xe600;</span>返回</layui:accessButton></div>
<div class="layui-row">
<div style="float: left" id="view"></div>
<div class="layui-inline" style="float: right;">
<layui:accessButton function="teacherOpenCourseStudentSigninSetting.query" action="export"><span
<layui:accessButton function="teacherOpenCourseStudentSigninSetting.query" action="exportDocument"><span
class="iconfont">&#xe8c7;</span>导出</layui:accessButton>
<layui:accessButton function="teacherOpenCourseStudentSigninSetting.query" class="layui-btn-primary"
action="addButton_cancel"><span class="iconfont">&#xe600;</span>返回</layui:accessButton>
</div>
</div>
<script type="text/html" id="demo">
<h2 style="float: left">章节练习汇总:【
合计练习题目数量:{{!$.isEmpty(d.questionTotalCount)?d.questionTotalCount:""}};
合计平均答对数量:{{!$.isEmpty(d.avgCorrectCount)?d.avgCorrectCount:""}};
合计平均答错数量:{{!$.isEmpty(d.avgWrongCount)?d.avgWrongCount:""}};
合计得分:{{!$.isEmpty(d.avgStudentScore)?d.avgStudentScore:""}}
合计练习题目数量:{{!$.isEmpty(d)?d.questionTotalCount:" "}};
合计平均答对数量:{{!$.isEmpty(d)?d.avgCorrectCount:""}};
合计平均答错数量:{{!$.isEmpty(d)?d.avgWrongCount:""}};
合计平均得分:{{!$.isEmpty(d)?d.avgStudentScore:""}}
</h2>
</script>

Loading…
Cancel
Save