diff --git a/admin-fe/README.MD b/admin-fe/README.MD index 8c5dcfc..e8b58d8 100644 --- a/admin-fe/README.MD +++ b/admin-fe/README.MD @@ -179,3 +179,6 @@ app.use(router); // 在应用使用router > 跨域除了上述原则之外,自定义请求头也会使跨域失败 #### 请求接口 + + +### 数据状态 - **pinia** diff --git a/admin-fe/src/main.ts b/admin-fe/src/main.ts index 852b43e..acb4752 100644 --- a/admin-fe/src/main.ts +++ b/admin-fe/src/main.ts @@ -1,4 +1,6 @@ import {createApp} from 'vue'; +import {createPinia} from 'pinia' + import App from './App.vue' import router from './router' import {httpConfig} from "./util/http"; @@ -9,4 +11,5 @@ httpConfig.baseURL = "http://localhost:8080" const app = createApp(App) // 使用路由 app.use(router) +app.use(createPinia()); app.mount('#vue-root-app') \ No newline at end of file diff --git a/admin-fe/src/service/store.ts b/admin-fe/src/service/store.ts new file mode 100644 index 0000000..2d2947c --- /dev/null +++ b/admin-fe/src/service/store.ts @@ -0,0 +1,47 @@ +import {defineStore} from "pinia"; +import {ref} from "vue"; +import http from "../util/http"; +import message from "../components/message"; +import {useRouter} from "vue-router"; + +// store的id必须唯一 +export const useTestStore = defineStore('test-store', { + state: () => ({ + info: { + nickname: '' + } + }), + getters: { + nickname: (state) => state.info.nickname + }, + actions: {} +}) + +export const useUserStore = defineStore('user-store', () => { + const userinfo = ref() + + const updateInfo = async () => { + const data = await http.get('/admin/user/info') + userinfo.value = data + } + + async function login(params: any) { + try { + const data = await http.post('/admin/user/login', params) + userinfo.value = data + localStorage.setItem("user-login-token", data.token) + } catch (e) { + message.toast('登录失败:' + e.message) + throw e; + } + } + + async function logout() { + const data = await http.get('/admin/user/info') + localStorage.removeItem('user-login-token') + userinfo.value = null + + } + + return {userinfo, login, logout} +}) \ No newline at end of file diff --git a/admin-fe/src/service/types.d.ts b/admin-fe/src/service/types.d.ts index 6fde9b3..8328c9b 100644 --- a/admin-fe/src/service/types.d.ts +++ b/admin-fe/src/service/types.d.ts @@ -1,4 +1,6 @@ type AdminLoginModel = { - account: string - token: string + id: number; + account: string; + password?: string; + token: string; } \ No newline at end of file diff --git a/admin-fe/src/views/Login.vue b/admin-fe/src/views/Login.vue index b88b34c..8086d41 100644 --- a/admin-fe/src/views/Login.vue +++ b/admin-fe/src/views/Login.vue @@ -6,10 +6,8 @@

- {{ data.password }}

-
{{ err }}
- + @@ -17,6 +15,8 @@