| | |
| | | title-gutter="8" |
| | | title-scroll |
| | | > |
| | | <ProTabPane :title="`待安排(${notCount})`" :pane-key="EnumTaskStatus.Wait"></ProTabPane> |
| | | <ProTabPane :title="`已安排(${hasCount})`" :pane-key="EnumTaskStatus.Complete"></ProTabPane> |
| | | <ProTabPane :title="`待安排(${waitAssignCount})`" :pane-key="EnumTaskStatus.Wait"></ProTabPane> |
| | | <ProTabPane |
| | | :title="`已安排(${completedAssignCount})`" |
| | | :pane-key="EnumTaskStatus.Complete" |
| | | ></ProTabPane> |
| | | </ProTabs> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-infinite-scroll-list" |
| | |
| | | :createdTime="item.createdTime" |
| | | :serviceFee="item.serviceFee" |
| | | :unit="BillingMethodEnumUnit[item.billingMethod]" |
| | | @click="goSubmitTaskDetail(item)" |
| | | mode="taskManage" |
| | | > |
| | | <template #footer-actions> |
| | | <nut-button |
| | | v-if="item.status === EnumTaskStatus.Complete" |
| | | type="primary" |
| | | :color="Colors.Info" |
| | | class="dark-btn" |
| | | @click.stop="goBatchTaskList(item, 'detail')" |
| | | >详情</nut-button |
| | | > |
| | | <nut-button type="primary" v-else @click.stop="goBatchTaskList(item, 'arrange')" |
| | | >人员安排</nut-button |
| | | > |
| | | <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> |
| | |
| | | <script setup lang="ts"> |
| | | import { JobApplicationCard, ProTabs, ProTabPane } from '@12333/components'; |
| | | import Taro from '@tarojs/taro'; |
| | | import { EnumTaskStatus, BillingMethodEnumUnit, Colors } from '@12333/constants'; |
| | | import { useTaskList } from '@/hooks/task'; |
| | | import { |
| | | EnumTaskStatus, |
| | | BillingMethodEnumUnit, |
| | | Colors, |
| | | EnumTaskUserArrangeStatus, |
| | | } from '@12333/constants'; |
| | | import { useTaskList } from '@12333/hooks'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const { queryMenuState, infiniteLoadingProps } = useTaskList(); |
| | | |
| | | const hasCount = computed(() => { |
| | | return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.hasCount ?? 0; |
| | | }); |
| | | const notCount = computed(() => { |
| | | return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.notCount ?? 0; |
| | | const { queryMenuState, infiniteLoadingProps } = useTaskList({ |
| | | defaultQueryMenuState: { |
| | | status: EnumTaskStatus.Wait, |
| | | }, |
| | | }); |
| | | |
| | | function goSubmitTaskDetail(item: API.GetTaskInfosQueryResultItem) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.flexJobDetail}?taskId=${item.id}`, |
| | | }); |
| | | } |
| | | const completedAssignCount = computed(() => { |
| | | return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.completedAssignCount ?? 0; |
| | | }); |
| | | const waitAssignCount = computed(() => { |
| | | return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.waitAssignCount ?? 0; |
| | | }); |
| | | |
| | | function goBatchTaskList(item: API.GetTaskInfosQueryResultItem, status: string) { |
| | | //有问题 |
| | | // function goSubmitTaskDetail(item: API.GetTaskInfosQueryResultItem) { |
| | | // Taro.navigateTo({ |
| | | // url: `${RouterPath.taskManage}?taskId=${item.id}`, |
| | | // }); |
| | | // } |
| | | |
| | | function goBatchTaskList(item: API.GetTaskInfosQueryResultItem, status: EnumTaskUserArrangeStatus) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.batchTaskList}?taskId=${item.id}&detail=${status}`, |
| | | 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> |