<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>导出报告</title>
<style>
body {
margin-left: 10px;
margin-right: 10px;
font-family: Arial Unicode MS;
font-size: 10px;
}
* {
margin: 0;
padding: 0;
}
table {
border-collapse: collapse;
border-spacing: 0;
table-layout: fixed;
word-break: break-all;
}
/*lmy*/
.mt-10 {
margin-top: 10px;
}
.mb-10 {
margin-bottom: 10px;
}
.fl {
float: left;
}
.fr {
float: right;
}
.clear::after {
content: '';
display: block;
visibility: hidden;
height: 0;
clear: both;
overflow: hidden;
}
.main {
padding: 15px 40px 30px 30px;
}
.cover-content {
overflow: hidden;
position: relative;
height: 1100px;
}
.cover-content img {
width: 100%;
height: 100%;
display: none;
}
.cover-info {
position: absolute;
bottom: 20%;
left: 7%;
}
.cover-info p {
font-size: 16px;
margin-bottom: 18px;
}
.cover-info p label {
color: #D0C6FF;
}
.cover-info p span {
color: #fff;
}
.page-header {
margin-bottom: 8px;
}
.page-name {
color: #9B9B9B;
}
.page-footer {
color: #9B9B9B;
margin-top: 9px;
}
.task-detail-wrap {
padding-top: 12px;
}
.title {
position: relative;
color: #6E52EE;
margin-left: 20px;
line-height: 20px;
}
.title::before {
position: absolute;
top: 3px;
left: -10px;
content: '';
width: 3px;
height: 14px;
background-color: #6E52EE;
}
.task-detail-item {
margin-top: 10px;
padding-left: 24px;
}
.task-item {
width: 100%;
overflow: hidden;
margin-bottom: 10px;
}
.left-item {
width: 33.33%;
float: left;
}
.right-item {
width: 33.33%;
float: right;
}
.task-detail-item label {
color: #9B9B9B;
}
.task-detail-item span {
color: #000000;
}
.line {
height: 1px;
margin-bottom: 10px;
background: #DADADA;
border-radius: 2px;
}
.task-table {
font-family: Arial Unicode MS;
margin: 0 10px;
width: 100%;
}
.task-table th {
padding-top: 4px;
padding-bottom: 12px;
color: #5D5D5D;
background-color: #fff;
border-color: #CFCFCF;
}
.task-table thead tr th {
border-bottom: 1px solid #ddd;
border-radius: 2px;
}
.task-table thead th {
padding: 10px;
font-weight: normal;
table-layout: fixed;
word-break: break-all;
text-align: center;
}
.task-table thead tr {
border-bottom: 1px solid #EBEBEB;
border-radius: 2px;
}
.task-table tbody tr {
border-bottom: 1px solid #EBEBEB;
border-radius: 2px;
}
.task-table tbody tr td {
padding: 10px;
text-align: center;
color: #9B9B9B;
border-bottom: 1px solid #ddd;
}
.page {
margin: 0 10px;
clear: both;
/* height: 100vh; */
}
.page .header {
margin-top: 0;
text-align: right;
color: #9AB7FF;
padding: 15px 0;
border-bottom: 1px solid #BFBFBF;
font-size: 12px;
font-weight: bold;
}
.page .footer {
color: #9AB7FF;
padding: 5px 0;
border-top: 1px solid #BFBFBF;
font-size: 12px;
font-weight: bold;
}
/*页眉页脚*/
@media print {
@page {
margin: 0px;
padding: 0px;
margin-bottom: 20px;
}
}
.no-bold {
font-weight: normal;
}
.breakline {
word-wrap: break-word;
word-break: normal;
}
.footer {
margin-top: 10px;
}
@page {
margin: 20mm 5mm 40mm 5mm;
}
#header {
position: running(header);
}
#footer {
position: running(footer);
}
@page {
@top-center {
content: element(header);
}
@bottom-center {
content: element(footer);
}
}
#pages:before {
content: counter(page);
font-size: 10px;
}
#pages:after {
content: counter(pages);
font-size: 10px;
}
@page:first { /*设置封面*/
margin: 0pt; /*让封面的背景图占满整页*/
padding: 0pt; /*让封面的背景图占满整页*/
background: url('${imgPath}');
@top-left { /*设置首页的页眉页脚内容为空*/
content: "";
}
@top-right { /*设置首页的页眉页脚内容为空*/
content: "";
display:none;
}
@bottom-right { /*设置首页的页眉页脚内容为空*/
content:"";
}
@bottom-left { /*设置首页的页眉页脚内容为空*/
content: "";
}
@top-center {
content: "";
}
@bottom-center {
content: "";
}
}
</style>
</head>
<body>
<#setting datetime_format="yyyy-MM-dd HH:mm:ss"/>
<div class="cover-content" style="margin-top: 0px;">
<img src="${imgPath}" width="100%" style="height: auto;" />
<div class="cover-info">
<p>
<label>任务名称:</label>
<span>${assetScanningTask.taskName!}</span>
</p>
<p>
<label>数据源名称:</label>
<#if (assetScanningTask.dsName)??>
<span>${assetScanningTask.dsName!}</span>
<#else>
<span> </span>
</#if>
</p>
<p>
<label>扫描时间:</label>
<span>${assetScanningTask.startTime!}</span>
</p>
<p>
<label>完成时间:</label>
<span>${assetScanningTask.endTime!}</span>
</p>
</div>
</div>
<div class="page">
<div id="header" class="header">
<div class="clear page-header">
<div class="fl page-name">数据地图系统 </div>
<div class="fr page-name">${assetScanningTask.taskName}任务报告</div>
</div>
</div>
<div id="footer" class="footer">
<div class="clear page-footer">
<div class="fl">© 2019 顺丰科技 版权所有 </div>
<div class="fr">page <span id="pages">/</span></div>
</div>
</div>
</div>
<div class="main">
<div class="task-detail-wrap">
<h2 class="title">基本信息</h2>
<div class="task-detail-item">
<div class="task-item">
<div class="left-item">
<label>任务名称:</label>
<span>${assetScanningTask.taskName!}</span>
</div>
<div class="left-item">
<label>任务开始时间:</label>
<span>${assetScanningTask.startTime!}</span>
</div>
<div class="right-item">
<#if assetScanningTask.scanningCycle == 1>
<#assign scanningCycle='仅一次'/>
<#elseif assetScanningTask.scanningCycle == 2>
<#assign scanningCycle='每日一次'/>
<#elseif assetScanningTask.scanningCycle == 3>
<#assign scanningCycle='每周一次'/>
<#elseif assetScanningTask.scanningCycle == 4>
<#assign scanningCycle='每月一次'/>
<#elseif assetScanningTask.scanningCycle == 5>
<#assign scanningCycle='每年一次'/>
</#if>
<label>扫描周期</label>
<span>${scanningCycle!}</span>
</div>
</div>
<div class="task-item">
<div class="left-item">
<label>扫描目标</label>
<span>${assetScanningTask.includeIp!}</span>
</div>
<div class="left-item">
<label>任务运行时间</label>
<span></span>
</div>
<div class="right-item">
<#if assetScanningTask.taskStatus == 1>
<#assign taskStatus='未开始'/>
<#elseif assetScanningTask.taskStatus == 2 >
<#assign taskStatus='执行中'/>
<#elseif assetScanningTask.taskStatus == 3>
<#assign taskStatus='停止'/>
<#elseif assetScanningTask.taskStatus == 4>
<#assign taskStatus='已完成'/>
</#if>
<label>扫描状态</label>
<span>${taskStatus!}</span>
</div>
</div>
<div class="task-item">
<div class="left-item">
<label>扫描端口</label>
<span>${assetScanningTask.port!}</span>
</div>
<div class="left-item">
<label>资产扫描数量</label>
<span>${assetScanningTask.assetNum!}</span>
</div>
<div class="right-item">
<label>敏感资产数量</label>
<span>${assetScanningTask.sensiAssetNum!}</span>
</div>
</div>
</div>
<div class="line"></div>
<div>
<div>
<h2 class="title">列表信息</h2>
</div>
</div>
<table class="task-table" style="width:100%;">
<thead>
<tr>
<th>序号</th>
<th>资产IP</th>
<th>资产类别</th>
<th>协议</th>
<th>端口</th>
<th>服务</th>
<th>资产状态</th>
<th>资产发现时间</th>
<th>是否敏感资产</th>
</tr>
</thead>
<tbody>
<#list assetList as x>
<tr>
<td>${x.id!}</td>
<td>${x.host!}</td>
<td>${x.assetType!}</td>
<td>${x.protocol!}</td>
<td>${x.port!}</td>
<td>${x.service!}</td>
<td>${x.status!}</td>
<td>${x.createTime!}</td>
<td>${x.isSensitive!}</td>
</tr>
</#list>
</tbody>
</table>
</div>
</div>
</body>
</html>