From 89d45dcf56083970638e496f7fab77b40362e57e Mon Sep 17 00:00:00 2001 From: Fromsko <1614355756@qq.com> Date: Wed, 11 Sep 2024 01:52:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9F=BA=E6=9C=AC=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bun.lockb | Bin 113192 -> 113224 bytes package.json | 1 + src/api/index.ts | 15 +++++ src/assets/base.css | 86 ----------------------------- src/assets/main.css | 34 ------------ src/components/Login/LoginA.vue | 92 ++++++++++++++++++++++++++++++- src/config/index.ts | 4 +- src/main.ts | 7 ++- src/router/index.ts | 4 +- src/utils/request.ts | 48 ++++++++-------- src/views/Home.vue | 94 ++++++++++++++++---------------- vite.config.ts | 5 +- 12 files changed, 189 insertions(+), 201 deletions(-) create mode 100644 src/api/index.ts delete mode 100644 src/assets/base.css delete mode 100644 src/assets/main.css diff --git a/bun.lockb b/bun.lockb index 9ab9cbf22f18da1e36858138676a337ad85fb485..9d9d120e2da1057ac8d7bd5ab746cb075623e3ba 100644 GIT binary patch delta 6652 zcmeHMZBUfg6~1Q?%7O_H#VFQqqJW6H8c_m%p<%IUo1|&0 z@r}KWwu8}{1gBz3kJ@vey!6D}QvU&^RE$!cTQ)Z#rPOLsDi->D@F;LU zI02ktc#lJ=JD^8ID0Lh75_ED?bDOWt*VKB^=wn7GH4^rNV3zLyj{`S?)4>(+7q8T; z&iE*$;$ZkFGT2aKYirx~O-;&W8r-z8wGB4a_@!V+n;V)p`c^5G0i6xxMF$=BSv8U( zyDgvSm~9wH3i1+SdSV<^BA0qmO6ygOxhgr5!TzI%4NQlo8*-zEgznJR(Fy&G8aSovUMz}Eb=5$)z-1>GWoCN zOZLhtt2@~nc?Kh^wB3%ySf|^mdZg^8(5dbeZ{(ZT^vPCks#i8xK0E_fH=cjDE~a{& z_hOv$F($EEl1gO16?UzGOn-I8PG(0Mj810$O0;h$8chb7BVBED zGIbxo3hMw0nfiJvkinQ8+i2$wWX>peJjEYMkm+!{;dU@3oH>G>wsj!0-b2PtW`{eC zP96>H2U!1y0L5^XonVD7fP4s`!@~gOM$Gch03$3a4Q7=IItHw^ow?zHQ=wy69)LTZs3Fd|v7Dq$&gRic-tb*+$ z5tJ{Ss|RVA`{oM31-%MzW83TTf7ogLs39ej3m3!3r*MSz%Z3!|YD2s|^f*&8oN0nw5$}^szzJQsAx$aAhPGc5N#Dz~qzJ&;g@|7$!SL8Cslz^&f|dT!O&@6gs7yZGDD7W$1AV_uudZD#4i< zN}OWv|7GX|h0L}3+<^+}a;6#q3YkmA_=G~H9u}tr-@oAsRE8d>1lu1Fuy6#QGf)|N zoPyJkEr;>s)I0;+3RLVVxw!!6R-nR33=dF3I`{XjK!vk0XaI97P~ptn3RFH8s8rm1 zpwjcx=F3fT);jT<%aPrPr*F4v`o4DZw`=F*a?erj!n?`WlX1@)CLm*tjlT|2`iZ+G zaoTfshEhDWuoR=0Ok*2oYz+FgGZS(*m@XN^@6dg8@sP>N2GcW-`wRtHEf>t}7=ZC9 z?uhII2W_!Hr*@5(M>6?^WiYlMV35Ww(**D|Pz;pl-;b9{`Klh1CFxSAOS5E65`Djl zimw5$18)GG`h_f+nPwr$8;S>j4L~E%1XSs?Y;pS+An66}0eA<+Ipc9U6-Wc>;hAAI z=WQ+E1J(fy$r*U80oDQx^?6=c2rL2?12~8%o+V;{SYRZ;Si%i10wxJ2hKIPf^to*D z$|aqUBekBtq6lxDrUAS&I0^Isr+^oL7l8oK3vfmSaOkIVB+(y@B#+G>0K7*_+kxAF?XdIL{ahp_0^4BZMr{Xn06PKh&hG%<1-=3Bu)%`~4;ibw;jZm8ddNPHTMu%k0Ic(JWwA^N?8=prDCfI0L7vyW1u{whtw8#sWrZuh zWNQ8teQt{Q(zqG0**ZOcI=p;dURJDwuMxC|vlg5K4 z6-D{(eDt_azv2?NWaxjnBu!j8woua2E6^$~96O_*pZwb1gzukrh&$iI(rUi;qJXT{ zac)V|4;IR3la_w{Y#|&4b3*=tT6*XfT~2@4zT)+c#_Rqr>Pk0iUD6*GNtz=fLRWhv z)i_BHU8*N1UZ|e%=)Jw@bxD4qC%;%V>hownJ#@={VP1R0oP|#Xf(455OVmM~SR`&w z=$3tJ@zth|$7lZWdc&c6_#@fp*UGHpORndb5ey*Drxy?X0}xkP^=90(e@qQ^(yfAn z!c=6ION!3-$ep19-e5w43z6QB6-dAeynABnqPjbNaqQ#W(`P-H`bIssQj#NG_)?mg z%hTz_SRZ>;@6`QMB~I5DOSB`wsn-?DjPfjePU$xR%>O$suZcYR)abK+7$v7*!8i2U zKO-&0|9R)(3;%vGUVergd{XiEf_|r1QXSh=AgV+rjKIhW%DCi##xi-#5$sKxjw(mb zG6EQMmwOo!^v_7md^>Qo0(v6! znti(Y*JEl+7DDI0CV%4Is=b2 IN!Nn^0pw52j{pDw delta 6408 zcmeI1dvH|M9mmgaVPkGINik$M$wDI{NtR$@vUz}Ovc(9rl8C7wkAz2nH7sZV6A1xf zW5w18THy+(=v1H`mDr)RrOYBsXT-;h!^n)|I6hk$AESb3XF4c?o!amB?pbd2s@ zf8@-3?)UtD=XuY)d++a_efD_T&f{tKUL(KRIAvUXol+`8sooX0M3GZ!iYRqH>@ajF z^bP0`sAaUrqtu14k3ln`hmA%%x?)|iXy*&YP8+P$1t{->vVJ@CVrU~Y04+s-KT_)I z-jiOXvf+3i%7GSic6RkFi>d-M;IgHiUGS;K^O6(oXzN%STd0%;n*;dLlN}zko5e3H z?U?8c3uoj<*(qyxhG(M4;oZ%HUe1<#>|jnrUbka85$`N?KhC}>C+xM6o9yKNiQEJy zSB0}k=GG%Oi9XLsk9~A#y@c&xZba7DF&q!t{kakEg*c_l?OnNH?*qs++PjLv@}3>@ zMWo5@_eH!9;mjJGZqw708t>$OhMY41Ce`ncc%MFP=i0%%h+J>SaNKV9hha}s-bZmryI$MPfctlf{}0{aM#`*sHl!dJ$z)?9CeY4iFi^s5R06Lk<64p?4j zbOaQ0R7HU4Op2vZ#enTc1Ew?Rl?qFs$^aXb0}fOHn5Y)G9I&H0z~ol3GiUqboK6E^ z>j?n2ikb$P+{#{N0FE{jFrAHZwzHj9U(mSI;T%&ylnB(|`?I(2#9gO$Su^=NSK7 zqw`ETmDx69Q(1q3v8lA9#-@51usO=Sn2MsG2Gx3aw3_^Es! zuYvL&?S-=FHXe-9zs}g};;9Uj**lE>()g)t&}aO289$Z&yN&HuUXqQb{w7oIR!;an z{e!SyERQA|^e({8N6T;&xyZO!Q{_@hIreJRJfuMej7Zu-Cd??&tBA7zsV^rhS z8%Ih`-6N*@2vfuu@gn29*!URMtwf$_B$Qn;BwwZ9WEZ!Zq9Q1J=9`mIADi))$l?sJ z78&gGsL{rUoj4WO6_?1bMljUc3K)Vha$N|jKsBfVWA&?-NQ0E>;iDuV*?Qb4Y0o`? z_D_PRz|-st+@|-8l1an4>97Rc2y3Ch6QF30d{XM!-dj{Oa}Zwus{YlA23wlr%DL$gt-v!!1t~`R3s5Oq%(`9 z#o}Jk72q+wyjTM9Cy@OdaLEJ=0)v4Uq=EAQ-!Lb@ey|U46M$j<L#- zZ5py=pGQJv)vT?;x(yX%imnJrzP_&#LnQO^hTe}J^jj{M>C{x{(UZ|eUeM7H20W|_ zQQdRQqdTf4&vX(arTusHF<6+jW4_r>mk0}hKw$rm4Ccd6s_u<&oXd#uH9ad#rwS-Pj(wu=g zt>g)(mg1voEJdSU-XK0N?%vdS`E*?k=IgBTFx^=re$T0Ny`e^~3S{9qH3W-%3eP0| z8E~TA`{>q!=Uy8szttb0QN~VGz&9Q?+I3c~kYb3XCjPnu%#30=1U;Xh_c_WS{ z9xa8P1G{;%?s$H9OKm-D{)6z=M<@4>{_DS1G$n$wq+F~;+%Q18SGTpuwuHY`Hd$I) M#h2I_mF-ji3%@U_Pyhe` diff --git a/package.json b/package.json index eac03cc..19d4d0e 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "type-check": "vue-tsc --build --force" }, "dependencies": { + "@element-plus/icons-vue": "^2.3.1", "axios": "^1.7.7", "element-plus": "^2.8.2", "pinia": "^2.1.7", diff --git a/src/api/index.ts b/src/api/index.ts new file mode 100644 index 0000000..8f9dd56 --- /dev/null +++ b/src/api/index.ts @@ -0,0 +1,15 @@ +/** + * api 管理 + */ + +import request from "@/utils/request" + +export default { + login(params: any) { + return request({ + url: '/user/login', + method: 'post', + data: params + }) + } +} \ No newline at end of file diff --git a/src/assets/base.css b/src/assets/base.css deleted file mode 100644 index 8816868..0000000 --- a/src/assets/base.css +++ /dev/null @@ -1,86 +0,0 @@ -/* color palette from */ -:root { - --vt-c-white: #ffffff; - --vt-c-white-soft: #f8f8f8; - --vt-c-white-mute: #f2f2f2; - - --vt-c-black: #181818; - --vt-c-black-soft: #222222; - --vt-c-black-mute: #282828; - - --vt-c-indigo: #2c3e50; - - --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); - --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); - --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); - --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); - - --vt-c-text-light-1: var(--vt-c-indigo); - --vt-c-text-light-2: rgba(60, 60, 60, 0.66); - --vt-c-text-dark-1: var(--vt-c-white); - --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); -} - -/* semantic color variables for this project */ -:root { - --color-background: var(--vt-c-white); - --color-background-soft: var(--vt-c-white-soft); - --color-background-mute: var(--vt-c-white-mute); - - --color-border: var(--vt-c-divider-light-2); - --color-border-hover: var(--vt-c-divider-light-1); - - --color-heading: var(--vt-c-text-light-1); - --color-text: var(--vt-c-text-light-1); - - --section-gap: 160px; -} - -@media (prefers-color-scheme: dark) { - :root { - --color-background: var(--vt-c-black); - --color-background-soft: var(--vt-c-black-soft); - --color-background-mute: var(--vt-c-black-mute); - - --color-border: var(--vt-c-divider-dark-2); - --color-border-hover: var(--vt-c-divider-dark-1); - - --color-heading: var(--vt-c-text-dark-1); - --color-text: var(--vt-c-text-dark-2); - } -} - -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - font-weight: normal; -} - -body { - min-height: 100vh; - color: var(--color-text); - background: var(--color-background); - transition: - color 0.5s, - background-color 0.5s; - line-height: 1.6; - font-family: - Inter, - -apple-system, - BlinkMacSystemFont, - 'Segoe UI', - Roboto, - Oxygen, - Ubuntu, - Cantarell, - 'Fira Sans', - 'Droid Sans', - 'Helvetica Neue', - sans-serif; - font-size: 15px; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} diff --git a/src/assets/main.css b/src/assets/main.css deleted file mode 100644 index 68e83ff..0000000 --- a/src/assets/main.css +++ /dev/null @@ -1,34 +0,0 @@ -@import './base.css'; - -#app { - margin: 0 auto; - padding: 2rem; - font-weight: normal; -} - -a, -.green { - text-decoration: none; - color: hsla(160, 100%, 37%, 1); - transition: 0.4s; - padding: 3px; -} - -@media (hover: hover) { - a:hover { - background-color: hsla(160, 100%, 37%, 0.2); - } -} - -@media (min-width: 1024px) { - body { - display: flex; - place-items: center; - } - - #app { - display: grid; - grid-template-columns: 1fr 1fr; - padding: 0 2rem; - } -} \ No newline at end of file diff --git a/src/components/Login/LoginA.vue b/src/components/Login/LoginA.vue index 1189530..4e4be9c 100644 --- a/src/components/Login/LoginA.vue +++ b/src/components/Login/LoginA.vue @@ -1,15 +1,101 @@ - diff --git a/src/config/index.ts b/src/config/index.ts index b08497a..90aacad 100644 --- a/src/config/index.ts +++ b/src/config/index.ts @@ -5,8 +5,8 @@ const env = import.meta.env.MODE == "development" ? 'dev' : 'prod' const EnvConfig = { dev: { - baseApi: '/', - mockApi: 'https://mock.presstime.cn/mock/668987cbcb2f4f1158f47e0e/manager-fe', + baseApi: 'http://localhost:9000/api/v1', + mockApi: 'http://localhost:9000/api/v1', }, test: { baseApi: '//test.demo/api', diff --git a/src/main.ts b/src/main.ts index e2c12a5..59baaf0 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,15 +1,18 @@ // 程序入口 +import api from "@/api" +import App from '@/App.vue' +import router from '@/router' import storage from '@/stores/storage' import request from '@/utils/request' import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' import { createPinia } from 'pinia' import { createApp } from 'vue' -import App from './App.vue' -import router from './router' + const app = createApp(App) app.config.globalProperties.$request = request +app.config.globalProperties.$api = api app.config.globalProperties.$storage = storage app.use(ElementPlus) diff --git a/src/router/index.ts b/src/router/index.ts index 492a212..e93a3f6 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,11 +1,11 @@ // index.js - router +import LoginA from "@/components/Login/LoginA.vue" import storage from "@/stores/storage" import useColorLogOutPut from "@/utils/color_log" import About from "@/views/About.vue" import ApiPage from '@/views/ApiPage.vue' import Base from "@/views/Base.vue" import Home from "@/views/Home.vue" -import Login from "@/views/Login.vue" import Welcome from "@/views/Welcome.vue" import { createRouter, createWebHashHistory } from "vue-router" @@ -34,7 +34,7 @@ const routes = [ { name: 'Login', path: '/Login', - component: Login, + component: LoginA, meta: { title: "登陆页^_^" } diff --git a/src/utils/request.ts b/src/utils/request.ts index 2e0533f..55a542f 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -1,10 +1,10 @@ -import config from "@/config" -import router from "@/router" -import axios from "axios" -import { ElMessage } from "element-plus" +import config from '@/config' +import router from '@/router' +import axios from 'axios' +import { ElMessage } from 'element-plus' -const TOKEN_ERROR = "Token 已过期" -const NETWORK_ERROR = "网络异常" +const TOKEN_ERROR = 'Token 已过期' +const NETWORK_ERROR = '网络异常' const service = axios.create({ baseURL: config.baseApi, @@ -16,7 +16,7 @@ service.interceptors.request.use((req: any) => { const headers = req.headers if (!headers.Authorization) { - headers.Authorization = "bear fromsko" + headers.Authorization = 'bear fromsko' } return req }) @@ -40,39 +40,39 @@ service.interceptors.response.use((res: any) => { }) interface RequestOptions { - method?: string; - params?: any; - data?: any; - url: string; + method?: string + mock?: boolean + params?: any + data?: any + url: string } function request(options: RequestOptions): any { - options.method = options.method || 'get'; + options.method = options.method || 'get' if (options.method.toLowerCase() === 'get') { - options.params = options.data; + options.params = options.data } - if (config.env === "prod") { - service.defaults.baseURL = config.baseApi; + if (config.env === 'prod') { + service.defaults.baseURL = config.baseApi } else { - service.defaults.baseURL = config.mock ? config.mockApi : config.baseApi; + service.defaults.baseURL = config.mock ? config.mockApi : config.baseApi } - return service(options); + return service(options) } ['get', 'post', 'delete', 'put'].forEach((item) => { // 使用 as any 来避免类型检查错误 - (request as any)[item] = (url: string, data: any, options: any) => { + ; (request as any)[item] = (url: string, data: any, options: any) => { return request({ url, data, method: item, - ...options - }); - }; -}); + ...options, + }) + } +}) - -export default request \ No newline at end of file +export default request diff --git a/src/views/Home.vue b/src/views/Home.vue index 3bf4545..437ff83 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -1,69 +1,69 @@ diff --git a/vite.config.ts b/vite.config.ts index 5c45e1d..cbec69b 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,7 +1,7 @@ import { fileURLToPath, URL } from 'node:url' -import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' +import { defineConfig } from 'vite' // https://vitejs.dev/config/ export default defineConfig({ @@ -12,5 +12,8 @@ export default defineConfig({ alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) } + }, + server: { + ws: false } })