From a37cf4ad91b97a131f2530cd9189fed8290ea8e6 Mon Sep 17 00:00:00 2001 From: Misaka_Company Date: Fri, 27 Feb 2026 16:04:17 +0800 Subject: [PATCH] fix: persist execution.dryrun setting and add headless mode option for User - Add EXECUTION_DRYRUN to save_to_env() to fix dryrun setting not persisting after restart - Add headless mode checkbox in User mode settings for browser visibility control Co-Authored-By: Claude (glm-5) --- config/loader.py | 2 ++ gui/settings_tab.py | 22 ++++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/config/loader.py b/config/loader.py index 9d753bb..7b9a29a 100644 --- a/config/loader.py +++ b/config/loader.py @@ -162,6 +162,8 @@ class ConfigLoader: "VALIDATION_ENABLE_CRUD": config.validation.enable_crud_operations, "VALIDATION_DEFAULT_MANAGER": config.validation.default_manager, "VALIDATION_MATCH_MODE": config.validation.match_mode, + # 执行配置 + "EXECUTION_DRYRUN": config.execution.dryrun, } return save_env_file(env_file, env_dict) diff --git a/gui/settings_tab.py b/gui/settings_tab.py index 6f3af15..a08e149 100644 --- a/gui/settings_tab.py +++ b/gui/settings_tab.py @@ -333,12 +333,26 @@ class SettingsTab(ttk.Frame): ).grid(row=0, column=0, sticky="w", pady=5) # 说明文字 - hint_label = ttk.Label( + dryrun_hint = ttk.Label( group, text="提示:勾选后,执行删除操作时将只预览不实际保存,用于测试流程。", foreground="gray", ) - hint_label.grid(row=1, column=0, sticky="w", pady=(0, 5)) + dryrun_hint.grid(row=1, column=0, sticky="w", pady=(0, 5)) + + # 无头模式设置 + self.user_headless_var = tk.BooleanVar(value=True) + ttk.Checkbutton( + group, text="无头模式 (不显示浏览器)", variable=self.user_headless_var + ).grid(row=2, column=0, sticky="w", pady=5) + + # 说明文字 + headless_hint = ttk.Label( + group, + text="提示:勾选后浏览器将在后台运行,不显示窗口。", + foreground="gray", + ) + headless_hint.grid(row=3, column=0, sticky="w", pady=(0, 5)) def _create_extraction_group(self, parent): """创建处理配置组""" @@ -516,6 +530,8 @@ class SettingsTab(ttk.Frame): ) # 执行设置 self.user_dryrun_var.set(self.config.get("execution.dryrun", False)) + # 无头模式 + self.user_headless_var.set(self.config.get("erp.headless", True)) return # 管理员模式 - 加载所有配置 @@ -612,6 +628,8 @@ class SettingsTab(ttk.Frame): ) # 保存执行设置 self.config.set("execution.dryrun", self.user_dryrun_var.get()) + # 无头模式 + self.config.set("erp.headless", self.user_headless_var.get()) # 保存到文件 if self.config.save():