| 792 | } |
| 793 | |
| 794 | function updateStepLogsStats(data) { |
| 795 | if (!data || Object.keys(data).length === 0) { |
| 796 | elements.stepLogsStats.innerHTML = '<p class="text-muted">无步骤日志数据</p>'; |
| 797 | return; |
| 798 | } |
| 799 | |
| 800 | const html = ` |
| 801 | <div class="stat-item"> |
| 802 | <span class="stat-label">总日志数:</span> |
| 803 | <span class="stat-value">${data.total_logs}</span> |
| 804 | </div> |
| 805 | <div class="mt-3"> |
| 806 | <h6>状态分布:</h6> |
| 807 | ${Object.entries(data.status_distribution || {}).map(([status, count]) => ` |
| 808 | <div class="stat-item"> |
| 809 | <span class="stat-label">${status}:</span> |
| 810 | <span class="stat-value">${count}</span> |
| 811 | </div> |
| 812 | `).join('')} |
| 813 | </div> |
| 814 | <div class="mt-3"> |
| 815 | <h6>步骤类型分布:</h6> |
| 816 | ${Object.entries(data.step_type_distribution || {}).map(([type, count]) => ` |
| 817 | <div class="stat-item"> |
| 818 | <span class="stat-label">${type}:</span> |
| 819 | <span class="stat-value">${count}</span> |
| 820 | </div> |
| 821 | `).join('')} |
| 822 | </div> |
| 823 | `; |
| 824 | |
| 825 | elements.stepLogsStats.innerHTML = html; |
| 826 | } |
| 827 | |
| 828 | // 事件处理函数 |
| 829 | function bindStepEventListeners() { |