diff --git a/README.md b/README.md index 5d2b9d9..bc7616e 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,47 @@ -# desktop +# LanMontainDesktop -An Electron application with React and TypeScript +一个使用 Electron 打包的桌面应用:前端采用 Vue 3(Renderer),主进程内置 Elysia.js 作为本地后端服务(Main)。 -## Recommended IDE Setup +## 技术栈 -- [VSCode](https://code.visualstudio.com/) + [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) + [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) +- Electron + electron-vite(主进程/构建/开发) +- Vue 3 + Vite + TypeScript(渲染进程 UI) +- Elysia.js + @elysiajs/node(主进程内的本地后端 API) -## Project Setup +## 架构说明 -### Install +这个项目不是传统意义上“浏览器前端 + 远程后端”的部署形态,而是: + +- 主进程(Electron Main)负责创建窗口,并启动 Elysia.js(HTTP Server 绑定到 127.0.0.1 的随机端口)。 +- 预加载(Preload)通过 `ipcRenderer.invoke('eiysia:request', ...)` 把“类 HTTP 请求”转发到主进程里的 Elysia 路由。 +- 渲染进程(Vue 3 Renderer)通过 `window.api.call({ method, path, body })` 调用后端接口(例如 `/apps/list`、`/apps/launch`、`/open/external`)。 + +## 目录结构(关键) + +- `src/main/`:Electron 主进程入口(创建窗口、启动 Elysia 服务) +- `src/preload/`:Preload 桥接层(暴露 `window.api`) +- `src/renderer/`:Vue 3 渲染进程(UI 与交互) +- `src/eiysia/`:Elysia.js “后端”路由与启动逻辑 + +## 推荐 IDE + +- VSCode + Volar(Vue Language Features)+ ESLint + Prettier + +## 开发与构建 + +### 安装 ```bash $ pnpm install ``` -### Development +### 开发 ```bash $ pnpm dev ``` -### Build +### 构建 ```bash # For windows diff --git a/src/renderer/src/App.vue b/src/renderer/src/App.vue index 1805da6..5d158ff 100644 --- a/src/renderer/src/App.vue +++ b/src/renderer/src/App.vue @@ -20,7 +20,8 @@ class="deskTile touchButton" :class="[ tile.variant ? `deskTile--${tile.variant}` : '', - tile.id === 'writingPanel' ? 'deskTile--panel' : '' + (tile.id === 'writingPanel' || tile.id === 'notesPanel') ? 'deskTile--panel' : '', + tile.id === 'notesPanel' ? 'deskTile--notes' : '' ]" :style="{ gridColumn: `${tile.col} / span ${tile.colSpan}`, @@ -54,6 +55,21 @@ +