修改了下载的模板
This commit is contained in:
@@ -26,6 +26,7 @@ function toggleFormula(element) {
|
||||
: element.textContent.replace("▼", "▶");
|
||||
}
|
||||
|
||||
// 加载时运行
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
renderMathInElement(document.body, {
|
||||
delimiters: [
|
||||
@@ -43,41 +44,18 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
versionElement.textContent = `版本号: ${version}`;
|
||||
}
|
||||
|
||||
console.log(window.weatherData)
|
||||
console.log(window.weatherData);
|
||||
downloadpdf(window.weatherData, version);
|
||||
});
|
||||
|
||||
// 下载按钮
|
||||
document.getElementById('downloadBtn').addEventListener('click', function() {
|
||||
// 保存按钮的引用
|
||||
var btn = this;
|
||||
function downloadpdf(data, version) {
|
||||
|
||||
// 隐藏按钮(而不是移除)
|
||||
btn.style.display = 'none';
|
||||
|
||||
// 从 api 中取得 weatherdata
|
||||
let weatherdata = null;
|
||||
selectedId = 300;
|
||||
fetch(`/weather/details?id=${selectedId}`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
//更新全局变量
|
||||
weatherdata = data;
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error:', error);
|
||||
alert('获取详细信息失败');
|
||||
});
|
||||
|
||||
const data = weatherdata;
|
||||
|
||||
const areaTypeMap = {
|
||||
urban: "城市",
|
||||
rural: "农村",
|
||||
};
|
||||
|
||||
|
||||
// 等待一小段时间确保按钮已隐藏
|
||||
setTimeout(function() {
|
||||
|
||||
// 假设你的HTML字符串是这样的
|
||||
var htmlString = `
|
||||
<!DOCTYPE html>
|
||||
@@ -167,175 +145,156 @@ document.getElementById('downloadBtn').addEventListener('click', function() {
|
||||
<div class="report-container">
|
||||
<h1>总体适宜度测量报表</h1>
|
||||
|
||||
<div class="data-grid">
|
||||
<div class="data-row-long">
|
||||
<div class="data-label">文件编号:</div>
|
||||
<div class="data-value">${data.id}</div>
|
||||
</div>
|
||||
|
||||
<div class="data-row-long">
|
||||
<div class="data-label">检测类型:</div>
|
||||
<div class="data-value">${data.inspectiontype}</div>
|
||||
</div>
|
||||
|
||||
<div class="data-row-long">
|
||||
<div class="data-label">委托单号:</div>
|
||||
<div class="data-value">${data.assignmentnumber}</div>
|
||||
</div>
|
||||
|
||||
<div class="data-row-long">
|
||||
<div class="data-label">项目名称:</div>
|
||||
<div class="data-value">${data.title}</div>
|
||||
</div>
|
||||
|
||||
<div class="data-row-long">
|
||||
<div class="data-label">经纬度:</div>
|
||||
<div class="data-value">E ${data.longitude}, N ${data.latitude}</div>
|
||||
</div>
|
||||
|
||||
<div class="data-row-long">
|
||||
<div class="data-label">测试时间:</div>
|
||||
<div class="data-value">${formatDateToYYYYMMDD(data.date)}${data.hour}:${data.min}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="divider"></div>
|
||||
|
||||
<div class="data-grid">
|
||||
<div class="data-row">
|
||||
<div class="data-label">日期序数:</div>
|
||||
<div class="data-value">${data.daysincejanfirst}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">太阳倾角:</div>
|
||||
<div class="data-value">${data.solardeclination}°</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">太阳高度角:</div>
|
||||
<div class="data-value">${data.sunaltitude}°</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">总云量:</div>
|
||||
<div class="data-value">${data.overallcloudiness}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">低云量:</div>
|
||||
<div class="data-value">${data.lowcloudiness}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">辐射等级:</div>
|
||||
<div class="data-value">${data.solarradiationlevel}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">平均风速:</div>
|
||||
<div class="data-value">${data.averagewindspeed}m/s</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">风速适宜度:</div>
|
||||
<div class="data-value">${data.windspeedsuitability}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">平均风向:</div>
|
||||
<div class="data-value">${data.averagewinddirection}°</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">风向标准差:</div>
|
||||
<div class="data-value">${data.winddirectionstandarddeviation}°</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">风向适宜度:</div>
|
||||
<div class="data-value">${data.winddirectionsuitability}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">大气稳定度:</div>
|
||||
<div class="data-value">${data.atmosphericstability}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">稳定度适宜度:</div>
|
||||
<div class="data-value">${data.suitabilitydegree}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">总体适宜度:</div>
|
||||
<div class="data-value">${replaceSuitabilityText(data.overallsuitability, "overall")}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="data-grid">
|
||||
<div class="data-row-long">
|
||||
<div class="data-label">文件编号:</div>
|
||||
<div class="data-value">${data.id}</div>
|
||||
</div>
|
||||
|
||||
<div class="data-row-long">
|
||||
<div class="data-label">检测类型:</div>
|
||||
<div class="data-value">${data.inspectiontype}</div>
|
||||
</div>
|
||||
|
||||
<div class="data-row-long">
|
||||
<div class="data-label">委托单号:</div>
|
||||
<div class="data-value">${data.assignmentnumber}</div>
|
||||
</div>
|
||||
|
||||
<div class="data-row-long">
|
||||
<div class="data-label">项目名称:</div>
|
||||
<div class="data-value">${data.title}</div>
|
||||
</div>
|
||||
|
||||
<div class="data-row-long">
|
||||
<div class="data-label">经纬度:</div>
|
||||
<div class="data-value">E ${data.longitude}, N ${data.latitude}</div>
|
||||
</div>
|
||||
|
||||
<div class="data-row-long">
|
||||
<div class="data-label">测试时间:</div>
|
||||
<div class="data-value">${formatDateToYYYYMMDD(data.date)} ${data.hours}:${data.min}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- tbd
|
||||
<div class="divider"></div>
|
||||
|
||||
<div class="data-row">
|
||||
<div class="data-label">大气压:</div>
|
||||
<div class="data-value">tbd kPa</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">环境温度:</div>
|
||||
<div class="data-value">tbd ℃</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">环境湿度:</div>
|
||||
<div class="data-value">tbd %RH</div>
|
||||
</div>
|
||||
-->
|
||||
<div class="divider"></div>
|
||||
|
||||
<div class="divider"></div>
|
||||
<div class="data-grid">
|
||||
<div class="data-row">
|
||||
<div class="data-label">日期序数:</div>
|
||||
<div class="data-value">${data.daySinceJanFirst}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">太阳倾角:</div>
|
||||
<div class="data-value">${data.solarDeclination}°</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">太阳高度角:</div>
|
||||
<div class="data-value">${data.sunAltitude}°</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">总云量:</div>
|
||||
<div class="data-value">${data.overallCloudiness}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">低云量:</div>
|
||||
<div class="data-value">${data.lowCloudiness}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">辐射等级:</div>
|
||||
<div class="data-value">${data.solarRadiationLevel}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">平均风速:</div>
|
||||
<div class="data-value">${data.averageWindSpeed}m/s</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">风速适宜度:</div>
|
||||
<div class="data-value">${data.windSpeedSuitability}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">平均风向:</div>
|
||||
<div class="data-value">${data.averageWindDirection}°</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">风向标准差:</div>
|
||||
<div class="data-value">${data.windDirectionStandardDeviation}°</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">风向适宜度:</div>
|
||||
<div class="data-value">${data.windDirectionSuitability}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">大气稳定度:</div>
|
||||
<div class="data-value">${data.atmosphericStability}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">稳定度适宜度:</div>
|
||||
<div class="data-value">${data.suitabilityDegree}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">总体适宜度:</div>
|
||||
<div class="data-value">${replaceSuitabilityText(data.overallSuitability, "overall")}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="data-grid">
|
||||
<div class="data-row-long">
|
||||
<div class="data-label">十次风速值:</div>
|
||||
<div class="data-value">
|
||||
<div class="ten-values">${data.windspeed}</div>
|
||||
</div>
|
||||
<div class="divider"></div>
|
||||
|
||||
<div class="data-grid">
|
||||
<div class="data-row-long">
|
||||
<div class="data-label">十次风速值:</div>
|
||||
<div class="data-value">
|
||||
<div class="ten-values">${data.windSpeed}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="data-row-long">
|
||||
<div class="data-label">十次风向值:</div>
|
||||
<div class="data-value">
|
||||
<div class="ten-values">${data.windDirection}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="divider"></div>
|
||||
|
||||
<div class="data-grid">
|
||||
`
|
||||
// 根据条件显示相应的数据
|
||||
if (data.hasMeasuredWindSpeed === true) {
|
||||
htmlString+=`
|
||||
<div class="data-row">
|
||||
<div class="data-label">实测风速:</div>
|
||||
<div class="data-value">${data.measuredWindSpeed} m/s</div>
|
||||
</div>
|
||||
<div class="data-row-long">
|
||||
<div class="data-label">十次风向值:</div>
|
||||
<div class="data-value">
|
||||
<div class="ten-values">${data.winddirection}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">转换风速:</div>
|
||||
<div class="data-value">${data.convertedWindSpeed} m/s</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="divider"></div>
|
||||
|
||||
<div class="data-grid">
|
||||
`
|
||||
|
||||
// 根据条件显示相应的数据
|
||||
if (data.hasmeasuredwindspeed === true) {
|
||||
htmlString+=`
|
||||
<div class="data-row">
|
||||
<div class="data-label">实测风速:</div>
|
||||
<div class="data-value">${data.measuredwindspeed} m/s</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">转换风速:</div>
|
||||
<div class="data-value">${data.convertedwindspeed} m/s</div>
|
||||
</div>
|
||||
`
|
||||
} else {
|
||||
htmlString+=`
|
||||
<div class="data-row">
|
||||
<div class="data-label">区域类型:</div>
|
||||
<div class="data-value">${areaTypeMap[data.areatype]}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">测点高度:</div>
|
||||
<div class="data-value">${data.measurementheight} m</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">点位风速:</div>
|
||||
<div class="data-value">${data.pointwindspeed} m/s</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">推算风速:</div>
|
||||
<div class="data-value">${data.calculatedwindspeed} m/s</div>
|
||||
</div>
|
||||
`
|
||||
};
|
||||
|
||||
} else {
|
||||
htmlString+=`
|
||||
<div class="data-row">
|
||||
<div class="data-label">区域类型:</div>
|
||||
<div class="data-value">${areaTypeMap[data.areaType]}</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">测点高度:</div>
|
||||
<div class="data-value">${data.measurementHeight} m</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">点位风速:</div>
|
||||
<div class="data-value">${data.pointWindSpeed} m/s</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-label">推算风速:</div>
|
||||
<div class="data-value">${data.calculatedwindspeed} m/s</div>
|
||||
</div>
|
||||
`
|
||||
}
|
||||
htmlString += `
|
||||
</div>
|
||||
<br>
|
||||
<div class="footer">----报表结束 version:0.18----</div>
|
||||
<div class="footer">----报表结束 version:${version}----</div>
|
||||
</body>
|
||||
</html>
|
||||
`
|
||||
@@ -359,13 +318,7 @@ document.getElementById('downloadBtn').addEventListener('click', function() {
|
||||
|
||||
// 执行下载,使用htmlString作为内容源
|
||||
html2pdf().set(opt).from(htmlString).save();
|
||||
}, 100);
|
||||
|
||||
// 下载完成后恢复按钮显示
|
||||
setTimeout(function() {
|
||||
btn.style.display = '';
|
||||
}, 2000); // 假设下载需要2秒完成,你可以根据实际情况调整
|
||||
});
|
||||
};
|
||||
|
||||
// 工具函数
|
||||
|
||||
|
||||
Reference in New Issue
Block a user