Adds the inbounds entry as a fourth Vite multi-page input and wires /panel/inbounds through the dev proxy bypass. Lays down the page chrome (sidebar, summary statistics card, refresh button) and the fetch lifecycle composable so 5f-ii onward can drop in the table columns and the modals without re-implementing it. - inbounds.html + src/inbounds.js: fourth Vite entry; mounts InboundsPage. - InboundsPage.vue: sidebar + summary card (totals over up/down, all-time, inbound count, client tags) + a basic table with enable/ remark/port/protocol/traffic/expiry columns. Row actions, popovers, search/filter, auto-refresh, and the WebSocket delta path are all deferred to subsequent 5f subphases. - useInbounds.js composable: GET /panel/api/inbounds/list + POST /panel/api/inbounds/onlines + POST /panel/api/inbounds/lastOnline + POST /panel/setting/defaultSettings, then computes the per-inbound clientCount roll-ups (active/deactive/depleted/expiring/ online/comments) the table popovers consume. - models/dbinbound.js + models/inbound.js: switched the legacy-utils import to the @/utils alias for consistency with the rest of the app. Semantics unchanged. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| src | ||
| .gitignore | ||
| inbounds.html | ||
| index.html | ||
| login.html | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| settings.html | ||
| vite.config.js | ||
3x-ui frontend
Vue 3 + Ant Design Vue 4 + Vite. Builds into ../web/dist/, which the
Go binary will embed via embed.FS once the migration reaches the page
handlers (Phase 4+).
This directory exists alongside the legacy web/html/ Vue 2 templates
during the migration. Pages will move over one at a time on the
vue3-migration branch.
Dev
cd frontend
npm install
npm run dev
The dev server runs on http://localhost:5173/ and proxies API calls to
the Go panel at http://localhost:2053/ — start the Go panel first
(go run main.go), then start Vite.
Production build
npm run build
Outputs to ../web/dist/. The Go binary picks it up at compile time via
embed.FS.
Where things live
src/main.js— app entrypoint (createApp, install Antd, mount)src/App.vue— root component (currently a smoke-test placeholder)vite.config.js— build + dev-server configindex.html— Vite HTML template
Adding new pages
For each legacy page being migrated, add an entry to
vite.config.js rollupOptions.input. Each entry produces its own
HTML file in web/dist/, which the Go panel route handler will serve.