Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/bilybaofu_baby-health-tracker.json
T

1 line
32 KiB
JSON

{"repo": "bilybaofu/baby-health-tracker", "files": {"main.js": {"fa5ecd884a02f563d32484473ac9b2eb8394ced9": {"t": 1785746017.9454265, "n": 5022, "h": "5b1002c75c2473a9", "c": "/**\n * 婴幼儿健康跟踪系统 - 主入口文件\n * 百度OCR增强版 v11.0\n * \n * 主要功能:\n * - 初始化应用程序\n * - 检查浏览器兼容性\n * - 设置全局错误处理\n * - 加载必要的依赖项\n */\n\n// 全局配置\nwindow.APP_CONFIG = {\n name: '婴幼儿健康跟踪系统',\n version: '11.0',\n codename: 'BaiduOCR-Enhanced',\n author: 'Baby Health Tracker Team',\n buildDate: '2025-05-27',\n \n // API配置\n apis: {\n baidu: {\n ocrEndpoint: 'https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic',\n tokenEndpoint: 'https://aip.baidubce.com/oauth/2.0/token'\n },\n deepseek: {\n endpoint: 'https://api.deepseek.com/v1/chat/completions'\n }\n },\n \n // 功能开关\n features: {\n ocrEnabled: true,\n aiEnabled: true,\n exportEnabled: true,\n chartEnabled: true\n }\n};\n\n// 浏览器兼容性检查\nfunction checkBrowserSupport() {\n const features = {\n localStorage: typeof Storage !== 'undefined',\n fetch: typeof fetch !== 'undefined',\n canvas: !!document.createElement('canvas').getContext,\n fileReader: typeof FileReader !== 'undefined',\n formData: typeof FormData !== 'undefined'\n };\n\n const unsupported = Object.keys(features).filter(key => !features[key]);\n \n if (unsupported.length > 0) {\n console.warn('⚠️ 浏览器不支持以下功能:', unsupported);\n showCompatibilityWarning(unsupported);\n return false;\n }\n \n console.log('✅ 浏览器兼容性检查通过');\n return true;\n}\n\n// 显示兼容性警告\nfunction showCompatibilityWarning(unsupported) {\n const warningDiv = document.createElement('div');\n warningDiv.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n background: linear-gradient(135deg, #ff6b6b 0%, #ff5252 100%);\n color: white;\n padding: 15px;\n text-align: center;\n z-index: 9999;\n font-family: Arial, sans-serif;\n font-size: 14px;\n box-shadow: 0 2px 10px rgba(0,0,0,0.3);\n `;\n \n warningDiv.innerHTML = `\n <strong>⚠️ 浏览器兼容性警告</strong><br>\n 您的浏览器不支持以下功能:${unsupported.join(', ')}<br>\n 建议使用最新版的 Chrome、Firefox、Safari 或 Edge 浏览器\n <button onclick=\"this.parentElement.remove()\" style=\"margin-left: 15px; padding: 5px 10px; border: none; border-radius: 3px; cursor: pointer;\">关闭</button>\n `;\n \n document.body.insertBefore(warningDiv, document.body.firstChild);\n}\n\n// 全局错误处理\nfunction setupErrorHandling() {\n // 捕获未处理的Promise拒绝\n window.addEventListener('unhandledrejection', function(event) {\n console.error('🚨 未处理的Promise拒绝:', event.reason);\n \n // 如果是API相关错误,显示用户友好的提示\n if (event.reason && typeof event.reason === 'string') {\n if (event.reason.includes('API') || event.reason.includes('网络')) {\n showErrorMessage('网络连接或API服务异常,请检查网络连接或稍后重试');\n }\n }\n \n // 防止浏览器默认的错误提示\n event.preventDefault();\n });\n\n // 捕获JavaScript错误\n window.addEventListener('error', function(event) {\n console.error('🚨 JavaScript错误:', {\n message: event.message,\n filename: event.filename,\n lineno: event.lineno,\n colno: event.colno,\n error: event.error\n });\n });\n}\n\n// 显示错误消息\nfunction showErrorMessage(message) {\n if (window.babyTracker && window.babyTracker.showMessage) {\n window.babyTracker.showMessage(message, 'error');\n } else {\n alert(message);\n }\n}\n\n// 检查必要的依赖项\nfunction checkDependencies() {\n const dependencies = [\n { name: 'Chart.js', check: () => typeof Chart !== 'undefined' }\n ];\n\n const missing = dependencies.filter(dep => !dep.check());\n \n if (missing.length > 0) {\n console.warn('⚠️ 缺少依赖项:', missing.map(d => d.name));\n return false;\n }\n \n console.log('✅ 依赖项检查通过');\n return true;\n}\n\n// 性能监控\nfunction setupPerformanceMonitoring() {\n if ('performance' in window) {\n window.addEventListener('load', function() {\n setTimeout(function() {\n const perfData = performance.timing;\n const loadTime = perfData.loadEventEnd - perfData.navigationStart;\n console.log(`📊 页面加载时间: ${loadTime}ms`);\n \n if (loadTime > 3000) {\n console.warn('⚠️ 页面加载较慢,建议优化');\n }\n }, 0);\n });\n }\n}\n\n// 初始化应用程序\nfunction initializeApp() {\n console.log(`🎀 正在初始化 ${window.APP_CONFIG.name} v${window.APP_CONFIG.version}`);\n \n // 检查浏览器支持\n if (!checkBrowserSupport()) {\n return;\n }\n \n // 设置错误处理\n setupErrorHandling();\n \n // 性能监控\n setupPerformanceMonitoring();\n \n // 检查依赖项(延迟检查,因为可能还在加载)\n setTimeout(() => {\n checkDependencies();\n }, 100);\n \n console.log('✅ 应用程序初始化完成');\n}\n\n// 页面加载时初始化\nif (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', initializeApp);\n} else {\n initializeApp();\n}\n\n// 导出配置供其他模块使用\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = window.APP_CONFIG;\n}\n"}, "15ae93c2faea0f6f4d71dc1f915ee3346fd5664f": {"t": 1785758821.7570848, "n": 5022, "h": "5b1002c75c2473a9", "c": "/**\n * 婴幼儿健康跟踪系统 - 主入口文件\n * 百度OCR增强版 v11.0\n * \n * 主要功能:\n * - 初始化应用程序\n * - 检查浏览器兼容性\n * - 设置全局错误处理\n * - 加载必要的依赖项\n */\n\n// 全局配置\nwindow.APP_CONFIG = {\n name: '婴幼儿健康跟踪系统',\n version: '11.0',\n codename: 'BaiduOCR-Enhanced',\n author: 'Baby Health Tracker Team',\n buildDate: '2025-05-27',\n \n // API配置\n apis: {\n baidu: {\n ocrEndpoint: 'https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic',\n tokenEndpoint: 'https://aip.baidubce.com/oauth/2.0/token'\n },\n deepseek: {\n endpoint: 'https://api.deepseek.com/v1/chat/completions'\n }\n },\n \n // 功能开关\n features: {\n ocrEnabled: true,\n aiEnabled: true,\n exportEnabled: true,\n chartEnabled: true\n }\n};\n\n// 浏览器兼容性检查\nfunction checkBrowserSupport() {\n const features = {\n localStorage: typeof Storage !== 'undefined',\n fetch: typeof fetch !== 'undefined',\n canvas: !!document.createElement('canvas').getContext,\n fileReader: typeof FileReader !== 'undefined',\n formData: typeof FormData !== 'undefined'\n };\n\n const unsupported = Object.keys(features).filter(key => !features[key]);\n \n if (unsupported.length > 0) {\n console.warn('⚠️ 浏览器不支持以下功能:', unsupported);\n showCompatibilityWarning(unsupported);\n return false;\n }\n \n console.log('✅ 浏览器兼容性检查通过');\n return true;\n}\n\n// 显示兼容性警告\nfunction showCompatibilityWarning(unsupported) {\n const warningDiv = document.createElement('div');\n warningDiv.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n background: linear-gradient(135deg, #ff6b6b 0%, #ff5252 100%);\n color: white;\n padding: 15px;\n text-align: center;\n z-index: 9999;\n font-family: Arial, sans-serif;\n font-size: 14px;\n box-shadow: 0 2px 10px rgba(0,0,0,0.3);\n `;\n \n warningDiv.innerHTML = `\n <strong>⚠️ 浏览器兼容性警告</strong><br>\n 您的浏览器不支持以下功能:${unsupported.join(', ')}<br>\n 建议使用最新版的 Chrome、Firefox、Safari 或 Edge 浏览器\n <button onclick=\"this.parentElement.remove()\" style=\"margin-left: 15px; padding: 5px 10px; border: none; border-radius: 3px; cursor: pointer;\">关闭</button>\n `;\n \n document.body.insertBefore(warningDiv, document.body.firstChild);\n}\n\n// 全局错误处理\nfunction setupErrorHandling() {\n // 捕获未处理的Promise拒绝\n window.addEventListener('unhandledrejection', function(event) {\n console.error('🚨 未处理的Promise拒绝:', event.reason);\n \n // 如果是API相关错误,显示用户友好的提示\n if (event.reason && typeof event.reason === 'string') {\n if (event.reason.includes('API') || event.reason.includes('网络')) {\n showErrorMessage('网络连接或API服务异常,请检查网络连接或稍后重试');\n }\n }\n \n // 防止浏览器默认的错误提示\n event.preventDefault();\n });\n\n // 捕获JavaScript错误\n window.addEventListener('error', function(event) {\n console.error('🚨 JavaScript错误:', {\n message: event.message,\n filename: event.filename,\n lineno: event.lineno,\n colno: event.colno,\n error: event.error\n });\n });\n}\n\n// 显示错误消息\nfunction showErrorMessage(message) {\n if (window.babyTracker && window.babyTracker.showMessage) {\n window.babyTracker.showMessage(message, 'error');\n } else {\n alert(message);\n }\n}\n\n// 检查必要的依赖项\nfunction checkDependencies() {\n const dependencies = [\n { name: 'Chart.js', check: () => typeof Chart !== 'undefined' }\n ];\n\n const missing = dependencies.filter(dep => !dep.check());\n \n if (missing.length > 0) {\n console.warn('⚠️ 缺少依赖项:', missing.map(d => d.name));\n return false;\n }\n \n console.log('✅ 依赖项检查通过');\n return true;\n}\n\n// 性能监控\nfunction setupPerformanceMonitoring() {\n if ('performance' in window) {\n window.addEventListener('load', function() {\n setTimeout(function() {\n const perfData = performance.timing;\n const loadTime = perfData.loadEventEnd - perfData.navigationStart;\n console.log(`📊 页面加载时间: ${loadTime}ms`);\n \n if (loadTime > 3000) {\n console.warn('⚠️ 页面加载较慢,建议优化');\n }\n }, 0);\n });\n }\n}\n\n// 初始化应用程序\nfunction initializeApp() {\n console.log(`🎀 正在初始化 ${window.APP_CONFIG.name} v${window.APP_CONFIG.version}`);\n \n // 检查浏览器支持\n if (!checkBrowserSupport()) {\n return;\n }\n \n // 设置错误处理\n setupErrorHandling();\n \n // 性能监控\n setupPerformanceMonitoring();\n \n // 检查依赖项(延迟检查,因为可能还在加载)\n setTimeout(() => {\n checkDependencies();\n }, 100);\n \n console.log('✅ 应用程序初始化完成');\n}\n\n// 页面加载时初始化\nif (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', initializeApp);\n} else {\n initializeApp();\n}\n\n// 导出配置供其他模块使用\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = window.APP_CONFIG;\n}\n"}, "e7538471cbea65c805c2d9e85a4abf727b77e818": {"t": 1785758823.03927, "n": 9768, "h": "fe48678d28970816", "c": "const { app, BrowserWindow, Menu, dialog, shell } = require('electron');\nconst path = require('path');\n\nlet mainWindow;\n\nfunction createWindow() {\n mainWindow = new BrowserWindow({\n width: 1400,\n height: 900,\n minWidth: 1000,\n minHeight: 700,\n webPreferences: {\n nodeIntegration: false,\n contextIsolation: true,\n enableRemoteModule: false,\n // 关键修改:允许网络访问和跨域\n webSecurity: false,\n allowRunningInsecureContent: true,\n experimentalFeatures: true,\n enableClipboardAccess: true,\n // 新增:允许所有权限\n permissions: ['camera', 'microphone', 'geolocation', 'notifications'],\n // 新增:禁用同源策略\n additionalArguments: [\n '--disable-web-security',\n '--disable-features=VizDisplayCompositor',\n '--allow-running-insecure-content',\n '--disable-same-origin-policy'\n ]\n },\n show: false,\n titleBarStyle: 'default',\n frame: true,\n transparent: false,\n resizable: true,\n maximizable: true,\n minimizable: true,\n closable: true\n });\n\n mainWindow.loadFile('baby.html');\n\n mainWindow.once('ready-to-show', () => {\n mainWindow.show();\n });\n\n mainWindow.on('closed', function () {\n mainWindow = null;\n });\n\n mainWindow.setTitle('🎀 婴幼儿体检报告智能识别系统 v1.0');\n\n mainWindow.webContents.setWindowOpenHandler(({ url }) => {\n shell.openExternal(url);\n return { action: 'deny' };\n });\n\n // 新增:网络请求拦截和修改\n mainWindow.webContents.session.webRequest.onBeforeSendHeaders((details, callback) => {\n // 设置更真实的User-Agent\n details.requestHeaders['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36';\n details.requestHeaders['Accept'] = '*/*';\n details.requestHeaders['Accept-Language'] = 'zh-CN,zh;q=0.9,en;q=0.8';\n details.requestHeaders['Cache-Control'] = 'no-cache';\n details.requestHeaders['Pragma'] = 'no-cache';\n \n callback({ requestHeaders: details.requestHeaders });\n });\n\n // 新增:允许所有跨域请求\n mainWindow.webContents.session.webRequest.onHeadersReceived((details, callback) => {\n const responseHeaders = details.responseHeaders || {};\n \n // 添加CORS头\n responseHeaders['Access-Control-Allow-Origin'] = ['*'];\n responseHeaders['Access-Control-Allow-Methods'] = ['GET, POST, PUT, DELETE, OPTIONS'];\n responseHeaders['Access-Control-Allow-Headers'] = ['Content-Type, Authorization, X-Requested-With'];\n responseHeaders['Access-Control-Allow-Credentials'] = ['true'];\n \n callback({ responseHeaders });\n });\n\n // 新增:网络错误处理\n mainWindow.webContents.on('did-fail-load', (event, errorCode, errorDescription, validatedURL) => {\n console.log('网络加载失败:', errorCode, errorDescription, validatedURL);\n });\n\n // 新增:控制台日志监听\n mainWindow.webContents.on('console-message', (event, level, message, line, sourceId) => {\n console.log(`控制台[${level}]: ${message}`);\n });\n\n // 新增:右键上下文菜单(包含粘贴功能)\n mainWindow.webContents.on('context-menu', (event, params) => {\n const contextMenu = Menu.buildFromTemplate([\n { role: 'cut', label: '剪切', enabled: params.isEditable },\n { role: 'copy', label: '复制', enabled: params.selectionText.length > 0 },\n { role: 'paste', label: '粘贴', enabled: params.isEditable },\n { type: 'separator' },\n { role: 'selectall', label: '全选' },\n { type: 'separator' },\n { role: 'reload', label: '重新加载' },\n { role: 'toggleDevTools', label: '开发者工具' }\n ]);\n \n contextMenu.popup(mainWindow);\n });\n\n // 新增:页面加载完成后的初始化\n mainWindow.webContents.once('dom-ready', () => {\n console.log('页面DOM加载完成');\n \n // 注入网络检测脚本\n mainWindow.webContents.executeJavaScript(`\n console.log('开始检测网络连接...');\n \n // 检测网络连通性\n function checkNetworkConnectivity() {\n fetch('https://cdn.jsdelivr.net/npm/tesseract.js@4/dist/tesseract.min.js', {\n method: 'HEAD',\n mode: 'no-cors'\n }).then(() => {\n console.log('CDN连接正常');\n }).catch(err => {\n console.log('CDN连接失败:', err);\n });\n }\n \n checkNetworkConnectivity();\n \n // 5秒后再次检测OCR库\n setTimeout(() => {\n if (typeof Tesseract !== 'undefined') {\n console.log('✅ OCR库加载成功');\n } else {\n console.log('❌ OCR库仍未加载');\n }\n }, 5000);\n `);\n });\n}\n\nfunction createMenu() {\n const template = [\n {\n label: '文件',\n submenu: [\n {\n label: '导出数据',\n accelerator: 'CmdOrCtrl+E',\n click: () => {\n mainWindow.webContents.executeJavaScript('window.babyTracker && window.babyTracker.exportData()');\n }\n },\n {\n label: '导入数据',\n accelerator: 'CmdOrCtrl+I',\n click: () => {\n mainWindow.webContents.executeJavaScript('window.babyTracker && window.babyTracker.importData()');\n }\n },\n { type: 'separator' },\n {\n label: '重新加载OCR',\n click: () => {\n mainWindow.webContents.executeJavaScript(`\n console.log('手动重新加载OCR...');\n if (window.babyTracker) {\n window.babyTracker.showMessage('🔄 正在重新加载OCR库...', 'info');\n }\n location.reload();\n `);\n }\n },\n { type: 'separator' },\n {\n label: '退出',\n accelerator: process.platform === 'darwin' ? 'Cmd+Q' : 'Ctrl+Q',\n click: () => {\n app.quit();\n }\n }\n ]\n },\n // 编辑菜单(包含复制粘贴)\n {\n label: '编辑',\n submenu: [\n { role: 'undo', label: '撤销' },\n { role: 'redo', label: '重做' },\n { type: 'separator' },\n { role: 'cut', label: '剪切' },\n { role: 'copy', label: '复制' },\n { role: 'paste', label: '粘贴' },\n { type: 'separator' },\n { role: 'selectall', label: '全选' }\n ]\n },\n {\n label: '查看',\n submenu: [\n { role: 'reload', label: '重新加载' },\n { role: 'forceReload', label: '强制重新加载' },\n { role: 'toggleDevTools', label: '开发者工具' },\n { type: 'separator' },\n { role: 'resetZoom', label: '重置缩放' },\n { role: 'zoomIn', label: '放大' },\n { role: 'zoomOut', label: '缩小' },\n { type: 'separator' },\n { role: 'togglefullscreen', label: '全屏切换' }\n ]\n },\n {\n label: '网络',\n submenu: [\n {\n label: '检测OCR连接',\n click: () => {\n mainWindow.webContents.executeJavaScript(`\n console.log('检测OCR库状态...');\n if (typeof Tesseract !== 'undefined') {\n alert('✅ OCR库已加载成功!');\n } else {\n alert('❌ OCR库未加载,尝试重新加载页面');\n }\n `);\n }\n },\n {\n label: '清除缓存',\n click: () => {\n mainWindow.webContents.session.clearCache().then(() => {\n mainWindow.webContents.reload();\n });\n }\n }\n ]\n },\n {\n label: '帮助',\n submenu: [\n {\n label: '关于',\n click: () => {\n dialog.showMessageBox(mainWindow, {\n type: 'info',\n title: '关于',\n message: '婴幼儿体检报告智能识别系统',\n detail: '版本: 1.0.2 - 网络优化版\\n基于WHO 2006标准\\n可爱卡通版\\n\\n© 2025',\n buttons: ['确定']\n });\n }\n }\n ]\n }\n ];\n\n const menu = Menu.buildFromTemplate(template);\n Menu.setApplicationMenu(menu);\n}\n\n// 新增:应用启动前的网络配置\napp.commandLine.appendSwitch('disable-web-security');\napp.commandLine.appendSwitch('disable-features', 'VizDisplayCompositor');\napp.commandLine.appendSwitch('allow-running-insecure-content');\napp.commandLine.appendSwitch('disable-same-origin-policy');\n\napp.whenReady().then(() => {\n createWindow();\n createMenu();\n\n app.on('activate', function () {\n if (BrowserWindow.getAllWindows().length === 0) createWindow();\n });\n});\n\napp.on('window-all-closed', function () {\n if (process.platform !== 'darwin') app.quit();\n});\n\n// 新增:证书错误忽略(用于HTTPS请求)\napp.on('certificate-error', (event, webContents, url, error, certificate, callback) => {\n event.preventDefault();\n callback(true);\n});\n"}, "4f4e1cd15a5d524effc83372b29f8c2305fa12ee": {"t": 1785758824.351841, "n": 4697, "h": "aecbc1be8d4b9432", "c": "const { app, BrowserWindow, Menu, dialog, shell } = require('electron');\nconst path = require('path');\n\nlet mainWindow;\n\nfunction createWindow() {\n mainWindow = new BrowserWindow({\n width: 1400,\n height: 900,\n minWidth: 1000,\n minHeight: 700,\n webPreferences: {\n nodeIntegration: false,\n contextIsolation: true,\n enableRemoteModule: false,\n webSecurity: false,\n allowRunningInsecureContent: true,\n // 新增:启用剪贴板和其他功能\n enableClipboardAccess: true,\n experimentalFeatures: true\n },\n show: false,\n titleBarStyle: 'default',\n frame: true,\n transparent: false,\n resizable: true,\n maximizable: true,\n minimizable: true,\n closable: true\n });\n\n mainWindow.loadFile('baby.html');\n\n mainWindow.once('ready-to-show', () => {\n mainWindow.show();\n });\n\n mainWindow.on('closed', function () {\n mainWindow = null;\n });\n\n mainWindow.setTitle('🎀 婴幼儿体检报告智能识别系统 v1.0');\n\n mainWindow.webContents.setWindowOpenHandler(({ url }) => {\n shell.openExternal(url);\n return { action: 'deny' };\n });\n\n // 新增:右键上下文菜单\n mainWindow.webContents.on('context-menu', (event, params) => {\n const contextMenu = Menu.buildFromTemplate([\n { role: 'cut', label: '剪切', enabled: params.isEditable },\n { role: 'copy', label: '复制', enabled: params.selectionText.length > 0 },\n { role: 'paste', label: '粘贴', enabled: params.isEditable },\n { type: 'separator' },\n { role: 'selectall', label: '全选' }\n ]);\n \n contextMenu.popup(mainWindow);\n });\n}\n\nfunction createMenu() {\n const template = [\n {\n label: '文件',\n submenu: [\n {\n label: '导出数据',\n accelerator: 'CmdOrCtrl+E',\n click: () => {\n mainWindow.webContents.executeJavaScript('window.babyTracker && window.babyTracker.exportData()');\n }\n },\n {\n label: '导入数据',\n accelerator: 'CmdOrCtrl+I',\n click: () => {\n mainWindow.webContents.executeJavaScript('window.babyTracker && window.babyTracker.importData()');\n }\n },\n { type: 'separator' },\n {\n label: '退出',\n accelerator: process.platform === 'darwin' ? 'Cmd+Q' : 'Ctrl+Q',\n click: () => {\n app.quit();\n }\n }\n ]\n },\n // 新增:编辑菜单\n {\n label: '编辑',\n submenu: [\n { role: 'undo', label: '撤销' },\n { role: 'redo', label: '重做' },\n { type: 'separator' },\n { role: 'cut', label: '剪切' },\n { role: 'copy', label: '复制' },\n { role: 'paste', label: '粘贴' },\n { type: 'separator' },\n { role: 'selectall', label: '全选' }\n ]\n },\n {\n label: '查看',\n submenu: [\n { role: 'reload', label: '重新加载' },\n { role: 'forceReload', label: '强制重新加载' },\n { role: 'toggleDevTools', label: '开发者工具' },\n { type: 'separator' },\n { role: 'resetZoom', label: '重置缩放' },\n { role: 'zoomIn', label: '放大' },\n { role: 'zoomOut', label: '缩小' },\n { type: 'separator' },\n { role: 'togglefullscreen', label: '全屏切换' }\n ]\n },\n {\n label: '帮助',\n submenu: [\n {\n label: '关于',\n click: () => {\n dialog.showMessageBox(mainWindow, {\n type: 'info',\n title: '关于',\n message: '婴幼儿体检报告智能识别系统',\n detail: '版本: 1.0.1\\n基于WHO 2006标准\\n可爱卡通版\\n\\n© 2025',\n buttons: ['确定']\n });\n }\n }\n ]\n }\n ];\n\n const menu = Menu.buildFromTemplate(template);\n Menu.setApplicationMenu(menu);\n}\n\napp.whenReady().then(() => {\n createWindow();\n createMenu();\n\n app.on('activate', function () {\n if (BrowserWindow.getAllWindows().length === 0) createWindow();\n });\n});\n\napp.on('window-all-closed', function () {\n if (process.platform !== 'darwin') app.quit();\n});\n"}, "349a90dd11b8582936e1f9800026d342737d3196": {"t": 1785758826.1106467, "n": 3659, "h": "49acb79199c56d8b", "c": "const { app, BrowserWindow, Menu, dialog, shell } = require('electron');\nconst path = require('path');\n\nlet mainWindow;\n\nfunction createWindow() {\n mainWindow = new BrowserWindow({\n width: 1400,\n height: 900,\n minWidth: 1000,\n minHeight: 700,\n webPreferences: {\n nodeIntegration: false,\n contextIsolation: true,\n enableRemoteModule: false,\n webSecurity: false,\n allowRunningInsecureContent: true\n },\n icon: path.join(__dirname, 'build/icon.png'),\n show: false,\n titleBarStyle: 'default',\n frame: true,\n transparent: false,\n resizable: true,\n maximizable: true,\n minimizable: true,\n closable: true\n });\n\n mainWindow.loadFile('baby.html');\n\n mainWindow.once('ready-to-show', () => {\n mainWindow.show();\n });\n\n mainWindow.on('closed', function () {\n mainWindow = null;\n });\n\n mainWindow.setTitle('🎀 婴幼儿体检报告智能识别系统 v1.0');\n\n mainWindow.webContents.setWindowOpenHandler(({ url }) => {\n shell.openExternal(url);\n return { action: 'deny' };\n });\n}\n\nfunction createMenu() {\n const template = [\n {\n label: '文件',\n submenu: [\n {\n label: '导出数据',\n accelerator: 'CmdOrCtrl+E',\n click: () => {\n mainWindow.webContents.executeJavaScript('window.babyTracker && window.babyTracker.exportData()');\n }\n },\n {\n label: '导入数据',\n accelerator: 'CmdOrCtrl+I',\n click: () => {\n mainWindow.webContents.executeJavaScript('window.babyTracker && window.babyTracker.importData()');\n }\n },\n { type: 'separator' },\n {\n label: '退出',\n accelerator: process.platform === 'darwin' ? 'Cmd+Q' : 'Ctrl+Q',\n click: () => {\n app.quit();\n }\n }\n ]\n },\n {\n label: '查看',\n submenu: [\n { role: 'reload', label: '重新加载' },\n { role: 'forceReload', label: '强制重新加载' },\n { role: 'toggleDevTools', label: '开发者工具' },\n { type: 'separator' },\n { role: 'resetZoom', label: '重置缩放' },\n { role: 'zoomIn', label: '放大' },\n { role: 'zoomOut', label: '缩小' },\n { type: 'separator' },\n { role: 'togglefullscreen', label: '全屏切换' }\n ]\n },\n {\n label: '帮助',\n submenu: [\n {\n label: '关于',\n click: () => {\n dialog.showMessageBox(mainWindow, {\n type: 'info',\n title: '关于',\n message: '婴幼儿体检报告智能识别系统',\n detail: '版本: 1.0.0\\n基于WHO 2006标准\\n可爱卡通版\\n\\n© 2025',\n buttons: ['确定']\n });\n }\n }\n ]\n }\n ];\n\n const menu = Menu.buildFromTemplate(template);\n Menu.setApplicationMenu(menu);\n}\n\napp.whenReady().then(() => {\n createWindow();\n createMenu();\n\n app.on('activate', function () {\n if (BrowserWindow.getAllWindows().length === 0) createWindow();\n });\n});\n\napp.on('window-all-closed', function () {\n if (process.platform !== 'darwin') app.quit();\n});\n"}}}}