const version = "0.1.9"; //公式相关 function toggleAccordion(header) { const content = header.nextElementSibling; const isOpen = content.style.maxHeight !== '0px' && content.style.maxHeight !== ''; // 关闭所有其他面板 document.querySelectorAll('.accordion-content').forEach(item => { item.style.maxHeight = '0px'; }); // 切换当前面板 if (!isOpen) { content.style.maxHeight = content.scrollHeight + 'px'; } } // 展开或者关闭公式 function toggleFormula(element) { const content = element.nextElementSibling; content.style.display = content.style.display === "none" ? "block" : "none"; element.textContent = element.textContent.includes("▶") ? element.textContent.replace("▶", "▼") : element.textContent.replace("▼", "▶"); } // 加载时运行 document.addEventListener('DOMContentLoaded', function() { renderMathInElement(document.body, { delimiters: [ {left: "$$", right: "$$", display: true}, {left: "$", right: "$", display: false} ], throwOnError: false }); // 获取页面中的版本号元素 const versionElement = document.querySelector('.version'); // 更新内容(拼接版本号) if (versionElement) { versionElement.textContent = `版本号: ${version}`; } //console.log(window.weatherData); downloadpdf(window.weatherData, version); }); // 下载按钮 function downloadpdf(data, version) { const areaTypeMap = { urban: "城市", rural: "农村", }; // 假设你的HTML字符串是这样的 var htmlString = ` 总体适宜度测量报表

总体适宜度测量报表

文件编号:
${data.id}
检测类型:
${data.inspectiontype}
委托单号:
${data.assignmentnumber}
项目名称:
${data.title}
经纬度:
E ${data.longitude}, N ${data.latitude}
测试时间:
${formatDateToYYYYMMDD(data.date)} ${data.hours}:${data.min}
日期序数:
${data.daySinceJanFirst}
太阳倾角:
${data.solarDeclination}°
太阳高度角:
${data.sunAltitude}°
总云量:
${data.overallCloudiness}
低云量:
${data.lowCloudiness}
辐射等级:
${data.solarRadiationLevel}
平均风速:
${data.averageWindSpeed}m/s
风速适宜度:
${data.windSpeedSuitability}
平均风向:
${data.averageWindDirection}°
风向标准差:
${data.windDirectionStandardDeviation}°
风向适宜度:
${data.windDirectionSuitability}
大气稳定度:
${data.atmosphericStability}
稳定度适宜度:
${data.suitabilityDegree}
总体适宜度:
${replaceSuitabilityText(data.overallSuitability, "overall")}
十次风速值:
${data.windSpeed.slice(0, 10).join(',')}
十次风向值:
${data.windDirection.slice(0, 10).join(',')}
${data.hasSpotCheckWindSpeed ? `
抽测风速值:
${data.windSpeed.slice(10, 15).map(val => val ?? '').join(',')}
抽测风向值:
${data.windDirection.slice(10, 15).map(val => val ?? '').join(',')}
` : ''}
是否有抽测风速:${data.hasSpotCheckWindSpeed ? '是' : '否'}
` // 根据条件显示相应的数据 if (data.hasMeasuredWindSpeed === true) { htmlString+=`
实测风速:
${data.measuredWindSpeed} m/s
转换风速:
${data.convertedWindSpeed} m/s
` } else { htmlString+=`
区域类型:
${areaTypeMap[data.areaType]}
测点高度:
${data.measurementHeight} m
点位风速:
${data.pointWindSpeed} m/s
推算风速:
${data.calculatedwindspeed} m/s
` } htmlString += `

` const filename = `${data.id}-${version}.pdf` var opt = { margin: 10, filename: filename, image: { type: 'jpeg', quality: 0.98 }, html2canvas: { scale: 2 }, jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' } }; // 执行下载,使用htmlString作为内容源 html2pdf().set(opt).from(htmlString).save(); }; // 工具函数 // 函数用于将日期格式化为 xxxx-xx-xx 形式 function formatDateToYYYYMMDD(date) { // 使用Date对象解析这个日期字符串 var date = new Date(date); var year = date.getFullYear(); // 获取年份 var month = (date.getMonth() + 1).toString().padStart(2, '0'); // 获取月份,并确保两位数 var day = date.getDate().toString().padStart(2, '0'); // 获取日期,并确保两位数 return year + '-' + month + '-' + day; // 组合成 xxxx-xx-xx 形式 } //稳定度描述映射 function replaceSuitabilityText(data, type) { // 定义映射关系 const suitabilityMap = { 'a': '不利于污染物的扩散和稀释,适宜于进行无组织排放监测', 'b': '较不利于污染物的扩散和稀释,较适宜于进行无组织排放监测', 'c': '有利于污染物的扩散和稀释,较不适宜于进行无组织排放监测', 'd': '很有利于污染物的扩散和稀释,不适宜于进行无组织排放监测', 'wind0': '静风', 'overall0': '取消监测或改期' }; // 将输入转换为小写(或大写)以实现大小写不敏感 const normalizedData = String(data).toLowerCase(); // 处理特殊类型 if (type === 'wind' && normalizedData === '0') return suitabilityMap['wind0']; if (type === 'overall' && normalizedData === '0') return suitabilityMap['overall0']; // 处理普通类型 if (type === 'normal' || type === "wind" || type === "overall") { // 检查映射表中是否存在转换后的小写字段 if (suitabilityMap[normalizedData]) { return suitabilityMap[normalizedData]; } // 如果找不到,返回原值 return data; } // 默认返回原值 return data; } // 显示通知 function showNotification(message, type = 'success') { const notification = document.getElementById('notification'); notification.textContent = message; notification.style.backgroundColor = type === 'success' ? '#4CAF50' : '#f44336'; notification.style.display = 'block'; setTimeout(() => { notification.style.display = 'none'; }, 3000); }