From fb243f3345c6f3ed7e7c8c2d98c39b5afc782b9a Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期一, 20 十月 2025 10:24:40 +0800 Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp --- apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue | 111 ++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 73 insertions(+), 38 deletions(-) diff --git a/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue index e5b78fb..d7cc662 100644 --- a/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue @@ -1,16 +1,32 @@ <template> - <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> + <LoadingLayout> <ContentView> - <MyTaskCard :showMyTaskArrow="false" :showTime="false"></MyTaskCard> + <MyTaskCard + :name="infiniteLoadingProps?.listData?.pages?.[0]?.objectData?.name" + :addressName="infiniteLoadingProps?.listData?.pages?.[0]?.objectData?.addressName" + :showMyTaskArrow="false" + :showTime="false" + ></MyTaskCard> <ChunkTitle title="楠屾敹鍒楄〃" /> </ContentView> <InfiniteLoading scrollViewClassName="common-infinite-scroll-list" v-bind="infiniteLoadingProps" - :key="queryState.status" > <template #renderItem="{ item }"> - <TaskCheckCard @click="goHandleTaskDetail(item)" /> + <TaskCheckCard + :avatar="setOSSLink(item.avatar)" + :name="item.name" + :gender="item.gender" + :isReal="item.isReal" + :checkInTime="item.checkInTime" + :checkOutTime="item.checkOutTime" + :contactPhoneNumber="item.contactPhoneNumber" + :checkReceiveStatus="item.checkReceiveStatus" + :checkReceiveMethod="detail?.checkReceiveMethod" + @checkReceive="goTaskDetail(item)" + @checkInOrOut="(ev) => checkReceiveTask(ev, item.id)" + /> </template> </InfiniteLoading> </LoadingLayout> @@ -18,64 +34,83 @@ <script setup lang="ts"> import Taro from '@tarojs/taro'; -import { useQuery } from '@tanstack/vue-query'; -import * as flexWorkerServices from '@12333/services/api/FlexWorker'; +import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive'; import { useInfiniteLoading } from '@12333/hooks'; -import { OrderInputType } from '@12333/constants'; import TaskCheckCard from '../components/TaskCheckCard.vue'; import { MyTaskCard } from '@12333/components'; +import { EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus } from '@12333/constants'; +import { Message, setOSSLink } from '@12333/utils'; +import dayjs from 'dayjs'; +import { CheckInOrOutEventEnum } from '../constants'; defineOptions({ name: 'InnerPage', }); const router = Taro.useRouter(); -const taskId = router.params?.id ?? ''; +const id = router.params?.id ?? ''; +const date = router.params?.date ?? ''; +const checkReceiveStatus = Number(router.params?.checkReceiveStatus); -const { - isLoading, - isError, - data: detail, - refetch, -} = useQuery({ - queryKey: ['flexWorkerServices/getOrdeForDetail', taskId], - queryFn: async () => { - return await flexWorkerServices.getOrdeForDetail( - { id: taskId }, - { - showLoading: false, - } - ); - }, - placeholderData: () => ({} as API.OrderInfoDto), -}); - -const queryState = reactive({ - status: 10, -}); +const detail = ref<API.GetCheckReceiveTasksQueryResultItem>(); const { infiniteLoadingProps } = useInfiniteLoading( - ({ pageParam }) => { - let params: API.GetFlexTaskListInput = { + async ({ pageParam }) => { + let params: API.GetCheckReceiveTaskQuery = { pageModel: { rows: 20, page: pageParam, - orderInput: [{ property: 'lastShelfTime', order: OrderInputType.Desc }], }, + taskInfoId: id, + date: dayjs(date).format('YYYY-MM-DD'), + checkReceiveStatus: checkReceiveStatus, }; - return flexWorkerServices.getFlexTaskByArrange(params, { + let res = await taskCheckReceiveServices.getCheckReceiveTask(params, { showLoading: false, }); + detail.value = res.objectData; + return res; }, { - queryKey: ['flexWorkerServices/getFlexTaskByArrange', queryState], + queryKey: ['taskCheckReceiveServices/getCheckReceiveTask'], } ); -function goHandleTaskDetail(item: API.GetFlexTaskListOutput) { - Taro.navigateTo({ - url: `${RouterPath.taskHandleCheckDetail}?id=${item.id}`, - }); +function goTaskDetail(item: API.GetCheckReceiveTaskQueryResultItem) { + if (detail.value.checkReceiveMethod !== EnumTaskCheckReceiveMethod.CheckIn) { + if (item.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed) { + Taro.navigateTo({ + url: `${RouterPath.taskCheckedDetail}?id=${item.id}`, + }); + } + if ( + item.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitCheckReceive || + item.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitSubmit + ) { + Taro.navigateTo({ + url: `${RouterPath.taskHandleCheckDetail}?id=${item.id}&date=${date}`, + }); + } + } +} + +async function checkReceiveTask(ev: CheckInOrOutEventEnum, taskInfoUserId: string) { + try { + let params: API.CheckReceiveTaskCommand = { + taskInfoUserId: taskInfoUserId, + date: dayjs(date).format('YYYY-MM-DD'), + }; + if (ev === CheckInOrOutEventEnum.CheckIn) { + params.checkInTime = dayjs().format('YYYY-MM-DD HH:mm:ss'); + } else if (ev === CheckInOrOutEventEnum.CheckOut) { + params.checkOutTime = dayjs().format('YYYY-MM-DD HH:mm:ss'); + } + let res = await taskCheckReceiveServices.checkReceiveTask(params); + if (res) { + Message.success('鎻愪氦鎴愬姛'); + infiniteLoadingProps.value?.refetch?.(); + } + } catch (error) {} } </script> -- Gitblit v1.9.1