From baa76cb2bf0496ea34b4eee1a04a13cc1ca680cb Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期三, 13 八月 2025 17:42:03 +0800
Subject: [PATCH] fix: 验收管理

---
 src/views/EmploymentManage/constants/columns.ts             |   78 ++++
 src/hooks/useEvent.ts                                       |    1 
 src/constants/task.ts                                       |   15 
 .eslintrc-auto-import.json                                  |    3 
 src/services/api/typings.d.ts                               |  322 +++++++++++++++---
 src/services/api/task.ts                                    |   15 
 src/services/api/index.ts                                   |    4 
 src/services/api/taskCheckReceive.ts                        |   60 +++
 src/views/EmploymentManage/components/CheckManageDialog.vue |  124 +++++-
 src/services/api/userResume.ts                              |   30 +
 auto-imports.d.ts                                           |    8 
 src/views/EmploymentManage/CheckReceiveTaskDetail.vue       |  186 ++++++++++
 src/router/index.ts                                         |   13 
 src/views/EmploymentManage/CheckManage.vue                  |  105 +++--
 src/constants/apiEnum.ts                                    |   14 
 src/services/api/auth.ts                                    |   17 +
 16 files changed, 861 insertions(+), 134 deletions(-)

diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json
index 33f2fb8..1005d17 100644
--- a/.eslintrc-auto-import.json
+++ b/.eslintrc-auto-import.json
@@ -34,6 +34,7 @@
     "EnumSettlementCycleText": true,
     "EnumSmsAccess": true,
     "EnumTaskCheckReceiveStatus": true,
+    "EnumTaskCheckReceiveStatusText": true,
     "EnumTaskRecommendStatus": true,
     "EnumTaskRecommendStatusText": true,
     "EnumTaskReleaseStatus": true,
@@ -48,6 +49,8 @@
     "EnumTaskUserHireStatusText": true,
     "EnumTaskUserSignContractStatus": true,
     "EnumTaskUserSignContractStatusText": true,
+    "EnumTaskUserSubmitCheckReceiveStatus": true,
+    "EnumTaskUserSubmitCheckReceiveStatusText": true,
     "EnumUserGender": true,
     "EnumUserGenderText": true,
     "EnumUserGenderTextForEdit": true,
diff --git a/auto-imports.d.ts b/auto-imports.d.ts
index 22edb57..3da2f7f 100644
--- a/auto-imports.d.ts
+++ b/auto-imports.d.ts
@@ -39,6 +39,7 @@
   const EnumSmsAccess: typeof import('./src/constants/apiEnum')['EnumSmsAccess']
   const EnumSmsTemplateType: typeof import('./src/constants/apiEnum')['EnumSmsTemplateType']
   const EnumTaskCheckReceiveStatus: typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']
+  const EnumTaskCheckReceiveStatusText: typeof import('./src/constants/task')['EnumTaskCheckReceiveStatusText']
   const EnumTaskRecommendStatus: typeof import('./src/constants/apiEnum')['EnumTaskRecommendStatus']
   const EnumTaskRecommendStatusText: typeof import('./src/constants/task')['EnumTaskRecommendStatusText']
   const EnumTaskReleaseStatus: typeof import('./src/constants/apiEnum')['EnumTaskReleaseStatus']
@@ -53,6 +54,8 @@
   const EnumTaskUserHireStatusText: typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserHireStatusText']
   const EnumTaskUserSignContractStatus: typeof import('./src/constants/apiEnum')['EnumTaskUserSignContractStatus']
   const EnumTaskUserSignContractStatusText: typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserSignContractStatusText']
+  const EnumTaskUserSubmitCheckReceiveStatus: typeof import('./src/constants/apiEnum')['EnumTaskUserSubmitCheckReceiveStatus']
+  const EnumTaskUserSubmitCheckReceiveStatusText: typeof import('./src/constants/task')['EnumTaskUserSubmitCheckReceiveStatusText']
   const EnumUserGender: typeof import('./src/constants/apiEnum')['EnumUserGender']
   const EnumUserGenderText: typeof import('./src/constants/task')['EnumUserGenderText']
   const EnumUserGenderTextForEdit: typeof import('./src/constants/task')['EnumUserGenderTextForEdit']
@@ -205,7 +208,7 @@
   export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
   import('vue')
   // @ts-ignore
-  export type { EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton } from './src/constants/apiEnum'
+  export type { EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton } from './src/constants/apiEnum'
   import('./src/constants/apiEnum')
   // @ts-ignore
   export type { CategoryCode, IdentityCodeEnum, EducationCodeEnum, CertificateTypeCodeEnum, WelfareCodeEnum } from './src/constants/dic'
@@ -265,6 +268,7 @@
     readonly EnumSettlementCycleText: UnwrapRef<typeof import('./src/constants/task')['EnumSettlementCycleText']>
     readonly EnumSmsAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSmsAccess']>
     readonly EnumTaskCheckReceiveStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']>
+    readonly EnumTaskCheckReceiveStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskCheckReceiveStatusText']>
     readonly EnumTaskRecommendStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskRecommendStatus']>
     readonly EnumTaskRecommendStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskRecommendStatusText']>
     readonly EnumTaskReleaseStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskReleaseStatus']>
@@ -279,6 +283,8 @@
     readonly EnumTaskUserHireStatusText: UnwrapRef<typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserHireStatusText']>
     readonly EnumTaskUserSignContractStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskUserSignContractStatus']>
     readonly EnumTaskUserSignContractStatusText: UnwrapRef<typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserSignContractStatusText']>
+    readonly EnumTaskUserSubmitCheckReceiveStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskUserSubmitCheckReceiveStatus']>
+    readonly EnumTaskUserSubmitCheckReceiveStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskUserSubmitCheckReceiveStatusText']>
     readonly EnumUserGender: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserGender']>
     readonly EnumUserGenderText: UnwrapRef<typeof import('./src/constants/task')['EnumUserGenderText']>
     readonly EnumUserGenderTextForEdit: UnwrapRef<typeof import('./src/constants/task')['EnumUserGenderTextForEdit']>
diff --git a/src/constants/apiEnum.ts b/src/constants/apiEnum.ts
index 8d03ef1..01db867 100644
--- a/src/constants/apiEnum.ts
+++ b/src/constants/apiEnum.ts
@@ -161,6 +161,8 @@
 export enum EnumTaskCheckReceiveStatus {
   /**寰呮彁浜� */
   WaitSubmit = 10,
+  /**寰呴獙鏀� */
+  WaitCheckReceive = 20,
   /**宸查獙鏀� */
   Completed = 30,
 }
@@ -225,6 +227,18 @@
   Refuse = 30,
 }
 
+/** 浠诲姟楠屾敹鐘舵�� */
+export enum EnumTaskUserSubmitCheckReceiveStatus {
+  /**寰呮彁浜� */
+  WaitSubmit = 10,
+  /**寰呴獙鏀� */
+  WaitCheckReceive = 20,
+  /**楠屾敹閫氳繃 */
+  Success = 30,
+  /**楠屾敹鏈�氳繃 */
+  Fail = 40,
+}
+
 /** 鐢ㄦ埛鎬у埆 */
 export enum EnumUserGender {
   /**鐢� */
diff --git a/src/constants/task.ts b/src/constants/task.ts
index c67124b..79bf326 100644
--- a/src/constants/task.ts
+++ b/src/constants/task.ts
@@ -1,3 +1,5 @@
+import { EnumTaskCheckReceiveStatus } from './apiEnum';
+
 export const EnumTaskStatusText = {
   [EnumTaskStatus.Wait]: '寰呭畨鎺�',
   [EnumTaskStatus.Complete]: '宸插畨鎺�',
@@ -58,3 +60,16 @@
   [EnumTaskUserArrangeStatus.Wait]: '鏈畨鎺�',
   [EnumTaskUserArrangeStatus.Complete]: '宸插畨鎺�',
 };
+
+export const EnumTaskCheckReceiveStatusText = {
+  [EnumTaskCheckReceiveStatus.WaitSubmit]: '寰呮彁浜�',
+  [EnumTaskCheckReceiveStatus.WaitCheckReceive]: '寰呴獙鏀�',
+  [EnumTaskCheckReceiveStatus.Completed]: '宸查獙鏀�',
+};
+
+export const EnumTaskUserSubmitCheckReceiveStatusText = {
+  [EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit]: '寰呮彁浜�',
+  [EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive]: '寰呴獙鏀�',
+  [EnumTaskUserSubmitCheckReceiveStatus.Success]: '楠屾敹閫氳繃',
+  [EnumTaskUserSubmitCheckReceiveStatus.Fail]: '楠屾敹鏈�氳繃',
+};
diff --git a/src/hooks/useEvent.ts b/src/hooks/useEvent.ts
index c8f5a0f..f897656 100644
--- a/src/hooks/useEvent.ts
+++ b/src/hooks/useEvent.ts
@@ -5,6 +5,7 @@
   'home:add': any;
   'taskManage:add': any;
   'taskManage:edit': any;
+  checkReceiveTask: any;
 };
 
 export type GlobalEventListener<T extends keyof GlobalEvent> = (payload: GlobalEvent[T]) => any;
diff --git a/src/router/index.ts b/src/router/index.ts
index 1d4bf44..e0fdbc8 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -215,6 +215,19 @@
           icon: 'home',
         },
       },
+      {
+        path: '/CheckReceiveTaskDetail/:id',
+        name: 'CheckReceiveTaskDetail',
+        hidden: true,
+        alwaysShow: false,
+        component: () => import('@/views/EmploymentManage/CheckReceiveTaskDetail.vue'),
+        meta: {
+          rank: 10031,
+          title: '楠屾敹璇︽儏',
+          // rootMenu: true,
+          icon: 'home',
+        },
+      },
     ],
   },
   {
diff --git a/src/services/api/auth.ts b/src/services/api/auth.ts
index 331a423..1a95129 100644
--- a/src/services/api/auth.ts
+++ b/src/services/api/auth.ts
@@ -81,6 +81,23 @@
   });
 }
 
+/** 鏌ヨ浼佷笟鐢ㄦ埛鐧诲綍淇℃伅 GET /api/user/auth/getEnterpriseLoginInfo */
+export async function getEnterpriseLoginInfo(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetEnterpriseLoginInfoParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetEnterpriseLoginInfoQueryResult>('/api/user/auth/getEnterpriseLoginInfo', {
+    method: 'GET',
+    params: {
+      ...params,
+      request: undefined,
+      ...params['request'],
+    },
+    ...(options || {}),
+  });
+}
+
 /** 鏌ヨ涓汉鐢ㄦ埛鐧诲綍淇℃伅 GET /api/user/auth/getPersonalLoginInfo */
 export async function getPersonalLoginInfo(
   // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
diff --git a/src/services/api/index.ts b/src/services/api/index.ts
index e5221f9..ca93bf7 100644
--- a/src/services/api/index.ts
+++ b/src/services/api/index.ts
@@ -4,26 +4,26 @@
 // API 鍞竴鏍囪瘑锛�
 import * as enterpriseEmployee from './enterpriseEmployee';
 import * as role from './role';
-import * as taskCheckReceive from './taskCheckReceive';
 import * as enterprise from './enterprise';
 import * as task from './task';
 import * as dictionary from './dictionary';
 import * as user from './user';
 import * as userResume from './userResume';
 import * as auth from './auth';
+import * as taskCheckReceive from './taskCheckReceive';
 import * as resource from './resource';
 import * as taskUser from './taskUser';
 import * as menu from './menu';
 export default {
   enterpriseEmployee,
   role,
-  taskCheckReceive,
   enterprise,
   task,
   dictionary,
   user,
   userResume,
   auth,
+  taskCheckReceive,
   resource,
   taskUser,
   menu,
diff --git a/src/services/api/task.ts b/src/services/api/task.ts
index b6c19fa..9488ff3 100644
--- a/src/services/api/task.ts
+++ b/src/services/api/task.ts
@@ -14,6 +14,21 @@
   });
 }
 
+/** 鏌ヨ寮�鏀句换鍔″垎椤靛垪琛� POST /api/flexjob/task/getOpenTaskInfos */
+export async function getOpenTaskInfos(
+  body: API.GetOpenTaskInfosQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetTaskInfosQueryResult>('/api/flexjob/task/getOpenTaskInfos', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 鎴戠殑鎶ュ悕鍒嗛〉鍒楄〃 POST /api/flexjob/task/getPersonalApplyTaskInfos */
 export async function getPersonalApplyTaskInfos(
   body: API.GetPersonalApplyTaskInfosQuery,
diff --git a/src/services/api/taskCheckReceive.ts b/src/services/api/taskCheckReceive.ts
index f290dbd..cd10e99 100644
--- a/src/services/api/taskCheckReceive.ts
+++ b/src/services/api/taskCheckReceive.ts
@@ -2,7 +2,22 @@
 // @ts-ignore
 import { request } from '@/utils/request';
 
-/** 鏌ヨ楠屾敹浠诲姟鍒嗛〉鍒楄〃 POST /api/flexjob/taskCheckReceive/getCheckReceiveTask */
+/** 浠诲姟楠屾敹 POST /api/flexjob/taskCheckReceive/checkReceiveTask */
+export async function checkReceiveTask(
+  body: API.CheckReceiveTaskCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/flexjob/taskCheckReceive/checkReceiveTask', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ楠屾敹浠诲姟璇︽儏 POST /api/flexjob/taskCheckReceive/getCheckReceiveTask */
 export async function getCheckReceiveTask(
   body: API.GetCheckReceiveTaskQuery,
   options?: API.RequestConfig
@@ -20,19 +35,37 @@
   );
 }
 
-/** 鏌ヨ楠屾敹鍒嗛〉鍒楄〃 POST /api/flexjob/taskCheckReceive/getCheckReceiveTaskUser */
-export async function getCheckReceiveTaskUser(
-  body: API.GetCheckReceiveTaskUserQuery,
+/** 鏌ヨ楠屾敹浠诲姟鍒嗛〉鍒楄〃 POST /api/flexjob/taskCheckReceive/getCheckReceiveTasks */
+export async function getCheckReceiveTasks(
+  body: API.GetCheckReceiveTasksQuery,
   options?: API.RequestConfig
 ) {
-  return request<API.GetCheckReceiveTaskUserQueryResult>(
-    '/api/flexjob/taskCheckReceive/getCheckReceiveTaskUser',
+  return request<API.GetCheckReceiveTasksQueryResult>(
+    '/api/flexjob/taskCheckReceive/getCheckReceiveTasks',
     {
       method: 'POST',
       headers: {
         'Content-Type': 'application/json-patch+json',
       },
       data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏌ヨ楠屾敹鎻愪氦璇︽儏 GET /api/flexjob/taskCheckReceive/getCheckReceiveTaskUserSubmit */
+export async function getCheckReceiveTaskUserSubmit(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetCheckReceiveTaskUserSubmitParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetCheckReceiveTaskUserSubmitQueryResult>(
+    '/api/flexjob/taskCheckReceive/getCheckReceiveTaskUserSubmit',
+    {
+      method: 'GET',
+      params: {
+        ...params,
+      },
       ...(options || {}),
     }
   );
@@ -55,3 +88,18 @@
     }
   );
 }
+
+/** 浠诲姟鎻愪氦楠屾敹 POST /api/flexjob/taskCheckReceive/submitCheckReceiveTask */
+export async function submitCheckReceiveTask(
+  body: API.SubmitCheckReceiveTaskCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/flexjob/taskCheckReceive/submitCheckReceiveTask', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 5eb070c..dfb52b9 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -13,6 +13,17 @@
     maxDeep?: number;
   }
 
+  interface APIgetCheckReceiveTaskUserSubmitParams {
+    /** 鎻愪氦Id锛堢敤浜嶣绔鎴风锛� */
+    submitId?: string;
+    /** 浠诲姟Id锛堢敤浜嶤绔皬绋嬪簭缂栬緫鎻愪氦 鍜屾棩鏈熶竴璧蜂紶锛� */
+    taskInfoId?: string;
+    /** 浠诲姟浜哄憳Id锛堢敤浜嶣绔皬绋嬪簭楠屾敹 鍜屾棩鏈熶竴璧蜂紶锛� */
+    taskInfoUserId?: string;
+    /** 鏃ユ湡锛堢敤浜庝袱涓皬绋嬪簭 璺熸煇涓�涓狪d涓�璧蜂紶锛� */
+    date?: string;
+  }
+
   interface APIgetCurrentLogierMenuParams {
     /** Id */
     id?: string;
@@ -55,6 +66,11 @@
     id?: string;
     /** 浠诲姟Id */
     taskInfoId?: string;
+  }
+
+  interface APIgetEnterpriseLoginInfoParams {
+    /** 鏌ヨ浼佷笟鐢ㄦ埛鐧诲綍淇℃伅 */
+    request?: GetEnterpriseLoginInfoQuery;
   }
 
   interface APIgetEnterpriseParams {
@@ -182,11 +198,29 @@
     verifyCode: string;
   }
 
+  interface CheckReceiveTaskCommand {
+    /** 鎻愪氦Id */
+    id?: string;
+    checkReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus;
+  }
+
   interface CollectTaskCommand {
     /** 浠诲姟Id */
     ids?: string[];
     /** 鏄惁鏀惰棌 */
     isCollect?: boolean;
+  }
+
+  interface CollectUserResumeCommand {
+    /** 鐢ㄦ埛Id */
+    id?: string;
+    /** 鏄惁宸叉敹钘� */
+    isCollected?: boolean;
+  }
+
+  interface ContactUserResumeCommand {
+    /** 鐢ㄦ埛Id */
+    id?: string;
   }
 
   interface DeleteDictionaryCategoryCommand {
@@ -355,6 +389,8 @@
   enum EnumTaskCheckReceiveStatus {
     /**寰呮彁浜� */
     WaitSubmit = 10,
+    /**寰呴獙鏀� */
+    WaitCheckReceive = 20,
     /**宸查獙鏀� */
     Completed = 30,
   }
@@ -410,6 +446,17 @@
     Pass = 20,
     /**宸叉嫆绛� */
     Refuse = 30,
+  }
+
+  enum EnumTaskUserSubmitCheckReceiveStatus {
+    /**寰呮彁浜� */
+    WaitSubmit = 10,
+    /**寰呴獙鏀� */
+    WaitCheckReceive = 20,
+    /**楠屾敹閫氳繃 */
+    Success = 30,
+    /**楠屾敹鏈�氳繃 */
+    Fail = 40,
   }
 
   enum EnumUserGender {
@@ -517,14 +564,32 @@
     timestamp?: number;
   }
 
-  interface FriendlyResultGetCheckReceiveTaskUserQueryResult {
+  interface FriendlyResultGetCheckReceiveTasksQueryResult {
     /** 璺熻釜Id */
     traceId?: string;
     /** 鐘舵�佺爜 */
     code?: number;
     /** 閿欒鐮� */
     errorCode?: string;
-    data?: GetCheckReceiveTaskUserQueryResult;
+    data?: GetCheckReceiveTasksQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetCheckReceiveTaskUserSubmitQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetCheckReceiveTaskUserSubmitQueryResult;
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -597,6 +662,24 @@
     /** 閿欒鐮� */
     errorCode?: string;
     data?: GetEnterpriseEmployeesQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetEnterpriseLoginInfoQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetEnterpriseLoginInfoQueryResult;
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -1327,63 +1410,27 @@
   }
 
   interface GetCheckReceiveTaskQuery {
-    /** 楠屾敹鏃ユ湡-鏈�鏃╂椂闂� */
-    dateBegin?: string;
-    /** 楠屾敹鏃ユ湡-鏈�鏅氭椂闂� */
-    dateEnd?: string;
-    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
+    /** 浠诲姟Id */
+    taskInfoId?: string;
     pageModel?: PagedListQueryPageModel;
   }
 
   interface GetCheckReceiveTaskQueryResult {
+    objectData?: GetCheckReceiveTaskQueryResultObjectData;
     pageModel?: PagedListQueryResultPageModel;
     /** 鏁版嵁 */
     data?: GetCheckReceiveTaskQueryResultItem[];
   }
 
   interface GetCheckReceiveTaskQueryResultItem {
-    /** 浠诲姟Id */
+    /** 浠诲姟浜哄憳Id */
     id?: string;
     /** 浠诲姟鍚嶇О */
-    name?: string;
-    /** 浠诲姟寮�濮嬫椂闂� */
-    beginTime?: string;
-    /** 浠诲姟缁撴潫鏃堕棿 */
-    endTime?: string;
-    /** 浠诲姟鍦扮偣鍚嶇О */
-    addressName?: string;
-  }
-
-  interface GetCheckReceiveTaskUserQuery {
-    /** 浠诲姟Id */
-    taskInfoId?: string;
-    /** 鍏抽敭瀛� */
-    keywords?: string;
-    /** 楠屾敹鏃ユ湡-鏈�鏃╂椂闂� */
-    dateBegin?: string;
-    /** 楠屾敹鏃ユ湡-鏈�鏅氭椂闂� */
-    dateEnd?: string;
-    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
-    pageModel?: PagedListQueryPageModel;
-  }
-
-  interface GetCheckReceiveTaskUserQueryResult {
-    pageModel?: PagedListQueryResultPageModel;
-    /** 鏁版嵁 */
-    data?: GetCheckReceiveTaskUserQueryResultItem[];
-  }
-
-  interface GetCheckReceiveTaskUserQueryResultItem {
-    /** 浠诲姟Id */
-    id?: string;
-    /** 浠诲姟鍚嶇О */
-    taskName?: string;
-    /** 浠诲姟寮�濮嬫椂闂� */
-    beginTime?: string;
-    /** 浠诲姟缁撴潫鏃堕棿 */
-    endTime?: string;
-    /** 浠诲姟鍦扮偣鍚嶇О */
-    addressName?: string;
+    taskInfoName?: string;
+    /** 浠诲姟鍗曞彿 */
+    taskInfoCode?: string;
+    /** 澶村儚 */
+    avatar?: string;
     /** 濮撳悕 */
     name?: string;
     /** 韬唤璇佸彿 */
@@ -1393,24 +1440,145 @@
     age?: number;
     /** 鎵嬫満鍙� */
     contactPhoneNumber?: string;
-    /** 鎻愪氦鏃堕棿 */
+    /** 鏄惁瀹炲悕 */
+    isReal?: boolean;
+    realMethod?: EnumUserRealMethod;
+    /** 鏈�杩戞彁浜ゆ椂闂� */
     lastSubmitTime?: string;
     checkReceiveStatus?: EnumTaskCheckReceiveStatus;
   }
 
-  interface GetCheckReceiveTaskUserSubmitsQuery {
+  interface GetCheckReceiveTaskQueryResultObjectData {
+    /** 浠诲姟鍚嶇О */
+    name?: string;
+    /** 浠诲姟鍗曞彿 */
+    code?: string;
+    billingMethod?: EnumBillingMethod;
+    /** 鏈嶅姟璐� */
+    serviceFee?: number;
+    settlementCycle?: EnumSettlementCycle;
+    /** 浠诲姟寮�濮嬫椂闂� */
+    beginTime?: string;
+    /** 浠诲姟缁撴潫鏃堕棿 */
+    endTime?: string;
+    /** 浠诲姟鍦扮偣鍚嶇О */
+    addressName?: string;
+  }
+
+  interface GetCheckReceiveTasksQuery {
+    /** 鏃ユ湡锛堝皬绋嬪簭-楠屾敹绠$悊涓撶敤锛� */
+    date?: string;
+    /** 鍏抽敭瀛楋紙濮撳悕/鎵嬫満/韬唤璇佸彿锛� */
+    keywords?: string;
+    /** 楠屾敹鏃ユ湡-鏈�鏃╂椂闂达紙B绔鎴风-楠屾敹绠$悊涓撶敤锛� */
+    checkReceiveTimeBegin?: string;
+    /** 楠屾敹鏃ユ湡-鏈�鏅氭椂闂达紙B绔鎴风-楠屾敹绠$悊涓撶敤锛� */
+    checkReceiveTimeEnd?: string;
+    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetCheckReceiveTasksQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetCheckReceiveTasksQueryResultItem[];
+  }
+
+  interface GetCheckReceiveTasksQueryResultItem {
     /** 浠诲姟Id */
+    id?: string;
+    /** 浠诲姟鍚嶇О */
+    name?: string;
+    /** 浠诲姟鍗曞彿 */
+    code?: string;
+    billingMethod?: EnumBillingMethod;
+    /** 鏈嶅姟璐� */
+    serviceFee?: number;
+    settlementCycle?: EnumSettlementCycle;
+    /** 鍙戝竷鏃堕棿 */
+    createdTime?: string;
+    /** 浠诲姟寮�濮嬫椂闂� */
+    beginTime?: string;
+    /** 浠诲姟缁撴潫鏃堕棿 */
+    endTime?: string;
+    /** 浠诲姟鍦扮偣鍚嶇О */
+    addressName?: string;
+    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
+    /** 鏈�杩戦獙鏀舵椂闂� */
+    lastCheckReceiveTime?: string;
+  }
+
+  interface GetCheckReceiveTaskUserSubmitQueryResult {
+    /** 鎻愪氦Id */
+    id?: string;
+    enterpriseEmployeeUser?: GetCheckReceiveTaskUserSubmitsQueryResultObjectDataEnterpriseEmployeeUser;
+    /** 鎻愪氦鏃堕棿 */
+    createdTime?: string;
+    /** 楠屾敹鐓х墖 */
+    files?: string[];
+  }
+
+  interface GetCheckReceiveTaskUserSubmitsQuery {
+    /** 浠诲姟浜哄憳Id */
     id?: string;
     pageModel?: PagedListQueryPageModel;
   }
 
   interface GetCheckReceiveTaskUserSubmitsQueryResult {
+    objectData?: GetCheckReceiveTaskUserSubmitsQueryResultObjectData;
     pageModel?: PagedListQueryResultPageModel;
     /** 鏁版嵁 */
     data?: GetCheckReceiveTaskUserSubmitsQueryResultItem[];
   }
 
-  type GetCheckReceiveTaskUserSubmitsQueryResultItem = Record<string, any>;
+  interface GetCheckReceiveTaskUserSubmitsQueryResultItem {
+    /** 鎻愪氦Id */
+    id?: string;
+    /** 鎻愪氦鏃堕棿 */
+    createdTime?: string;
+    /** 楠屾敹鐓х墖 */
+    files?: string[];
+    checkReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus;
+    /** 楠屾敹鏃堕棿 */
+    checkReceiveTime?: string;
+  }
+
+  interface GetCheckReceiveTaskUserSubmitsQueryResultObjectData {
+    taskInfo?: GetCheckReceiveTaskUserSubmitsQueryResultObjectDataTaskInfo;
+    enterpriseEmployeeUser?: GetCheckReceiveTaskUserSubmitsQueryResultObjectDataEnterpriseEmployeeUser;
+  }
+
+  interface GetCheckReceiveTaskUserSubmitsQueryResultObjectDataEnterpriseEmployeeUser {
+    /** 鐢ㄦ埛Id */
+    id?: string;
+    /** 澶村儚 */
+    avatar?: string;
+    /** 濮撳悕 */
+    name?: string;
+    /** 韬唤璇佸彿 */
+    identity?: string;
+    gender?: EnumUserGender;
+    /** 骞撮緞 */
+    age?: number;
+    /** 鎵嬫満鍙� */
+    contactPhoneNumber?: string;
+    /** 鏄惁瀹炲悕 */
+    isReal?: boolean;
+    realMethod?: EnumUserRealMethod;
+    /** 鏄惁缁戝畾閾惰鍗� */
+    isBindBankCard?: boolean;
+  }
+
+  interface GetCheckReceiveTaskUserSubmitsQueryResultObjectDataTaskInfo {
+    /** 浠诲姟鍚嶇О */
+    name?: string;
+    /** 浠诲姟寮�濮嬫椂闂� */
+    beginTime?: string;
+    /** 浠诲姟缁撴潫鏃堕棿 */
+    endTime?: string;
+    /** 浠诲姟鍦扮偣鍚嶇О */
+    addressName?: string;
+  }
 
   type GetCurrentLogierMenusQuery = Record<string, any>;
 
@@ -1631,6 +1799,27 @@
     enterpriseSignContractTime?: string;
   }
 
+  type GetEnterpriseLoginInfoQuery = Record<string, any>;
+
+  interface GetEnterpriseLoginInfoQueryResult {
+    /** Id */
+    id?: string;
+    /** 澶村儚 */
+    avatar?: string;
+    /** 濮撳悕 */
+    name?: string;
+    /** 浼佷笟鍏ㄧО */
+    enterpriseName?: string;
+    /** 瑙掕壊 */
+    roles?: string[];
+    /** 鏄惁瀹炲悕 */
+    isReal?: boolean;
+    /** 鎴戠殑鏀惰棌 */
+    collectUsers?: number;
+    /** 鑱旂郴璁板綍 */
+    contactRecords?: number;
+  }
+
   interface GetEnterpriseQueryResult {
     /** Id */
     id?: string;
@@ -1823,6 +2012,28 @@
     sort?: number;
     /** 澶囨敞 */
     remark?: string;
+  }
+
+  interface GetOpenTaskInfosQuery {
+    /** 鍏抽敭瀛楋紙浠诲姟鍚嶇О锛� */
+    keywords?: string;
+    /** 浼佷笟Id */
+    enterpriseId?: string;
+    /** 鍙戝竷鏃堕棿-寮�濮� */
+    beginTime?: string;
+    /** 鍙戝竷鏃堕棿-缁撴潫 */
+    endTime?: string;
+    /** 浠诲姟鍦扮偣鎵�灞炲煄甯傜紪鍙� */
+    cityCode?: string;
+    settlementCycle?: EnumSettlementCycle;
+    /** 鍛樺伐绂忓埄 */
+    benefitCodes?: string[];
+    genderLimit?: EnumUserGender;
+    status?: EnumTaskStatus;
+    releaseStatus?: EnumTaskReleaseStatus;
+    recommendStatus?: EnumTaskRecommendStatus;
+    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
+    pageModel?: PagedListQueryPageModel;
   }
 
   interface GetOperationUserInfosQuery {
@@ -2085,6 +2296,8 @@
     applyCount?: number;
     /** 浠诲姟鍚嶇О */
     name?: string;
+    /** 浠诲姟鍗曞彿 */
+    code?: string;
     billingMethod?: EnumBillingMethod;
     /** 鏈嶅姟璐� */
     serviceFee?: number;
@@ -2233,7 +2446,7 @@
     checkReceiveStatus?: EnumTaskCheckReceiveStatus;
     settlementStatus?: EnumTaskSettlementStatus;
     recommendStatus?: EnumTaskRecommendStatus;
-    /** 鍒涘缓鏃堕棿 */
+    /** 鍙戝竷鏃堕棿 */
     createdTime?: string;
   }
 
@@ -3084,6 +3297,13 @@
     clientType?: EnumClientType;
   }
 
+  interface SubmitCheckReceiveTaskCommand {
+    /** 浠诲姟Id */
+    taskInfoId?: string;
+    /** 闄勪欢 */
+    files?: string[];
+  }
+
   type SyncHumanResourcesAreaDictionaryDataCommand = Record<string, any>;
 
   interface UpdatePhoneNumberVerifyCodeCommand {
diff --git a/src/services/api/userResume.ts b/src/services/api/userResume.ts
index 7b9b8d6..8edd703 100644
--- a/src/services/api/userResume.ts
+++ b/src/services/api/userResume.ts
@@ -2,6 +2,36 @@
 // @ts-ignore
 import { request } from '@/utils/request';
 
+/** 鏀惰棌鐏靛伐 POST /api/user/userResume/collectUserResume */
+export async function collectUserResume(
+  body: API.CollectUserResumeCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/user/userResume/collectUserResume', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鑱旂郴鐏靛伐 POST /api/user/userResume/contactUserResume */
+export async function contactUserResume(
+  body: API.ContactUserResumeCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/user/userResume/contactUserResume', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 鍒犻櫎鐢ㄦ埛绠�鍘�-璧勬牸璇佷功 DELETE /api/user/userResume/deleteUserResumeCredential */
 export async function deleteUserResumeCredential(
   body: API.DeleteUserResumeCredentialCommand,
diff --git a/src/views/EmploymentManage/CheckManage.vue b/src/views/EmploymentManage/CheckManage.vue
index 71f634c..a6c7c31 100644
--- a/src/views/EmploymentManage/CheckManage.vue
+++ b/src/views/EmploymentManage/CheckManage.vue
@@ -5,11 +5,8 @@
         <template #query>
           <QueryFilterItem tip-content="楠屾敹鐘舵��">
             <FieldRadio
-              v-model="extraParamState.flexEnterpriseSettingStatus"
-              :value-enum="[
-                { label: '宸插畨鎺�', value: 1 },
-                { label: '寰呭畨鎺�', value: 0 },
-              ]"
+              v-model="extraParamState.checkReceiveStatus"
+              :value-enum="EnumTaskCheckReceiveStatusText"
               buttonStyle
               showAllBtn
               @change="getList()"
@@ -17,7 +14,7 @@
           </QueryFilterItem>
           <QueryFilterItem>
             <FieldDatePicker
-              v-model="extraParamState.flexEnterpriseSettingStatus"
+              v-model="extraParamState.checkReceiveTime"
               type="daterange"
               range-separator="~"
               start-placeholder="璧峰鏃ユ湡"
@@ -46,7 +43,6 @@
       >
       </ProTableV2>
     </AppContainer>
-    <CheckManageDialog v-bind="dialogProps" @check="handleCheck" />
   </LoadingLayout>
 </template>
 
@@ -65,8 +61,10 @@
   useFormDialog,
 } from '@bole-core/components';
 import { CheckManageColumns } from './constants';
-import { EnumUserGender } from '@/constants';
-import CheckManageDialog from './components/CheckManageDialog.vue';
+import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive';
+import { ModelValueType } from 'element-plus';
+import { format } from '@/utils';
+import { EnumTaskCheckReceiveStatusText } from '@/constants';
 
 defineOptions({
   name: 'CheckManage',
@@ -75,20 +73,24 @@
 const operationBtns = defineOperationBtns([
   {
     data: {
-      enCode: 'checkBtn',
-      name: '楠屾敹',
-    },
-    emits: {
-      onClick: (role) => openDialog(role, 'check'),
-    },
-  },
-  {
-    data: {
       enCode: 'detailBtn',
       name: '璇︽儏',
     },
     emits: {
-      onClick: (role) => openDialog(role, 'detail'),
+      onClick: (role) => goCheckReceiveTaskDetail(role),
+    },
+  },
+  {
+    data: {
+      enCode: 'exportBtn',
+      name: '瀵煎嚭',
+    },
+    emits: {
+      onClick: (role) => handleExport(role),
+    },
+    extraProps: {
+      hide: (row: API.GetCheckReceiveTasksQueryResultItem) =>
+        row.checkReceiveStatus !== EnumTaskCheckReceiveStatus.Completed,
     },
   },
 ]);
@@ -100,6 +102,12 @@
 };
 
 const state = reactive({ ...BaseState });
+
+const eventContext = useGlobalEventContext();
+
+eventContext.addEvent('checkReceiveTask', () => {
+  getList(paginationState.pageIndex);
+});
 
 onMounted(async () => {
   await getList();
@@ -115,17 +123,25 @@
 } = useTable(
   async ({ pageIndex, pageSize }, extraParamState) => {
     try {
-      let params: API.GetFlexEnterpriseInput = {
+      let params: API.GetCheckReceiveTasksQuery = {
         pageModel: {
           rows: pageSize,
           page: pageIndex,
           orderInput: extraParamState.orderInput,
         },
-        flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus,
-        searchWord: extraParamState.searchWord,
+        checkReceiveStatus: extraParamState.checkReceiveStatus,
+        checkReceiveTimeBegin: format(
+          extraParamState.checkReceiveTime?.[0] ?? '',
+          'YYYY-MM-DD 00:00:00'
+        ),
+        checkReceiveTimeEnd: format(
+          extraParamState.checkReceiveTime?.[1] ?? '',
+          'YYYY-MM-DD 23:59:59'
+        ),
+        keywords: extraParamState.searchWord,
       };
 
-      let res = await flexEnterpriseServices.getFlexEnterpriseList(params, {
+      let res = await taskCheckReceiveServices.getCheckReceiveTasks(params, {
         showLoading: !state.loading,
       });
       return res;
@@ -137,29 +153,36 @@
     defaultExtraParams: {
       searchWord: '',
       orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
-      flexEnterpriseSettingStatus: '' as any,
+      checkReceiveStatus: '' as any as EnumTaskCheckReceiveStatus,
+      checkReceiveTime: [] as unknown as ModelValueType,
     },
-    queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'],
-    columnsRenderProps: {},
+    queryKey: ['taskCheckReceiveServices/getCheckReceiveTasks'],
+    columnsRenderProps: {
+      checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskCheckReceiveStatusText },
+      billingMethod: { type: 'enum', valueEnum: EnumBillingMethodText },
+      serviceFee: {
+        type: 'money',
+        formatter: (row) => {
+          return `${row.serviceFee}${EnumBillingMethodUnitText[row.billingMethod]}`;
+        },
+      },
+      settlementCycle: { type: 'enum', valueEnum: EnumSettlementCycleText },
+      createdTime: { type: 'date', format: 'YYYY-MM-DD' },
+      beginTime: { type: 'date', format: 'YYYY-MM-DD' },
+      endTime: { type: 'date', format: 'YYYY-MM-DD' },
+      lastCheckReceiveTime: { type: 'date' },
+    },
   }
 );
 
-const { dialogProps, dialogState, handleEdit, editForm } = useFormDialog({
-  defaultFormParams: {
-    id: '',
-    type: '',
-  },
-});
-
-function openDialog(row, type: string) {
-  handleEdit({
-    id: row.id,
-    type: type,
+function goCheckReceiveTaskDetail(row: API.GetCheckReceiveTasksQueryResultItem) {
+  router.push({
+    name: 'CheckReceiveTaskDetail',
+    params: {
+      id: row.id ?? '',
+    },
   });
 }
 
-function handleCheck(val) {
-  console.log('val: ', val);
-  dialogState.dialogVisible = false;
-}
+function handleExport(row: API.GetCheckReceiveTasksQueryResultItem) {}
 </script>
diff --git a/src/views/EmploymentManage/CheckReceiveTaskDetail.vue b/src/views/EmploymentManage/CheckReceiveTaskDetail.vue
new file mode 100644
index 0000000..d52653d
--- /dev/null
+++ b/src/views/EmploymentManage/CheckReceiveTaskDetail.vue
@@ -0,0 +1,186 @@
+<template>
+  <LoadingLayout :loading="state.loading">
+    <AppContainer>
+      <el-card class="query-filter-bar-wrapper" shadow="never">
+        <ProForm :model="taskInfo" is-read>
+          <ProFormCol>
+            <ProFormColItem :span="8">
+              <ProFormItemV2 label="浠诲姟鍚嶇О:">
+                {{ taskInfo.name ?? '' }}
+              </ProFormItemV2>
+            </ProFormColItem>
+            <ProFormColItem :span="8">
+              <ProFormItemV2 label="浠诲姟缂栧彿:">
+                {{ taskInfo.code ?? '' }}
+              </ProFormItemV2>
+            </ProFormColItem>
+            <ProFormColItem :span="8">
+              <ProFormItemV2 label="鏈嶅姟璐归噾棰�:">
+                {{ `${taskInfo.serviceFee}${EnumBillingMethodUnitText[taskInfo.billingMethod]}` }}
+              </ProFormItemV2>
+            </ProFormColItem>
+          </ProFormCol>
+          <ProFormCol>
+            <ProFormColItem :span="8">
+              <ProFormItemV2 label="鍙戝竷鏃ユ湡:">
+                {{ dayjs(taskInfo.createdTime ?? '').format('YYYY-MM-DD') }}
+              </ProFormItemV2>
+            </ProFormColItem>
+            <ProFormColItem :span="8">
+              <ProFormItemV2 label="寮�濮嬫棩鏈�:">
+                {{ dayjs(taskInfo.beginTime ?? '').format('YYYY-MM-DD') }}
+              </ProFormItemV2>
+            </ProFormColItem>
+            <ProFormColItem :span="8">
+              <ProFormItemV2 label="鍙戝竷鏃ユ湡:">
+                {{ dayjs(taskInfo.endTime ?? '').format('YYYY-MM-DD') }}
+              </ProFormItemV2>
+            </ProFormColItem>
+          </ProFormCol>
+        </ProForm>
+      </el-card>
+
+      <ProTableV2
+        v-bind="proTableProps"
+        :columns="CheckReceiveTaskDetailColumns"
+        :operationBtns="operationBtns"
+      >
+      </ProTableV2>
+    </AppContainer>
+    <CheckManageDialog v-bind="dialogProps" />
+  </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import {
+  ProTableV2,
+  LoadingLayout,
+  AppContainer,
+  useTable,
+  useFormDialog,
+  defineOperationBtns,
+  ProForm,
+  ProFormCol,
+  ProFormColItem,
+  ProFormItemV2,
+  ProTableQueryFilterBar,
+} from '@bole-core/components';
+import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive';
+import * as taskServices from '@/services/api/task';
+import { useQuery } from '@tanstack/vue-query';
+import { CheckReceiveTaskDetailColumns } from './constants';
+import { EnumBillingMethodUnitText } from '@/constants';
+import dayjs from 'dayjs';
+import CheckManageDialog from './components/CheckManageDialog.vue';
+
+defineOptions({
+  name: 'CheckReceiveTaskDetail',
+});
+
+const operationBtns = defineOperationBtns([
+  {
+    data: {
+      enCode: 'exportBtn',
+      name: '楠屾敹',
+    },
+    emits: {
+      onClick: (role) => openDialog(role),
+    },
+    extraProps: {
+      hide: (row: API.GetCheckReceiveTaskQueryResultItem) =>
+        row.checkReceiveStatus !== EnumTaskCheckReceiveStatus.WaitCheckReceive,
+    },
+  },
+  {
+    data: {
+      enCode: 'detailBtn',
+      name: '璇︽儏',
+    },
+    emits: {
+      onClick: (role) => openDialog(role, true),
+    },
+  },
+]);
+
+const route = useRoute();
+const id = (route.params.id as string) ?? '';
+
+const { data: taskInfo } = useQuery({
+  queryKey: ['taskServices/getTaskInfo', id],
+  queryFn: () => {
+    return taskServices.getTaskInfo(
+      { id: id },
+      {
+        showLoading: false,
+      }
+    );
+  },
+  placeholderData: () => ({} as API.GetTaskInfoQueryResult),
+});
+
+const BaseState = {
+  loading: true,
+};
+
+const state = reactive({ ...BaseState });
+
+const eventContext = useGlobalEventContext();
+
+eventContext.addEvent('checkReceiveTask', () => {
+  getList(paginationState.pageIndex);
+});
+
+onMounted(async () => {
+  await getList();
+  state.loading = false;
+});
+
+const {
+  getDataSource: getList,
+  proTableProps,
+  paginationState,
+  extraParamState,
+  reset,
+} = useTable(
+  async ({ pageIndex, pageSize }, extraParamState) => {
+    try {
+      let params: API.GetCheckReceiveTaskQuery = {
+        pageModel: {
+          rows: pageSize,
+          page: pageIndex,
+        },
+        taskInfoId: id,
+      };
+
+      let res = await taskCheckReceiveServices.getCheckReceiveTask(params, {
+        showLoading: !state.loading,
+      });
+      return res;
+    } catch (error) {}
+  },
+  {
+    defaultExtraParams: {
+      keyword: '',
+    },
+    columnsRenderProps: {
+      gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson },
+      lastSubmitTime: { type: 'date' },
+      checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskCheckReceiveStatusText },
+    },
+  }
+);
+
+function openDialog(row: API.GetCheckReceiveTaskQueryResultItem, isDetail = false) {
+  handleEdit({
+    id: row.id,
+    isDetail,
+  });
+}
+
+const { dialogProps, handleEdit } = useFormDialog({
+  defaultFormParams: {
+    id: '',
+    isDetail: false,
+  },
+});
+</script>
diff --git a/src/views/EmploymentManage/components/CheckManageDialog.vue b/src/views/EmploymentManage/components/CheckManageDialog.vue
index 1c93c62..af00716 100644
--- a/src/views/EmploymentManage/components/CheckManageDialog.vue
+++ b/src/views/EmploymentManage/components/CheckManageDialog.vue
@@ -6,13 +6,7 @@
     </ProDialogTableWrapper>
     <template #footer>
       <span class="dialog-footer">
-        <el-button v-if="form.type === 'detail'" @click="emit('onCancel')" type="primary"
-          >纭畾</el-button
-        >
-        <template v-if="form.type === 'check'">
-          <el-button @click="emit('check', false)">楠屾敹鏈�氳繃</el-button>
-          <el-button type="primary" @click="emit('check', true)">楠屾敹閫氳繃</el-button>
-        </template>
+        <el-button @click="emit('onCancel')" type="primary">纭畾</el-button>
       </span>
     </template>
   </ProDialog>
@@ -27,6 +21,10 @@
   defineOperationBtns,
   useTable,
 } from '@bole-core/components';
+import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive';
+import { setOSSLink } from '@/utils';
+import { downloadWithZip, Message } from '@bole-core/core';
+import { useGlobalEventContext } from '@/hooks';
 
 defineOptions({
   name: 'EnterpriseConsumptionDetailDialog',
@@ -34,31 +32,74 @@
 
 type Form = {
   id: string;
-  type: string;
+  isDetail: boolean;
 };
 
 const visible = defineModel({ type: Boolean });
 const form = defineModel<Form>('form');
-const title = computed(() => (form.value.type === 'check' ? '楠屾敹' : '璇︽儏'));
+const title = computed(() => (form.value.isDetail ? '璇︽儏' : '楠屾敹'));
 const emit = defineEmits<{
   (e: 'onCancel'): void;
-  (e: 'check', value: boolean): void;
 }>();
+
+const eventContext = useGlobalEventContext();
 
 const columns = defineColumns([
   {
     id: '1',
-    enCode: 'creationTime',
+    enCode: 'createdTime',
     name: '鎻愪氦鏃堕棿',
   },
   {
     id: '2',
-    enCode: 'type',
+    enCode: 'files',
     name: '楠屾敹鐓х墖',
+  },
+  {
+    id: '3',
+    enCode: 'checkReceiveStatus',
+    name: '楠屾敹鐘舵��',
+  },
+  {
+    id: '4',
+    enCode: 'checkReceiveTime',
+    name: '楠屾敹鏃堕棿',
   },
 ]);
 
 const operationBtns = defineOperationBtns([
+  {
+    data: {
+      enCode: 'checkReceiveBtn',
+      name: '楠屾敹閫氳繃',
+    },
+    emits: {
+      onClick: (role) => checkReceiveTask(role, EnumTaskUserSubmitCheckReceiveStatus.Success),
+    },
+    extraProps: {
+      hide: (row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) =>
+        !(
+          row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit ||
+          row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive
+        ) || form.value.isDetail,
+    },
+  },
+  {
+    data: {
+      enCode: 'checkReceiveBtn',
+      name: '楠屾敹鏈�氳繃',
+    },
+    emits: {
+      onClick: (role) => checkReceiveTask(role, EnumTaskUserSubmitCheckReceiveStatus.Fail),
+    },
+    extraProps: {
+      hide: (row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) =>
+        !(
+          row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit ||
+          row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive
+        ) || form.value.isDetail,
+    },
+  },
   {
     data: {
       enCode: 'downloadBtn',
@@ -71,10 +112,12 @@
 ]);
 
 watch(
-  () => visible.value,
+  visible,
   (val) => {
     if (val) {
-      getList();
+      if (form.value.id) {
+        getList();
+      }
     }
   },
   {
@@ -91,14 +134,15 @@
 } = useTable(
   async ({ pageIndex, pageSize }, extraParamState) => {
     try {
-      let params: API.GetFlexEnterpriseInput = {
+      let params: API.GetCheckReceiveTaskUserSubmitsQuery = {
         pageModel: {
           rows: pageSize,
           page: pageIndex,
           orderInput: extraParamState.orderInput,
         },
+        id: form.value.id,
       };
-      let res = await flexEnterpriseServices.getFlexEnterpriseList(params);
+      let res = await taskCheckReceiveServices.getCheckReceiveTaskUserSubmits(params);
       return res;
     } catch (error) {
       console.log('error: ', error);
@@ -108,14 +152,48 @@
     defaultExtraParams: {
       orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
     },
-    queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'],
-    columnsRenderProps: {},
+    queryKey: ['taskCheckReceiveServices/getCheckReceiveTaskUserSubmits'],
+    columnsRenderProps: {
+      createdTime: { type: 'date' },
+      checkReceiveTime: { type: 'date' },
+      checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskUserSubmitCheckReceiveStatusText },
+      files: {
+        type: 'url',
+        //@ts-ignore
+        formatter: (row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) =>
+          (row.files ?? []).map((x) => setOSSLink(x)),
+        showDownloadBtn: false,
+      },
+    },
   }
 );
 
-function handleDownload(row) {}
-</script>
+function handleDownload(row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) {
+  if (row.files?.length > 0) {
+    downloadWithZip(
+      row.files.map((x) => ({
+        data: setOSSLink(x),
+      })),
+      '楠屾敹鐓х墖'
+    );
+  }
+}
 
-<style lang="scss" scoped>
-@use '@/style/common.scss' as *;
-</style>
+async function checkReceiveTask(
+  row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem,
+  checkReceiveStatus: EnumTaskUserSubmitCheckReceiveStatus
+) {
+  try {
+    let params: API.CheckReceiveTaskCommand = {
+      id: row.id,
+      checkReceiveStatus: checkReceiveStatus,
+    };
+    let res = await taskCheckReceiveServices.checkReceiveTask(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+      eventContext.emit('checkReceiveTask');
+    }
+  } catch (error) {}
+}
+</script>
diff --git a/src/views/EmploymentManage/constants/columns.ts b/src/views/EmploymentManage/constants/columns.ts
index 97c074b..b20138e 100644
--- a/src/views/EmploymentManage/constants/columns.ts
+++ b/src/views/EmploymentManage/constants/columns.ts
@@ -138,41 +138,99 @@
   {
     id: '1',
     enCode: 'name',
+    name: '浠诲姟鍚嶇О',
+  },
+  {
+    id: '2',
+    enCode: 'code',
+    name: '浠诲姟鍗曞彿',
+  },
+  {
+    id: '3',
+    enCode: 'billingMethod',
+    name: '缁撶畻鍛ㄦ湡',
+  },
+  {
+    id: '4',
+    enCode: 'serviceFee',
+    name: '鏈嶅姟璐归噾棰�',
+  },
+  {
+    id: '5',
+    enCode: 'settlementCycle',
+    name: '缁撶畻鏂瑰紡',
+  },
+  {
+    id: '6',
+    enCode: 'createdTime',
+    name: '鍙戝竷鏃ユ湡',
+  },
+  {
+    id: '6-1',
+    enCode: 'beginTime',
+    name: '寮�濮嬫棩鏈�',
+  },
+  {
+    id: '7',
+    enCode: 'endTime',
+    name: '缁撴潫鏃ユ湡',
+  },
+  {
+    id: '8',
+    enCode: 'checkReceiveStatus',
+    name: '浠诲姟楠屾敹鐘舵��',
+  },
+  {
+    id: '9',
+    enCode: 'lastCheckReceiveTime',
+    name: '鏈�杩戦獙鏀舵椂闂�',
+  },
+]);
+
+export const CheckReceiveTaskDetailColumns = defineColumns([
+  {
+    id: '1',
+    enCode: 'name',
     name: '濮撳悕',
   },
   {
     id: '2',
-    enCode: 'name',
+    enCode: 'identity',
     name: '韬唤璇佸彿',
   },
   {
     id: '3',
-    enCode: 'name',
+    enCode: 'gender',
     name: '鎬у埆',
   },
   {
     id: '4',
-    enCode: 'name',
+    enCode: 'age',
     name: '骞撮緞',
   },
   {
     id: '5',
-    enCode: 'name',
+    enCode: 'contactPhoneNumber',
     name: '鎵嬫満鍙�',
   },
   {
     id: '6',
-    enCode: 'name',
-    name: '鎵�灞炲鎴�',
+    enCode: 'taskInfoName',
+    name: '浠诲姟鍚嶇О',
   },
   {
     id: '7',
-    enCode: 'name',
-    name: '鎻愪氦鏃堕棿',
+    enCode: 'taskInfoCode',
+    name: '浠诲姟缂栧彿',
   },
   {
     id: '8',
-    enCode: 'name',
-    name: '楠屾敹鐘舵��',
+    enCode: 'lastSubmitTime',
+    name: '鏈�杩戞彁浜ゆ椂闂�',
+  },
+  {
+    id: '8',
+    enCode: 'checkReceiveStatus',
+    name: '浠诲姟楠屾敹鐘舵��',
   },
 ]);

--
Gitblit v1.9.1