improve: 改进日报生成后的用户体验
1. 改进生成成功提示:
- 添加更详细的统计信息展示
- 显示求和结果
- 添加醒目的"立即下载Excel文件"按钮
- 添加"查看历史记录"快捷按钮
- 添加提示说明日报也保存在历史记录中
2. 改进生成失败提示:
- 显示详细错误信息
- 列出可能的原因
- 提供解决建议
3. 改进历史记录页面:
- 下载按钮改为绿色,更醒目
- 添加下载图标📥
- 空状态提示更友好
- 时间范围显示更清晰
4. 添加使用说明:
- 在日报生成页面顶部添加使用流程说明
- 告诉用户生成后如何找到和下载日报
5. 创建详细说明文档:
- 如何找到生成的日报.md
- 包含3种查找方法
- 常见问题解答
- 文件命名规则和存储位置说明
现在用户可以清楚地知道:
- 生成成功后如何立即下载
- 如何通过历史记录找到日报
- 如何直接访问文件目录
- 生成失败时如何排查问题
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
This commit is contained in:
@@ -366,6 +366,14 @@
|
||||
<!-- 日报生成 -->
|
||||
<div id="generate-tab" class="tab-content">
|
||||
<div class="card">
|
||||
<div class="alert alert-info" style="margin-bottom: 20px;">
|
||||
<strong>💡 使用说明:</strong><br>
|
||||
1. 选择已创建的配置<br>
|
||||
2. 选择时间范围(可点击预设按钮快速选择)<br>
|
||||
3. 点击"生成日报"按钮<br>
|
||||
4. 生成成功后,点击"立即下载Excel文件"按钮下载,或切换到"历史记录"标签页查看和下载
|
||||
</div>
|
||||
|
||||
<h3 style="margin-bottom: 20px;">生成日报</h3>
|
||||
|
||||
<div class="form-group">
|
||||
@@ -867,14 +875,49 @@
|
||||
if (result.success) {
|
||||
resultDiv.innerHTML = `
|
||||
<div class="alert alert-success">
|
||||
<strong>日报生成成功!</strong><br>
|
||||
订单数量: ${result.total_orders}<br>
|
||||
总金额: ¥${result.total_amount.toFixed(2)}<br>
|
||||
<a href="/api/download?path=${result.file_path}" target="_blank" class="btn btn-sm btn-success" style="margin-top: 10px;">下载Excel</a>
|
||||
<strong>✓ 日报生成成功!</strong><br><br>
|
||||
<div style="margin-left: 20px;">
|
||||
<strong>统计信息:</strong><br>
|
||||
• 订单数量: ${result.total_orders} 条<br>
|
||||
• 总金额: ¥${result.total_amount.toFixed(2)}<br>
|
||||
${result.sum_results && Object.keys(result.sum_results).length > 0 ?
|
||||
'<strong>求和结果:</strong><br>' +
|
||||
Object.entries(result.sum_results).map(([field, value]) =>
|
||||
`• ${field}: ${typeof value === 'number' ? value.toFixed(2) : value}`
|
||||
).join('<br>')
|
||||
: ''}
|
||||
</div>
|
||||
<br>
|
||||
<div style="display: flex; gap: 10px; margin-top: 15px;">
|
||||
<a href="/api/download?path=${result.file_path}" target="_blank" class="btn btn-success">
|
||||
📥 立即下载Excel文件
|
||||
</a>
|
||||
<button class="btn btn-primary" onclick="switchTab('history'); document.querySelectorAll('.tab')[2].click();">
|
||||
📋 查看历史记录
|
||||
</button>
|
||||
</div>
|
||||
<br>
|
||||
<div style="font-size: 12px; color: #666; margin-top: 10px;">
|
||||
💡 提示:生成的日报也会保存在"历史记录"标签页中,可以随时下载。
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
} else {
|
||||
resultDiv.innerHTML = `<div class="alert alert-error">生成失败: ${result.message}</div>`;
|
||||
resultDiv.innerHTML = `
|
||||
<div class="alert alert-error">
|
||||
<strong>✗ 生成失败</strong><br><br>
|
||||
<strong>错误信息:</strong><br>
|
||||
${result.message}<br><br>
|
||||
<strong>可能的原因:</strong><br>
|
||||
• 选择的时间范围内没有符合条件的订单<br>
|
||||
• 数据库连接失败<br>
|
||||
• 配置信息有误<br><br>
|
||||
<strong>建议:</strong><br>
|
||||
• 检查时间范围是否正确<br>
|
||||
• 确认配置中的企业/用户是否有订单数据<br>
|
||||
• 查看服务器日志获取详细错误信息
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
} catch (error) {
|
||||
resultDiv.innerHTML = `<div class="alert alert-error">生成失败: ${error.message}</div>`;
|
||||
@@ -903,25 +946,27 @@
|
||||
const tbody = document.getElementById('history-list');
|
||||
|
||||
if (history.length === 0) {
|
||||
tbody.innerHTML = '<tr><td colspan="8" class="empty">暂无历史记录</td></tr>';
|
||||
tbody.innerHTML = '<tr><td colspan="8" class="empty">暂无历史记录<br><br>生成日报后,记录会显示在这里</td></tr>';
|
||||
return;
|
||||
}
|
||||
|
||||
tbody.innerHTML = history.map(item => `
|
||||
<tr>
|
||||
<td>${item.report_date}</td>
|
||||
<td>${item.start_time || '-'} ~ ${item.end_time || '-'}</td>
|
||||
<td style="font-size: 12px;">${item.start_time || '-'}<br>至<br>${item.end_time || '-'}</td>
|
||||
<td>${item.config_name || '-'}</td>
|
||||
<td>${item.split_name || item.split_value}</td>
|
||||
<td>${item.total_orders}</td>
|
||||
<td>¥${(item.total_amount || 0).toFixed(2)}</td>
|
||||
<td><strong>${item.total_orders}</strong></td>
|
||||
<td><strong>¥${(item.total_amount || 0).toFixed(2)}</strong></td>
|
||||
<td>
|
||||
<span class="status-badge ${item.status === 1 ? 'status-active' : 'status-inactive'}">
|
||||
${item.status === 1 ? '成功' : '失败'}
|
||||
${item.status === 1 ? '✓ 成功' : '✗ 失败'}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
${item.file_path ? `<a href="/api/download?path=${item.file_path}" target="_blank" class="btn btn-sm btn-primary">下载</a>` : '-'}
|
||||
${item.status === 1 && item.file_path ?
|
||||
`<a href="/api/download?path=${item.file_path}" target="_blank" class="btn btn-sm btn-success">📥 下载</a>` :
|
||||
'<span style="color: #999;">-</span>'}
|
||||
</td>
|
||||
</tr>
|
||||
`).join('');
|
||||
|
||||
99
如何找到生成的日报.md
Normal file
99
如何找到生成的日报.md
Normal file
@@ -0,0 +1,99 @@
|
||||
# 如何找到生成的日报
|
||||
|
||||
## 方法1:生成后立即下载(推荐)
|
||||
|
||||
在"日报生成"标签页生成日报后:
|
||||
|
||||
1. 生成成功后,页面会显示绿色的成功提示框
|
||||
2. 提示框中有 **"📥 立即下载Excel文件"** 按钮
|
||||
3. 点击该按钮即可下载Excel文件
|
||||
|
||||
**下载位置**:浏览器默认下载目录(通常是 `C:\Users\你的用户名\Downloads\`)
|
||||
|
||||
## 方法2:通过历史记录下载
|
||||
|
||||
如果错过了立即下载,可以通过历史记录找到:
|
||||
|
||||
1. 点击顶部的 **"历史记录"** 标签
|
||||
2. 找到刚才生成的日报记录
|
||||
3. 点击 **"📥 下载"** 按钮
|
||||
|
||||
## 方法3:直接访问文件目录
|
||||
|
||||
生成的Excel文件保存在:
|
||||
|
||||
```
|
||||
项目目录/public/reports/
|
||||
```
|
||||
|
||||
例如:
|
||||
```
|
||||
D:\py\code\ylt_diy\ylt_daily_report_generation\public\reports\
|
||||
```
|
||||
|
||||
可以直接打开这个文件夹查看所有生成的Excel文件。
|
||||
|
||||
## 文件命名规则
|
||||
|
||||
生成的Excel文件名格式:
|
||||
```
|
||||
daily_report_配置名称_拆分值_时间戳.xlsx
|
||||
```
|
||||
|
||||
例如:
|
||||
```
|
||||
daily_report_79路公交日报_国营-西南-79路_20250108_143025.xlsx
|
||||
```
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q: 生成后没有看到下载按钮?
|
||||
A: 可能是生成失败了,请查看页面上的错误提示信息。
|
||||
|
||||
### Q: 历史记录中没有看到刚生成的日报?
|
||||
A: 请刷新历史记录页面(点击"刷新"按钮)。
|
||||
|
||||
### Q: 下载按钮点击后没有反应?
|
||||
A:
|
||||
- 检查浏览器是否阻止了下载
|
||||
- 查看浏览器控制台(F12)是否有错误
|
||||
- 确认文件是否已生成(查看 public/reports/ 目录)
|
||||
|
||||
### Q: 文件下载后打不开?
|
||||
A:
|
||||
- 使用 Microsoft Excel 2016+ 打开
|
||||
- 或使用免费软件 LibreOffice Calc
|
||||
- 检查文件大小是否大于0
|
||||
|
||||
### Q: 定时任务生成的日报在哪里?
|
||||
A:
|
||||
- 定时任务生成的日报也会保存在历史记录中
|
||||
- 切换到"历史记录"标签页查看
|
||||
- 或直接访问 public/reports/ 目录
|
||||
|
||||
## 批量下载
|
||||
|
||||
如果需要批量下载多个日报:
|
||||
|
||||
1. 切换到"历史记录"标签页
|
||||
2. 逐个点击"下载"按钮
|
||||
3. 或进入 public/reports/ 目录手动复制多个文件
|
||||
|
||||
## 文件存储位置说明
|
||||
|
||||
- **服务器端**:`项目目录/public/reports/*.xlsx`
|
||||
- **下载后**:浏览器默认下载目录
|
||||
- **建议**:定期备份重要的日报文件到其他位置
|
||||
|
||||
## 查看服务器日志
|
||||
|
||||
如果生成失败,可以查看服务器控制台输出的日志:
|
||||
|
||||
```
|
||||
[时间] 开始生成: 配置名称
|
||||
✓ 成功: X 条订单, 金额: XXX.XX
|
||||
或
|
||||
✗ 失败: 错误信息
|
||||
```
|
||||
|
||||
根据日志信息可以判断失败原因。
|
||||
Reference in New Issue
Block a user