dataTool/preload.js

30 lines
1.1 KiB
JavaScript
Raw Permalink Normal View History

2025-06-20 16:55:23 +08:00
const {contextBridge, ipcRenderer} = require('electron');
2025-04-01 17:15:19 +08:00
// 暴露安全的API给渲染进程
contextBridge.exposeInMainWorld('electronAPI', {
2025-06-20 16:55:23 +08:00
// 文件操作
selectExcelFile: () => ipcRenderer.invoke('select-excel-file'),
2025-06-04 17:52:17 +08:00
2025-06-20 16:55:23 +08:00
// 数据库操作
getProjects: () => ipcRenderer.invoke('get-projects'),
getProjectsRange: () => ipcRenderer.invoke('get-projects-range'),
getTreeStructure: () => ipcRenderer.invoke('get-tree-structure'),
filterProjects: (filters) => ipcRenderer.invoke('filter-projects', filters),
updateProject: (project) => ipcRenderer.invoke('update-project', project),
deleteProject: (projectId) => ipcRenderer.invoke('delete-project', projectId),
2025-06-04 17:52:17 +08:00
2025-06-20 16:55:23 +08:00
// Excel处理
importExcel: (filePath) => ipcRenderer.invoke('import-excel', filePath),
2025-06-04 17:52:17 +08:00
2025-06-20 16:55:23 +08:00
// 数据清除
clearAllData: () => ipcRenderer.invoke('clear-all-data'),
2025-06-04 17:52:17 +08:00
2025-06-20 16:55:23 +08:00
// 事件监听
onImportProgress: (callback) => {
// 移除之前的监听器,避免重复
ipcRenderer.removeAllListeners('import-progress');
// 添加新的监听器
ipcRenderer.on('import-progress', (event, data) => callback(data));
}
2025-04-01 17:15:19 +08:00
});