= 职业规划推荐
This commit is contained in:
66
pages/service/store/user.js
Normal file
66
pages/service/store/user.js
Normal file
@@ -0,0 +1,66 @@
|
||||
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
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user