(rollbackId, btn)
| 457 | } |
| 458 | |
| 459 | async function rollbackRepairPoint(rollbackId, btn) { |
| 460 | const id = String(rollbackId || '').trim(); |
| 461 | if (!id) return; |
| 462 | if (btn) loading.show(btn, '回滚中...'); |
| 463 | try { |
| 464 | const data = await api.post(`/selfcheck/repair-center/rollbacks/${encodeURIComponent(id)}/rollback`, {}); |
| 465 | toast.success(`回滚完成:恢复账号 ${Number(data?.result?.restored_accounts || 0)} 条`); |
| 466 | await loadRuns(); |
| 467 | await loadRepairRollbacks(); |
| 468 | } catch (error) { |
| 469 | toast.error(`回滚失败: ${parseErrorMessage(error)}`); |
| 470 | } finally { |
| 471 | if (btn) loading.hide(btn); |
| 472 | } |
| 473 | } |
| 474 | |
| 475 | function bindEvents() { |
| 476 | const runBtn = document.getElementById('selfcheck-run-btn'); |
no test coverage detected