feat(readme): 对部分文本进行格式调整,包括金额数字空格分隔、API 参数说明优化、标题层级对齐等,提升可读性。
```
This commit is contained in:
2025-12-15 10:36:18 +08:00
parent 745faa0ecc
commit b044e918aa
9 changed files with 949 additions and 80 deletions

View File

@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>南京公共工程建设中心 - 公告抓取工具</title>
<title>南京公共工程建设中心 - 公告采集工具</title>
<style>
* {
margin: 0;
@@ -335,13 +335,14 @@
<div class="container">
<div class="header">
<h1>南京公共工程建设中心</h1>
<p>公告抓取与分析工具</p>
<p>公告采集与分析工具</p>
</div>
<div class="tabs">
<button class="tab active" onclick="switchTab('list')">公告列表</button>
<button class="tab" onclick="switchTab('detail')">详情抓取</button>
<button class="tab" onclick="switchTab('detail')">详情采集</button>
<button class="tab" onclick="switchTab('report')">生成报告</button>
<button class="tab" onclick="switchTab('email')">邮件配置</button>
</div>
<div class="content">
@@ -359,7 +360,7 @@
<div id="listLoading" class="loading">
<div class="spinner"></div>
<p>正在抓取...</p>
<p>正在采集...</p>
</div>
<div id="listResults" class="results"></div>
@@ -372,12 +373,12 @@
</div>
</div>
<!-- 详情抓取 -->
<!-- 详情采集 -->
<div id="detail" class="tab-content">
<div class="form-group">
<div class="checkbox-wrapper" onclick="document.getElementById('useDetailDateRange').click();">
<input type="checkbox" id="useDetailDateRange" onchange="toggleDetailDateRange()" onclick="event.stopPropagation();">
<label for="useDetailDateRange">按时间范围抓取</label>
<label for="useDetailDateRange">按时间范围采集</label>
</div>
</div>
@@ -391,7 +392,7 @@
<input type="date" id="detailEndDate">
</div>
<div class="form-group">
<label>最大抓取页数</label>
<label>最大采集页数</label>
<input type="number" id="detailMaxPages" value="1" min="1">
</div>
</div>
@@ -402,16 +403,16 @@
<input type="text" id="detailUrl" placeholder="默认: https://gjzx.nanjing.gov.cn/gggs/">
</div>
<div class="form-group">
<label>抓取数量</label>
<label>采集数量</label>
<input type="number" id="detailLimit" value="5" min="1" max="50">
</div>
</div>
<button class="btn" onclick="fetchDetails()">开始抓取</button>
<button class="btn" onclick="fetchDetails()">开始采集</button>
<div id="detailLoading" class="loading">
<div class="spinner"></div>
<p>正在抓取详情...</p>
<p>正在采集详情...</p>
</div>
<div id="detailResults" class="results"></div>
@@ -422,7 +423,7 @@
<div class="form-group">
<div class="checkbox-wrapper" onclick="document.getElementById('useDateRange').click();">
<input type="checkbox" id="useDateRange" onchange="toggleDateRange()" onclick="event.stopPropagation();">
<label for="useDateRange">按时间范围抓取</label>
<label for="useDateRange">按时间范围采集</label>
</div>
</div>
@@ -436,7 +437,7 @@
<input type="date" id="endDate">
</div>
<div class="form-group">
<label>最大抓取页数</label>
<label>最大采集页数</label>
<input type="number" id="maxPages" value="1" min="1" >
</div>
</div>
@@ -447,7 +448,7 @@
<input type="text" id="reportUrl" placeholder="默认: https://gjzx.nanjing.gov.cn/gggs/">
</div>
<div class="form-group">
<label>抓取数量</label>
<label>采集数量</label>
<input type="number" id="reportLimit" value="15" min="1" max="50">
</div>
</div>
@@ -459,6 +460,7 @@
<button class="btn" onclick="generateReport()">生成报告</button>
<button class="btn export-btn" onclick="exportReport()" id="exportBtn" style="display:none;">导出Word</button>
<button class="btn" onclick="sendReportByEmail()" id="sendEmailBtn" style="display:none; background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);">发送邮件</button>
<div id="reportLoading" class="loading">
<div class="spinner"></div>
@@ -467,6 +469,56 @@
<div id="reportResults" class="results"></div>
</div>
<!-- 邮件配置 -->
<div id="email" class="tab-content">
<h2 style="margin-bottom: 20px; color: #667eea;">邮件配置</h2>
<p style="color: #666; margin-bottom: 20px;">配置SMTP邮件服务器信息,用于发送报告到指定邮箱</p>
<div class="form-group">
<label>SMTP服务器地址 *</label>
<input type="text" id="smtpHost" placeholder="例如: smtp.qq.com, smtp.163.com, smtp.gmail.com">
</div>
<div class="form-group">
<label>SMTP端口 *</label>
<input type="number" id="smtpPort" value="587" placeholder="通常为 587 (TLS) 或 465 (SSL)">
</div>
<div class="form-group">
<label>发件人邮箱 (SMTP用户名) *</label>
<input type="email" id="smtpUser" placeholder="your-email@example.com">
</div>
<div class="form-group">
<label>SMTP密码/授权码 *</label>
<input type="password" id="smtpPass" placeholder="邮箱密码或授权码">
</div>
<div class="form-group">
<label>收件人邮箱 (多个用逗号分隔) *</label>
<input type="text" id="recipients" placeholder="email1@example.com, email2@example.com">
</div>
<button class="btn" onclick="saveEmailConfig()">保存配置</button>
<button class="btn" onclick="testEmailConfig()" style="background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);">测试连接</button>
<div id="emailConfigStatus" style="margin-top: 20px;"></div>
<div style="margin-top: 30px; padding: 20px; background: #f0f8ff; border-radius: 8px; border-left: 4px solid #667eea;">
<h3 style="margin-top: 0; color: #667eea;">常用邮箱配置参考</h3>
<ul style="line-height: 1.8; color: #666;">
<li><strong>QQ邮箱:</strong> smtp.qq.com, 端口 587 或 465, 需要使用授权码</li>
<li><strong>163邮箱:</strong> smtp.163.com, 端口 465 或 25, 需要使用授权码</li>
<li><strong>Gmail:</strong> smtp.gmail.com, 端口 587 或 465, 需要开启"允许不够安全的应用"</li>
<li><strong>Outlook:</strong> smtp-mail.outlook.com, 端口 587</li>
<li><strong>企业邮箱:</strong> 请咨询您的IT管理员获取SMTP配置</li>
</ul>
<p style="margin: 10px 0 0 0; color: #999; font-size: 13px;">
提示: QQ和163邮箱需要在邮箱设置中开启SMTP服务并生成授权码,授权码不是邮箱密码。
</p>
</div>
</div>
</div>
</div>