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('');
|
||||
|
||||
Reference in New Issue
Block a user