feat(web): add Vue workspace with file tree, tabs, autosave and live sync

- Login and first-run setup screens
- File tree with inline create/rename, context menu, drag-and-drop
  move and trash with undo; all operations update the UI first and roll
  back on failure
- Tabs keep a CodeMirror state each; edits autosave after 500 ms with
  If-Match revisions, unsent edits persist in IndexedDB, and conflicts
  or remote deletions surface as banners with explicit choices
- WebSocket events sync external edits, moves and deletions into open
  tabs; reconnects trigger a full resync
- Pasted or dropped images show instantly and upload to note.assets/
- Responsive layout with a swipe-in sidebar drawer on phones
- Switch to TypeScript 6: vue-tsc does not support TypeScript 7 yet
This commit is contained in:
eezd committed 2026-10-16 18:37:14 +08:00
1 parent c4d2bd4636
commit 02d904056c
28 files changed
+2231 -398

No files matched your search

+12
View File
@@ -1,6 +1,18 @@
import vue from '@vitejs/plugin-vue'
import { defineConfig } from 'vitest/config'
export default defineConfig({
plugins: [vue()],
build: {
rolldownOptions: {
// demo.html 为免登录的编辑器演示页,供自动化性能/交互测试使用
input: { index: 'index.html', demo: 'demo.html' },
},
},
worker: { format: 'es' },
server: {
// 开发时把 API 与 WebSocket 转发给本地 Go 服务
proxy: { '/api': { target: 'http://127.0.0.1:8080', ws: true } },
},
test: { environment: 'node' },
})