import { ref } from 'vue'; import { defineStore } from 'pinia'; import { getUserInfo, getUserName } from '@/apiRc/service'; export const useAuthUserStore = defineStore('auth-user', () => { const token = ref(''); const userLoaded = ref(false); const userInfoRef = ref({ userName: '', professions: [], skills: [] }); const fetchUserInfo = async () => { const tokenA = await $getItem('tokenA'); const cryptogram = await $getItem('cryptogram'); if (!cryptogram) { return; } token.value = cryptogram; try { const { code, msg, data } = await getUserInfo(cryptogram); if (code !== 200) { $emitter.emit('error-message', msg); return; } if (!data) { return; } userInfoRef.value.professions = data.jobTitles.map((d) => { return { label: d, value: d }; }); userInfoRef.value.skills = data.appSkillsList.map((d) => { return { label: d.name, value: d.name }; }); } catch (e) { console.warn(e); } try { const { code: c, msg: m, data: userName } = await getUserName({ accessToken: tokenA }); if (c !== 0 || !userName) { $emitter.emit('error-message', m); return; } userInfoRef.value.userName = userName.name; userLoaded.value = true; } catch (e) { console.warn(e); } }; return { token, userInfo: userInfoRef, userLoaded, fetchUserInfo }; });