From daad86bd6ea43bae044d19ce8eafc1d022a02079 Mon Sep 17 00:00:00 2001 From: luoyuehang <2830398107@qq.com> Date: Mon, 8 Dec 2025 20:51:22 +0800 Subject: [PATCH] =?UTF-8?q?app1=E6=96=87=E4=BB=B6=E6=BC=8F=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/zzz/src/stores/auth.js | 82 +++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 src/main/resources/zzz/src/stores/auth.js diff --git a/src/main/resources/zzz/src/stores/auth.js b/src/main/resources/zzz/src/stores/auth.js new file mode 100644 index 0000000..1e4c28f --- /dev/null +++ b/src/main/resources/zzz/src/stores/auth.js @@ -0,0 +1,82 @@ +// src/stores/auth.js +import { defineStore } from 'pinia' +import { ref, computed } from 'vue' +import router from '@/router/index.js' + +export const useAuthStore = defineStore('auth', () => { + // 状态 + const user = ref(null) + const token = ref(localStorage.getItem('token')) + const isAuthenticated = computed(() => !!token.value && !!user.value) + + // 登录 + const login = (userData, authToken) => { + user.value = userData + token.value = authToken + + // 存储到本地 + localStorage.setItem('token', authToken) + localStorage.setItem('user', JSON.stringify(userData)) + } + + // 获取用户信息 + const getUserInfo = () => { + if (!user.value) { + const storedUser = localStorage.getItem('user') + if (storedUser) { + user.value = JSON.parse(storedUser) + } + } + return user.value + } + + // 获取用户类型 + const getUserType = computed(() => { + return user.value?.userType || localStorage.getItem('userType') + }) + + // 获取维修人员ID + const getRepairmanId = computed(() => { + return user.value?.repairmanId || localStorage.getItem('repairmanId') + }) + + // 登出 + const logout = () => { + user.value = null + token.value = null + + // 清除本地存储 + localStorage.removeItem('token') + localStorage.removeItem('user') + localStorage.removeItem('userType') + localStorage.removeItem('repairmanId') + localStorage.removeItem('userId') + localStorage.removeItem('username') + + // 跳转到登录页 + router.push('/') + } + + // 初始化时从本地存储恢复 + const initFromStorage = () => { + const storedToken = localStorage.getItem('token') + const storedUser = localStorage.getItem('user') + + if (storedToken && storedUser) { + token.value = storedToken + user.value = JSON.parse(storedUser) + } + } + + return { + user, + token, + isAuthenticated, + getUserType, + getRepairmanId, + login, + logout, + getUserInfo, + initFromStorage + } +}) -- 2.34.1