|  |  | 
 |  |  |     v-bind="infiniteLoadingProps" | 
 |  |  |   > | 
 |  |  |     <template #renderItem="{ item }"> | 
 |  |  |       <SignCard @click="handleCheck(item)" v-model:checked-id="checkedId" :id="item.id"></SignCard> | 
 |  |  |       <SignCard | 
 |  |  |         :templateId="item.templateId" | 
 |  |  |         :name="item.name" | 
 |  |  |         @click="handleCheck(item)" | 
 |  |  |         v-model:checked-id="checkedId" | 
 |  |  |         :id="item.id" | 
 |  |  |       ></SignCard> | 
 |  |  |     </template> | 
 |  |  |   </InfiniteLoading> | 
 |  |  |  | 
 |  |  |   <PageFooter> | 
 |  |  |     <PageFooterBtn type="primary">邀请签约</PageFooterBtn> | 
 |  |  |     <PageFooterBtn type="primary" @click="handleInvite">邀请签约</PageFooterBtn> | 
 |  |  |   </PageFooter> | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | <script setup lang="ts"> | 
 |  |  | import { useInfiniteLoading } from '@12333/hooks'; | 
 |  |  | import { OrderInputType } from '@12333/constants'; | 
 |  |  | import * as flexWorkerServices from '@12333/services/api/FlexWorker'; | 
 |  |  | import { EnumContractTemplateStatus, EnumPagedListOrder } from '@12333/constants'; | 
 |  |  | import * as electronSignServices from '@12333/services/apiV2/electronSign'; | 
 |  |  | import * as enterpriseEmployeeServices from '@12333/services/apiV2/enterpriseEmployee'; | 
 |  |  | import _ from 'lodash'; | 
 |  |  | import { trim } from '@12333/utils'; | 
 |  |  | import { Message, trim } from '@12333/utils'; | 
 |  |  | import { SignCard } from '@12333/components'; | 
 |  |  | import Taro from '@tarojs/taro'; | 
 |  |  | import { goBack } from '@/utils'; | 
 |  |  |  | 
 |  |  | defineOptions({ | 
 |  |  |   name: 'InnerPage', | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | const router = Taro.useRouter(); | 
 |  |  | const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? ''; | 
 |  |  |  | 
 |  |  | const searchValue = ref(''); | 
 |  |  | const queryState = reactive({ | 
 |  |  |   searchValueTrim: '', | 
 |  |  |   keywords: '', | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | const checkedId = ref(''); | 
 |  |  |  | 
 |  |  | const handleSearch = _.debounce(function () { | 
 |  |  |   queryState.searchValueTrim = trim(searchValue.value); | 
 |  |  |   queryState.keywords = trim(searchValue.value); | 
 |  |  | }, 300); | 
 |  |  |  | 
 |  |  | const { infiniteLoadingProps } = useInfiniteLoading( | 
 |  |  |   ({ pageParam }) => { | 
 |  |  |     let params: API.GetFlexTaskListInput = { | 
 |  |  |     let params: API.GetEnterpriseContractTemplatesQuery = { | 
 |  |  |       pageModel: { | 
 |  |  |         rows: 20, | 
 |  |  |         page: pageParam, | 
 |  |  |         orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }], | 
 |  |  |         orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], | 
 |  |  |       }, | 
 |  |  |       keywords: queryState.keywords, | 
 |  |  |       status: EnumContractTemplateStatus.Completed, | 
 |  |  |     }; | 
 |  |  |  | 
 |  |  |     return flexWorkerServices.getFlexTaskByArrange(params, { | 
 |  |  |     return electronSignServices.getEnterpriseContractTemplates(params, { | 
 |  |  |       showLoading: false, | 
 |  |  |     }); | 
 |  |  |   }, | 
 |  |  |   { | 
 |  |  |     queryKey: ['flexWorkerServices/getFlexTaskByArrange'], | 
 |  |  |     queryKey: ['electronSignServices/getEnterpriseContractTemplates', queryState], | 
 |  |  |   } | 
 |  |  | ); | 
 |  |  |  | 
 |  |  | function handleCheck(item: API.OrderInfoDto) { | 
 |  |  | function handleCheck(item: API.GetEnterpriseContractTemplatesQueryResultItem) { | 
 |  |  |   checkedId.value = item.id; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | async function handleInvite() { | 
 |  |  |   try { | 
 |  |  |     let params: API.InviteElectronSignCommand = { | 
 |  |  |       ids: [enterpriseEmployeeId], | 
 |  |  |       contractTemplateId: checkedId.value, | 
 |  |  |     }; | 
 |  |  |     let res = await enterpriseEmployeeServices.inviteElectronSign(params); | 
 |  |  |     if (res) { | 
 |  |  |       Message.success('签约成功', { | 
 |  |  |         onClosed() { | 
 |  |  |           goBack(); | 
 |  |  |         }, | 
 |  |  |       }); | 
 |  |  |     } | 
 |  |  |   } catch (error) {} | 
 |  |  | } | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style lang="scss"> |