From 26054099b1beb5e190cbd229171a53a689872e75 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期三, 22 十月 2025 19:26:26 +0800
Subject: [PATCH] fix: bug

---
 apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue  |   48 ++++++++++++++++--------
 apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue |   17 ++++++--
 packages/services/apiV2/typings.d.ts                             |    9 ++++
 apps/cMiniApp/src/pages/task/InnerPage.vue                       |   29 ++++++++++----
 apps/cMiniApp/project.private.config.json                        |    4 +-
 packages/constants/apiEnum.ts                                    |    8 ++++
 6 files changed, 84 insertions(+), 31 deletions(-)

diff --git a/apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue b/apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue
index c74a2cc..a7b8834 100644
--- a/apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue
+++ b/apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue
@@ -27,9 +27,20 @@
           <div v-else class="task-check-card-phone-status" :style="{ color: Colors.Success }">
             {{ EnumTaskCheckReceiveStatusText[checkReceiveStatus] }}
           </div> -->
-          <nut-button type="primary" class="task-check-card-phone-btn" @click.stop="handleMore"
-            >鎿嶄綔</nut-button
+          <template
+            v-if="props.submitCheckReceiveStatus !== EnumTaskUserSubmitCheckReceiveStatus.Fail"
           >
+            <nut-button
+              v-if="!checkInTime || !checkOutTime"
+              type="primary"
+              class="task-check-card-phone-btn"
+              @click.stop="handleMore"
+              >鎿嶄綔</nut-button
+            >
+            <div v-else class="task-check-card-phone-status" :style="{ color: Colors.Success }">
+              {{ EnumTaskCheckReceiveStatusText[checkReceiveStatus] }}
+            </div>
+          </template>
         </template>
         <template v-else>
           <nut-button
@@ -55,6 +66,8 @@
   EnumTaskCheckReceiveStatus,
   EnumTaskCheckReceiveStatusText,
   EnumTaskCheckReceiveMethod,
+  EnumGetCheckReceiveTasksQueryResultItemCheckStatus,
+  EnumTaskUserSubmitCheckReceiveStatus,
 } from '@12333/constants';
 import { CheckInOrOutEventEnum } from '../constants';
 import { Portal } from 'senin-mini/components';
@@ -82,32 +95,35 @@
   /** 绛惧嚭鏃堕棿 */
   checkOutTime?: string;
   checkReceiveMethod?: EnumTaskCheckReceiveMethod;
+
+  submitCheckReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus;
 };
 
 const props = withDefaults(defineProps<Props>(), {});
 
 const emit = defineEmits<{
   (e: 'checkReceive'): void;
-  (e: 'checkInOrOut', ev: CheckInOrOutEventEnum): void;
+  (e: 'checkInOrOut', ev: EnumTaskUserSubmitCheckReceiveStatus): void;
 }>();
 
 const menuList = computed(() => {
   let _menuList = [];
   if (props.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn) {
-    _menuList.push(
-      {
+    _menuList.push({
+      name: '鏈埌宀�',
+      value: ManageActions.OutWork,
+    });
+    if (!props.checkInTime) {
+      _menuList.push({
         name: '绛惧埌',
         value: ManageActions.CheckIn,
-      },
-      {
+      });
+    } else if (!props.checkOutTime) {
+      _menuList.push({
         name: '绛惧嚭',
         value: ManageActions.CheckOut,
-      },
-      {
-        name: '鏈埌宀�',
-        value: ManageActions.OutWork,
-      }
-    );
+      });
+    }
   }
 
   return _menuList;
@@ -138,13 +154,13 @@
 function handleEmit(action: { name: string; value: number }) {
   switch (action.value) {
     case ManageActions.CheckIn:
-      emit('checkInOrOut', CheckInOrOutEventEnum.CheckIn);
+      emit('checkInOrOut', EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive);
       break;
     case ManageActions.CheckOut:
-      emit('checkInOrOut', CheckInOrOutEventEnum.CheckOut);
+      emit('checkInOrOut', EnumTaskUserSubmitCheckReceiveStatus.Success);
       break;
     case ManageActions.OutWork:
-      emit('checkInOrOut', CheckInOrOutEventEnum.CheckOut);
+      emit('checkInOrOut', EnumTaskUserSubmitCheckReceiveStatus.Fail);
       break;
   }
 }
diff --git a/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
index d7cc662..77591a8 100644
--- a/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
@@ -24,6 +24,7 @@
           :contactPhoneNumber="item.contactPhoneNumber"
           :checkReceiveStatus="item.checkReceiveStatus"
           :checkReceiveMethod="detail?.checkReceiveMethod"
+          :submitCheckReceiveStatus="item.submitCheckReceiveStatus"
           @checkReceive="goTaskDetail(item)"
           @checkInOrOut="(ev) => checkReceiveTask(ev, item.id)"
         />
@@ -38,7 +39,11 @@
 import { useInfiniteLoading } from '@12333/hooks';
 import TaskCheckCard from '../components/TaskCheckCard.vue';
 import { MyTaskCard } from '@12333/components';
-import { EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus } from '@12333/constants';
+import {
+  EnumTaskCheckReceiveMethod,
+  EnumTaskCheckReceiveStatus,
+  EnumTaskUserSubmitCheckReceiveStatus,
+} from '@12333/constants';
 import { Message, setOSSLink } from '@12333/utils';
 import dayjs from 'dayjs';
 import { CheckInOrOutEventEnum } from '../constants';
@@ -95,16 +100,20 @@
   }
 }
 
-async function checkReceiveTask(ev: CheckInOrOutEventEnum, taskInfoUserId: string) {
+async function checkReceiveTask(ev: EnumTaskUserSubmitCheckReceiveStatus, taskInfoUserId: string) {
   try {
     let params: API.CheckReceiveTaskCommand = {
       taskInfoUserId: taskInfoUserId,
       date: dayjs(date).format('YYYY-MM-DD'),
     };
-    if (ev === CheckInOrOutEventEnum.CheckIn) {
+    if (ev === EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive) {
       params.checkInTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
-    } else if (ev === CheckInOrOutEventEnum.CheckOut) {
+      params.checkReceiveStatus = ev;
+    } else if (ev === EnumTaskUserSubmitCheckReceiveStatus.Success) {
       params.checkOutTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
+      params.checkReceiveStatus = ev;
+    } else if (ev === EnumTaskUserSubmitCheckReceiveStatus.Fail) {
+      params.checkReceiveStatus = ev;
     }
     let res = await taskCheckReceiveServices.checkReceiveTask(params);
     if (res) {
diff --git a/apps/cMiniApp/project.private.config.json b/apps/cMiniApp/project.private.config.json
index 81e4067..35a4f34 100644
--- a/apps/cMiniApp/project.private.config.json
+++ b/apps/cMiniApp/project.private.config.json
@@ -26,8 +26,8 @@
                     "name": "浠诲姟",
                     "pathName": "pages/task/task",
                     "query": "",
-                    "scene": null,
-                    "launchMode": "default"
+                    "launchMode": "default",
+                    "scene": null
                 },
                 {
                     "name": "绠�鍘嗚缁嗕俊鎭�",
diff --git a/apps/cMiniApp/src/pages/task/InnerPage.vue b/apps/cMiniApp/src/pages/task/InnerPage.vue
index 4d79b33..7340bc5 100644
--- a/apps/cMiniApp/src/pages/task/InnerPage.vue
+++ b/apps/cMiniApp/src/pages/task/InnerPage.vue
@@ -28,7 +28,10 @@
           :addressName="item.addressName"
           :begin-time="item.beginTime"
           :end-time="item.endTime"
-          showActions
+          :showActions="
+            item.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn &&
+            queryState.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed
+          "
           @click="goSubmitTaskDetail(item)"
         />
       </template>
@@ -40,7 +43,7 @@
 import { MyTaskCard, ProTabs, ProTabPane, Calendar } from '@12333/components';
 import Taro from '@tarojs/taro';
 import { useCheckReceiveTasks, useTaskList } from '@12333/hooks';
-import { EnumTaskCheckReceiveStatus } from '@12333/constants';
+import { EnumTaskCheckReceiveStatus, EnumTaskCheckReceiveMethod } from '@12333/constants';
 
 defineOptions({
   name: 'InnerPage',
@@ -54,13 +57,21 @@
       url: `${RouterPath.taskSubmitCheck}?id=${item.id}&date=${queryState.date}`,
     });
   }
-  if (
-    Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.WaitCheckReceive ||
-    Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.Completed
-  ) {
-    Taro.navigateTo({
-      url: `${RouterPath.taskCheckDetail}?id=${item.id}`,
-    });
+  if (item.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn) {
+    if (Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.Completed) {
+      // Taro.navigateTo({
+      //   url: `${RouterPath.taskUserSubmitCheckHistories}?id=${item.id}&date=${queryState.date}`,
+      // });
+    }
+  } else {
+    if (
+      Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.WaitCheckReceive ||
+      Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.Completed
+    ) {
+      Taro.navigateTo({
+        url: `${RouterPath.taskCheckDetail}?id=${item.id}`,
+      });
+    }
   }
 }
 </script>
diff --git a/packages/constants/apiEnum.ts b/packages/constants/apiEnum.ts
index ead0641..a8ddffc 100644
--- a/packages/constants/apiEnum.ts
+++ b/packages/constants/apiEnum.ts
@@ -210,6 +210,14 @@
 }
 
 /** 娌″啓娉ㄩ噴 */
+export enum EnumGetCheckReceiveTasksQueryResultItemCheckStatus {
+  /**鏈埌宀� */
+  None = 10,
+  /**宸茬鍒� */
+  Completed = 20,
+}
+
+/** 娌″啓娉ㄩ噴 */
 export enum EnumGetEnterpriseEmployeesQuerySignContractStatus {
   /**鐏靛伐寰呯绾� */
   UserWait = 10,
diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts
index 78ee6c3..7364408 100644
--- a/packages/services/apiV2/typings.d.ts
+++ b/packages/services/apiV2/typings.d.ts
@@ -836,6 +836,13 @@
     Completed = 20,
   }
 
+  enum EnumGetCheckReceiveTasksQueryResultItemCheckStatus {
+    /**鏈埌宀� */
+    None = 10,
+    /**宸茬鍒� */
+    Completed = 20,
+  }
+
   enum EnumGetEnterpriseEmployeesQuerySignContractStatus {
     /**鐏靛伐寰呯绾� */
     UserWait = 10,
@@ -3555,6 +3562,7 @@
     /** 鏈�杩戞彁浜ゆ椂闂� */
     lastSubmitTime?: string;
     checkReceiveStatus?: EnumTaskCheckReceiveStatus;
+    submitCheckReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus;
   }
 
   interface GetCheckReceiveTaskQueryResultObjectData {
@@ -3641,6 +3649,7 @@
     checkReceiveStatus?: EnumTaskCheckReceiveStatus;
     /** 鏈�杩戦獙鏀舵椂闂� */
     lastCheckReceiveTime?: string;
+    checkedStatus?: EnumGetCheckReceiveTasksQueryResultItemCheckStatus;
   }
 
   interface GetCheckReceiveTaskUserSubmitCheckHistoriesQuery {

--
Gitblit v1.9.1