|
|
<!DOCTYPE html>
|
|
|
<html>
|
|
|
<head>
|
|
|
<meta charset="UTF-8">
|
|
|
<title>班级学期课程</title>
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
|
|
<meta name="renderer" content="webkit">
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
|
<meta name="viewport"
|
|
|
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
|
|
<link rel="stylesheet" href="../../static/css/font.css">
|
|
|
<link rel="stylesheet" href="../../static/css/weadmin.css">
|
|
|
<link rel="stylesheet" href="../../lib/layui/css/layui.css">
|
|
|
<script src="../../lib/jquery-1.12.4.min.js"></script>
|
|
|
<script src="../../lib/ztree/jquery.ztree.core-3.5.min.js"></script>
|
|
|
|
|
|
<!--引入tip组件 -->
|
|
|
<link rel="stylesheet" type="text/css" href="../../lib/poshytip/tip-darkgray/tip-darkgray.css"/>
|
|
|
<script type="text/javascript" src="../../lib/poshytip/jquery.poshytip.min.js"></script>
|
|
|
|
|
|
|
|
|
<!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
|
|
|
<!--[if lt IE 9]>
|
|
|
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
|
|
|
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
|
|
|
<![endif]-->
|
|
|
<style>
|
|
|
select {
|
|
|
width: 180px;
|
|
|
height: 38px;
|
|
|
line-height: 38px;
|
|
|
border: 1px solid #ccc;
|
|
|
border-radius: 3px;
|
|
|
font-size: 15px;
|
|
|
padding-left: 6px;
|
|
|
color: #666;
|
|
|
}
|
|
|
|
|
|
.searchTxt {
|
|
|
width: 220px;
|
|
|
border: 1px solid #dedede;
|
|
|
border-radius: 3px;
|
|
|
height: 37px;
|
|
|
padding-left: 13px;
|
|
|
vertical-align: top;
|
|
|
}
|
|
|
|
|
|
.inline {
|
|
|
display: inline-block;
|
|
|
vertical-align: top;
|
|
|
}
|
|
|
|
|
|
ul.log li {
|
|
|
color: #666666;
|
|
|
list-style: none;
|
|
|
padding-left: 10px;
|
|
|
}
|
|
|
</style>
|
|
|
</head>
|
|
|
<body>
|
|
|
<div class="weadmin-body">
|
|
|
<div class="layui-form-item">
|
|
|
<table class="layui-table" lay-filter="idTest" id="idTest"></table>
|
|
|
</div>
|
|
|
</div>
|
|
|
<script src="../../lib/layui/layui.js"></script>
|
|
|
<script src="../../lib/layuiExtend.js"></script>
|
|
|
<script src="../../lib/JqueryExtend.js"></script>
|
|
|
<script src="../../lib/template.js"></script>
|
|
|
<script src="../../lib/base64.js"></script>
|
|
|
|
|
|
<script>
|
|
|
layui.extend({
|
|
|
admin: '{/}../../static/js/admin'
|
|
|
});
|
|
|
layui.use(['form', 'jquery', 'laytpl', 'admin', 'layer', 'table'], function () {
|
|
|
var form = layui.form,
|
|
|
$ = layui.jquery,
|
|
|
admin = layui.admin,
|
|
|
layer = layui.layer,
|
|
|
table = layui.table,
|
|
|
laytpl = layui.laytpl;
|
|
|
|
|
|
var class_id = GetQueryString("class_id");
|
|
|
var term_id = GetQueryString("term_id");
|
|
|
// 绑定学期课程
|
|
|
window.bindTermCourse = function () {
|
|
|
table.render({
|
|
|
elem: '#idTest',
|
|
|
url: '/baseService/teachbase/GetTermCourseByClassIdTermId?class_id=' + class_id + "&term_id=" + term_id,
|
|
|
cols: [[
|
|
|
{field: 'id', title: '序号', align: 'center', type: 'numbers', width: 40, rowspan: 2}
|
|
|
, {field: 'module_name', title: '课程课程类别', align: 'center', width: 120, rowspan: 2}
|
|
|
, {field: 'num', title: '课程序号', align: 'center', width: 86, rowspan: 2}
|
|
|
, {field: 'course_code', title: '课程代码', align: 'center', width: 86, rowspan: 2}
|
|
|
, {field: 'course_name', title: '课程名称', align: 'center', rowspan: 2}
|
|
|
, {field: 'category_name', title: '课程性质', align: 'center', width: 86, rowspan: 2}
|
|
|
, {field: 'credit_points', title: '学分', align: 'center', width: 86, rowspan: 2}
|
|
|
, {title: '学时', align: 'center', colspan: 4}
|
|
|
, {field: 'term_num', title: '开设学期', align: 'center', width: 86, rowspan: 2}
|
|
|
, {
|
|
|
field: 'is_netcourse', title: '网络课程', align: 'center', width: 86, rowspan: 2,
|
|
|
templet: function (d) {
|
|
|
if (d.is_netcourse === 1) {
|
|
|
return "是";
|
|
|
} else {
|
|
|
return "否";
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
, {field: 'unit_name', title: '教学单位', align: 'center', width: 200, rowspan: 2}
|
|
|
], [
|
|
|
{field: 'credit_hours', title: '总学时', align: 'center', width: 86}
|
|
|
, {field: 'theory', title: '理论学时', align: 'center', width: 86}
|
|
|
, {field: 'practice', title: '实践学时', align: 'center', width: 86}
|
|
|
, {field: 'exam_mode_name', title: '考试方式', align: 'center', width: 86}
|
|
|
]],
|
|
|
toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板
|
|
|
,defaultToolbar: ['filter', 'print', 'exports', {
|
|
|
title: '导出班级学期课表' //标题
|
|
|
, layEvent: 'LAYTABLE_TIPS' //事件名,用于 toolbar 事件中使用
|
|
|
, icon: 'layui-icon-tips' //图标类名
|
|
|
}]
|
|
|
, page: false
|
|
|
, height: 'full'
|
|
|
, done: function (res, curr, count) {
|
|
|
//合并
|
|
|
merge(res);
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
//绑定学期课程
|
|
|
bindTermCourse();
|
|
|
|
|
|
//合并行
|
|
|
function merge(res) {
|
|
|
var data = res.data;
|
|
|
var mergeIndex = 0;//定位需要添加合并属性的行数
|
|
|
var mark = 1; //这里涉及到简单的运算,mark是计算每次需要合并的格子数
|
|
|
var columsName = ['module_name'];//需要合并的列名称
|
|
|
var columsIndex = [1];//需要合并的列索引值
|
|
|
for (var k = 0; k < columsName.length; k++) { //这里循环所有要合并的列
|
|
|
var trArr = $(".layui-table-body>.layui-table").find("tr");//所有行
|
|
|
for (var i = 1; i < res.data.length; i++) { //这里循环表格当前的数据
|
|
|
var tdCurArr = trArr.eq(i).find("td").eq(columsIndex[k]);//获取当前行的当前列
|
|
|
var tdPreArr = trArr.eq(mergeIndex).find("td").eq(columsIndex[k]);//获取相同列的第一列
|
|
|
// 合并遵守行一列的限制
|
|
|
if (data[i][columsName[k]] === data[i - 1][columsName[k]] && data[i]['module_name'] === data[i - 1]['module_name']) {
|
|
|
//后一行的值与前一行的值做比较,相同就需要合并
|
|
|
mark += 1;
|
|
|
tdPreArr.each(function () {//相同列的第一列增加rowspan属性
|
|
|
$(this).attr("rowspan", mark);
|
|
|
});
|
|
|
tdCurArr.each(function () {//当前行隐藏
|
|
|
$(this).css("display", "none");
|
|
|
});
|
|
|
} else {
|
|
|
mergeIndex = i;
|
|
|
mark = 1;//一旦前后两行的值不一样了,那么需要合并的格子数mark就需要重新计算
|
|
|
}
|
|
|
}
|
|
|
mergeIndex = 0;
|
|
|
mark = 1;
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
</script>
|
|
|
</body>
|
|
|
</html> |