diff --git a/app.go b/app.go index 8df3055..94068ee 100644 --- a/app.go +++ b/app.go @@ -70,7 +70,7 @@ func (a *App) startup(ctx context.Context) { a.client = client.New(a.cfg.TimeAPIURL, a.trace) a.font = imgpkg.LoadFont(a.paths.FontFiles) - a.scheduler = seckill.New(a.client, a.paths, a.font, a.cfg.Concurrency, a.cfg.Attempts) + a.scheduler = seckill.New(a.client, a.paths, a.font, a.cfg.Concurrency, a.cfg.Attempts, a.cfg.RetryStages) a.scheduler.LoadAccounts() if err := os.MkdirAll(a.paths.SuccessDir, 0755); err != nil { @@ -563,10 +563,10 @@ func (a *App) SaveSettings(cfg types.Config) map[string]any { // 运行时生效 a.cfg = cfg logger.SetMinLevel(cfg.LogLevel) - a.scheduler.UpdateSettings(cfg.Concurrency, cfg.Attempts) + a.scheduler.UpdateSettings(cfg.Concurrency, cfg.Attempts, cfg.RetryStages) - logger.LogEvent("配置", "success", "配置已保存并生效: 日志等级=%s 并发=%d 重试=%d trace=%v", - cfg.LogLevel, cfg.Concurrency, cfg.Attempts, cfg.TraceEnabled) + logger.LogEvent("配置", "success", "配置已保存并生效: 日志等级=%s 并发=%d 重试=%d 重试阶段=%d trace=%v", + cfg.LogLevel, cfg.Concurrency, cfg.Attempts, len(cfg.RetryStages), cfg.TraceEnabled) return map[string]any{"success": true} } diff --git a/frontend/src/components/ck/CKManager.vue b/frontend/src/components/ck/CKManager.vue index 3fc1a59..42d3860 100644 --- a/frontend/src/components/ck/CKManager.vue +++ b/frontend/src/components/ck/CKManager.vue @@ -352,7 +352,8 @@ const handleOrganize = async () => { } .btn-primary:hover { - filter: brightness(1.08); + background: #4d9aff; + border-color: #4d9aff; } .btn-success { @@ -362,7 +363,8 @@ const handleOrganize = async () => { } .btn-success:hover { - filter: brightness(1.08); + background: #4fc95f; + border-color: #4fc95f; } .btn-compact { diff --git a/frontend/src/components/modal/SettingsModal.vue b/frontend/src/components/modal/SettingsModal.vue index d167c90..f460c7a 100644 --- a/frontend/src/components/modal/SettingsModal.vue +++ b/frontend/src/components/modal/SettingsModal.vue @@ -1,6 +1,6 @@ @@ -133,25 +150,65 @@ defineExpose({ open, close }) + +
+ +
+
+ 阶段{{ index + 1 }}: +
+
+ + 秒内 +
+ → +
+ + ms +
+
+ +
+ +
+
按经过秒数从小到大排列,每个阶段设置不同的重试频率
+
+
💡 抢购策略说明
-
-
⚠️ 自动停止条件
- -