|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <ProTabs | 
|---|
|  |  |  | v-model="queryState.mineHireType" | 
|---|
|  |  |  | <!-- <ProTabs | 
|---|
|  |  |  | v-model="queryState.status" | 
|---|
|  |  |  | name="home-tab" | 
|---|
|  |  |  | :showPaneContent="false" | 
|---|
|  |  |  | class="home-tabs" | 
|---|
|  |  |  | 
|---|
|  |  |  | title-scroll | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <ProTabPane :title="`全部`" :pane-key="0"></ProTabPane> | 
|---|
|  |  |  | <ProTabPane :title="`进行中`" :pane-key="10"></ProTabPane> | 
|---|
|  |  |  | <ProTabPane :title="`待验收`" :pane-key="20"></ProTabPane> | 
|---|
|  |  |  | <ProTabPane :title="`已完成`" :pane-key="30"></ProTabPane> | 
|---|
|  |  |  | </ProTabs> | 
|---|
|  |  |  | <ProTabPane :title="`待开始`" :pane-key="GetPersonalHireTaskInfosQueryStatus.Wait"></ProTabPane> | 
|---|
|  |  |  | <ProTabPane | 
|---|
|  |  |  | :title="`进行中`" | 
|---|
|  |  |  | :pane-key="GetPersonalHireTaskInfosQueryStatus.InProcess" | 
|---|
|  |  |  | ></ProTabPane> | 
|---|
|  |  |  | <ProTabPane | 
|---|
|  |  |  | :title="`已完成`" | 
|---|
|  |  |  | :pane-key="GetPersonalHireTaskInfosQueryStatus.Completed" | 
|---|
|  |  |  | ></ProTabPane> | 
|---|
|  |  |  | </ProTabs> --> | 
|---|
|  |  |  | <InfiniteLoading | 
|---|
|  |  |  | scrollViewClassName="common-infinite-scroll-list home-list" | 
|---|
|  |  |  | v-bind="infiniteLoadingProps" | 
|---|
|  |  |  | :key="queryState.mineHireType" | 
|---|
|  |  |  | :key="queryState.status" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template #renderItem="{ item }"> | 
|---|
|  |  |  | <TaskCard @click="goTaskDetail(item)"> | 
|---|
|  |  |  | <TaskCard | 
|---|
|  |  |  | :name="item.name" | 
|---|
|  |  |  | :begin-time="item.beginTime" | 
|---|
|  |  |  | :end-time="item.endTime" | 
|---|
|  |  |  | :billing-method="item.billingMethod" | 
|---|
|  |  |  | :benefits="item.benefits" | 
|---|
|  |  |  | :service-fee="item.serviceFee" | 
|---|
|  |  |  | :settlement-cycle="item.settlementCycle" | 
|---|
|  |  |  | :address-name="item.addressName" | 
|---|
|  |  |  | @click="goTaskDetail(item)" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template #actions> | 
|---|
|  |  |  | <div class="task-card-actions-text" :style="{ color: TaskStatusColor[10] }"> | 
|---|
|  |  |  | {{ TaskStatusText[10] }} | 
|---|
|  |  |  | <div | 
|---|
|  |  |  | class="task-card-actions-text" | 
|---|
|  |  |  | :style="{ color: GetPersonalHireTaskInfosQueryStatusColor[item.status] }" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | {{ GetPersonalHireTaskInfosQueryStatusText[item.status] }} | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </TaskCard> | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <script setup lang="ts"> | 
|---|
|  |  |  | import { TaskCard, ProTabs, ProTabPane } from '@12333/components'; | 
|---|
|  |  |  | import { useUserStore } from '@/stores/modules/user'; | 
|---|
|  |  |  | import { TaskStatusText, TaskStatusColor, TaskStatus } from '@/constants'; | 
|---|
|  |  |  | import { useInfiniteLoading } from '@12333/hooks'; | 
|---|
|  |  |  | import { OrderInputType } from '@12333/constants'; | 
|---|
|  |  |  | import * as flexWorkerServices from '@12333/services/api/FlexWorker'; | 
|---|
|  |  |  | import { | 
|---|
|  |  |  | EnumPagedListOrder, | 
|---|
|  |  |  | GetPersonalHireTaskInfosQueryStatus, | 
|---|
|  |  |  | GetPersonalHireTaskInfosQueryStatusText, | 
|---|
|  |  |  | GetPersonalHireTaskInfosQueryStatusColor, | 
|---|
|  |  |  | EnumTaskUserArrangeStatus, | 
|---|
|  |  |  | } from '@12333/constants'; | 
|---|
|  |  |  | import * as taskServices from '@12333/services/apiV2/task'; | 
|---|
|  |  |  | import Taro from '@tarojs/taro'; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | defineOptions({ | 
|---|
|  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const queryState = reactive({ | 
|---|
|  |  |  | mineHireType: TaskStatus.All, | 
|---|
|  |  |  | status: 0 as any as GetPersonalHireTaskInfosQueryStatus, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const userStore = useUserStore(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { infiniteLoadingProps } = useInfiniteLoading( | 
|---|
|  |  |  | ({ pageParam }) => { | 
|---|
|  |  |  | let params: API.GetFlexTaskListInput = { | 
|---|
|  |  |  | let params: API.GetPersonalHireTaskInfosQuery = { | 
|---|
|  |  |  | pageModel: { | 
|---|
|  |  |  | rows: 20, | 
|---|
|  |  |  | page: pageParam, | 
|---|
|  |  |  | orderInput: [ | 
|---|
|  |  |  | queryState.mineHireType === TaskStatus.All | 
|---|
|  |  |  | ? { property: 'creationTime', order: OrderInputType.Desc } | 
|---|
|  |  |  | : { property: 'lastShelfTime', order: OrderInputType.Desc }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | status: GetPersonalHireTaskInfosQueryStatus.InProcess, | 
|---|
|  |  |  | arrangeStatus: EnumTaskUserArrangeStatus.Complete, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return flexWorkerServices.getFlexTaskByArrange(params, { | 
|---|
|  |  |  | // if (Number(queryState.status)) { | 
|---|
|  |  |  | //   params.status = queryState.status; | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | return taskServices.getPersonalHireTaskInfos(params, { | 
|---|
|  |  |  | showLoading: false, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | queryKey: ['flexWorkerServices/getFlexTaskByArrange', queryState], | 
|---|
|  |  |  | queryKey: ['taskServices/getPersonalHireTaskInfos', queryState], | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function goTaskDetail(item: API.GetFlexTaskListOutput) { | 
|---|
|  |  |  | function goTaskDetail(item: API.GetPersonalHireTaskInfosQueryResultItem) { | 
|---|
|  |  |  | Taro.navigateTo({ | 
|---|
|  |  |  | url: `${RouterPath.taskDetail}?id=${item.id}`, | 
|---|
|  |  |  | url: `${RouterPath.taskDetail}?id=${item.id}&from=hire`, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </script> | 
|---|