import { defineStore } from 'pinia'
import { ref, computed } from 'vue'
import axios from '../utils/axios'
export const useUserStore = defineStore('user', () => {
const token = ref(localStorage.getItem('token') || '')
const admin = ref(JSON.parse(localStorage.getItem('admin') || 'null'))
const isLoggedIn = computed(() => !!token.value)
async function login(username, password) {
const res = await axios.post('/api/admin/login', { username, password })
if (res.code === 200) {
token.value = res.data.token
admin.value = res.data.admin
localStorage.setItem('token', res.data.token)
localStorage.setItem('admin', JSON.stringify(res.data.admin))
return true
}
throw new Error(res.message || '登录失败')
}
function logout() {
token.value = ''
admin.value = null
localStorage.removeItem('token')
localStorage.removeItem('admin')
}
return { token, admin, isLoggedIn, login, logout }
})