You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

169 lines
7.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!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>