|  |  | 
 |  |  | <template> | 
 |  |  |   <ProTabs | 
 |  |  |     v-model="queryState.status" | 
 |  |  |     v-model="queryState.signContractStatus" | 
 |  |  |     name="home-tab" | 
 |  |  |     :showPaneContent="false" | 
 |  |  |     class="home-tabs" | 
 |  |  | 
 |  |  |     title-gutter="12" | 
 |  |  |     title-scroll | 
 |  |  |   > | 
 |  |  |     <ProTabPane :title="`灵工待签约`" :pane-key="Status.FlexJobWait"></ProTabPane> | 
 |  |  |     <ProTabPane :title="`企业待签约`" :pane-key="Status.EnterpriseWait"></ProTabPane> | 
 |  |  |     <ProTabPane :title="`已签约`" :pane-key="Status.Pass"></ProTabPane> | 
 |  |  |     <ProTabPane | 
 |  |  |       :title="`灵工待签约`" | 
 |  |  |       :pane-key="EnumGetEnterpriseEmployeesQuerySignContractStatus.UserWait" | 
 |  |  |     ></ProTabPane> | 
 |  |  |     <ProTabPane | 
 |  |  |       :title="`企业待签约`" | 
 |  |  |       :pane-key="EnumGetEnterpriseEmployeesQuerySignContractStatus.EnterpriseWait" | 
 |  |  |     ></ProTabPane> | 
 |  |  |     <ProTabPane | 
 |  |  |       :title="`已签约`" | 
 |  |  |       :pane-key="EnumGetEnterpriseEmployeesQuerySignContractStatus.Pass" | 
 |  |  |     ></ProTabPane> | 
 |  |  |     <!-- <ProTabPane :title="`已解约`" :pane-key="EnumTaskUserSignContractStatus.Stop"></ProTabPane> --> | 
 |  |  |   </ProTabs> | 
 |  |  |   <InfiniteLoading | 
 |  |  |     scrollViewClassName="common-infinite-scroll-list home-list" | 
 |  |  |     v-bind="infiniteLoadingProps" | 
 |  |  |     :key="queryState.status" | 
 |  |  |     :key="queryState.signContractStatus" | 
 |  |  |   > | 
 |  |  |     <template #renderItem="{ item }"> | 
 |  |  |       <FlexJobCard | 
 |  |  | 
 |  |  |             <nut-button type="primary" @click.stop="checkContract(item)">查看合约</nut-button> | 
 |  |  |           </template> | 
 |  |  |           <nut-button | 
 |  |  |             v-if="item.userSignContractStatus === EnumTaskUserSignContractStatus.Wait" | 
 |  |  |             v-if=" | 
 |  |  |               item.userSignContractStatus === EnumTaskUserSignContractStatus.Wait || | 
 |  |  |               item.userSignContractStatus === EnumTaskUserSignContractStatus.Stop || | 
 |  |  |               !item.userSignContractStatus | 
 |  |  |             " | 
 |  |  |             type="primary" | 
 |  |  |             @click.stop="goFlexJobSign(item)" | 
 |  |  |             >邀请签约</nut-button | 
 |  |  | 
 |  |  |           <nut-button | 
 |  |  |             v-if="item.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Wait" | 
 |  |  |             type="primary" | 
 |  |  |             @click.stop="goFlexJobSign(item)" | 
 |  |  |             @click.stop="goEnterpriseSign(item)" | 
 |  |  |             >企业签约</nut-button | 
 |  |  |           > | 
 |  |  |         </template> | 
 |  |  | 
 |  |  |   EnumTaskUserHireStatus, | 
 |  |  |   EnumTaskUserSignContractStatus, | 
 |  |  |   EnumPagedListOrder, | 
 |  |  |   EnumGetEnterpriseEmployeesQuerySignContractStatus, | 
 |  |  | } from '@12333/constants'; | 
 |  |  | import * as enterpriseEmployeeServices from '@12333/services/apiV2/enterpriseEmployee'; | 
 |  |  | import Taro from '@tarojs/taro'; | 
 |  |  | 
 |  |  |   name: 'InnerPage', | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | const enum Status { | 
 |  |  |   FlexJobWait = 1, | 
 |  |  |   EnterpriseWait = 2, | 
 |  |  |   Pass = 3, | 
 |  |  | } | 
 |  |  |  | 
 |  |  | const queryState = reactive({ | 
 |  |  |   status: Status.FlexJobWait, | 
 |  |  |   signContractStatus: EnumGetEnterpriseEmployeesQuerySignContractStatus.UserWait, | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading( | 
 |  |  | 
 |  |  |         orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], | 
 |  |  |       }, | 
 |  |  |       hireStatus: EnumTaskUserHireStatus.Pass, | 
 |  |  |       signContractStatus: queryState.signContractStatus, | 
 |  |  |     }; | 
 |  |  |     if (Number(queryState.status) === Status.FlexJobWait) { | 
 |  |  |       params.userSignContractStatus = EnumTaskUserSignContractStatus.Wait; | 
 |  |  |     } | 
 |  |  |     if (Number(queryState.status) === Status.EnterpriseWait) { | 
 |  |  |       params.enterpriseSignContractStatus = EnumTaskUserSignContractStatus.Wait; | 
 |  |  |     } | 
 |  |  |     if (Number(queryState.status) === Status.Pass) { | 
 |  |  |       params.userSignContractStatus = EnumTaskUserSignContractStatus.Pass; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     return enterpriseEmployeeServices.getEnterpriseEmployees(params, { | 
 |  |  |       showLoading: false, | 
 |  |  |     }); | 
 |  |  | 
 |  |  |     url: `${RouterPath.flexJobSign}?enterpriseEmployeeId=${item.id}`, | 
 |  |  |   }); | 
 |  |  | } | 
 |  |  |  | 
 |  |  | async function goEnterpriseSign(item: API.GetEnterpriseEmployeesQueryResultItem) { | 
 |  |  |   try { | 
 |  |  |     let res = await enterpriseEmployeeServices.enterpriseUserElectronSign({ id: item.id }); | 
 |  |  |     if (res) { | 
 |  |  |       const encodedUrl = encodeURIComponent(res.signContractLongUrl); | 
 |  |  |       Taro.navigateTo({ url: `${RouterPath.extraPage}?url=${encodedUrl}` }); | 
 |  |  |     } | 
 |  |  |   } catch (error) {} | 
 |  |  | } | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style lang="scss"> |