import { useUserStore } from '@/stores/modules/user';
|
import Taro from '@tarojs/taro';
|
import { object2query, LocationUtils } from '@12333/utils';
|
import { ParkOrHRStatus, UserCertificationFrontStatus } from '@12333/constants';
|
import * as userServices from '@12333/services/api/User';
|
import { useQuery } from '@tanstack/vue-query';
|
import { MaybeRef } from 'vue';
|
import { useRefeshDidShow } from '@12333/hooks/infiniteLoading';
|
|
export function useUser() {
|
const userStore = useUserStore();
|
|
const { userDetail, userInfo, locationCity } = storeToRefs(userStore);
|
|
function updateUserInfo() {
|
return userStore.getCurrentUserInfo();
|
}
|
|
const isCompanyAudited = computed(() => {
|
return userDetail.value?.openHRSiteStatus === ParkOrHRStatus.Running;
|
});
|
|
/**
|
* 是否完善个人信息(企业名称,手机号)
|
*/
|
const isCompletePersonalInfo = computed(() => {
|
return (
|
!!userDetail.value?.customerName &&
|
!!userDetail.value?.contacter &&
|
!!userDetail.value?.cityName
|
);
|
});
|
|
const isCertified = computed(() => {
|
return userDetail.value?.frontStatus === UserCertificationFrontStatus.Certified;
|
});
|
|
return {
|
user: userInfo,
|
userDetail: userDetail,
|
updateUserInfo,
|
isCompletePersonalInfo,
|
isCompanyAudited,
|
isCertified,
|
locationCity,
|
};
|
}
|
|
export function useIsLogin() {
|
const { user, userDetail } = useUser();
|
return computed(() => !!user.value);
|
// return user?.isPersonal ? !!user : !!user && !!enterpriseInfo;
|
}
|
|
type UseAuthOptions = {
|
needAuth?: boolean;
|
};
|
|
export function useAuth(options: UseAuthOptions = {}) {
|
const { needAuth = true } = options;
|
const userStore = useUserStore();
|
|
const isLogin = useIsLogin();
|
|
const isAuth = computed(() => !needAuth || isLogin.value);
|
|
const router = Taro.useRouter();
|
|
Taro.useReady(async () => {
|
if (isLogin.value && userStore.firstGetUserDetail) {
|
userStore.getCurrentUserInfo();
|
}
|
if (needAuth && !isLogin.value) {
|
Taro.navigateTo({
|
url: `${RouterPath.authorization}?redirect=${router.path}&${object2query(router.params)}`,
|
});
|
}
|
});
|
|
return { isAuth };
|
}
|
|
export function useGoLogin() {
|
const router = Taro.useRouter();
|
|
function goLoginFn() {
|
Taro.navigateTo({
|
url: `${RouterPath.authorization}?redirect=${router.path}&${object2query(router.params)}`,
|
});
|
}
|
|
return {
|
goLoginFn,
|
};
|
}
|