- 缂栬緫鍣細椤圭洰鏂板缓/鎵撳紑/淇濆瓨/鍙﹀瓨涓猴紙璁颁綇鏈€鍚庢枃浠跺す锛夈€侀〉闈㈠鍒?鍓嶆彃/绉诲姩/澶嶅埗/鎴浘/椤甸潰閲嶆帓銆丅ase64 棰勮鍥俱€? 椤归〉闈㈠睘鎬?- 鍙戝竷鍣細棰勮鏈〉/鍗曞睆鍙戝竷(杞挱)/澶氬睆鍙戝竷(alsoMain)/鍋滄杞挱/鍏抽棴鎵€鏈?妫€娴嬪睆骞曪紝蹇嵎閿綋绯?1-9闀挎寜闃堝€?鈫戔啌/Esc/F5/閿佸畾閿? - 閰嶇疆鍣細椤圭洰淇℃伅/閬ユ帶璁剧疆/蹇嵎鏂瑰紡x3/鍙戝竷璁剧疆/璁惧娴嬭瘯/鍏充簬 6 鑿滃崟 - 鏁版嵁瀹夊叏锛欽SON 宸ョ▼ AES-256-GCM 瀵嗙爜鍔犲瘑 - 鐗堟湰鍙峰崟涓€鏉ユ簮(package.json)锛岀豢鑹茬増 zip 鎵撳寘(electron-builder) - 闄勫甫锛氶渶姹傛枃妗?v2.0銆佹寚浠ゆ竻鍗曘€乸rototype 澶у睆鍘熷瀷
5.1 KiB
5.1 KiB
MEMORY.md — SmartAgriCenter 智慧农业大数据可视化控制中心
维护说明:本文件为跨会话长期记忆,记录项目稳定事实与约定。每日详细变更见
YYYY-MM-DD.md。
项目定位
- Electron + React 19 + TypeScript + Vite 7 + electron-vite@5 + zustand 重写版(替代旧 WinForm 版 SmartAgriDataCenter)。
- 角色:软件本身只是编辑器/调度器/发布器,大屏业务内容是 HTML 网页,不做图表绘制。
- 工作区:
c:/Users/范先生/CodeBuddy/DataViewCenter,项目在SmartAgriCenter/。原型参考在prototype/(index.html、sample-screen.html)。
依赖与运行(重要!)
- 依赖固定
electron-vite@5 vite@7 @vitejs/plugin-react@5(避免 vite8 与 electron-vite peer 冲突);Electron ^43。 - 命令:
npm run dev/npm run build/npm start(preview)/npm run typecheck。 - 中文路径 PowerShell 坑:参数含中文路径(
c:/Users/范先生/...)会乱码导致 cd 失败,命令一律用相对路径。 - 后台启动 dev:
cd SmartAgriCenter; Start-Process npm.cmd -ArgumentList 'run','dev' -RedirectStandardOutput 'dev.log' -RedirectStandardError 'dev-err.log'(必须 npm.cmd)。 - Electron 二进制缺失时:先
$env:ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"再node node_modules/electron/install.js。 - dev.log / dev-err.log 留在 SmartAgriCenter 根目录,受 SafeDelete 保护,无害。
架构要点
- 三进程:
src/main/(index.ts 无边框主窗+单实例锁;ipc.ts 全部 IPC+未保存关闭守卫;screens.ts 屏幕窗口/轮播/WebContentsView 主屏全屏/probe;settings.ts 配置持久化 userData/settings.json;crypto.ts AES-256-GCM 密码加密页面 URL/参数;project.ts;shortcuts.ts;loader.ts)。 - preload:
window.api(win/screens/project/key/syncProject/setDirty/beep/createShortcut/confirm/carousel/page.snapshot/settings)。 - renderer:zustand store(pages/屏幕/视图/settings);视图仅
'edit' | 'config'(发布 Tab 已并入编辑 Tab Ribbon);Webview 用document.createElement('webview')封装。 - 页面 JSON 字段含
PagePreview(Base64 截图),项目文件存.json。
关键 UI/交互约定
- Ribbon 编辑 Tab 组序:项目 → 页面 → 发布(发布 6 按钮:预览本页👁️/单屏发布🎠/多屏发布🖥️/停止轮播⏹️/关闭所有🏁/检测屏幕📡,全部走弹窗)。
- 页面列表卡片:预览图 + 底部操作组(前插/上移/下移/复制/删除/截图,SVG 扁平图标,仅 active 显示)。
- 快捷键:大屏窗口/轮播数字键 1-9 需长按超过 keyThreshold(防网页内输入数字误触),Esc 退出、F5 刷新、锁定键(默认 F9)全局开关。
- 发布设置可配 multi/single/main 三种默认模式,single 支持 intervalSec 轮播。
验证方法
- 渲染层 CDP:
Start-Process electron.cmd -ArgumentList ".", "--remote-debugging-port=9223"后Runtime.evaluate检查#rootchildren /window.api。 - 改完 WebFrame 相关代码需重启 dev(HMR 不重建已存在 webview)。
- electron-vite dev 修改 src/main/preload 不会自动重启 electron,需手动杀掉 dev 进程组(npm-cli→electron-vite→electron)再重新启动;仅 renderer 改动走 HMR 无需重启。
版本号与打包(2026-08-23 新增)
- 版本号单一来源 =
package.json version(当前 0.1.0);主进程app.getVersion();标题栏显示「系统版本号 vX.Y.Z」;任务栏标题由did-finish-load时setTitle兜底(页面<title>会覆盖构造标题)。 - 项目需求文档:根目录
项目需求(无扩展名)2026-08-23 重写为 v2.0(Electron 重写版当前阶段,✅/⏳ 标注);根目录指令清单为历史补充需求清单(需求已全部实现)。另有 UI 速览图SmartAgriCenter/docs/ui-screenshots/(若有)。 - 已实现功能全景(v0.1.0):Ribbon 三组(项目/页面/发布)、发布 6 按钮(预览本页/单屏发布[可轮播]/多屏发布[alsoMain]/停止轮播/关闭所有/检测屏幕)、配置 6 菜单(项目信息/遥控设置[阈值+锁定键]/快捷方式×3/发布设置/设备测试[键/音/麦/屏]/关于)、快捷键(1-9 长按>阈值、↑↓、Esc、F5、锁定键)、AES-256-GCM 密码加密、标题栏版本号(package.json 单一来源)。
- 未实现/规划:项目导入/导出、代码视图/页面视图切换、遥控器硬件对接、帮助文档入口。
- 绿色版打包已完成(2026-08-23,electron-builder@26.15.3 已装):
npm run dist→release\智慧农业大数据可视化控制中心-0.1.0-win.zip(绿色免安装)+release\win-unpacked\。打包前设$env:ELECTRON_BUILDER_BINARIES_MIRROR="https://npmmirror.com/mirrors/electron-builder-binaries/"。应用图标未配置(默认 Electron 图标),需要时加 build/icon.ico。
待办/候选开发点(截至 2026-08-23)
- 页面预览图实际截图流程实测(page:snapshot 依赖 URL 可加载)。
- 遥控器模拟界面视觉美化。
- 打包分发(electron-builder 等)。
- 项目 JSON 导入/导出。