|  |  | 
 |  |  |             ></MineAgreementSignDetailItem> | 
 |  |  |             <MineAgreementSignDetailItem | 
 |  |  |               label="协议状态" | 
 |  |  |               :detail="EnumTaskUserSignContractStatusText[detail?.userSignContractStatus]" | 
 |  |  |               :detail="EnumTaskUserSignContractStatusSignText[detail?.userSignContractStatus]" | 
 |  |  |             ></MineAgreementSignDetailItem> | 
 |  |  |           </template> | 
 |  |  |         </MineAgreementSignDetailCard> | 
 |  |  | 
 |  |  |       </div> | 
 |  |  |     </ContentScrollView> | 
 |  |  |     <PageFooter v-if="detail?.userSignContractStatus === EnumTaskUserSignContractStatus.Wait"> | 
 |  |  |       <PageFooterBtn type="primary" @click="goToSign">去签约</PageFooterBtn> | 
 |  |  |       <PageFooterBtn type="primary" @click="goToSign" :loading="btnLoading">去签约</PageFooterBtn> | 
 |  |  |     </PageFooter> | 
 |  |  |   </LoadingLayout> | 
 |  |  | </template> | 
 |  |  | 
 |  |  | import MineAgreementSignDetailItem from './MineAgreementSignDetailItem.vue'; | 
 |  |  | import * as enterpriseEmployeeServices from '@12333/services/apiV2/enterpriseEmployee'; | 
 |  |  | import { | 
 |  |  |   EnumElectronSignAccess, | 
 |  |  |   EnumTaskUserSignContractStatus, | 
 |  |  |   EnumTaskUserSignContractStatusText, | 
 |  |  |   EnumTaskUserSignContractStatusSignText, | 
 |  |  | } from '@12333/constants'; | 
 |  |  | import { format } from '@12333/utils'; | 
 |  |  | import { format, hiddenPhone, Message, setOSSLink, openDocument } from '@12333/utils'; | 
 |  |  | import Taro from '@tarojs/taro'; | 
 |  |  | import _ from 'lodash'; | 
 |  |  |  | 
 |  |  | defineOptions({ | 
 |  |  |   name: 'InnerPage', | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | const { userDetail } = useUser(); | 
 |  |  | const router = Taro.useRouter(); | 
 |  |  | const options = Taro.getLaunchOptionsSync(); | 
 |  |  | //灵工Id | 
 |  |  | const id = router.params?.id; | 
 |  |  | const code = router.params?.code; | 
 |  |  | const code = router.params?.code || options?.query?.scene; | 
 |  |  | const btnLoading = ref(false); | 
 |  |  |  | 
 |  |  | const { | 
 |  |  |   isLoading, | 
 |  |  | 
 |  |  |   data: detail, | 
 |  |  |   refetch, | 
 |  |  | } = useQuery({ | 
 |  |  |   queryKey: ['enterpriseEmployeeServices/getTaskInfo', id, code], | 
 |  |  |   queryKey: ['enterpriseEmployeeServices/getPersonalUserElectronSign', id, code], | 
 |  |  |   queryFn: async () => { | 
 |  |  |     return await enterpriseEmployeeServices.getPersonalUserElectronSign( | 
 |  |  |       { id: id, code: code }, | 
 |  |  | 
 |  |  |   }, | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | function checkAgreement() { | 
 |  |  |   const encodedUrl = encodeURIComponent(detail?.value?.contractUrl); | 
 |  |  |   Taro.navigateTo({ | 
 |  |  |     url: `${RouterPath.mineAgreementSignDetail}?url=${encodedUrl}`, | 
 |  |  |   }); | 
 |  |  | async function checkAgreement() { | 
 |  |  |   try { | 
 |  |  |     const res = await refetch(); | 
 |  |  |     if (res?.data?.userSignContractStatus === EnumTaskUserSignContractStatus.Wait) { | 
 |  |  |       goToSign(); | 
 |  |  |     } | 
 |  |  |     if ( | 
 |  |  |       res?.data?.userSignContractStatus === EnumTaskUserSignContractStatus.Stop || | 
 |  |  |       res?.data?.userSignContractStatus === EnumTaskUserSignContractStatus.Pass | 
 |  |  |     ) { | 
 |  |  |       if (!res?.data?.contractUrl) { | 
 |  |  |         Message.warning('协议无法查看,请稍后再试'); | 
 |  |  |         return; | 
 |  |  |       } | 
 |  |  |       openDocument(setOSSLink(res?.data?.contractUrl)); | 
 |  |  |     } | 
 |  |  |   } catch (error) {} | 
 |  |  | } | 
 |  |  |  | 
 |  |  | const goToSign = useAccessReal(() => {}); | 
 |  |  | const goToSign = useAccessReal(async () => { | 
 |  |  |   try { | 
 |  |  |     btnLoading.value = true; | 
 |  |  |     let params: API.PersonalUserElectronSignCommand = { | 
 |  |  |       id: detail.value?.id, | 
 |  |  |       returnUrl: `${RouterPath.mineAgreementSignDetail}?id=${id}`, | 
 |  |  |     }; | 
 |  |  |     let res = await enterpriseEmployeeServices.personalUserElectronSign(params); | 
 |  |  |     if (res) { | 
 |  |  |       if (detail.value?.contractTemplateAccess === EnumElectronSignAccess.AlipaySign) { | 
 |  |  |         try { | 
 |  |  |           await Message.confirm({ | 
 |  |  |             message: `签约短信已发送至您${hiddenPhone( | 
 |  |  |               detail.value?.contactPhoneNumber | 
 |  |  |             )}的手机,请及时查看并签约`, | 
 |  |  |             cancelText: '未收到短信', | 
 |  |  |           }); | 
 |  |  |         } catch (error) { | 
 |  |  |           goToSign(); | 
 |  |  |         } | 
 |  |  |       } else { | 
 |  |  |         const encodedUrl = encodeURIComponent(res.signContractLongUrl); | 
 |  |  |         Taro.redirectTo({ url: `${RouterPath.extraPage}?url=${encodedUrl}` }); | 
 |  |  |       } | 
 |  |  |     } else { | 
 |  |  |       btnLoading.value = false; | 
 |  |  |     } | 
 |  |  |   } catch (error) { | 
 |  |  |     btnLoading.value = false; | 
 |  |  |   } | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | Taro.useDidShow(() => { | 
 |  |  |   refetch(); | 
 |  |  | }); | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style lang="scss"> |