| import { useUserStore } from '@/stores/modules/user'; | 
| import Taro from '@tarojs/taro'; | 
| import { object2query, LocationUtils } from '@12333/utils'; | 
| import { ParkOrHRStatus, UserCertificationFrontStatus } from '@12333/constants'; | 
| 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 isCertified = computed(() => { | 
|     return userDetail.value?.isReal; | 
|   }); | 
|   | 
|   return { | 
|     user: userInfo, | 
|     userDetail: userDetail, | 
|     updateUserInfo, | 
|     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, | 
|   }; | 
| } |