From 6bb26dd514f061a636bb23a09fb1d1545df8f39c Mon Sep 17 00:00:00 2001 From: gyq <875626088@qq.com> Date: Mon, 19 Feb 2024 09:39:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=BA=90=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 24 +++++ .vscode/extensions.json | 3 + README.md | 7 ++ dist-electron/main.js | 34 +++++++ electron/main.js | 39 +++++++ index.html | 13 +++ package.json | 28 +++++ public/vite.svg | 1 + src/App.vue | 82 +++++++++++++++ src/assets/logo.png | Bin 0 -> 16736 bytes src/assets/vue.svg | 1 + src/components/HelloWorld.vue | 40 ++++++++ src/main.js | 33 ++++++ src/router/index.js | 40 ++++++++ src/store/index.js | 5 + src/store/user.js | 13 +++ src/style.css | 79 +++++++++++++++ src/utils/index.js | 0 src/utils/request.js | 8 ++ src/views/home.vue | 13 +++ src/views/login.vue | 181 +++++++++++++++++++++++++++++++++ src/views/register.vue | 185 ++++++++++++++++++++++++++++++++++ vite.config.js | 21 ++++ 23 files changed, 850 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/extensions.json create mode 100644 README.md create mode 100644 dist-electron/main.js create mode 100644 electron/main.js create mode 100644 index.html create mode 100644 package.json create mode 100644 public/vite.svg create mode 100644 src/App.vue create mode 100644 src/assets/logo.png create mode 100644 src/assets/vue.svg create mode 100644 src/components/HelloWorld.vue create mode 100644 src/main.js create mode 100644 src/router/index.js create mode 100644 src/store/index.js create mode 100644 src/store/user.js create mode 100644 src/style.css create mode 100644 src/utils/index.js create mode 100644 src/utils/request.js create mode 100644 src/views/home.vue create mode 100644 src/views/login.vue create mode 100644 src/views/register.vue create mode 100644 vite.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..c0a6e5a --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..e62e093 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# Vue 3 + Vite + +This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 ` + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..ce4050c --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "vite-electron", + "private": true, + "version": "0.0.0", + "main": "dist-electron/main.js", + "scripts": { + "dev": "chcp 65001 && vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "axios": "^1.6.2", + "element-plus": "^2.4.3", + "pinia": "^2.1.7", + "vue": "^3.3.8", + "vue-router": "^4.2.5" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^4.5.0", + "path": "^0.12.7", + "sass": "^1.69.5", + "sass-loader": "^13.3.2", + "tree-kill": "^1.2.2", + "vite": "^5.0.0", + "vite-plugin-electron": "^0.15.4", + "vite-plugin-electron-renderer": "^0.14.5" + } +} diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..b21e910 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/src/assets/logo.png b/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f0a2911403a4e31e40819493c0cd5c0ad496a3ab GIT binary patch literal 16736 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 d9{y literal 0 HcmV?d00001 diff --git a/src/assets/vue.svg b/src/assets/vue.svg new file mode 100644 index 0000000..770e9d3 --- /dev/null +++ b/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue new file mode 100644 index 0000000..f5e4f53 --- /dev/null +++ b/src/components/HelloWorld.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..11c0609 --- /dev/null +++ b/src/main.js @@ -0,0 +1,33 @@ +import { createApp } from "vue"; +import router from "./router/index.js"; +import App from "./App.vue"; +import ElementPlus from "element-plus"; +import zhCn from "element-plus/es/locale/lang/zh-cn"; +import "element-plus/dist/index.css"; +import "element-plus/theme-chalk/dark/css-vars.css"; +import store from "./store"; + +let matchMedia = window.matchMedia("(prefers-color-scheme: light)"); +setDarkMode(matchMedia.matches); +matchMedia.addEventListener("change", function () { + console.log(`当前的主题是:${this.matches ? "light" : "dark"}`); + setDarkMode(this.matches); +}); + +// 设置主题模式 +function setDarkMode(flag) { + if (flag) { + document.querySelector("#html").classList.add("light"); + document.querySelector("#html").classList.remove("dark"); + } else { + document.querySelector("#html").classList.add("dark"); + document.querySelector("#html").classList.remove("light"); + } +} + +const app = createApp(App); + +app.use(router); +app.use(store); +app.use(ElementPlus, { locale: zhCn }); +app.mount("#app"); diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000..e372ea9 --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,40 @@ +import { createRouter, createWebHashHistory } from "vue-router"; +import home from "@/views/home.vue"; + +const routes = [ + { + path: "/", + name: "home", + component: home, + }, + { + path: "/login", + name: "login", + meta: { + index: 0, + }, + component: () => import("@/views/login.vue"), + }, + { + path: "/register", + name: "register", + meta: { + index: 1, + }, + component: () => import("@/views/register.vue"), + }, +]; + +const router = createRouter({ + history: createWebHashHistory(), + routes, +}); + +router.beforeEach(async (to, from) => { + const token = localStorage.getItem("token"); + if (!token && to.name !== "login" && to.name !== "register") { + return { name: "login" }; + } +}); + +export default router; diff --git a/src/store/index.js b/src/store/index.js new file mode 100644 index 0000000..e32948c --- /dev/null +++ b/src/store/index.js @@ -0,0 +1,5 @@ +import { createPinia } from "pinia"; + +const store = createPinia(); + +export default store; diff --git a/src/store/user.js b/src/store/user.js new file mode 100644 index 0000000..d1e555c --- /dev/null +++ b/src/store/user.js @@ -0,0 +1,13 @@ +import { defineStore } from "pinia"; +export const useUserStore = defineStore({ + id: "user", + state: () => ({ + name: "张三", + token: "sas121sasdADSAD", + }), + actions: { + login(data) { + this.name = data; + }, + }, +}); diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..bb131d6 --- /dev/null +++ b/src/style.css @@ -0,0 +1,79 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +.card { + padding: 2em; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/src/utils/index.js b/src/utils/index.js new file mode 100644 index 0000000..e69de29 diff --git a/src/utils/request.js b/src/utils/request.js new file mode 100644 index 0000000..e100478 --- /dev/null +++ b/src/utils/request.js @@ -0,0 +1,8 @@ +import axios from "axios"; + +const request = axios.create({ + baseURL: "http://localhost", + timeout: 100000, +}); + +request.interceptors.request.use((config) => {}); diff --git a/src/views/home.vue b/src/views/home.vue new file mode 100644 index 0000000..7cf0e6a --- /dev/null +++ b/src/views/home.vue @@ -0,0 +1,13 @@ + + + diff --git a/src/views/login.vue b/src/views/login.vue new file mode 100644 index 0000000..1e3c64c --- /dev/null +++ b/src/views/login.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/src/views/register.vue b/src/views/register.vue new file mode 100644 index 0000000..cf99c0f --- /dev/null +++ b/src/views/register.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..289540b --- /dev/null +++ b/vite.config.js @@ -0,0 +1,21 @@ +import { defineConfig } from "vite"; +import vue from "@vitejs/plugin-vue"; +import electron from "vite-plugin-electron"; +import electronRender from "vite-plugin-electron-renderer"; +import path from "path"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + vue(), + electron({ + entry: "electron/main.js", + }), + electronRender(), + ], + resolve: { + alias: { + "@": path.resolve(__dirname, "./src"), + }, + }, +});