-
-
欢迎使用 ERP Auto
-
- 自动化处理 ERP 系统中的数据提取和清理任务。请使用上方导航栏选择您需要的功能模块。
-
+
+
+
+
欢迎使用 ERP Auto
+
+ 自动化处理 ERP 系统中的数据提取和清理任务。请使用上方导航栏选择您需要的功能模块。
+
+
)}
{currentPage === 'extractor' &&
}
diff --git a/src/renderer/src/pages/CleanerPage.tsx b/src/renderer/src/pages/CleanerPage.tsx
index e6e2272..ee49fc3 100644
--- a/src/renderer/src/pages/CleanerPage.tsx
+++ b/src/renderer/src/pages/CleanerPage.tsx
@@ -65,6 +65,13 @@ const CleanerPage: React.FC = () => {
// Material type management dialog state
const [isTypeDialogOpen, setIsTypeDialogOpen] = useState(false)
+ // Execution settings state
+ const [headless, setHeadless] = useState(() => {
+ const saved = sessionStorage.getItem('cleaner_headless')
+ return saved ? saved === 'true' : true
+ })
+ const [showSettingsMenu, setShowSettingsMenu] = useState(false)
+
// Check admin status and get shared Production IDs on mount
React.useEffect(() => {
const initializePage = async () => {
@@ -100,6 +107,23 @@ const CleanerPage: React.FC = () => {
sessionStorage.setItem('cleaner_dryRun', dryRun.toString())
}, [dryRun])
+ useEffect(() => {
+ sessionStorage.setItem('cleaner_headless', headless.toString())
+ }, [headless])
+
+ useEffect(() => {
+ const handleClickOutside = (event: MouseEvent) => {
+ if (showSettingsMenu) {
+ const target = event.target as HTMLElement
+ if (!target.closest('[data-settings-menu]')) {
+ setShowSettingsMenu(false)
+ }
+ }
+ }
+ document.addEventListener('mousedown', handleClickOutside)
+ return () => document.removeEventListener('mousedown', handleClickOutside)
+ }, [showSettingsMenu])
+
useEffect(() => {
sessionStorage.setItem('cleaner_validationMode', valMode)
}, [valMode])
@@ -253,7 +277,8 @@ const CleanerPage: React.FC = () => {
const response = await window.electron.cleaner.runCleaner({
orderNumbers: orderNumberList,
materialCodes: materialCodeList,
- dryRun
+ dryRun,
+ headless
})
if (response.success && response.data) {
@@ -307,10 +332,10 @@ const CleanerPage: React.FC = () => {
return (
- {/* 左栏:数据源与执行控制区 */}
-
- {/* 1. 数据来源选择 (仅 Admin 可见) */}
- {isAdmin && (
+ {/* 左栏:数据源与执行控制区 (仅 Admin 可见) */}
+ {isAdmin && (
+
+ {/* 1. 数据来源选择 */}
@@ -361,10 +386,8 @@ const CleanerPage: React.FC = () => {
- )}
- {/* 2. 负责人筛选 (仅 Admin 可见) */}
- {isAdmin && (
+ {/* 2. 负责人筛选 */}
@@ -414,43 +437,24 @@ const CleanerPage: React.FC = () => {
)}
- )}
-
- {/* 3. 基础执行控制区 */}
-
- {isAdmin && (
-
-
-
预览模式 (Dry-Run)
-
- 仅执行页面操作定位,不保存更改
-
-
-
-
- )}
-
-
-
-
-
+ )}
{/* 右栏:结果表格与工具栏 */}
-
+
+ {/* 获取物料状态按钮 */}
+
+
+
+
{/* 顶部操作条 */}
-
+
{/* 表格区域 */}
-
+
@@ -616,37 +620,67 @@ const CleanerPage: React.FC = () => {
{/* 底部状态与执行区 */}
-
+
共计 {filteredResults.length} 条记录 | 已选中{' '}
{selectedItems.size} 条
- {isAdmin && dryRun && (
-
- 当前为预览模式
-
- )}
-
+
+
+ {showSettingsMenu && (
+
+
+
+
+
预览模式 (Dry-Run)
+
+ 仅执行页面操作定位,不保存更改
+
+
+
+
+
+
+
+
+ 后台模式 (Headless)
+
+
+ 浏览器在后台运行,不显示界面
+
+
+
+
+
+
+
+ )}
+