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():