wupengfei
2025-03-11 286f1b727856d6b32a8d237f353ae008f3076deb
apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
@@ -8,8 +8,8 @@
    title-gutter="8"
    title-scroll
  >
    <ProTabPane :title="`待安排(10)`" :pane-key="10"></ProTabPane>
    <ProTabPane :title="`已安排(11)`" :pane-key="20"></ProTabPane>
    <ProTabPane :title="`待安排(${notCount})`" pane-key="10"></ProTabPane>
    <ProTabPane :title="`已安排(${hasCount})`" pane-key="20"></ProTabPane>
  </ProTabs>
  <InfiniteLoading
    scrollViewClassName="common-infinite-scroll-list"
@@ -17,48 +17,85 @@
    :key="queryState.status"
  >
    <template #renderItem="{ item }">
      <TaskCard @click="goSubmitTaskDetail(item)" />
      <JobApplicationCard
        :taskName="item.taskName"
        :startDate="item.startDate"
        :endDate="item.endDate"
        :address="item.address"
        :creationTime="item.creationTime"
        :fee="item.fee"
        :unit="SalaryTimeTypeEnumUnit[item.feeType]"
        @click="goSubmitTaskDetail(item)"
        mode="taskManage"
      >
        <template #footer-actions>
          <nut-button
            v-if="item.isArrange"
            type="primary"
            :color="Colors.Info"
            class="dark-btn"
            @click="goSubmitTaskDetail(item)"
            >详情</nut-button
          >
          <nut-button type="primary" v-else @click="goBatchTaskList(item)">人员安排</nut-button>
        </template>
      </JobApplicationCard>
    </template>
  </InfiniteLoading>
</template>
<script setup lang="ts">
import { TaskCard, ProTabs, ProTabPane } from '@12333/components';
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 { OrderInputType, Colors } from '@12333/constants';
import * as flexWorkerServices from '@12333/services/api/FlexWorker';
import { SalaryTimeTypeEnumUnit } from '@/constants/task';
defineOptions({
  name: 'InnerPage',
});
const queryState = reactive({
  status: 10,
  status: '10',
});
const { infiniteLoadingProps } = useInfiniteLoading(
  ({ pageParam }) => {
    let params: API.FrontOrderListInput = {
    let params: API.GetFlexTaskListInput = {
      isArrange: queryState.status === '20',
      pageModel: {
        rows: 20,
        page: pageParam,
        orderInput: [{ property: 'lastShelfTime', order: OrderInputType.Desc }],
        orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
      },
    };
    return orderServices.getFrontOrderList(params, {
    return flexWorkerServices.getFlexTaskByArrange(params, {
      showLoading: false,
    });
  },
  {
    queryKey: ['orderServices/getFrontOrderList', queryState],
    queryKey: ['flexWorkerServices/getFlexTaskByArrange', queryState],
  }
);
function goSubmitTaskDetail(item: API.FrontOrderList) {
const hasCount = computed(() => {
  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.hasCount ?? 0;
});
const notCount = computed(() => {
  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.notCount ?? 0;
});
function goSubmitTaskDetail(item: API.GetFlexTaskListOutput) {
  Taro.navigateTo({
    url: `${RouterPath.taskCheckDetail}?id=${item.id}`,
    url: `${RouterPath.flexJobDetail}?taskId=${item.taskId}`,
  });
}
function goBatchTaskList(item: API.GetFlexTaskListOutput) {
  Taro.navigateTo({
    url: `${RouterPath.batchTaskList}?taskId=${item.taskId}`,
  });
}
</script>