From 92b51e47eb0e53e1e8e13aa0f9135603e1bb03a0 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期日, 19 十月 2025 14:38:36 +0800
Subject: [PATCH] fix: 验收管理
---
apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue | 110 ++++++++++++++++++++++++++++++++----------------------
1 files changed, 65 insertions(+), 45 deletions(-)
diff --git a/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
index a91b416..09dd67b 100644
--- a/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
@@ -1,9 +1,9 @@
<template>
- <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
+ <LoadingLayout>
<ContentView>
<MyTaskCard
- :namee="detail.name"
- :addressName="detail.addressName"
+ :name="infiniteLoadingProps?.listData?.pages?.[0]?.objectData?.name"
+ :addressName="infiniteLoadingProps?.listData?.pages?.[0]?.objectData?.addressName"
:showMyTaskArrow="false"
:showTime="false"
></MyTaskCard>
@@ -12,17 +12,20 @@
<InfiniteLoading
scrollViewClassName="common-infinite-scroll-list"
v-bind="infiniteLoadingProps"
- :key="queryState.status"
>
<template #renderItem="{ item }">
<TaskCheckCard
- :avatarUrl="setOSSLink(item.avatarUrl)"
+ :avatar="setOSSLink(item.avatar)"
:name="item.name"
- :genderType="item.genderType"
- :isRealName="item.isRealName"
- :contactPhone="item.contactPhone"
- :checkAcceptStatus="item.checkAcceptStatus"
- @click="goHandleTaskDetail(item)"
+ :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="checkReceiveTask"
/>
</template>
</InfiniteLoading>
@@ -31,65 +34,82 @@
<script setup lang="ts">
import Taro from '@tarojs/taro';
-import { useQuery } from '@tanstack/vue-query';
-import * as taskServices from '@12333/services/apiV2/task';
+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 { setOSSLink } from '@12333/utils';
+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?.taskId ?? '';
+const id = router.params?.id ?? '';
+const date = router.params?.date ?? '';
+const checkReceiveStatus = Number(router.params?.checkReceiveStatus);
-const {
- isLoading,
- isError,
- data: detail,
- refetch,
-} = useQuery({
- queryKey: ['taskServices/getTaskInfo', taskId],
- queryFn: async () => {
- return await taskServices.getTaskInfo(
- { id: taskId },
- {
- showLoading: false,
- }
- );
- },
- placeholderData: () => ({} as API.GetTaskInfoQueryResult),
-});
-
-const queryState = reactive({
- status: 10,
-});
+const detail = ref<API.GetCheckReceiveTasksQueryResultItem>();
const { infiniteLoadingProps } = useInfiniteLoading(
- ({ pageParam }) => {
- let params: API.GetFlexTaskWorkerCheckListInput = {
+ 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.getFlexTaskWorkerCheckList(params, {
+ let res = await taskCheckReceiveServices.getCheckReceiveTask(params, {
showLoading: false,
});
+ detail.value = res.objectData;
+ return res;
},
{
- queryKey: ['flexWorkerServices/getFlexTaskWorkerCheckList', queryState],
+ queryKey: ['taskCheckReceiveServices/getCheckReceiveTask'],
}
);
-function goHandleTaskDetail(item: API.GetNewestWorkerListOutput) {
- Taro.navigateTo({
- url: `${RouterPath.taskHandleCheckDetail}?userId=${item.userId}&taskId=${taskId}`,
- });
+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) {
+ try {
+ let params: API.CheckReceiveTaskCommand = {
+ id: id,
+ };
+ 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