|  |  | 
 |  |  | import * as userServices from '@12333/services/api/User'; | 
 |  |  | import * as electronSignServices from '@12333/services/apiV2/electronSign'; | 
 |  |  | import { useQuery, useQueryClient } from '@tanstack/vue-query'; | 
 |  |  | import { getUserCertificationFrontStatusAdapter } from '@12333/utils'; | 
 |  |  | import { UserCertificationFrontStatus } from '@12333/constants'; | 
 |  |  | import { useUser } from './user'; | 
 |  |  |  | 
 |  |  | type UseMyCertificationAuditInfoOptions = { | 
 |  |  |   onSuccess?: (data: API.MyCertificationAuditDto) => void; | 
 |  |  |   onSuccess?: (data: API.GetPersonalUserRealResultQueryResult) => void; | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | export function useMyCertificationAuditInfo(options: UseMyCertificationAuditInfoOptions = {}) { | 
 |  |  | 
 |  |  |   const queryClient = useQueryClient(); | 
 |  |  |  | 
 |  |  |   const { data, isLoading } = useQuery({ | 
 |  |  |     queryKey: ['userServices/getMyCertificationAuditInfo'], | 
 |  |  |     queryKey: ['electronSignServices/getPersonalUserRealResult'], | 
 |  |  |     queryFn: async () => { | 
 |  |  |       return await userServices.getMyCertificationAuditInfo({ showLoading: false }); | 
 |  |  |       return await electronSignServices.getPersonalUserRealResult({}, { showLoading: false }); | 
 |  |  |     }, | 
 |  |  |     placeholderData: () => null as API.MyCertificationAuditDto, | 
 |  |  |     placeholderData: () => null as API.GetPersonalUserRealResultQueryResult, | 
 |  |  |     select(data) { | 
 |  |  |       if (data) { | 
 |  |  |         data.frontStatus = getUserCertificationFrontStatusAdapter(data.status, data.auditStatus); | 
 |  |  |       } | 
 |  |  |       return data; | 
 |  |  |     }, | 
 |  |  |     onSuccess(data) { | 
 |  |  | 
 |  |  |     }, | 
 |  |  |   }); | 
 |  |  |  | 
 |  |  |   /** | 
 |  |  |    * 是否有审核单 | 
 |  |  |    */ | 
 |  |  |   const hasAduit = computed(() => { | 
 |  |  |     return data && !!data.value?.currentUserCertificationAuditId; | 
 |  |  |   }); | 
 |  |  |  | 
 |  |  |   const isCertified = computed( | 
 |  |  |     () => data?.value?.frontStatus === UserCertificationFrontStatus.Certified | 
 |  |  |   ); | 
 |  |  |   const isExpired = computed( | 
 |  |  |     () => data?.value?.frontStatus === UserCertificationFrontStatus.Expired | 
 |  |  |   ); | 
 |  |  |  | 
 |  |  |   function invalidateCertificationAuditInfo() { | 
 |  |  |     updateUserInfo(); | 
 |  |  |     return queryClient.invalidateQueries({ | 
 |  |  |       queryKey: ['userServices/getMyCertificationAuditInfo'], | 
 |  |  |       queryKey: ['electronSignServices/getPersonalUserRealResult'], | 
 |  |  |     }); | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   function ensureCertificationAuditInfo() { | 
 |  |  |     return queryClient.ensureQueryData({ | 
 |  |  |       queryKey: ['userServices/getMyCertificationAuditInfo'], | 
 |  |  |       queryKey: ['electronSignServices/getPersonalUserRealResult'], | 
 |  |  |     }); | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   return { | 
 |  |  |     myCertificationAuditInfo: data, | 
 |  |  |     isLoading, | 
 |  |  |     hasAduit, | 
 |  |  |     invalidateCertificationAuditInfo, | 
 |  |  |     isCertified, | 
 |  |  |     isExpired, | 
 |  |  |     ensureCertificationAuditInfo, | 
 |  |  |   }; | 
 |  |  | } |