(preview)
| 143 | } |
| 144 | |
| 145 | function renderRepairPreview(preview) { |
| 146 | const container = document.getElementById('repair-center-preview-list'); |
| 147 | if (!container) return; |
| 148 | const items = Array.isArray(preview?.items) ? preview.items : []; |
| 149 | if (!items.length) { |
| 150 | container.innerHTML = '<div class="empty-state">暂无预览结果</div>'; |
| 151 | return; |
| 152 | } |
| 153 | container.innerHTML = items.map((item) => { |
| 154 | const impactCount = Number(item?.impact_count || 0); |
| 155 | const checked = impactCount > 0 ? 'checked' : ''; |
| 156 | return ` |
| 157 | <label class="repair-center-preview-item"> |
| 158 | <input type="checkbox" class="repair-center-key" data-repair-key="${escapeHtml(item?.key || '')}" ${checked}> |
| 159 | <div> |
| 160 | <div><strong>${escapeHtml(item?.name || item?.key || '-')}</strong></div> |
| 161 | <div>预计影响:${impactCount}</div> |
| 162 | <div class="hint-inline">${escapeHtml(JSON.stringify(item?.preview || {}))}</div> |
| 163 | </div> |
| 164 | </label> |
| 165 | `; |
| 166 | }).join(''); |
| 167 | } |
| 168 | |
| 169 | function renderRepairRollbacks(items) { |
| 170 | const container = document.getElementById('repair-center-rollbacks'); |
no test coverage detected