Files
DataViewCenter/.codebuddy/memory/MEMORY.md
T
fanhongcai 68810be606 init: 鏅烘収鍐滀笟澶ф暟鎹彲瑙嗗寲鎺у埗涓績 v0.1.0锛圗lectron + React 19 + TS 閲嶅啓鐗堬級
- 缂栬緫鍣細椤圭洰鏂板缓/鎵撳紑/淇濆瓨/鍙﹀瓨涓猴紙璁颁綇鏈€鍚庢枃浠跺す锛夈€侀〉闈㈠鍒?鍓嶆彃/绉诲姩/澶嶅埗/鎴浘/椤甸潰閲嶆帓銆丅ase64 棰勮鍥俱€? 椤归〉闈㈠睘鎬?- 鍙戝竷鍣細棰勮鏈〉/鍗曞睆鍙戝竷(杞挱)/澶氬睆鍙戝竷(alsoMain)/鍋滄杞挱/鍏抽棴鎵€鏈?妫€娴嬪睆骞曪紝蹇嵎閿綋绯?1-9闀挎寜闃堝€?鈫戔啌/Esc/F5/閿佸畾閿?
- 閰嶇疆鍣細椤圭洰淇℃伅/閬ユ帶璁剧疆/蹇嵎鏂瑰紡x3/鍙戝竷璁剧疆/璁惧娴嬭瘯/鍏充簬 6 鑿滃崟
- 鏁版嵁瀹夊叏锛欽SON 宸ョ▼ AES-256-GCM 瀵嗙爜鍔犲瘑
- 鐗堟湰鍙峰崟涓€鏉ユ簮(package.json)锛岀豢鑹茬増 zip 鎵撳寘(electron-builder)
- 闄勫甫锛氶渶姹傛枃妗?v2.0銆佹寚浠ゆ竻鍗曘€乸rototype 澶у睆鍘熷瀷
2026-08-23 10:57:14 +08:00

47 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 主屏全屏/probesettings.ts 配置持久化 userData/settings.jsoncrypto.ts AES-256-GCM 密码加密页面 URL/参数;project.tsshortcuts.tsloader.ts)。
- preload`window.api`win/screens/project/key/syncProject/setDirty/beep/createShortcut/confirm/carousel/page.snapshot/settings)。
- rendererzustand storepages/屏幕/视图/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` 检查 `#root` children / `window.api`
- 改完 WebFrame 相关代码需重启 devHMR 不重建已存在 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.0Electron 重写版当前阶段,✅/⏳ 标注);根目录 `指令清单` 为历史补充需求清单(需求已全部实现)。另有 UI 速览图 `SmartAgriCenter/docs/ui-screenshots/`(若有)。
- 已实现功能全景(v0.1.0):Ribbon 三组(项目/页面/发布)、发布 6 按钮(预览本页/单屏发布[可轮播]/多屏发布[alsoMain]/停止轮播/关闭所有/检测屏幕)、配置 6 菜单(项目信息/遥控设置[阈值+锁定键]/快捷方式×3/发布设置/设备测试[键/音/麦/屏]/关于)、快捷键(1-9 长按>阈值、↑↓、Esc、F5、锁定键)、AES-256-GCM 密码加密、标题栏版本号(package.json 单一来源)。
- **未实现/规划**:项目导入/导出、代码视图/页面视图切换、遥控器硬件对接、帮助文档入口。
- 绿色版打包已完成(2026-08-23electron-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
1. 页面预览图实际截图流程实测(page:snapshot 依赖 URL 可加载)。
2. 遥控器模拟界面视觉美化。
3. 打包分发(electron-builder 等)。
4. 项目 JSON 导入/导出。