From 0f84ef186c5544637c910576997428dd592629ef Mon Sep 17 00:00:00 2001 From: Nick Zeng Date: Mon, 10 Nov 2025 11:07:48 +0800 Subject: [PATCH] add front user register and login page --- frontend/.gitignore | 5 + frontend/env.d.ts | 6 + frontend/package.json | 3 + frontend/src/main.ts | 9 +- frontend/src/pages/index.vue | 63 ++++++++ frontend/src/pages/login.vue | 231 +++++++++++++++++++++++++++++ frontend/src/pages/register.vue | 252 ++++++++++++++++++++++++++++++++ frontend/vite.config.ts | 45 ++++++ 8 files changed, 613 insertions(+), 1 deletion(-) create mode 100644 frontend/src/pages/index.vue create mode 100644 frontend/src/pages/login.vue create mode 100644 frontend/src/pages/register.vue diff --git a/frontend/.gitignore b/frontend/.gitignore index 7414e0e..b9e7245 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -28,6 +28,11 @@ coverage .eslintcache +# Auto-generated by unplugin +/src/auto-imports.d.ts +/src/components.d.ts +/src/typed-router.d.ts + # Cypress /cypress/videos/ /cypress/screenshots/ diff --git a/frontend/env.d.ts b/frontend/env.d.ts index 11f02fe..1e8e929 100644 --- a/frontend/env.d.ts +++ b/frontend/env.d.ts @@ -1 +1,7 @@ /// +/// + +// 自动导入的类型定义 +/// +/// +/// diff --git a/frontend/package.json b/frontend/package.json index 8ce5afd..7a0459a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -45,6 +45,9 @@ "npm-run-all2": "^8.0.4", "prettier": "3.6.2", "typescript": "~5.9.0", + "unplugin-auto-import": "^20.2.0", + "unplugin-vue-components": "^30.0.0", + "unplugin-vue-router": "^0.16.1", "vite": "^7.1.11", "vite-plugin-vue-devtools": "^8.0.3", "vitest": "^3.2.4", diff --git a/frontend/src/main.ts b/frontend/src/main.ts index 5dcad83..cb1d5fa 100644 --- a/frontend/src/main.ts +++ b/frontend/src/main.ts @@ -1,10 +1,17 @@ import './assets/main.css' +import 'ant-design-vue/dist/reset.css' import { createApp } from 'vue' import { createPinia } from 'pinia' +import { createRouter, createWebHistory } from 'vue-router' +import { routes } from 'vue-router/auto-routes' import App from './App.vue' -import router from './router' + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes, +}) const app = createApp(App) diff --git a/frontend/src/pages/index.vue b/frontend/src/pages/index.vue new file mode 100644 index 0000000..90ae633 --- /dev/null +++ b/frontend/src/pages/index.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/frontend/src/pages/login.vue b/frontend/src/pages/login.vue new file mode 100644 index 0000000..ef6ff3c --- /dev/null +++ b/frontend/src/pages/login.vue @@ -0,0 +1,231 @@ + + + + + diff --git a/frontend/src/pages/register.vue b/frontend/src/pages/register.vue new file mode 100644 index 0000000..2d3329d --- /dev/null +++ b/frontend/src/pages/register.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index e4ae87c..bf58197 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -6,13 +6,58 @@ import vueJsx from '@vitejs/plugin-vue-jsx' import vueDevTools from 'vite-plugin-vue-devtools' import tailwindcss from '@tailwindcss/vite' +import VueRouter from 'unplugin-vue-router/vite' +import { VueRouterAutoImports } from 'unplugin-vue-router' +import AutoImport from 'unplugin-auto-import/vite' +import Components from 'unplugin-vue-components/vite' +import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers' + // https://vite.dev/config/ export default defineConfig({ plugins: [ + // VueRouter 必须放在 vue() 之前 + VueRouter({ + routesFolder: 'src/pages', + dts: 'src/typed-router.d.ts', + }), + vue(), vueJsx(), vueDevTools(), tailwindcss(), + + // 自动导入 Vue API、VueRouter API 等 + AutoImport({ + imports: [ + 'vue', + 'pinia', + VueRouterAutoImports, + { + 'ant-design-vue': [ + 'message', + 'notification', + 'Modal', + ], + }, + ], + dts: 'src/auto-imports.d.ts', + dirs: [ + 'src/stores', + 'src/composables', + ], + vueTemplate: true, + }), + + // 自动导入组件 + Components({ + resolvers: [ + AntDesignVueResolver({ + importStyle: false, // 使用 CSS,不导入 less + }), + ], + dts: 'src/components.d.ts', + dirs: ['src/components'], + }), ], resolve: { alias: {