HTML Table 打印

实现表格跨页自动分开

  @media print
	{
	  .layui-table { page-break-after:auto }
	  tr    { page-break-inside:avoid; page-break-after:auto }
	  td    { page-break-inside:avoid; page-break-after:auto }
	  thead { display:table-header-group }
	  tfoot { display:table-footer-group }
	}

 模板渲染: json 数组嵌套json数组 实现table渲染,同时合并单元格,子任务为空时,设置一个value为空的json字符串,避免subtasks[0]报错

	<table class="layui-table" id="subtasks">
							<colgroup>
								<col width="4%">
								<col width="26%">
								<col width="27%">
								<col width="27%">
								<col width="8%">
								<col width="8%">
							</colgroup>
							<tr>
								<td rowspan="2" align="center">序号</td>
								<td rowspan="2" align="center">教学内容</td>
								<td rowspan="2" align="center">子情境/子项目/子任务</td>
								<td rowspan="2" align="center">知识、技能内容与要求</td>
								<td colspan="2" align="center">参考学时</td>
							</tr>
							<tr>
								<td align="center">理论</td>
								<td align="center">实训</td>
							</tr>
							<tbody id="contents">
							</tbody>
						</table>
<script type="text/html" id="contentlist">
	{{# layui.each(d.list,function(index,item){ }}
	<tr>
		<td rowspan="{{item.subnum}}" align="center">
			{{index + 1}}
		</td>
		<td rowspan="{{item.subnum}}" align="center">
			{{item.content}}
		</td>
		<td align="center">
			{{item.subtasks[0].subtask}}
		</td>
		<td align="center">
			{{item.subtasks[0].demand}}
		</td>
		<td align="center">
			{{item.subtasks[0].theoryHour}}
		</td>
		<td align="center">
			{{item.subtasks[0].practiceHour}}
		</td>
	</tr>
	{{# layui.each(item.subtasks,function(index1,item1){ }}
	{{# if(index1>0){ }}
	<tr>
		<td align="center">
			{{item1.subtask}}
		</td>
		<td align="center">
			{{item1.demand}}
		</td>
		<td align="center">
			{{item1.theoryHour}}
		</td>
		<td align="center">
			{{item1.practiceHour}}
		</td>
	</tr>
	{{# } }}
	{{# }); }}
	{{# }); }}
</script>

 

		var urlsubtask = '/subtask/subTask/list';
				var dones = function(success, message, data) {
					var subtasks = data.records;
					for(var j=0;j<contents.length;j++){
						var id = contents[j].id;
						var list = new Array();
						for(var i=0;i<subtasks.length;i++){
							var contentId = subtasks[i].contentId;
							if(id==contentId){
								list.push(subtasks[i]);
							}
						}
						if(list==''||list==null){
							list.push({"subtask":' ',"demand":' ',"theoryHour":' ',"practiceHour":' '});
						}
						contents[j].subtasks = list;
					}
					console.log(contents);
					var ds = {
					'list': contents
				};
					renderMod(contentlist, 'contents', ds);
				}
				layui.syReqUtil.sendAjaxByParams(urlsubtask, "GET", {}, dones);

表格里嵌套表格和复杂表头

	<tr>
					<td colspan="8">						
						
						<table class="layui-table" id="subtasks">
							<colgroup>
								<col width="4%">
								<col width="26%">
								<col width="27%">
								<col width="27%">
								<col width="8%">
								<col width="8%">
							</colgroup>
							<tr>
								<td rowspan="2" align="center">序号</td>
								<td rowspan="2" align="center">教学内容</td>
								<td rowspan="2" align="center">子情境/子项目/子任务</td>
								<td rowspan="2" align="center">知识、技能内容与要求</td>
								<td colspan="2" align="center">参考学时</td>
							</tr>
							<tr>
								<td align="center">理论</td>
								<td align="center">实训</td>
							</tr>
							<tbody id="contents">
							</tbody>
						</table>
					</td>
				</tr>

css  绝对定位配合z-index,再也不担心它乱跑了

img
	{
	position:absolute;
	right:36%;
	top:0px;
	z-index:2;
	width: 70px;
	height: 70px;
	}

代码: 

<style type="text/css">
	.layui-table td,
	.layui-table th {
		border: none;
	}
	
	#subtasks td {
		border: 1px solid #000;
	}
	
	#subtasks,
	#assess {
		margin-top: -10px;
		color: #000000;
	}
	
	html body {
		margin-top: 0;
	}
	
	.layui-table tbody tr:hover,
	.layui-table thead tr,
	.layui-table-click,
	.layui-table-header,
	.layui-table-hover,
	.layui-table-mend,
	.layui-table-patch,
	.layui-table-tool,
	.layui-table[lay-even] tr:nth-child(even) {
		background-color: transparent;
	}
	img
	{
	position:absolute;
	right:36%;
	top:0px;
	z-index:2;
	width: 70px;
	height: 70px;
	}
  @media print
	{
	  .layui-table { page-break-after:auto }
	  tr    { page-break-inside:avoid; page-break-after:auto }
	  td    { page-break-inside:avoid; page-break-after:auto }
	  thead { display:table-header-group }
	  tfoot { display:table-footer-group }
	}
</style>
<div class="layui-card">
	<div style="border-style: none;">
		<script type="text/html" template lay-done="layui.data.done(d);">
		</script>
		<img src="../../../layui-assign/dist/style/images/printBtn.png" id="img" />					
		<table class="layui-table" style="width:45%;color: #000;margin: auto;" id="all">
			<colgroup>
				<col width="12.5%">
				<col width="12.5%">
				<col width="12.5%">
				<col width="12.5%">
				<col width="12.5%">
				<col width="12.5%">
				<col width="12.5%">
				<col width="12.5%">
			</colgroup>
			<tbody id="table">
				<tr>
					<td colspan="8" align="center" style="border-style:none;font-size: 20px;">
						浙江同济科技职业学院<br /> 《<span id="title"></span>》课程标准
					</td>
				</tr>
				<tr>
					<td colspan="8" style="font-size: 15px;font-weight: 600;">课程基本信息</td>
				</tr>
				<tr>
					<td style="border: 1px solid #000;" align="center">课程编码</td>
					<td colspan="2" style="border: 1px solid #000;" align="center" id="courseNo"></td>
					<td style="border: 1px solid #000;" align="center">课程名称</td>
					<td style="border: 1px solid #000;" align="center" id="courseName"></td>
					<td colspan="2" style="border: 1px solid #000;" align="center">课程性质</td>
					<td style="border: 1px solid #000;" align="center" id="courseNature"></td>
				</tr>
				<tr>
					<td style="border: 1px solid #000;" align="center">学分</td>
					<td style="border: 1px solid #000;" align="center" id="credit"></td>
					<td style="border: 1px solid #000;" align="center">总学时</td>
					<td style="border: 1px solid #000;" align="center" id="totalHour"></td>
					<td style="border: 1px solid #000;" align="center">理论学时</td>
					<td style="border: 1px solid #000;" align="center" id="theoryHour"></td>
					<td style="border: 1px solid #000;" align="center">实践学时</td>
					<td style="border: 1px solid #000;" align="center" id="practiceHour"></td>
				</tr>
				<tr>
					<td style="border: 1px solid #000;" align="center">适用专业</td>
					<td colspan="7" style="border: 1px solid #000;" align="center" id="suitSub"></td>
				</tr>
				<tr>
					<td colspan="8" style="font-size: 15px;font-weight: 600;">一、前言</td>
				</tr>
				<tr>
					<td colspan="8" style="font-size: 15px;">1、课程性质</td>
				</tr>
				<tr>
					<td colspan="8" id="natureOverview">
						
					</td>
				</tr>
				<tr>
					<td colspan="8" style="font-size: 15px;">2、设计思路</td>
				</tr>
				<tr>
					<td colspan="8" id="designIdea">
						
					</td>
				</tr>
				<tr>
					<td colspan="8" style="font-size: 15px;font-weight: 600;">
						二、课程教学目标
					</td>
				</tr>
				<tr>
					<td colspan="8" style="font-size: 15px;">1、能力目标</td>
				</tr>
				<tr>
					<td colspan="8" id="abilityGoal">
						
					</td>
				</tr>
				<tr>
					<td colspan="8" style="font-size: 15px;">2、知识目标</td>
				</tr>
				<tr>
					<td colspan="8" id="knowledgeGoal">
						
					</td>
				</tr>
				<tr>
					<td colspan="8" style="font-size: 15px;">3、素质目标</td>
				</tr>
				<tr>
					<td colspan="8" id="qualityGoal">
						
					</td>
				</tr>
				<tr>
					<td colspan="8" style="font-size: 15px;">4、职业资格证书目标(选填)</td>
				</tr>
				<tr>
					<td colspan="8" id="certificateGoal">
						
					</td>
				</tr>
				<tr>
					<td colspan="8" style="font-size: 15px;font-weight: 600;">三、课程的主要内容与要求</td>
				</tr>
				<tr>
					<td colspan="8">
						&nbsp;&nbsp;课程内容和要求是根据课程目标对本课程主要内容进行设计。请将达到课程目标应当完成的主要教学内容和要求填写在下表中:
					</td>
				</tr>
				<tr>
					<td colspan="8">						
						
						<table class="layui-table" id="subtasks">
							<colgroup>
								<col width="4%">
								<col width="26%">
								<col width="27%">
								<col width="27%">
								<col width="8%">
								<col width="8%">
							</colgroup>
							<tr>
								<td rowspan="2" align="center">序号</td>
								<td rowspan="2" align="center">教学内容</td>
								<td rowspan="2" align="center">子情境/子项目/子任务</td>
								<td rowspan="2" align="center">知识、技能内容与要求</td>
								<td colspan="2" align="center">参考学时</td>
							</tr>
							<tr>
								<td align="center">理论</td>
								<td align="center">实训</td>
							</tr>
							<tbody id="contents">
							</tbody>
						</table>
					</td>
				</tr>
				<tr>
					<td colspan="8" style="font-size: 15px;font-weight: 600;">四、课程实施建议</td>
				</tr>
				<tr>
					<td colspan="8" style="font-size: 15px;">1、教材的开发与选用</td>
				</tr>
				<tr>
					<td colspan="8" id="textbookSelection">
						
					</td>
				</tr>
				<tr>
					<td colspan="8" style="font-size: 15px;">2、教学资源的要求与利用</td>
				</tr>
				<tr>
					<td colspan="8" id="resourceUsage">
						
					</td>
				</tr>
				<tr>
					<td colspan="8" style="font-size: 15px;">3、教学建议</td>
				</tr>
				<tr>
					<td colspan="8" id="suggest">
						
					</td>
				</tr>
				<tr>
					<td colspan="8" style="font-size: 15px;">4、评价方式</td>
				</tr>
				<tr>
					<td colspan="8">
						<table class="layui-table" id="assess">
							<tr>
								<td colspan="8" style="font-size: 14px;">4.1&nbsp;考核办法与所占权重</td>
							</tr>
							<tr>
								<td colspan="8" id="accessmentMethod">
									
								</td>
							</tr>
							<tr>
								<td colspan="8" style="font-size: 14px;">4.2&nbsp;考核要点与权重分配</td>
							</tr>
							<tr>
								<td colspan="8" id="weightAssignment">
									
								</td>
							</tr>
							<tr>
								<td colspan="8" style="font-size: 14px;">4.3&nbsp;成绩评定</td>
							</tr>
							<tr>
								<td colspan="8" id="gradeAssess">
									
								</td>
							</tr>
						</table>
					</td>
				</tr>
			</tbody>
		</table>
	</div>
</div>
<script type="text/html" id="contentlist">
	{{# layui.each(d.list,function(index,item){ }}
	<tr>
		<td rowspan="{{item.subnum}}" align="center">
			{{index + 1}}
		</td>
		<td rowspan="{{item.subnum}}" align="center">
			{{item.content}}
		</td>
		<td align="center">
			{{item.subtasks[0].subtask}}
		</td>
		<td align="center">
			{{item.subtasks[0].demand}}
		</td>
		<td align="center">
			{{item.subtasks[0].theoryHour}}
		</td>
		<td align="center">
			{{item.subtasks[0].practiceHour}}
		</td>
	</tr>
	{{# layui.each(item.subtasks,function(index1,item1){ }}
	{{# if(index1>0){ }}
	<tr>
		<td align="center">
			{{item1.subtask}}
		</td>
		<td align="center">
			{{item1.demand}}
		</td>
		<td align="center">
			{{item1.theoryHour}}
		</td>
		<td align="center">
			{{item1.practiceHour}}
		</td>
	</tr>
	{{# } }}
	{{# }); }}
	{{# }); }}
</script>

<script>
	layui.data.done = function(d) {
		layui.use(['form', 'syFormUtil', 'syTableUtil', 'syCrudUtil', 'syDialogUtil', 'syTableSelectUtil', 'syCommonUtil', 'laytpl'], function() {
			var $ = layui.$;
			var laytpl = layui.laytpl;
			var form = layui.form;
			var urlstr = decodeURI(window.location.href);
			var id = urlstr.split("id=")[1];
			
			var url = '/course/courseResult/' + id;
			var done = function(success, message, data) {
				var abilityGoal= data.abilityGoal;
				var accessmentMethod= data.accessmentMethod;
				var certificateGoal= data.certificateGoal;
				var courseName= data.courseName;
				var courseNature= data.courseNature_Text;
				var natureOverview = data.natureOverview;
				var courseNo= data.courseNo;
				var credit= data.credit;
				var contents = data.contents;
				var designIdea= data.designIdea;
				var gradeAssess= data.gradeAssess;
				var knowledgeGoal= data.knowledgeGoal;
				var practiceHour= data.practiceHour;
				var qualityGoal= data.qualityGoal;
				var resourceUsage= data.resourceUsage;
				var suggest= data.suggest;
				var suitSub= data.suitSub_Text;
				var textbookSelection= data.textbookSelection;
				var theoryHour= data.theoryHour;
				var totalHour= data.totalHour;
				var weightAssignment= data.weightAssignment;
				$("#title").text(courseName);
				$("#courseName").text(courseName);
				$("#courseNo").text(courseNo);
				$("#courseNature").text(courseNature);
				$("#credit").text(credit);
				$("#totalHour").text(totalHour);
				$("#practiceHour").text(practiceHour);
				$("#theoryHour").text(theoryHour);
				$("#suitSub").text(suitSub);
				$("#natureOverview").text(natureOverview);
				$("#designIdea").text(designIdea);
				$("#abilityGoal").text(abilityGoal);
				$("#knowledgeGoal").text(knowledgeGoal);
				$("#qualityGoal").text(qualityGoal);
				$("#certificateGoal").text(certificateGoal);
				$("#textbookSelection").text(textbookSelection);
				$("#resourceUsage").text(resourceUsage);
				$("#suggest").text(suggest);
				$("#accessmentMethod").text(accessmentMethod);
				$("#weightAssignment").text(weightAssignment);
				$("#gradeAssess").text(gradeAssess);			
				
				
				var urlsubtask = '/subtask/subTask/list';
				var dones = function(success, message, data) {
					var subtasks = data.records;
					for(var j=0;j<contents.length;j++){
						var id = contents[j].id;
						var list = new Array();
						for(var i=0;i<subtasks.length;i++){
							var contentId = subtasks[i].contentId;
							if(id==contentId){
								list.push(subtasks[i]);
							}
						}
						if(list==''||list==null){
							list.push({"subtask":' ',"demand":' ',"theoryHour":' ',"practiceHour":' '});
						}
						contents[j].subtasks = list;
					}
					console.log(contents);
					var ds = {
					'list': contents
				};
					renderMod(contentlist, 'contents', ds);
				}
				layui.syReqUtil.sendAjaxByParams(urlsubtask, "GET", {}, dones);
			}
			layui.syReqUtil.sendAjaxByParams(url, 'GET', {}, done);
			
			$('#img').click(function() {
				$("#img").hide();
				$("#all").css("width","85%");
				window.print();
				$("#all").css("width","45%");
				$("#img").show();
			})


						function renderMod(sid, id, data) {
							var getTpl = sid.innerHTML,
								view = document.getElementById(id);
							laytpl(getTpl).render(data, function(html) {
								view.innerHTML = html;
							});
							form.render();
						}

		});
	}
</script>

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值