|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <ProTabs | 
|---|
|  |  |  | v-model="queryState.status" | 
|---|
|  |  |  | v-model="queryMenuState.status" | 
|---|
|  |  |  | name="task-tab" | 
|---|
|  |  |  | :showPaneContent="false" | 
|---|
|  |  |  | class="task-tabs" | 
|---|
|  |  |  | 
|---|
|  |  |  | title-gutter="8" | 
|---|
|  |  |  | title-scroll | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <ProTabPane :title="`待安排(10)`" :pane-key="10"></ProTabPane> | 
|---|
|  |  |  | <ProTabPane :title="`已安排(11)`" :pane-key="20"></ProTabPane> | 
|---|
|  |  |  | <ProTabPane :title="`待安排(${waitAssignCount})`" :pane-key="EnumTaskStatus.Wait"></ProTabPane> | 
|---|
|  |  |  | <ProTabPane | 
|---|
|  |  |  | :title="`已安排(${completedAssignCount})`" | 
|---|
|  |  |  | :pane-key="EnumTaskStatus.Complete" | 
|---|
|  |  |  | ></ProTabPane> | 
|---|
|  |  |  | </ProTabs> | 
|---|
|  |  |  | <InfiniteLoading | 
|---|
|  |  |  | scrollViewClassName="common-infinite-scroll-list" | 
|---|
|  |  |  | v-bind="infiniteLoadingProps" | 
|---|
|  |  |  | :key="queryState.status" | 
|---|
|  |  |  | :key="queryMenuState.status" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template #renderItem="{ item }"> | 
|---|
|  |  |  | <JobApplicationCard @click="goSubmitTaskDetail(item)" /> | 
|---|
|  |  |  | <JobApplicationCard | 
|---|
|  |  |  | :name="item.name" | 
|---|
|  |  |  | :beginTime="item.beginTime" | 
|---|
|  |  |  | :endTime="item.endTime" | 
|---|
|  |  |  | :addressName="item.addressName" | 
|---|
|  |  |  | :createdTime="item.createdTime" | 
|---|
|  |  |  | :serviceFee="item.serviceFee" | 
|---|
|  |  |  | :status="item.status" | 
|---|
|  |  |  | :unit="BillingMethodEnumUnit[item.billingMethod]" | 
|---|
|  |  |  | mode="taskManage" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template #footer-actions> | 
|---|
|  |  |  | <div> | 
|---|
|  |  |  | <nut-button | 
|---|
|  |  |  | type="primary" | 
|---|
|  |  |  | @click.stop="goBatchTaskList(item, EnumTaskUserArrangeStatus.Wait)" | 
|---|
|  |  |  | >人员安排</nut-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <nut-button | 
|---|
|  |  |  | v-if="item.status === EnumTaskStatus.Complete" | 
|---|
|  |  |  | type="primary" | 
|---|
|  |  |  | :color="Colors.Info" | 
|---|
|  |  |  | class="dark-btn" | 
|---|
|  |  |  | @click.stop="goBatchTaskList(item, EnumTaskUserArrangeStatus.Complete)" | 
|---|
|  |  |  | >详情</nut-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </JobApplicationCard> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </InfiniteLoading> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | 
|---|
|  |  |  | <script setup lang="ts"> | 
|---|
|  |  |  | import { JobApplicationCard, ProTabs, ProTabPane } from '@12333/components'; | 
|---|
|  |  |  | import Taro from '@tarojs/taro'; | 
|---|
|  |  |  | import { useInfiniteLoading } from '@12333/hooks'; | 
|---|
|  |  |  | import { OrderInputType } from '@12333/constants'; | 
|---|
|  |  |  | import * as orderServices from '@12333/services/api/Order'; | 
|---|
|  |  |  | import { | 
|---|
|  |  |  | EnumTaskStatus, | 
|---|
|  |  |  | BillingMethodEnumUnit, | 
|---|
|  |  |  | Colors, | 
|---|
|  |  |  | EnumTaskUserArrangeStatus, | 
|---|
|  |  |  | } from '@12333/constants'; | 
|---|
|  |  |  | import { useTaskList } from '@12333/hooks'; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | defineOptions({ | 
|---|
|  |  |  | name: 'InnerPage', | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const queryState = reactive({ | 
|---|
|  |  |  | status: 10, | 
|---|
|  |  |  | const { queryMenuState, infiniteLoadingProps } = useTaskList({ | 
|---|
|  |  |  | defaultQueryMenuState: { | 
|---|
|  |  |  | status: EnumTaskStatus.Wait, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { infiniteLoadingProps } = useInfiniteLoading( | 
|---|
|  |  |  | ({ pageParam }) => { | 
|---|
|  |  |  | let params: API.FrontOrderListInput = { | 
|---|
|  |  |  | pageModel: { | 
|---|
|  |  |  | rows: 20, | 
|---|
|  |  |  | page: pageParam, | 
|---|
|  |  |  | orderInput: [{ property: 'lastShelfTime', order: OrderInputType.Desc }], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | const completedAssignCount = computed(() => { | 
|---|
|  |  |  | return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.completedAssignCount ?? 0; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | const waitAssignCount = computed(() => { | 
|---|
|  |  |  | return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.waitAssignCount ?? 0; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return orderServices.getFrontOrderList(params, { | 
|---|
|  |  |  | showLoading: false, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | queryKey: ['orderServices/getFrontOrderList', queryState], | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | //有问题 | 
|---|
|  |  |  | // function goSubmitTaskDetail(item: API.GetTaskInfosQueryResultItem) { | 
|---|
|  |  |  | //   Taro.navigateTo({ | 
|---|
|  |  |  | //     url: `${RouterPath.taskManage}?taskId=${item.id}`, | 
|---|
|  |  |  | //   }); | 
|---|
|  |  |  | // } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function goSubmitTaskDetail(item: API.FrontOrderList) { | 
|---|
|  |  |  | function goBatchTaskList(item: API.GetTaskInfosQueryResultItem, status: EnumTaskUserArrangeStatus) { | 
|---|
|  |  |  | Taro.navigateTo({ | 
|---|
|  |  |  | url: `${RouterPath.batchTaskList}?id=${item.id}`, | 
|---|
|  |  |  | url: `${RouterPath.batchTaskList}?id=${item.id}&status=${status}`, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </script> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <style lang="scss"> | 
|---|
|  |  |  | @import '@/styles/common.scss'; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .taskManage-page-wrapper { | 
|---|
|  |  |  | .dark-btn { | 
|---|
|  |  |  | margin-left: 12px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|