| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- import router from '@/router'
- import useMenuStore from './menu'
- import useRouteStore from './route'
- import useSettingsStore from './settings'
- import useTabbarStore from './tabbar'
- import api from '@/api'
- import { getRandomImage } from '@/utils/composables/imageUtils';
- // 使用函数
- const useUserStore = defineStore(
- // 唯一ID
- 'user',
- () => {
- const settingsStore = useSettingsStore()
- const routeStore = useRouteStore()
- const menuStore = useMenuStore()
- const tabbarStore = useTabbarStore()
- const userName = ref(localStorage.userName ?? '')//
- const realName = ref(localStorage.realName ?? '')//
- const token = ref(localStorage.token ?? '')
- const avatar = ref(localStorage.avatar ?? '')
- const permissions = ref<string[]>([])
- const selectedImage: string = getRandomImage();//随机切换默认头像
- const isLogin = computed(() => {
- if (token.value) {
- return true
- }
- return false
- })
- async function login(data: {
- userName: string
- passWord: string
- captcha: string
- system: string
- captchaId: number
- }) {
- const res = await api.user.login(data)
- localStorage.setItem('userName', data.userName)
- localStorage.setItem('token', res.data)
- userName.value = data.userName
- token.value = res.data
- if(token.value){
- getUserInfo();
- }
- }
- // 登出
- async function logout(redirect = router.currentRoute.value.fullPath) {
- localStorage.removeItem('userName')
- localStorage.removeItem('realName')
- localStorage.removeItem('token')
- userName.value = ''
- realName.value = ''
- token.value = ''
- permissions.value = []
- routeStore.removeRoutes()
- menuStore.setActived(0)
- settingsStore.settings.tabbar.enable && tabbarStore.clean()
- router.push({
- name: 'login',
- query: {
- ...(redirect !== settingsStore.settings.home.fullPath && router.currentRoute.value.name !== 'login' && { redirect }),
- },
- })
- }
- //获取用户信息
- async function getUserInfo() {
- const usercallback=await api.user.getUserInfo();
- localStorage.setItem('avatar', usercallback.data.headSculpture)
- localStorage.setItem('realName', usercallback.data.name)
- avatar.value=usercallback.data.headSculpture;
- realName.value=usercallback.data.name;
- }
- // 获取权限
- async function getPermissions() {
- const res = await api.user.permission()
- permissions.value = res.data
- }
- // 修改密码
- async function editPassword(data: {
- oldPassWord: string
- newPassWord: string
- }) {
- await api.user.passwordEdit(data)
- }
- return {
- userName,
- realName,
- token,
- avatar,
- permissions,
- isLogin,
- getUserInfo,
- login,
- logout,
- getPermissions,
- editPassword,
- selectedImage,
- }
- },
- )
- export default useUserStore
|