feat: 自动流程支持按轮重试并输出汇总日志

This commit is contained in:
szy
2026-04-13 17:18:38 +08:00
parent 65eb48440f
commit 8f201bbea5
3 changed files with 237 additions and 160 deletions
+3 -3
View File
@@ -172,10 +172,10 @@
</div>
</div>
<div class="data-row data-check-row">
<span class="data-label">兜底</span>
<span class="data-label">自动重试</span>
<label class="data-check" for="input-auto-skip-failures">
<input type="checkbox" id="input-auto-skip-failures" />
<span>出现错误无法继续时,直接丢弃当前线程并新开一轮,直到补足目标运行次数</span>
<input type="checkbox" id="input-auto-skip-failures" checked />
<span>自动模式遇到单步错误时,会先显示报错,再等待几秒后从当前轮第 1 步重新开始</span>
</label>
</div>
<div class="data-row">
+4 -4
View File
@@ -614,7 +614,7 @@ function collectSettingsPayload() {
inbucketMailbox: inputInbucketMailbox.value.trim(),
cloudflareDomain: selectedCloudflareDomain,
cloudflareDomains: domains,
autoRunSkipFailures: inputAutoSkipFailures.checked,
autoRunSkipFailures: true,
autoRunDelayEnabled: inputAutoDelayEnabled.checked,
autoRunDelayMinutes: normalizeAutoDelayMinutes(inputAutoDelayMinutes.value),
};
@@ -757,7 +757,7 @@ function applyAutoRunStatus(payload = currentAutoRun) {
btnAutoRun.disabled = currentAutoRun.autoRunning;
btnFetchEmail.disabled = locked;
inputEmail.disabled = locked;
inputAutoSkipFailures.disabled = scheduled;
inputAutoSkipFailures.disabled = true;
if (currentAutoRun.totalRuns > 0) {
inputRunCount.value = String(currentAutoRun.totalRuns);
@@ -855,7 +855,7 @@ function applySettingsState(state) {
inputInbucketMailbox.value = state?.inbucketMailbox || '';
renderCloudflareDomainOptions(state?.cloudflareDomain || '');
setCloudflareDomainEditMode(false, { clearInput: true });
inputAutoSkipFailures.checked = Boolean(state?.autoRunSkipFailures);
inputAutoSkipFailures.checked = true;
inputAutoDelayEnabled.checked = Boolean(state?.autoRunDelayEnabled);
inputAutoDelayMinutes.value = String(normalizeAutoDelayMinutes(state?.autoRunDelayMinutes));
if (state?.autoRunTotalRuns) {
@@ -2113,7 +2113,7 @@ btnAutoRun.addEventListener('click', async () => {
payload: {
totalRuns,
delayMinutes,
autoRunSkipFailures: inputAutoSkipFailures.checked,
autoRunSkipFailures: true,
mode,
},
});