76 lines
2.4 KiB
Plaintext
76 lines
2.4 KiB
Plaintext
@page "/report/full"
|
|
@model MiAssessment.Api.Pages.Report.FullReportModel
|
|
@{
|
|
ViewData["Title"] = "测评报告完整预览";
|
|
Layout = null;
|
|
}
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>测评报告完整预览</title>
|
|
<link rel="stylesheet" href="@(Configuration["AppSettings:CdnPrefix"])/css/pages/full-report.css" />
|
|
</head>
|
|
<body>
|
|
@if (!string.IsNullOrEmpty(Model.ErrorMessage))
|
|
{
|
|
<div class="full-error">
|
|
<p>@Model.ErrorMessage</p>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="full-container">
|
|
<div class="full-header">
|
|
<span class="full-header-title">测评报告预览</span>
|
|
<span class="full-header-count">共 @Model.Pages.Count 页</span>
|
|
</div>
|
|
|
|
<div class="full-pages">
|
|
@foreach (var item in Model.Pages)
|
|
{
|
|
<div class="full-page-wrapper">
|
|
<div class="full-page-frame">
|
|
<iframe class="full-page-iframe"
|
|
data-src="@Model.BuildPageUrl(item.RouteUrl!)"
|
|
frameborder="0"
|
|
scrolling="no"
|
|
title="@item.Title"></iframe>
|
|
</div>
|
|
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
<script>
|
|
// IntersectionObserver 懒加载 iframe
|
|
(function () {
|
|
var iframes = document.querySelectorAll('iframe.full-page-iframe[data-src]');
|
|
if (!iframes.length) return;
|
|
|
|
var observer = new IntersectionObserver(function (entries) {
|
|
entries.forEach(function (entry) {
|
|
if (entry.isIntersecting) {
|
|
var iframe = entry.target;
|
|
if (!iframe.src) {
|
|
iframe.src = iframe.getAttribute('data-src');
|
|
}
|
|
observer.unobserve(iframe);
|
|
}
|
|
});
|
|
}, {
|
|
rootMargin: '500px 0px'
|
|
});
|
|
|
|
iframes.forEach(function (iframe) {
|
|
observer.observe(iframe);
|
|
});
|
|
})();
|
|
</script>
|
|
</body>
|
|
</html>
|