style(pdf): 优化 PDF 报表布局样式

- 改用 two-column/field 布局替代 data-grid
- 经纬度分开显示
- 移除冗余的'是否有抽测风速'字段
This commit is contained in:
2026-04-19 20:20:12 +08:00
parent 778bf0e9e7
commit 9868db0abc

View File

@@ -55,138 +55,139 @@ const WeatherReport = (function () {
<body>
<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 class="two-column">
<div class="field full-width">
<div class="field-label">项目名称:</div>
<div class="field-value">${data.title || "-"}</div>
</div>
<div class="data-row-long">
<div class="data-label">检测类型</div>
<div class="data-value">${data.inspectionType || "-"}</div>
<div class="field full-width">
<div class="field-label">测试时间</div>
<div class="field-value">${timeStr}</div>
</div>
<div class="data-row-long">
<div class="data-label">委托单号</div>
<div class="data-value">${data.assignmentNumber || "-"}</div>
<div class="field">
<div class="field-label">检测类型</div>
<div class="field-value">${data.inspectionType || "-"}</div>
</div>
<div class="data-row-long">
<div class="data-label">项目名称</div>
<div class="data-value">${data.title || "-"}</div>
<div class="field">
<div class="field-label">委托单号</div>
<div class="field-value">${data.assignmentNumber || "-"}</div>
</div>
<div class="data-row-long">
<div class="data-label">经度:</div>
<div class="data-value">E ${data.longitude || "-"}, N ${data.latitude || "-"}</div>
<div class="field">
<div class="field-label">经度:</div>
<div class="field-value">E ${data.longitude || "-"}</div>
</div>
<div class="data-row-long">
<div class="data-label">测试时间</div>
<div class="data-value">${timeStr}</div>
<div class="field">
<div class="field-label">纬度</div>
<div class="field-value">N ${data.latitude || "-"}</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 class="two-column">
<div class="field">
<div class="field-label">日期序数:</div>
<div class="field-value">${data.daySinceJanFirst}</div>
</div>
<div class="data-row">
<div class="data-label">太阳倾角:</div>
<div class="data-value">${Number(data.solarDeclination).toFixed(2)}°</div>
<div class="field">
<div class="field-label">太阳倾角:</div>
<div class="field-value">${Number(data.solarDeclination).toFixed(2)}°</div>
</div>
<div class="data-row">
<div class="data-label">太阳高度角:</div>
<div class="data-value">${Number(data.sunAltitude).toFixed(2)}°</div>
<div class="field">
<div class="field-label">太阳高度角:</div>
<div class="field-value">${Number(data.sunAltitude).toFixed(2)}°</div>
</div>
<div class="data-row">
<div class="data-label">总云量:</div>
<div class="data-value">${data.overallCloudiness}</div>
<div class="field">
<div class="field-label">总云量:</div>
<div class="field-value">${data.overallCloudiness}</div>
</div>
<div class="data-row">
<div class="data-label">低云量:</div>
<div class="data-value">${data.lowCloudiness}</div>
<div class="field">
<div class="field-label">低云量:</div>
<div class="field-value">${data.lowCloudiness}</div>
</div>
<div class="data-row">
<div class="data-label">辐射等级:</div>
<div class="data-value">${data.solarRadiationLevel}</div>
<div class="field">
<div class="field-label">辐射等级:</div>
<div class="field-value">${data.solarRadiationLevel}</div>
</div>
<div class="data-row">
<div class="data-label">平均风速:</div>
<div class="data-value">${data.averageWindSpeed}m/s</div>
<div class="field">
<div class="field-label">平均风速:</div>
<div class="field-value">${data.averageWindSpeed} m/s</div>
</div>
<div class="data-row">
<div class="data-label">风速适宜度:</div>
<div class="data-value">${data.windSpeedSuitability}</div>
<div class="field">
<div class="field-label">风速适宜度:</div>
<div class="field-value">${data.windSpeedSuitability}</div>
</div>`;
if (data.hasMeasuredWindSpeed === true) {
html += `
<div class="data-row">
<div class="data-label">实测风速:</div>
<div class="data-value">${data.measuredWindSpeed} m/s</div>
<div class="field">
<div class="field-label">实测风速:</div>
<div class="field-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 class="field">
<div class="field-label">转换风速:</div>
<div class="field-value">${data.convertedWindSpeed} m/s</div>
</div>`;
} else {
html += `
<div class="data-row">
<div class="data-label">区域类型:</div>
<div class="data-value">${AREA_TYPE_MAP[data.areaType] || data.areaType || "-"}</div>
<div class="field">
<div class="field-label">区域类型:</div>
<div class="field-value">${AREA_TYPE_MAP[data.areaType] || data.areaType || "-"}</div>
</div>
<div class="data-row">
<div class="data-label">测点高度:</div>
<div class="data-value">${data.pointHeight} m</div>
<div class="field">
<div class="field-label">测点高度:</div>
<div class="field-value">${data.pointHeight} m</div>
</div>
<div class="data-row">
<div class="data-label">点位风速:</div>
<div class="data-value">${data.pointWindSpeed} m/s</div>
<div class="field">
<div class="field-label">点位风速:</div>
<div class="field-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 class="field">
<div class="field-label">推算风速:</div>
<div class="field-value">${data.calculatedWindSpeed} m/s</div>
</div>`;
}
html += `
<div class="data-row">
<div class="data-label">平均风向:</div>
<div class="data-value">${data.averageWindDirection}°</div>
<div class="field">
<div class="field-label">平均风向:</div>
<div class="field-value">${data.averageWindDirection}°</div>
</div>
<div class="data-row">
<div class="data-label">风向标准差:</div>
<div class="data-value">${data.windDirectionStandardDeviation}°</div>
<div class="field">
<div class="field-label">风向标准差:</div>
<div class="field-value">${data.windDirectionStandardDeviation}°</div>
</div>
<div class="data-row">
<div class="data-label">风向适宜度:</div>
<div class="data-value">${data.windDirectionSuitability}</div>
<div class="field">
<div class="field-label">风向适宜度:</div>
<div class="field-value">${data.windDirectionSuitability}</div>
</div>
<div class="data-row">
<div class="data-label">大气稳定度:</div>
<div class="data-value">${data.atmosphericStability}</div>
<div class="field">
<div class="field-label">大气稳定度:</div>
<div class="field-value">${data.atmosphericStability}</div>
</div>
<div class="data-row">
<div class="data-label">稳定度适宜度:</div>
<div class="data-value">${data.suitabilityDegree}</div>
<div class="field">
<div class="field-label">稳定度适宜度:</div>
<div class="field-value">${data.suitabilityDegree}</div>
</div>
<div class="data-row">
<div class="data-label">总体适宜度:</div>
<div class="data-value">${getSuitabilityText(data.overallSuitability, "overall")}</div>
<div class="field full-width">
<div class="field-label">总体适宜度:</div>
<div class="field-value">${getSuitabilityText(data.overallSuitability, "overall")}</div>
</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="two-column">
<div class="field full-width">
<div class="field-label">十次风速值:</div>
<div class="field-value">
<div class="ten-values">${joinWithComma(data.windSpeed, 0, BASE_WIND_COUNT)}</div>
</div>
</div>
<div class="data-row-long">
<div class="data-label">十次风向值:</div>
<div class="data-value">
<div class="field full-width">
<div class="field-label">十次风向值:</div>
<div class="field-value">
<div class="ten-values">${joinWithComma(data.windDirection, 0, BASE_WIND_COUNT)}</div>
</div>
</div>
@@ -194,16 +195,16 @@ const WeatherReport = (function () {
if (data.hasSpotCheckWindSpeed) {
html += `
<div class="data-grid spot-check-values">
<div class="data-row-long">
<div class="data-label">抽测风速值:</div>
<div class="data-value">
<div class="two-column">
<div class="field full-width">
<div class="field-label">抽测风速值:</div>
<div class="field-value">
<div class="ten-values">${joinWithComma(data.windSpeed, BASE_WIND_COUNT, BASE_WIND_COUNT + SPOT_CHECK_COUNT)}</div>
</div>
</div>
<div class="data-row-long">
<div class="data-label">抽测风向值:</div>
<div class="data-value">
<div class="field full-width">
<div class="field-label">抽测风向值:</div>
<div class="field-value">
<div class="ten-values">${joinWithComma(data.windDirection, BASE_WIND_COUNT, BASE_WIND_COUNT + SPOT_CHECK_COUNT)}</div>
</div>
</div>
@@ -211,10 +212,6 @@ const WeatherReport = (function () {
}
html += `
<div class="data-row-long">
<div class="data-label">是否有抽测风速:${data.hasSpotCheckWindSpeed ? "是" : "否"}</div>
</div>
<div class="divider"></div>
<div class="footer">----报表结束 version:${version}----</div>
</div>