|  |  | 
 |  |  | <template> | 
 |  |  |   <div class="searchbar-container"> | 
 |  |  |   <div class="searchbar-container" v-if="showQueryState"> | 
 |  |  |     <BlSearchbar | 
 |  |  |       v-model.trim="searchValue" | 
 |  |  |       placeholder="搜索姓名/身份证号" | 
 |  |  | 
 |  |  |   </div> | 
 |  |  |   <InfiniteLoading scrollViewClassName="common-infinite-scroll-list" v-bind="infiniteLoadingProps"> | 
 |  |  |     <template #renderItem="{ item }"> | 
 |  |  |       <FlexJobCard :showFooterLeft="false"> | 
 |  |  |       <FlexJobCard | 
 |  |  |         :name="item.name" | 
 |  |  |         :gender="item.gender" | 
 |  |  |         :age="item.age" | 
 |  |  |         :avatar="item.avatar" | 
 |  |  |         :isReal="item.isReal" | 
 |  |  |         :educationalBackgroundContent="item.educationalBackgroundContent" | 
 |  |  |         :personalIdentityContent="item.personalIdentityContent" | 
 |  |  |         :workExperience="item.workExperience" | 
 |  |  |         :workSeniority="item.workSeniority" | 
 |  |  |         :taskCount="item.taskCount" | 
 |  |  |         :showFooterLeft="false" | 
 |  |  |       > | 
 |  |  |         <template #footerRight> | 
 |  |  |           <nut-button type="primary">安排</nut-button> | 
 |  |  |           <!-- <div class="batch-task-card-status">已安排</div> --> | 
 |  |  |           <nut-button v-if="showQueryState" type="primary" @click.stop="handleArrange(item)" | 
 |  |  |             >安排</nut-button | 
 |  |  |           > | 
 |  |  |           <div v-else class="batch-task-card-status">已安排</div> | 
 |  |  |         </template> | 
 |  |  |       </FlexJobCard> | 
 |  |  |     </template> | 
 |  |  | 
 |  |  | <script setup lang="ts"> | 
 |  |  | import Taro from '@tarojs/taro'; | 
 |  |  | import { useInfiniteLoading } from '@12333/hooks'; | 
 |  |  | import { OrderInputType } from '@12333/constants'; | 
 |  |  | import * as orderServices from '@12333/services/api/Order'; | 
 |  |  | import { | 
 |  |  |   EnumTaskUserArrangeStatus, | 
 |  |  |   EnumPagedListOrder, | 
 |  |  |   EnumGetArrangeTaskUsersQueryApplyStatus, | 
 |  |  | } from '@12333/constants'; | 
 |  |  | import * as taskUserServices from '@12333/services/apiV2/taskUser'; | 
 |  |  | import _ from 'lodash'; | 
 |  |  | import { trim } from '@12333/utils'; | 
 |  |  | import { Message, trim } from '@12333/utils'; | 
 |  |  | import { FlexJobCard } from '@12333/components'; | 
 |  |  |  | 
 |  |  | defineOptions({ | 
 |  |  | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | const searchValue = ref(''); | 
 |  |  |  | 
 |  |  | const router = Taro.useRouter(); | 
 |  |  | const id = router.params?.id ?? ''; | 
 |  |  | const status = Number(router.params?.status); | 
 |  |  | const queryState = reactive({ | 
 |  |  |   searchValueTrim: '', | 
 |  |  |   keywords: '', | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | const showQueryState = computed(() => { | 
 |  |  |   return status === EnumTaskUserArrangeStatus.Wait; | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | const handleSearch = _.debounce(function () { | 
 |  |  |   queryState.searchValueTrim = trim(searchValue.value); | 
 |  |  |   queryState.keywords = trim(searchValue.value); | 
 |  |  | }, 300); | 
 |  |  |  | 
 |  |  | const { infiniteLoadingProps } = useInfiniteLoading( | 
 |  |  | const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading( | 
 |  |  |   ({ pageParam }) => { | 
 |  |  |     let params: API.FrontOrderListInput = { | 
 |  |  |     let params: API.GetArrangeTaskUsersQuery = { | 
 |  |  |       keywords: queryState.keywords, | 
 |  |  |       arrangeStatus: status, | 
 |  |  |       applyStatus: EnumGetArrangeTaskUsersQueryApplyStatus.Completed, | 
 |  |  |       id: id, | 
 |  |  |       pageModel: { | 
 |  |  |         rows: 20, | 
 |  |  |         page: pageParam, | 
 |  |  |         orderInput: [{ property: 'lastShelfTime', order: OrderInputType.Desc }], | 
 |  |  |         orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], | 
 |  |  |       }, | 
 |  |  |     }; | 
 |  |  |  | 
 |  |  |     return orderServices.getFrontOrderList(params, { | 
 |  |  |     return taskUserServices.getArrangeTaskUsers(params, { | 
 |  |  |       showLoading: false, | 
 |  |  |     }); | 
 |  |  |   }, | 
 |  |  |   { | 
 |  |  |     queryKey: ['orderServices/getFrontOrderList', queryState], | 
 |  |  |     queryKey: ['taskUserServices/getArrangeTaskUsers', queryState], | 
 |  |  |   } | 
 |  |  | ); | 
 |  |  |  | 
 |  |  | async function handleArrange(item: API.GetArrangeTaskUsersQueryResultItem) { | 
 |  |  |   try { | 
 |  |  |     let params: API.SetTaskUserArrangeCommand = { | 
 |  |  |       enterpriseEmployeeId: item.id, | 
 |  |  |       taskInfoId: id, | 
 |  |  |       arrangeStatus: EnumTaskUserArrangeStatus.Complete, | 
 |  |  |     }; | 
 |  |  |     let res = await taskUserServices.setTaskUserArrange(params); | 
 |  |  |     if (res) { | 
 |  |  |       Message.success('已安排'); | 
 |  |  |       invalidateQueries(); | 
 |  |  |     } | 
 |  |  |   } catch (error) {} | 
 |  |  | } | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style lang="scss"> |