<template> 
 | 
  <ProTabs 
 | 
    v-model="queryMenuState.status" 
 | 
    name="task-tab" 
 | 
    :showPaneContent="false" 
 | 
    class="task-tabs" 
 | 
    isTransparent 
 | 
    title-gutter="8" 
 | 
    title-scroll 
 | 
  > 
 | 
    <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="queryMenuState.status" 
 | 
  > 
 | 
    <template #renderItem="{ 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 { 
 | 
  EnumTaskStatus, 
 | 
  BillingMethodEnumUnit, 
 | 
  Colors, 
 | 
  EnumTaskUserArrangeStatus, 
 | 
  EnumTaskUserApplyStatus, 
 | 
} from '@12333/constants'; 
 | 
import { useTaskList } from '@12333/hooks'; 
 | 
  
 | 
defineOptions({ 
 | 
  name: 'InnerPage', 
 | 
}); 
 | 
  
 | 
const { queryMenuState, infiniteLoadingProps } = useTaskList({ 
 | 
  defaultQueryMenuState: { 
 | 
    status: EnumTaskStatus.Wait, 
 | 
  }, 
 | 
  beforeRequest(params) { 
 | 
    if (Number(params.status) === EnumTaskStatus.Complete) { 
 | 
      params.applyStatus = EnumTaskUserApplyStatus.Completed; 
 | 
    } 
 | 
    return params; 
 | 
  }, 
 | 
}); 
 | 
  
 | 
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 goSubmitTaskDetail(item: API.GetTaskInfosQueryResultItem) { 
 | 
//   Taro.navigateTo({ 
 | 
//     url: `${RouterPath.taskManage}?taskId=${item.id}`, 
 | 
//   }); 
 | 
// } 
 | 
  
 | 
function goBatchTaskList(item: API.GetTaskInfosQueryResultItem, status: EnumTaskUserArrangeStatus) { 
 | 
  Taro.navigateTo({ 
 | 
    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> 
 |