| | |
| | | |
| | | const { userDetail, userInfo, locationCity } = storeToRefs(userStore); |
| | | |
| | | // function updateUserInfo() { |
| | | // return userStore.getCurrentUserInfo(); |
| | | // } |
| | | function updateUserInfo() { |
| | | return userStore.getCurrentUserInfo(); |
| | | } |
| | | |
| | | // const isCompanyAudited = computed(() => { |
| | | // return userDetail.value?.openHRSiteStatus === ParkOrHRStatus.Running; |
| | |
| | | // }); |
| | | |
| | | const isCertified = computed(() => { |
| | | return false; |
| | | return userDetail.value?.isReal; |
| | | }); |
| | | |
| | | return { |
| | | user: userInfo, |
| | | userDetail: userDetail, |
| | | // updateUserInfo, |
| | | updateUserInfo, |
| | | // isCompletePersonalInfo, |
| | | // isCompanyAudited, |
| | | isCertified, |
| | |
| | | |
| | | Taro.useReady(async () => { |
| | | if (isLogin.value && userStore.firstGetUserDetail) { |
| | | // userStore.getCurrentUserInfo(); |
| | | userStore.getCurrentUserInfo(); |
| | | } |
| | | if (needAuth && !isLogin.value) { |
| | | Taro.navigateTo({ |
| | |
| | | <UserAvatar :size="60" class="mine-avatar" /> |
| | | <div class="user-info" v-if="isLogin"> |
| | | <div class="user-info-item"> |
| | | <div class="user-info-item-name">{{ userDetail?.userName ?? '123' }}</div> |
| | | <div class="user-info-item-name">{{ userDetail?.name ?? '' }}</div> |
| | | <div class="user-info-item-gender"> |
| | | <img v-if="1" :src="IconMale" class="user-info-item-gender-icon" /> |
| | | <img v-else :src="IconFemale" class="user-info-item-gender-icon" /> |
| | | <img |
| | | v-if="userDetail?.gender === EnumUserGender.Male" |
| | | :src="IconMale" |
| | | class="user-info-item-gender-icon" |
| | | /> |
| | | <img |
| | | v-else-if="userDetail?.gender === EnumUserGender.Female" |
| | | :src="IconFemale" |
| | | class="user-info-item-gender-icon" |
| | | /> |
| | | </div> |
| | | <div class="user-info-item-position">管理员</div> |
| | | <div class="user-info-item-position">{{ (userDetail?.roles ?? []).join(',') }}</div> |
| | | </div> |
| | | <div class="user-info-item"> |
| | | <template v-if="isCertified"> |
| | | <div class="user-info-certified-text"> |
| | | {{ userDetail?.customerName ?? '123' }} |
| | | {{ userDetail?.enterpriseName ?? '' }} |
| | | </div> |
| | | <div class="user-info-certified-btn">已认证</div> |
| | | </template> |
| | |
| | | import { useUserStore } from '@/stores/modules/user'; |
| | | import { useQueryClient } from '@tanstack/vue-query'; |
| | | import { TaskDetailWelfareItem } from '@12333/components'; |
| | | import { EnumUserGender } from '@12333/constants'; |
| | | |
| | | const userStore = useUserStore(); |
| | | const queryClient = useQueryClient(); |
| | |
| | | |
| | | Taro.useShareAppMessage((res) => { |
| | | return { |
| | | title: `${userDetail.value?.contacter}名片`, |
| | | title: `${userDetail.value?.name}名片`, |
| | | // path: `${RouterPath.userHomePage}?userId=${userDetail.value?.userId}`, |
| | | imageUrl: userDetail.value?.avatarUrl, |
| | | imageUrl: userDetail.value?.avatar, |
| | | }; |
| | | }); |
| | | |
| | |
| | | userInfo?: Nullable<API.LoginCommandCallback>; |
| | | token?: Nullable<string>; |
| | | refreshToken?: Nullable<string>; |
| | | userDetail?: Nullable<API.UserInfoV2>; |
| | | userDetail?: Nullable<API.GetEnterpriseLoginInfoQueryResult>; |
| | | firstGetUserDetail?: boolean; |
| | | |
| | | locationCity?: string; |
| | |
| | | |
| | | accountInfo(): Partial<AccountInfo> { |
| | | return getAccountInfoFromAccessToken(this.userInfo?.accessToken); |
| | | }, |
| | | |
| | | userId: (state) => { |
| | | return state.userDetail?.id; |
| | | }, |
| | | |
| | | // matchMakingIdentity(state): MatchMakingIdentityEnum { |
| | |
| | | try { |
| | | this.setUserInfoAction(res); |
| | | this.setTokenAction(res); |
| | | console.log('22', 22); |
| | | myClient.refetchQueries(); |
| | | // await this.getCurrentUserInfo(); |
| | | await this.getCurrentUserInfo(); |
| | | } catch (error) {} |
| | | }, |
| | | |
| | |
| | | // } catch (error) {} |
| | | }, |
| | | |
| | | // async getCurrentUserInfo() { |
| | | // try { |
| | | // let res = await userServices.getUserInfo({ showLoading: false }); |
| | | // if (res) { |
| | | // res.frontStatus = getUserCertificationFrontStatusAdapter( |
| | | // res.userCertificationStatus, |
| | | // res.userCertificationAuditStatus |
| | | // ); |
| | | // res.originalAvatarUrl = res.avatarUrl; |
| | | // res.avatarUrl = res.avatarUrl ? setOSSLink(res.avatarUrl) : DefaultAvatar; |
| | | // this.setUserDetail(res); |
| | | // this.firstGetUserDetail = false; |
| | | // } |
| | | // } catch (error) {} |
| | | // }, |
| | | async getCurrentUserInfo() { |
| | | try { |
| | | let res = await authServices.getEnterpriseLoginInfo({}, { showLoading: false }); |
| | | if (res) { |
| | | // res.frontStatus = getUserCertificationFrontStatusAdapter( |
| | | // res.userCertificationStatus, |
| | | // res.userCertificationAuditStatus |
| | | // ); |
| | | res.originalAvatar = res.avatar; |
| | | res.avatar = res.avatar ? setOSSLink(res.avatar) : DefaultAvatar; |
| | | this.setUserDetail(res); |
| | | this.firstGetUserDetail = false; |
| | | } |
| | | } catch (error) {} |
| | | }, |
| | | |
| | | setTokenAction(tokenInfo: API.IdentityModelTokenCacheItem) { |
| | | this.token = tokenInfo?.accessToken; |
| | |
| | | setUserInfo(info); |
| | | }, |
| | | |
| | | setUserDetail(detail: API.UserInfoV2) { |
| | | setUserDetail(detail: API.GetEnterpriseLoginInfoQueryResult) { |
| | | this.userDetail = detail; |
| | | setUserDetail(detail); |
| | | }, |
| | |
| | | } |
| | | |
| | | export function getUserDetail() { |
| | | return storageLocal.getItem<API.UserInfoV2>(StorageKey.USER_DETAIL_KEY); |
| | | return storageLocal.getItem<API.GetEnterpriseLoginInfoQueryResult>(StorageKey.USER_DETAIL_KEY); |
| | | } |
| | | |
| | | export function setUserDetail(userDetail: API.UserInfoV2) { |
| | | export function setUserDetail(userDetail: API.GetEnterpriseLoginInfoQueryResult) { |
| | | return storageLocal.setItem(StorageKey.USER_DETAIL_KEY, userDetail); |
| | | } |
| | | |
| | |
| | | }); |
| | | |
| | | const isCertified = computed(() => { |
| | | return false; |
| | | return userDetail.value?.isReal; |
| | | }); |
| | | |
| | | return { |
| | |
| | | <div class="mine-avatar-wrapper" @click="goLogin"> |
| | | <UserAvatar :size="52" class="mine-avatar" /> |
| | | <div class="user-info" v-if="isLogin"> |
| | | <div class="user-info-item">{{ detail?.name ?? '' }}</div> |
| | | <div class="user-info-item">{{ userDetail?.name ?? '' }}</div> |
| | | <div class="user-info-auth"> |
| | | <div class="user-info-auth-item"> |
| | | <div class="user-info-unCertified" v-if="isCertified"> |
| | |
| | | <nut-badge |
| | | class="mine-order-list-item" |
| | | top="8" |
| | | :value="detail?.taskCount ?? 0" |
| | | :value="userDetail?.taskCount ?? 0" |
| | | @click="goMineSign" |
| | | > |
| | | <img :src="IconOrderSign" class="mine-order-list-icon" /> |
| | |
| | | <nut-badge |
| | | class="mine-order-list-item" |
| | | top="8" |
| | | :value="detail?.hirePassTaskCount ?? 0" |
| | | :value="userDetail?.hirePassTaskCount ?? 0" |
| | | @click="goMineHire" |
| | | > |
| | | <img :src="IconOrderHire" class="mine-order-list-icon" /> |
| | |
| | | <nut-badge |
| | | class="mine-order-list-item" |
| | | top="8" |
| | | :value="detail?.hireRefuseTaskCount ?? 0" |
| | | :value="userDetail?.hireRefuseTaskCount ?? 0" |
| | | @click="goMineCancel" |
| | | > |
| | | <img :src="IconOrderCancel" class="mine-order-list-icon" /> |
| | |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import * as authServices from '@12333/services/apiV2/auth'; |
| | | |
| | | const { userDetail, isCertified } = useUser(); |
| | | console.log('isCertified: ', isCertified); |
| | | const { userDetail, isCertified, updateUserInfo } = useUser(); |
| | | const isLogin = useIsLogin(); |
| | | const systemStore = useSystemStore(); |
| | | |
| | | const { goLoginFn } = useGoLogin(); |
| | | const bgHeight = computed(() => 133 + systemStore.navHeight); |
| | | |
| | | const { |
| | | isLoading, |
| | | isError, |
| | | data: detail, |
| | | refetch, |
| | | } = useQuery({ |
| | | queryKey: ['authServices/getPersonalLoginInfo'], |
| | | queryFn: async () => { |
| | | return await authServices.getPersonalLoginInfo( |
| | | {}, |
| | | { |
| | | showLoading: false, |
| | | } |
| | | ); |
| | | }, |
| | | placeholderData: () => ({} as API.GetPersonalLoginInfoQueryResult), |
| | | enabled: isLogin, |
| | | }); |
| | | |
| | | Taro.useDidShow(() => { |
| | | refetch(); |
| | | updateUserInfo(); |
| | | }); |
| | | |
| | | function goLogin() { |
| | |
| | | userInfo?: Nullable<API.LoginCommandCallback>; |
| | | token?: Nullable<string>; |
| | | refreshToken?: Nullable<string>; |
| | | userDetail?: Nullable<API.UserInfoV2>; |
| | | userDetail?: Nullable<API.GetPersonalLoginInfoQueryResult>; |
| | | firstGetUserDetail?: boolean; |
| | | |
| | | locationCity?: string; |
| | |
| | | }, |
| | | |
| | | userId: (state) => { |
| | | return state.userInfo?.id ?? ''; |
| | | return state.userDetail?.id ?? ''; |
| | | }, |
| | | }, |
| | | actions: { |
| | |
| | | try { |
| | | this.setUserInfoAction(res); |
| | | this.setTokenAction(res); |
| | | myClient.refetchQueries(); |
| | | await this.getCurrentUserInfo(); |
| | | } catch (error) {} |
| | | }, |
| | |
| | | }, |
| | | |
| | | async getCurrentUserInfo() { |
| | | // try { |
| | | // let res = await userServices.getUserInfo({ showLoading: false }); |
| | | // if (res) { |
| | | // res.frontStatus = getUserCertificationFrontStatusAdapter( |
| | | // res.userCertificationStatus, |
| | | // res.userCertificationAuditStatus |
| | | // ); |
| | | // res.originalAvatarUrl = res.avatarUrl; |
| | | // res.avatarUrl = res.avatarUrl ? setOSSLink(res.avatarUrl) : DefaultAvatar; |
| | | // this.setUserDetail(res); |
| | | // this.firstGetUserDetail = false; |
| | | // } |
| | | // } catch (error) {} |
| | | try { |
| | | let res = await authServices.getPersonalLoginInfo({}, { showLoading: false }); |
| | | if (res) { |
| | | // res.frontStatus = getUserCertificationFrontStatusAdapter( |
| | | // res.userCertificationStatus, |
| | | // res.userCertificationAuditStatus |
| | | // ); |
| | | res.originalAvatar = res.avatar; |
| | | res.avatar = res.avatar ? setOSSLink(res.avatar) : DefaultAvatar; |
| | | this.setUserDetail(res); |
| | | this.firstGetUserDetail = false; |
| | | } |
| | | } catch (error) {} |
| | | }, |
| | | |
| | | setTokenAction(tokenInfo: API.LoginCommandCallback) { |
| | |
| | | setUserInfo(this.userInfo); |
| | | }, |
| | | |
| | | setUserDetail(detail: API.UserInfoV2) { |
| | | setUserDetail(detail: API.GetPersonalLoginInfoQueryResult) { |
| | | this.userDetail = detail; |
| | | setUserDetail(detail); |
| | | }, |
| | |
| | | } |
| | | |
| | | export function getUserDetail() { |
| | | return storageLocal.getItem<API.UserInfoV2>(StorageKey.USER_DETAIL_KEY); |
| | | return storageLocal.getItem<API.GetPersonalLoginInfoQueryResult>(StorageKey.USER_DETAIL_KEY); |
| | | } |
| | | |
| | | export function setUserDetail(userDetail: API.UserInfoV2) { |
| | | export function setUserDetail(userDetail: API.GetPersonalLoginInfoQueryResult) { |
| | | return storageLocal.setItem(StorageKey.USER_DETAIL_KEY, userDetail); |
| | | } |
| | | |
| | |
| | | avatar?: string; |
| | | /** 姓名 */ |
| | | name?: string; |
| | | gender?: EnumUserGender; |
| | | /** 企业全称 */ |
| | | enterpriseName?: string; |
| | | /** 角色 */ |
| | |
| | | interface GetPersonalLoginInfoQueryResult { |
| | | /** Id */ |
| | | id?: string; |
| | | /** 头像 */ |
| | | avatar?: string; |
| | | /** 姓名 */ |
| | | name?: string; |
| | | /** 是否实名 */ |
| | |
| | | */ |
| | | frontStatus?: number |
| | | } |
| | | interface UserInfoV2 { |
| | | interface GetEnterpriseLoginInfoQueryResult { |
| | | /** |
| | | * 前端用于判断状态的status |
| | | */ |
| | | frontStatus?: number |
| | | /**接口返回的原始头像 */ |
| | | originalAvatarUrl?: string |
| | | originalAvatar?: string |
| | | } |
| | | |
| | | interface GetPersonalLoginInfoQueryResult { |
| | | /** |
| | | * 前端用于判断状态的status |
| | | */ |
| | | frontStatus?: number |
| | | /**接口返回的原始头像 */ |
| | | originalAvatar?: string |
| | | } |
| | | |
| | | interface SelectQueryResultOptionGuidGetDictionaryCategorySelectQueryOptionMap{ |