|  |  | 
 |  |  |           <template #content> | 
 |  |  |             <MineAgreementSignDetailItem | 
 |  |  |               label="协议编号" | 
 |  |  |               detail="QY1052511040446686047" | 
 |  |  |               :detail="detail?.contractCode" | 
 |  |  |             ></MineAgreementSignDetailItem> | 
 |  |  |             <MineAgreementSignDetailItem | 
 |  |  |               label="协议状态" | 
 |  |  |               detail="生效中/已终止" | 
 |  |  |             ></MineAgreementSignDetailItem> | 
 |  |  |             <MineAgreementSignDetailItem | 
 |  |  |               label="起始时间" | 
 |  |  |               detail="2024.05.20" | 
 |  |  |             ></MineAgreementSignDetailItem> | 
 |  |  |             <MineAgreementSignDetailItem | 
 |  |  |               label="终止时间" | 
 |  |  |               detail="2025.05.19" | 
 |  |  |             ></MineAgreementSignDetailItem> | 
 |  |  |             <MineAgreementSignDetailItem | 
 |  |  |               label="协议类型" | 
 |  |  |               detail="劳动合同" | 
 |  |  |               :detail="EnumTaskUserSignContractStatusSignText[detail?.userSignContractStatus]" | 
 |  |  |             ></MineAgreementSignDetailItem> | 
 |  |  |           </template> | 
 |  |  |         </MineAgreementSignDetailCard> | 
 |  |  | 
 |  |  |           <template #content> | 
 |  |  |             <MineAgreementSignDetailItem | 
 |  |  |               label="员工姓名" | 
 |  |  |               detail="阳阳" | 
 |  |  |               :detail="detail?.name" | 
 |  |  |             ></MineAgreementSignDetailItem> | 
 |  |  |             <MineAgreementSignDetailItem | 
 |  |  |               label="证件类型" | 
 |  |  |               detail="居民身份证" | 
 |  |  |               :detail="detail?.identityType" | 
 |  |  |             ></MineAgreementSignDetailItem> | 
 |  |  |             <MineAgreementSignDetailItem | 
 |  |  |               label="证件号码" | 
 |  |  |               detail="622429199105261913" | 
 |  |  |               :detail="detail?.identity" | 
 |  |  |             ></MineAgreementSignDetailItem> | 
 |  |  |             <MineAgreementSignDetailItem label="岗位" detail="保洁"></MineAgreementSignDetailItem> | 
 |  |  |             <MineAgreementSignDetailItem | 
 |  |  |               label="签约时间" | 
 |  |  |               detail="2024.05.20" | 
 |  |  |               :detail="format(detail?.userSignContractTime, 'YYYY-MM-DD')" | 
 |  |  |             ></MineAgreementSignDetailItem> | 
 |  |  |           </template> | 
 |  |  |         </MineAgreementSignDetailCard> | 
 |  |  | 
 |  |  |           <template #content> | 
 |  |  |             <MineAgreementSignDetailItem | 
 |  |  |               label="主体类型" | 
 |  |  |               detail="公司" | 
 |  |  |               :detail="detail?.enterpriseType" | 
 |  |  |             ></MineAgreementSignDetailItem> | 
 |  |  |             <MineAgreementSignDetailItem | 
 |  |  |               label="签约主体" | 
 |  |  |               detail="宁波人力无忧人力资源" | 
 |  |  |               :detail="detail?.enterpriseName" | 
 |  |  |             ></MineAgreementSignDetailItem> | 
 |  |  |             <MineAgreementSignDetailItem | 
 |  |  |               label="签约时间" | 
 |  |  |               detail="2024.05.20" | 
 |  |  |               :detail="format(detail?.enterpriseSignContractTime, 'YYYY-MM-DD')" | 
 |  |  |             ></MineAgreementSignDetailItem> | 
 |  |  |           </template> | 
 |  |  |         </MineAgreementSignDetailCard> | 
 |  |  | 
 |  |  |           <template #content> | 
 |  |  |             <MineAgreementSignDetailItem label="协议内容"> | 
 |  |  |               <template #detail> | 
 |  |  |                 <div class="detail-card-btn">查看协议</div> | 
 |  |  |                 <div class="detail-card-btn" @click="checkAgreement">查看协议</div> | 
 |  |  |               </template> | 
 |  |  |             </MineAgreementSignDetailItem> | 
 |  |  |           </template> | 
 |  |  |         </MineAgreementSignDetailCard> | 
 |  |  |       </div> | 
 |  |  |     </ContentScrollView> | 
 |  |  |     <PageFooter> | 
 |  |  |     <PageFooter v-if="detail?.userSignContractStatus === EnumTaskUserSignContractStatus.Wait"> | 
 |  |  |       <PageFooterBtn type="primary" @click="goToSign">去签约</PageFooterBtn> | 
 |  |  |     </PageFooter> | 
 |  |  |   </LoadingLayout> | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | <script setup lang="ts"> | 
 |  |  | import { useUserStore } from '@/stores/modules/user'; | 
 |  |  | import { useQuery } from '@tanstack/vue-query'; | 
 |  |  | import MineAgreementSignDetailCard from './MineAgreementSignDetailCard.vue'; | 
 |  |  | import MineAgreementSignDetailItem from './MineAgreementSignDetailItem.vue'; | 
 |  |  | import * as enterpriseEmployeeServices from '@12333/services/apiV2/enterpriseEmployee'; | 
 |  |  | import { | 
 |  |  |   EnumElectronSignAccess, | 
 |  |  |   EnumTaskUserSignContractStatus, | 
 |  |  |   EnumTaskUserSignContractStatusSignText, | 
 |  |  | } from '@12333/constants'; | 
 |  |  | import { format, hiddenPhone, Message, setOSSLink, openDocument } from '@12333/utils'; | 
 |  |  | import Taro from '@tarojs/taro'; | 
 |  |  |  | 
 |  |  | defineOptions({ | 
 |  |  |   name: 'InnerPage', | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | const queryState = reactive({}); | 
 |  |  | const { userDetail } = useUser(); | 
 |  |  | const router = Taro.useRouter(); | 
 |  |  | const options = Taro.getLaunchOptionsSync(); | 
 |  |  | //灵工Id | 
 |  |  | const id = router.params?.id; | 
 |  |  | const code = router.params?.code || options?.query?.scene; | 
 |  |  |  | 
 |  |  | const userStore = useUserStore(); | 
 |  |  | const { | 
 |  |  |   isLoading, | 
 |  |  |   isError, | 
 |  |  |   data: detail, | 
 |  |  |   refetch, | 
 |  |  | } = useQuery({ | 
 |  |  |   queryKey: ['enterpriseEmployeeServices/getPersonalUserElectronSign', id, code], | 
 |  |  |   queryFn: async () => { | 
 |  |  |     return await enterpriseEmployeeServices.getPersonalUserElectronSign( | 
 |  |  |       { id: id, code: code }, | 
 |  |  |       { | 
 |  |  |         showLoading: false, | 
 |  |  |       } | 
 |  |  |     ); | 
 |  |  |   }, | 
 |  |  |   placeholderData: () => ({} as API.GetPersonalUserElectronSignQueryResult), | 
 |  |  |   onSuccess(data) { | 
 |  |  |     // if (data.isExistTradeChatRecord) setTrue(); | 
 |  |  |   }, | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | function goToSign() {} | 
 |  |  | function checkAgreement() { | 
 |  |  |   if (detail?.value?.userSignContractStatus === EnumTaskUserSignContractStatus.Wait) { | 
 |  |  |     goToSign(); | 
 |  |  |   } | 
 |  |  |   if ( | 
 |  |  |     detail?.value?.userSignContractStatus === EnumTaskUserSignContractStatus.Stop || | 
 |  |  |     detail?.value?.userSignContractStatus === EnumTaskUserSignContractStatus.Pass | 
 |  |  |   ) { | 
 |  |  |     if (!detail?.value?.contractUrl) { | 
 |  |  |       Message.warning('协议无法查看,请稍后再试'); | 
 |  |  |       return; | 
 |  |  |     } | 
 |  |  |     openDocument(setOSSLink(detail?.value?.contractUrl)); | 
 |  |  |   } | 
 |  |  | } | 
 |  |  |  | 
 |  |  | const goToSign = useAccessReal(async () => { | 
 |  |  |   try { | 
 |  |  |     let params: API.PersonalUserElectronSignCommand = { | 
 |  |  |       id: detail.value?.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.navigateTo({ url: `${RouterPath.extraPage}?url=${encodedUrl}` }); | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   } catch (error) {} | 
 |  |  | }); | 
 |  |  | Taro.useDidShow(() => { | 
 |  |  |   refetch(); | 
 |  |  | }); | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style lang="scss"> |