Files
ks-app-employment-service/pages/service/store/user.js
2026-01-21 14:26:34 +08:00

67 lines
1.8 KiB
JavaScript

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
};
});