|  |  |  | 
|---|
|  |  |  | 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: 'isRecommend', 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"> | 
|---|