From 9373e192d80ba82036929de1904f7fadb515bfd5 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期一, 01 九月 2025 16:27:07 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobAdminBClient

---
 src/services/api/enterpriseEmployee.ts                      |  102 ++++++
 .eslintrc-auto-import.json                                  |    4 
 src/services/api/typings.d.ts                               |  374 ++++++++++++++++++++++-
 src/store/modules/user.ts                                   |    3 
 src/hooks/index.ts                                          |    1 
 src/services/api/enterpriseWallet.ts                        |   18 +
 src/services/api/enterprise.ts                              |   15 
 src/views/FlexJobManage/FlexJobManage.vue                   |  160 +++++++--
 src/services/api/index.ts                                   |   10 
 src/views/EmploymentManage/components/CheckManageDialog.vue |   12 
 src/services/api/electronSign.ts                            |   83 +++++
 src/hooks/sign.ts                                           |   22 +
 src/views/FlexJobManage/components/SignDialog.vue           |   72 ++++
 auto-imports.d.ts                                           |   11 
 src/constants/enterpriseEmployee.ts                         |    8 
 src/constants/apiEnum.ts                                    |   24 +
 16 files changed, 848 insertions(+), 71 deletions(-)

diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json
index af838e5..649d418 100644
--- a/.eslintrc-auto-import.json
+++ b/.eslintrc-auto-import.json
@@ -26,6 +26,8 @@
     "EnumDataSource": true,
     "EnumDbAuditOperate": true,
     "EnumElectronSignAccess": true,
+    "EnumEnterpriseCostStatus": true,
+    "EnumEnterpriseCostType": true,
     "EnumEnterpriseRealMethod": true,
     "EnumMenuType": true,
     "EnumMenuVisitLevel": true,
@@ -61,6 +63,7 @@
     "EnumTaskUserHireStatusText": true,
     "EnumTaskUserSignContractStatus": true,
     "EnumTaskUserSignContractStatusText": true,
+    "EnumTaskUserSignContractStatusTextForFilter": true,
     "EnumTaskUserSubmitCheckReceiveStatus": true,
     "EnumTaskUserSubmitCheckReceiveStatusText": true,
     "EnumUserGender": true,
@@ -195,6 +198,7 @@
     "useCssModule": true,
     "useCssVars": true,
     "useDictionaryDataSelect": true,
+    "useEnterpriseContractTemplateSelect": true,
     "useGetDictionaryCategorySelect": true,
     "useGlobalEventContext": true,
     "useGlobalEventProvide": true,
diff --git a/auto-imports.d.ts b/auto-imports.d.ts
index 982efca..50dfe20 100644
--- a/auto-imports.d.ts
+++ b/auto-imports.d.ts
@@ -30,6 +30,8 @@
   const EnumDataSource: typeof import('./src/constants/apiEnum')['EnumDataSource']
   const EnumDbAuditOperate: typeof import('./src/constants/apiEnum')['EnumDbAuditOperate']
   const EnumElectronSignAccess: typeof import('./src/constants/apiEnum')['EnumElectronSignAccess']
+  const EnumEnterpriseCostStatus: typeof import('./src/constants/apiEnum')['EnumEnterpriseCostStatus']
+  const EnumEnterpriseCostType: typeof import('./src/constants/apiEnum')['EnumEnterpriseCostType']
   const EnumEnterpriseRealMethod: typeof import('./src/constants/apiEnum')['EnumEnterpriseRealMethod']
   const EnumMenuType: typeof import('./src/constants/apiEnum')['EnumMenuType']
   const EnumMenuVisitLevel: typeof import('./src/constants/apiEnum')['EnumMenuVisitLevel']
@@ -66,6 +68,7 @@
   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 EnumTaskUserSignContractStatusTextForFilter: typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserSignContractStatusTextForFilter']
   const EnumTaskUserSubmitCheckReceiveStatus: typeof import('./src/constants/apiEnum')['EnumTaskUserSubmitCheckReceiveStatus']
   const EnumTaskUserSubmitCheckReceiveStatusText: typeof import('./src/constants/task')['EnumTaskUserSubmitCheckReceiveStatusText']
   const EnumUserGender: typeof import('./src/constants/apiEnum')['EnumUserGender']
@@ -185,6 +188,7 @@
   const useCssModule: typeof import('vue')['useCssModule']
   const useCssVars: typeof import('vue')['useCssVars']
   const useDictionaryDataSelect: typeof import('./src/hooks/dic')['useDictionaryDataSelect']
+  const useEnterpriseContractTemplateSelect: typeof import('./src/hooks/sign')['useEnterpriseContractTemplateSelect']
   const useGetDictionaryCategorySelect: typeof import('./src/hooks/dic')['useGetDictionaryCategorySelect']
   const useGlobalEventContext: typeof import('./src/hooks/useEvent')['useGlobalEventContext']
   const useGlobalEventProvide: typeof import('./src/hooks/useEvent')['useGlobalEventProvide']
@@ -205,6 +209,7 @@
   const useRouter: typeof import('vue-router')['useRouter']
   const useSearchSettingType: typeof import('./src/hooks/dic')['useSearchSettingType']
   const useSetReactive: typeof import('./src/hooks/global/helper')['useSetReactive']
+  const useSign: typeof import('./src/hooks/sign')['useSign']
   const useSlots: typeof import('vue')['useSlots']
   const useTemplateRef: typeof import('vue')['useTemplateRef']
   const useUser: typeof import('./src/hooks/useUser')['useUser']
@@ -221,7 +226,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, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseRealMethod, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, 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, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseRealMethod, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, 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'
+  export type { EnumBillingMethod, EnumClientType, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, 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, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, 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'
@@ -276,6 +281,8 @@
     readonly EnumDataSource: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumDataSource']>
     readonly EnumDbAuditOperate: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumDbAuditOperate']>
     readonly EnumElectronSignAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumElectronSignAccess']>
+    readonly EnumEnterpriseCostStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCostStatus']>
+    readonly EnumEnterpriseCostType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCostType']>
     readonly EnumEnterpriseRealMethod: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseRealMethod']>
     readonly EnumMenuType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumMenuType']>
     readonly EnumMenuVisitLevel: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumMenuVisitLevel']>
@@ -311,6 +318,7 @@
     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 EnumTaskUserSignContractStatusTextForFilter: UnwrapRef<typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserSignContractStatusTextForFilter']>
     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']>
@@ -425,6 +433,7 @@
     readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
     readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
     readonly useDictionaryDataSelect: UnwrapRef<typeof import('./src/hooks/dic')['useDictionaryDataSelect']>
+    readonly useEnterpriseContractTemplateSelect: UnwrapRef<typeof import('./src/hooks/sign')['useEnterpriseContractTemplateSelect']>
     readonly useGetDictionaryCategorySelect: UnwrapRef<typeof import('./src/hooks/dic')['useGetDictionaryCategorySelect']>
     readonly useGlobalEventContext: UnwrapRef<typeof import('./src/hooks/useEvent')['useGlobalEventContext']>
     readonly useGlobalEventProvide: UnwrapRef<typeof import('./src/hooks/useEvent')['useGlobalEventProvide']>
diff --git a/src/constants/apiEnum.ts b/src/constants/apiEnum.ts
index 687a584..0181980 100644
--- a/src/constants/apiEnum.ts
+++ b/src/constants/apiEnum.ts
@@ -71,6 +71,22 @@
   AlipaySign = 20,
 }
 
+/** 浼佷笟鐢ㄩ噺鎵h垂鐘舵�� */
+export enum EnumEnterpriseCostStatus {
+  /**鎵h垂鎴愬姛 */
+  Success = 10,
+  /**鎵h垂澶辫触 */
+  Fail = 20,
+}
+
+/** 浼佷笟鐢ㄩ噺绫诲瀷 */
+export enum EnumEnterpriseCostType {
+  /**鐭俊 */
+  SMS = 10,
+  /**鐢靛瓙绛� */
+  ElectronSign = 20,
+}
+
 /** 浼佷笟瀹炲悕鏂瑰紡 */
 export enum EnumEnterpriseRealMethod {
   /**浼佷笟涓夎绱� */
@@ -211,10 +227,12 @@
   UserServerUserResume = 13,
   /**浼佷笟淇℃伅 */
   UserServerEnterprise = 14,
+  /**浼佷笟閽卞寘 */
+  UserServerEnterpriseWallet = 15,
   /**鐏靛伐淇℃伅 */
-  UserServerEnterpriseEmployee = 15,
+  UserServerEnterpriseEmployee = 16,
   /**鐢靛瓙绛� */
-  ElectronSignServerElectronSign = 16,
+  ElectronSignServerElectronSign = 17,
 }
 
 /** 璧勬簮璇锋眰鏂瑰紡 */
@@ -331,6 +349,8 @@
   Pass = 20,
   /**宸叉嫆绛� */
   Refuse = 30,
+  /**宸茬粓姝� */
+  Stop = 50,
 }
 
 /** 浠诲姟楠屾敹鐘舵�� */
diff --git a/src/constants/enterpriseEmployee.ts b/src/constants/enterpriseEmployee.ts
index 5b07048..351ddd4 100644
--- a/src/constants/enterpriseEmployee.ts
+++ b/src/constants/enterpriseEmployee.ts
@@ -6,10 +6,16 @@
   [EnumTaskUserHireStatus.Refuse]: '宸茶阿缁�',
 };
 
+export const EnumTaskUserSignContractStatusTextForFilter = {
+  [EnumTaskUserSignContractStatus.Wait]: '寰呯绾�',
+  [EnumTaskUserSignContractStatus.Pass]: '宸茬绾�',
+  [EnumTaskUserSignContractStatus.Stop]: '宸茶В绾�',
+};
 export const EnumTaskUserSignContractStatusText = {
   [EnumTaskUserSignContractStatus.Wait]: '寰呯绾�',
   [EnumTaskUserSignContractStatus.Pass]: '宸茬绾�',
-  [EnumTaskUserSignContractStatus.Refuse]: '宸茶阿缁�',
+  [EnumTaskUserSignContractStatus.Refuse]: '宸叉嫆绛�',
+  [EnumTaskUserSignContractStatus.Stop]: '宸茶В绾�',
 };
 
 export const ImportEnterpriseEmployeesTempPath = `${TempFolderPath}/%E7%81%B5%E5%B7%A5%E5%AF%BC%E5%85%A5%E6%A8%A1%E6%9D%BF.xlsx`;
diff --git a/src/hooks/index.ts b/src/hooks/index.ts
index a069d7c..e79975f 100644
--- a/src/hooks/index.ts
+++ b/src/hooks/index.ts
@@ -8,3 +8,4 @@
 export * from './help';
 export * from './menu';
 export * from './dic';
+export * from './sign';
diff --git a/src/hooks/sign.ts b/src/hooks/sign.ts
new file mode 100644
index 0000000..0d8d9b2
--- /dev/null
+++ b/src/hooks/sign.ts
@@ -0,0 +1,22 @@
+import { useQuery, useQueryClient } from '@tanstack/vue-query';
+import * as electronSignServices from '@/services/api/electronSign';
+
+export function useEnterpriseContractTemplateSelect() {
+  const queryClient = useQueryClient();
+
+  const { data: enterpriseContractTemplateSelect } = useQuery({
+    queryKey: ['electronSignServices/getEnterpriseContractTemplateSelect'],
+    queryFn: () => {
+      return electronSignServices.getEnterpriseContractTemplateSelect(
+        {},
+        {
+          showLoading: false,
+        }
+      );
+    },
+    placeholderData: () =>
+      [] as API.SelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption[],
+  });
+
+  return { enterpriseContractTemplateSelect };
+}
diff --git a/src/services/api/electronSign.ts b/src/services/api/electronSign.ts
index 7e0325b..abd2700 100644
--- a/src/services/api/electronSign.ts
+++ b/src/services/api/electronSign.ts
@@ -2,6 +2,36 @@
 // @ts-ignore
 import { request } from '@/utils/request';
 
+/** 鏍¢獙鍚堝悓妯℃槸鍚﹀彲鐢� POST /api/user/electronSign/checkContractTemplate */
+export async function checkContractTemplate(
+  body: API.CheckContractTemplateCommand,
+  options?: API.RequestConfig
+) {
+  return request<boolean>('/api/user/electronSign/checkContractTemplate', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏍¢獙鐢靛瓙绛鹃�氶亾鏄惁鍚敤 POST /api/user/electronSign/checkElectronSignAccessEnableds */
+export async function checkElectronSignAccessEnableds(
+  body: API.CheckElectronSignAccessEnabledsCommand,
+  options?: API.RequestConfig
+) {
+  return request<boolean>('/api/user/electronSign/checkElectronSignAccessEnableds', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 鐢靛瓙绛惧洖浼� POST /api/user/electronSign/electronSignCallback */
 export async function electronSignCallback(
   body: API.ElectronSignCallbackCommand,
@@ -50,6 +80,24 @@
   );
 }
 
+/** 鏌ヨ宸插惎鐢ㄧ殑鐢靛瓙绛鹃厤缃� GET /api/user/electronSign/getEnabledElectronSignSettings */
+export async function getEnabledElectronSignSettings(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetEnabledElectronSignSettingsParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetEnabledElectronSignSettingsQueryResultItem[]>(
+    '/api/user/electronSign/getEnabledElectronSignSettings',
+    {
+      method: 'GET',
+      params: {
+        ...params,
+      },
+      ...(options || {}),
+    }
+  );
+}
+
 /** 鏌ヨ浼佷笟鍚堝悓妯℃澘鏃ュ織鍒嗛〉鍒楄〃鏁版嵁 POST /api/user/electronSign/getEnterpriseContractTemplateLogs */
 export async function getEnterpriseContractTemplateLogs(
   body: API.GetEnterpriseContractTemplateLogsQuery,
@@ -81,6 +129,26 @@
         'Content-Type': 'application/json-patch+json',
       },
       data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏌ヨ浼佷笟鍚堝悓妯℃澘閫夋嫨鍣ㄦ暟鎹� GET /api/user/electronSign/getEnterpriseContractTemplateSelect */
+export async function getEnterpriseContractTemplateSelect(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetEnterpriseContractTemplateSelectParams,
+  options?: API.RequestConfig
+) {
+  return request<API.SelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption[]>(
+    '/api/user/electronSign/getEnterpriseContractTemplateSelect',
+    {
+      method: 'GET',
+      params: {
+        ...params,
+        request: undefined,
+        ...params['request'],
+      },
       ...(options || {}),
     }
   );
@@ -195,3 +263,18 @@
     ...(options || {}),
   });
 }
+
+/** 鍚屾鐢靛瓙绛鹃厤缃� POST /api/user/electronSign/syncElectronSignSettings */
+export async function syncElectronSignSettings(
+  body: API.SyncElectronSignSettingsCommand,
+  options?: API.RequestConfig
+) {
+  return request<boolean>('/api/user/electronSign/syncElectronSignSettings', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
diff --git a/src/services/api/enterprise.ts b/src/services/api/enterprise.ts
index 084e76e..868563d 100644
--- a/src/services/api/enterprise.ts
+++ b/src/services/api/enterprise.ts
@@ -80,6 +80,21 @@
   });
 }
 
+/** 淇濆瓨浼佷笟璐圭敤 POST /api/user/enterprise/saveEnterpriseCost */
+export async function saveEnterpriseCost(
+  body: API.SaveEnterpriseCostCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/user/enterprise/saveEnterpriseCost', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 璁剧疆浼佷笟鐢靛瓙绛鹃厤缃� PUT /api/user/enterprise/setEnterpriseElectronSignSetting */
 export async function setEnterpriseElectronSignSetting(
   body: API.SetEnterpriseElectronSignSettingCommand,
diff --git a/src/services/api/enterpriseEmployee.ts b/src/services/api/enterpriseEmployee.ts
index dfe7822..874d511 100644
--- a/src/services/api/enterpriseEmployee.ts
+++ b/src/services/api/enterpriseEmployee.ts
@@ -17,6 +17,24 @@
   });
 }
 
+/** 浼佷笟鐢ㄦ埛绛剧害 POST /api/user/enterpriseEmployee/enterpriseUserElectronSign */
+export async function enterpriseUserElectronSign(
+  body: API.EnterpriseUserElectronSignCommand,
+  options?: API.RequestConfig
+) {
+  return request<API.EnterpriseUserElectronSignCommandResult>(
+    '/api/user/enterpriseEmployee/enterpriseUserElectronSign',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
 /** 鏌ヨ鐏靛伐璇︽儏 GET /api/user/enterpriseEmployee/getEnterpriseEmployee */
 export async function getEnterpriseEmployee(
   // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
@@ -53,6 +71,42 @@
   );
 }
 
+/** 鏌ヨ涓汉鐢ㄦ埛绛剧害璇︽儏 GET /api/user/enterpriseEmployee/getPersonalUserElectronSign */
+export async function getPersonalUserElectronSign(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetPersonalUserElectronSignParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetPersonalUserElectronSignQueryResult>(
+    '/api/user/enterpriseEmployee/getPersonalUserElectronSign',
+    {
+      method: 'GET',
+      params: {
+        ...params,
+      },
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏌ヨ涓汉鐢ㄦ埛绛剧害鍒楄〃 POST /api/user/enterpriseEmployee/getPersonalUserElectronSigns */
+export async function getPersonalUserElectronSigns(
+  body: API.GetPersonalUserElectronSignsQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetPersonalUserElectronSignsQueryResult>(
+    '/api/user/enterpriseEmployee/getPersonalUserElectronSigns',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
 /** 瀵煎叆鐏靛伐淇℃伅 POST /api/user/enterpriseEmployee/importEnterpriseEmployees */
 export async function importEnterpriseEmployees(
   body: API.ImportEnterpriseEmployeesCommand,
@@ -70,3 +124,51 @@
     }
   );
 }
+
+/** 閭�璇风伒宸ョ绾� POST /api/user/enterpriseEmployee/inviteElectronSign */
+export async function inviteElectronSign(
+  body: API.InviteElectronSignCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/user/enterpriseEmployee/inviteElectronSign', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 涓汉鐢ㄦ埛绛剧害 POST /api/user/enterpriseEmployee/personalUserElectronSign */
+export async function personalUserElectronSign(
+  body: API.PersonalUserElectronSignCommand,
+  options?: API.RequestConfig
+) {
+  return request<API.PersonalUserElectronSignCommandResult>(
+    '/api/user/enterpriseEmployee/personalUserElectronSign',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鐏靛伐瑙g害 POST /api/user/enterpriseEmployee/stopElectronSign */
+export async function stopElectronSign(
+  body: API.StopElectronSignCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/user/enterpriseEmployee/stopElectronSign', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
diff --git a/src/services/api/enterpriseWallet.ts b/src/services/api/enterpriseWallet.ts
new file mode 100644
index 0000000..343ba99
--- /dev/null
+++ b/src/services/api/enterpriseWallet.ts
@@ -0,0 +1,18 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 鏀粯瀹濈敤鎴锋巿鏉冨崗璁绾﹂�氱煡 POST /api/user/enterpriseWallet/alipayUserAgreementPageSignNotify */
+export async function alipayUserAgreementPageSignNotify(
+  body: API.AlipayUserAgreementPageSignNotifyQuery,
+  options?: API.RequestConfig
+) {
+  return request<boolean>('/api/user/enterpriseWallet/alipayUserAgreementPageSignNotify', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
diff --git a/src/services/api/index.ts b/src/services/api/index.ts
index 2973753..e230365 100644
--- a/src/services/api/index.ts
+++ b/src/services/api/index.ts
@@ -5,34 +5,36 @@
 import * as enterpriseEmployee from './enterpriseEmployee';
 import * as user from './user';
 import * as role from './role';
+import * as ocrUtils from './ocrUtils';
 import * as enterprise from './enterprise';
-import * as electronSign from './electronSign';
 import * as resource from './resource';
 import * as task from './task';
 import * as dictionary from './dictionary';
+import * as electronSign from './electronSign';
 import * as userResume from './userResume';
 import * as auth from './auth';
 import * as taskCheckReceive from './taskCheckReceive';
 import * as taskUser from './taskUser';
-import * as ocrUtils from './ocrUtils';
 import * as menu from './menu';
 import * as logRecords from './logRecords';
+import * as enterpriseWallet from './enterpriseWallet';
 import * as fileUtils from './fileUtils';
 export default {
   enterpriseEmployee,
   user,
   role,
+  ocrUtils,
   enterprise,
-  electronSign,
   resource,
   task,
   dictionary,
+  electronSign,
   userResume,
   auth,
   taskCheckReceive,
   taskUser,
-  ocrUtils,
   menu,
   logRecords,
+  enterpriseWallet,
   fileUtils,
 };
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 2327163..6f6f2fa 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -3,6 +3,35 @@
     [key: string]: any;
   }
 
+  interface AlipayUserAgreementPageSignNotifyQuery {
+    /** 鍗忚浜у搧鐮侊紝鍟嗘埛鍜屾敮浠樺疂绛剧害鏃剁‘瀹氾紝涓嶅悓涓氬姟鍦烘櫙瀵瑰簲涓嶅悓鐨勭绾︿骇鍝佺爜銆� */
+    personal_product_code?: string;
+    /** 褰撳墠绛剧害鐨勫崗璁満鏅�� */
+    sign_scene?: string;
+    /** NORMAL	鍗忚褰撳墠鐘舵�� 1. TEMP锛氭殏瀛橈紝鍗忚鏈敓鏁堣繃锛� 2. NORMAL锛氭甯革紱 3. STOP锛氭殏鍋� */
+    status?: string;
+    /** 鐢ㄦ埛绛剧害鐨勬敮浠樺疂璐﹀彿瀵瑰簲鐨勬敮浠樺疂鍞竴鐢ㄦ埛鍙枫�� 浠�2088寮�澶寸殑16浣嶇函鏁板瓧缁勬垚銆� */
+    alipay_user_id?: string;
+    /** 鏀粯瀹濈郴缁熶腑鐢ㄤ互鍞竴鏍囪瘑鐢ㄦ埛绛剧害璁板綍鐨勭紪鍙枫�� */
+    agreement_no?: string;
+    /** 鏀粯瀹濅唬鎵e崗璁殑瀹為檯绛剧害鏃堕棿锛屾牸寮忎负yyyy-MM-dd HH:mm:ss銆� */
+    sign_time?: string;
+    /** 鐢ㄦ埛鍦ㄥ晢鎴风綉绔欑殑鐧诲綍璐﹀彿锛屽鏋滃晢鎴锋帴鍙d腑鏈紶锛屽垯涓嶄細杩斿洖 */
+    external_logon_id?: string;
+    /** 鏀粯瀹濆垎閰嶇粰寮�鍙戣�呯殑搴旂敤Id */
+    app_id?: string;
+    /** 鏀粯瀹濆垎閰嶇粰鍟嗘埛鐨勫簲鐢↖d */
+    auth_app_id?: string;
+    /** 浠f墸鍗忚涓爣绀虹敤鎴风殑鍞竴绛剧害鍙凤紙纭繚鍦ㄥ晢鎴风郴缁熶腑鍞竴锛夈�� */
+    external_agreement_no?: string;
+    /** 鐢ㄦ埛浠f墸鍗忚鐨勫疄闄呯敓鏁堟椂闂达紝鏍煎紡涓簓yyy-MM-dd HH:mm:ss銆� */
+    valid_time?: string;
+    /** 杩斿洖鑴辨晱鐨勬敮浠樺疂璐﹀彿銆� */
+    alipay_logon_id?: string;
+    /** 鐢ㄦ埛绛剧害鎴愬姛閫氱煡绫诲瀷 */
+    notify_type?: string;
+  }
+
   interface APIcheckHealthParams {
     /** 鍋ュ悍鏍¢獙 */
     request?: CheckHealthQuery;
@@ -66,6 +95,16 @@
     withChildren?: boolean;
   }
 
+  interface APIgetEnabledElectronSignSettingsParams {
+    /** 浼佷笟Id */
+    enterpriseId?: string;
+  }
+
+  interface APIgetEnterpriseContractTemplateSelectParams {
+    /** 鏌ヨ浼佷笟鍚堝悓妯℃澘閫夋嫨鍣ㄦ暟鎹� */
+    request?: GetEnterpriseContractTemplateSelectQuery;
+  }
+
   interface APIgetEnterpriseElectronSignSettingParams {
     /** Id */
     id?: string;
@@ -117,6 +156,13 @@
   interface APIgetPersonalLoginInfoParams {
     /** 鏌ヨ涓汉鐢ㄦ埛鐧诲綍淇℃伅 */
     request?: GetPersonalLoginInfoQuery;
+  }
+
+  interface APIgetPersonalUserElectronSignParams {
+    /** 鐏靛伐Id */
+    id?: string;
+    /** 鍚堝悓妯℃澘涓氬姟缂栫爜 */
+    code?: string;
   }
 
   interface APIgetPersonalUserRealResultParams {
@@ -278,6 +324,16 @@
     verifyCode: string;
   }
 
+  interface CheckContractTemplateCommand {
+    /** 鍚堝悓妯℃澘Id */
+    id?: string;
+  }
+
+  interface CheckElectronSignAccessEnabledsCommand {
+    /** 閫氶亾 */
+    accesses?: EnumElectronSignAccess[];
+  }
+
   type CheckHealthQuery = Record<string, any>;
 
   interface CheckReceiveTaskCommand {
@@ -362,6 +418,18 @@
     data?: any;
   }
 
+  interface EnterpriseUserElectronSignCommand {
+    /** 鐏靛伐Id */
+    id?: string;
+  }
+
+  interface EnterpriseUserElectronSignCommandResult {
+    /** 绛剧讲鍚堝悓鐭摼鎺� */
+    signContractShortUrl?: string;
+    /** 绛剧讲鍚堝悓闀块摼鎺� */
+    signContractLongUrl?: string;
+  }
+
   enum EnumBillingMethod {
     /**鎸夋湀 */
     Month = 10,
@@ -422,6 +490,20 @@
     BestSign = 10,
     /**鏀粯瀹濅俊浠荤 */
     AlipaySign = 20,
+  }
+
+  enum EnumEnterpriseCostStatus {
+    /**鎵h垂鎴愬姛 */
+    Success = 10,
+    /**鎵h垂澶辫触 */
+    Fail = 20,
+  }
+
+  enum EnumEnterpriseCostType {
+    /**鐭俊 */
+    SMS = 10,
+    /**鐢靛瓙绛� */
+    ElectronSign = 20,
   }
 
   enum EnumEnterpriseRealMethod {
@@ -552,10 +634,12 @@
     UserServerUserResume = 13,
     /**浼佷笟淇℃伅 */
     UserServerEnterprise = 14,
+    /**浼佷笟閽卞寘 */
+    UserServerEnterpriseWallet = 15,
     /**鐏靛伐淇℃伅 */
-    UserServerEnterpriseEmployee = 15,
+    UserServerEnterpriseEmployee = 16,
     /**鐢靛瓙绛� */
-    ElectronSignServerElectronSign = 16,
+    ElectronSignServerElectronSign = 17,
   }
 
   enum EnumResourceMethod {
@@ -660,6 +744,8 @@
     Pass = 20,
     /**宸叉嫆绛� */
     Refuse = 30,
+    /**宸茬粓姝� */
+    Stop = 50,
   }
 
   enum EnumTaskUserSubmitCheckReceiveStatus {
@@ -719,6 +805,24 @@
     errorCode?: string;
     /** 鏁版嵁 */
     data?: boolean;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultEnterpriseUserElectronSignCommandResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: EnterpriseUserElectronSignCommandResult;
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -1197,6 +1301,42 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultGetPersonalUserElectronSignQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetPersonalUserElectronSignQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetPersonalUserElectronSignsQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetPersonalUserElectronSignsQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultGetPersonalUserInfoSignContractsQueryResult {
     /** 璺熻釜Id */
     traceId?: string;
@@ -1596,6 +1736,25 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultListGetEnabledElectronSignSettingsQueryResultItem {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    /** 鏁版嵁 */
+    data?: GetEnabledElectronSignSettingsQueryResultItem[];
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultListGetMenusQueryResultItem {
     /** 璺熻釜Id */
     traceId?: string;
@@ -1729,6 +1888,25 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultListSelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    /** 鏁版嵁 */
+    data?: SelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption[];
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultListSelectOptionStringGetDictionaryDataSelectQueryResultOption {
     /** 璺熻釜Id */
     traceId?: string;
@@ -1846,6 +2024,24 @@
     /** 閿欒鐮� */
     errorCode?: string;
     data?: PagedListQueryResultGetRolesQueryResultItem;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultPersonalUserElectronSignCommandResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: PersonalUserElectronSignCommandResult;
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -2077,6 +2273,8 @@
     /** 鎻愪氦Id */
     id?: string;
     enterpriseEmployeeUser?: GetCheckReceiveTaskUserSubmitsQueryResultObjectDataEnterpriseEmployeeUser;
+    /** 楠屾敹鏃堕棿 */
+    date?: string;
     /** 鎻愪氦鏃堕棿 */
     createdTime?: string;
     /** 楠屾敹鐓х墖 */
@@ -2101,6 +2299,8 @@
   interface GetCheckReceiveTaskUserSubmitsQueryResultItem {
     /** 鎻愪氦Id */
     id?: string;
+    /** 楠屾敹鏃堕棿 */
+    date?: string;
     /** 鎻愪氦鏃堕棿 */
     createdTime?: string;
     /** 楠屾敹鐓х墖 */
@@ -2197,6 +2397,10 @@
     templateId?: string;
     /** 鍙橀噺 */
     values?: GetContractTemplateQueryResultValue[];
+    /** 鍒涘缓鎿嶄綔浜� */
+    createdUserId?: string;
+    /** 鏄惁浼佷笟鐢ㄦ埛鍒涘缓 */
+    isEnterpriseUserCreated?: boolean;
   }
 
   interface GetContractTemplateQueryResultValue {
@@ -2209,6 +2413,8 @@
     label?: string;
     /** 鍙橀噺浠g爜 */
     name?: string;
+    /** 缁戝畾瀛楁 */
+    bindProperty?: string;
     /** 鏄惁蹇呭~ */
     required?: boolean;
   }
@@ -2358,6 +2564,16 @@
     isDisabled?: boolean;
   }
 
+  interface GetEnabledElectronSignSettingsQueryResultItem {
+    access?: EnumElectronSignAccess;
+    /** 瀹炲悕璐圭敤 */
+    realVerifyCost?: number;
+    /** 绛剧害璐圭敤 */
+    signCost?: number;
+    /** 涓�鍙d环 */
+    mergeSignCost?: number;
+  }
+
   interface GetEnterpriseContractTemplateLogsQuery {
     /** 妯℃澘Id */
     id?: string;
@@ -2380,6 +2596,17 @@
     operate?: EnumDbAuditOperate;
     /** 鎿嶄綔鍐呭 */
     content?: string[];
+  }
+
+  type GetEnterpriseContractTemplateSelectQuery = Record<string, any>;
+
+  interface GetEnterpriseContractTemplateSelectQueryOption {
+    /** Id */
+    id?: string;
+    /** 妯℃澘鍚嶇О */
+    name?: string;
+    /** 妯℃澘Id */
+    templateId?: string;
   }
 
   interface GetEnterpriseContractTemplatesQuery {
@@ -2431,13 +2658,8 @@
   interface GetEnterpriseElectronSignSettingQueryResult {
     /** Id */
     id?: string;
-    realAccess?: EnumRealAccess;
-    /** 瀹炲悕璐圭敤 */
-    realVerifyCost?: number;
-    /** 绛剧害璐圭敤 */
-    signCost?: number;
-    /** 涓�鍙d环 */
-    mergeSignCost?: number;
+    /** 鐢靛瓙绛鹃�氶亾 */
+    electronSignAccesses?: EnumElectronSignAccess[];
   }
 
   interface GetEnterpriseEmployeeQueryResult {
@@ -2466,6 +2688,7 @@
     enterpriseSignContractTime?: string;
     /** 鐢靛瓙鍚堝悓 */
     contractUrl?: string;
+    userSignContractStatus?: EnumTaskUserSignContractStatus;
   }
 
   interface GetEnterpriseEmployeesQuery {
@@ -2535,6 +2758,8 @@
     enterpriseSignContractStatus?: EnumTaskUserSignContractStatus;
     /** 浼佷笟绛剧害鏃堕棿 */
     enterpriseSignContractTime?: string;
+    /** 鐢靛瓙鍚堝悓 */
+    contractUrl?: string;
   }
 
   type GetEnterpriseLoginInfoQuery = Record<string, any>;
@@ -3034,6 +3259,50 @@
     hireRefuseTaskCount?: number;
   }
 
+  interface GetPersonalUserElectronSignQueryResult {
+    /** 鍚堝悓缂栧彿 */
+    contractCode?: string;
+    contractTemplateAccess?: EnumElectronSignAccess;
+    userSignContractStatus?: EnumTaskUserSignContractStatus;
+    /** 绛剧害鏂逛俊鎭�-鍛樺伐-濮撳悕 */
+    name?: string;
+    /** 绛剧害鏂逛俊鎭�-鍛樺伐-璇佷欢绫诲瀷 */
+    identityType?: string;
+    /** 绛剧害鏂逛俊鎭�-鍛樺伐-璇佷欢鍙风爜 */
+    identity?: string;
+    /** 绛剧害鏂逛俊鎭�-鍛樺伐-鎵嬫満鍙� */
+    contactPhoneNumber?: string;
+    /** 绛剧害鏂逛俊鎭�-鍛樺伐-绛剧害鏃堕棿 */
+    userSignContractTime?: string;
+    /** 绛剧害鏂逛俊鎭�-鍏徃涓讳綋-涓讳綋绫诲瀷 */
+    enterpriseType?: string;
+    /** 绛剧害鏂逛俊鎭�-鍏徃涓讳綋-绛剧害涓讳綋 */
+    enterpriseName?: string;
+    /** 绛剧害鏂逛俊鎭�-鍏徃涓讳綋-绛剧害鏃堕棿 */
+    enterpriseSignContractTime?: string;
+    /** 鍗忚鍐呭 */
+    contractUrl?: string;
+  }
+
+  interface GetPersonalUserElectronSignsQuery {
+    userSignContractStatus?: EnumTaskUserSignContractStatus;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetPersonalUserElectronSignsQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetPersonalUserElectronSignsQueryResultItem[];
+  }
+
+  interface GetPersonalUserElectronSignsQueryResultItem {
+    /** 鐏靛伐Id */
+    id?: string;
+    /** 浼佷笟鍏ㄧО */
+    enterpriseName?: string;
+    userSignContractStatus?: EnumTaskUserSignContractStatus;
+  }
+
   interface GetPersonalUserInfoSignContractsQuery {
     /** 鐢ㄦ埛Id */
     id?: string;
@@ -3395,6 +3664,8 @@
     status?: EnumTaskStatus;
     releaseStatus?: EnumTaskReleaseStatus;
     hireStatus?: EnumTaskUserHireStatus;
+    /** 鐏靛伐Id */
+    enterpriseEmployeeId?: string;
     applyButton?: GetTaskInfoQueryResultApplyButton;
     hireButton?: GetTaskInfoQueryResultHireButton;
   }
@@ -3891,6 +4162,13 @@
     identity?: string;
   }
 
+  interface InviteElectronSignCommand {
+    /** 鐏靛伐Id */
+    ids?: string[];
+    /** 鍚堝悓妯℃澘Id */
+    contractTemplateId?: string;
+  }
+
   interface LoginCommandCallback {
     /** 鐢ㄦ埛Id */
     id?: string;
@@ -3971,6 +4249,18 @@
     clientType?: EnumClientType;
   }
 
+  interface PersonalUserElectronSignCommand {
+    /** 鐏靛伐Id */
+    id?: string;
+  }
+
+  interface PersonalUserElectronSignCommandResult {
+    /** 绛剧讲鍚堝悓鐭摼鎺� */
+    signContractShortUrl?: string;
+    /** 绛剧讲鍚堝悓闀块摼鎺� */
+    signContractLongUrl?: string;
+  }
+
   interface PersonalUserFaceRealCommand {
     /** 濮撳悕 */
     name: string;
@@ -4046,6 +4336,8 @@
     label?: string;
     /** 鍙橀噺浠g爜 */
     name?: string;
+    /** 缁戝畾瀛楁 */
+    bindProperty?: string;
     /** 鏄惁蹇呭~ */
     required?: boolean;
   }
@@ -4121,6 +4413,17 @@
     password?: string;
     /** Id */
     id?: string;
+  }
+
+  interface SaveEnterpriseCostCommand {
+    /** 浼佷笟Id */
+    enterpriseId?: string;
+    type?: EnumEnterpriseCostType;
+    /** 鍚堝悓妯℃澘Id */
+    contractTemplateId?: string;
+    /** 鐏靛伐鍚堝悓Id */
+    enterpriseEmployeeContractId?: string;
+    status?: EnumEnterpriseCostStatus;
   }
 
   interface SaveMenuButtonCommand {
@@ -4369,6 +4672,14 @@
     data?: GetDictionaryCategorySelectQueryOption;
   }
 
+  interface SelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption {
+    /** 鍊� */
+    value?: string;
+    /** 鏍囩 */
+    label?: string;
+    data?: GetEnterpriseContractTemplateSelectQueryOption;
+  }
+
   interface SelectOptionStringGetDictionaryDataSelectQueryResultOption {
     /** 鍊� */
     value?: string;
@@ -4400,13 +4711,8 @@
   interface SetEnterpriseElectronSignSettingCommand {
     /** Id */
     id?: string;
-    realAccess?: EnumRealAccess;
-    /** 瀹炲悕璐圭敤 */
-    realVerifyCost?: number;
-    /** 绛剧害璐圭敤 */
-    signCost?: number;
-    /** 涓�鍙d环 */
-    mergeSignCost?: number;
+    /** 鐢靛瓙绛鹃�氶亾 */
+    electronSignAccesses?: EnumElectronSignAccess[];
   }
 
   interface SetEnterpriseSmsSettingCommand {
@@ -4492,6 +4798,11 @@
     clientType?: EnumClientType;
   }
 
+  interface StopElectronSignCommand {
+    /** 鐏靛伐Id */
+    ids?: string[];
+  }
+
   interface SubmitCheckReceiveTaskCommand {
     /** 浠诲姟Id */
     taskInfoId?: string;
@@ -4499,6 +4810,23 @@
     date?: string;
     /** 闄勪欢 */
     files?: string[];
+  }
+
+  interface SyncElectronSignSettingsCommand {
+    /** 椤� */
+    items?: SyncElectronSignSettingsCommandItem[];
+  }
+
+  interface SyncElectronSignSettingsCommandItem {
+    access?: EnumElectronSignAccess;
+    /** 鏄惁绂佺敤 */
+    isDisabled?: boolean;
+    /** 瀹炲悕璐圭敤 */
+    realVerifyCost?: number;
+    /** 绛剧害璐圭敤 */
+    signCost?: number;
+    /** 涓�鍙d环 */
+    mergeSignCost?: number;
   }
 
   interface SyncEnterpriseUserCommand {
@@ -4549,13 +4877,9 @@
     bankCard?: string;
     /** 鏄惁宸叉牎楠岄摱琛岃处鎴� */
     isCheckedBankCard?: boolean;
+    /** 鐢靛瓙绛鹃�氶亾 */
+    electronSignAccesses?: EnumElectronSignAccess[];
     realAccess?: EnumRealAccess;
-    /** 瀹炲悕璐圭敤 */
-    realVerifyCost?: number;
-    /** 绛剧害璐圭敤 */
-    signCost?: number;
-    /** 涓�鍙d环 */
-    mergeSignCost?: number;
     /** 鏄惁瀹炲悕 */
     isReal?: boolean;
     enterpriseAuth?: SyncEnterpriseUserCommandEnterpriseAuth;
@@ -4564,6 +4888,10 @@
   interface SyncEnterpriseUserCommandEnterpriseAuth {
     enterpriseRealMethod?: EnumEnterpriseRealMethod;
     personalRealMethod?: EnumPersonalRealMethod;
+    /** 娉曚汉濮撳悕 */
+    legalPerson?: string;
+    /** 娉曚汉韬唤璇佸彿 */
+    legalIdentity?: string;
     /** 娉曚汉鎴栫粡鍔炰汉濮撳悕 */
     name?: string;
     /** 娉曚汉鎴栫粡鍔炰汉韬唤璇佸彿 */
@@ -4582,6 +4910,8 @@
     proxy?: boolean;
     /** 浼佷笟鎺堟潈涔� */
     proxyPowerAttorneyUrl?: string;
+    /** 绗笁鏂瑰疄鍚嶉�氶亾璐﹀彿 */
+    certAccount?: string;
   }
 
   type SyncHumanResourcesAreaDictionaryDataCommand = Record<string, any>;
diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index 42a97e2..6315021 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -62,14 +62,13 @@
       let res = await authServices.passwordLogin(
         {
           ...params,
-          password: (params.password),
+          password: params.password,
           // password: md5Encrypt(params.password),
           type: AppLocalConfig.userType,
           clientType: AppLocalConfig.clientType,
         },
         {
           showLoading: false,
-          skipErrorHandler: true,
         }
       );
       if (res) {
diff --git a/src/views/EmploymentManage/components/CheckManageDialog.vue b/src/views/EmploymentManage/components/CheckManageDialog.vue
index 89d5dfc..592ff5c 100644
--- a/src/views/EmploymentManage/components/CheckManageDialog.vue
+++ b/src/views/EmploymentManage/components/CheckManageDialog.vue
@@ -47,21 +47,26 @@
 const columns = defineColumns([
   {
     id: '1',
+    enCode: 'date',
+    name: '浠诲姟鏃ユ湡',
+  },
+  {
+    id: '2',
     enCode: 'createdTime',
     name: '鎻愪氦鏃堕棿',
   },
   {
-    id: '2',
+    id: '3',
     enCode: 'files',
     name: '楠屾敹鐓х墖',
   },
   {
-    id: '3',
+    id: '4',
     enCode: 'checkReceiveStatus',
     name: '楠屾敹鐘舵��',
   },
   {
-    id: '4',
+    id: '5',
     enCode: 'checkReceiveTime',
     name: '楠屾敹鏃堕棿',
   },
@@ -156,6 +161,7 @@
     columnsRenderProps: {
       createdTime: { type: 'date' },
       checkReceiveTime: { type: 'date' },
+      date: { type: 'date' },
       checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskUserSubmitCheckReceiveStatusText },
       files: {
         type: 'url',
diff --git a/src/views/FlexJobManage/FlexJobManage.vue b/src/views/FlexJobManage/FlexJobManage.vue
index 9c08eec..55741d4 100644
--- a/src/views/FlexJobManage/FlexJobManage.vue
+++ b/src/views/FlexJobManage/FlexJobManage.vue
@@ -104,6 +104,7 @@
       @onDownloadTemplate="handleDownloadTemplate"
     />
     <SendShotMessageDialog v-bind="dialogShotMessageProps" />
+    <SignDialog v-bind="dialogSignProps" />
   </LoadingLayout>
 </template>
 
@@ -132,11 +133,12 @@
 import StaffInfoDialog from './components/StaffInfoDialog.vue';
 import BatchImportDialog from './components/BatchImportDialog.vue';
 import SendShotMessageDialog from './components/SendShotMessageDialog.vue';
+import SignDialog from './components/SignDialog.vue';
 import * as enterpriseEmployeeServices from '@/services/api/enterpriseEmployee';
 import { ModelValueType } from 'element-plus';
 
 defineOptions({
-  name: 'EnterpriseManageList',
+  name: 'FlexJobManageList',
 });
 
 const operationBtns = defineOperationBtns([
@@ -160,17 +162,33 @@
   },
   {
     data: {
-      enCode: 'signBtn',
-      name: '绛剧害',
+      enCode: 'enterpriseSignBtn',
+      name: '浼佷笟绛剧害',
     },
     emits: {
-      onClick: (role) => handleSign(role),
+      onClick: (role) => handleEnterpriseSign(role),
     },
     extraProps: {
       hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
         !(
           row.userSignContractStatus === EnumTaskUserSignContractStatus.Pass &&
           row.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Wait
+        ),
+    },
+  },
+  {
+    data: {
+      enCode: 'inviteSignBtn',
+      name: '閭�璇风绾�',
+    },
+    emits: {
+      onClick: (role) => handleInviteSign(role),
+    },
+    extraProps: {
+      hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
+        !(
+          row.userSignContractStatus !== EnumTaskUserSignContractStatus.Pass &&
+          row.hireStatus === EnumTaskUserHireStatus.Pass
         ),
     },
   },
@@ -190,16 +208,16 @@
         ),
     },
   },
-  {
-    data: {
-      enCode: 'delBtn',
-      name: '鍒犻櫎',
-    },
-    props: { type: 'danger' },
-    emits: {
-      onClick: (role) => handleDelete(role),
-    },
-  },
+  // {
+  //   data: {
+  //     enCode: 'delBtn',
+  //     name: '鍒犻櫎',
+  //   },
+  //   props: { type: 'danger' },
+  //   emits: {
+  //     onClick: (role) => handleDelete(role),
+  //   },
+  // },
 ]);
 
 const router = useRouter();
@@ -417,17 +435,18 @@
 
 async function handleSendShotMessage() {
   try {
-    Message.warnMessage('鍔熻兘寮�鍙戜腑');
-    // const selectionRows = getSelectionRows();
-    // if (selectionRows) {
-    //   if (selectionRows.some((x) => x.status === 10)) {
-    //     await Message.tipMessage('鍕鹃�変汉鍛樹腑鍖呭惈宸茬绾﹀畬鎴愪汉鍛橈紝纭瑕佺户缁彂閫佺煭淇¢�氱煡鍚楋紵');
-    //   }
-    //   handleShotMessageAdd({
-    //     ids: selectionRows.map((x) => x.id),
-    //     name: '浜哄憳绛剧害閫氶亾鐭俊',
-    //   });
-    // }
+    const selectionRows = getSelectionRows();
+    if (selectionRows) {
+      if (
+        selectionRows.some((x) => x.userSignContractStatus === EnumTaskUserSignContractStatus.Pass)
+      ) {
+        await Message.tipMessage('鍕鹃�変汉鍛樹腑鍖呭惈宸茬绾﹀畬鎴愪汉鍛橈紝纭瑕佺户缁彂閫佺煭淇¢�氱煡鍚楋紵');
+      }
+      handleShotMessageAdd({
+        ids: selectionRows.map((x) => x.id),
+        name: '浜哄憳绛剧害閫氶亾鐭俊',
+      });
+    }
   } catch (error) {}
 }
 
@@ -440,22 +459,91 @@
   downloadFileByUrl(ImportEnterpriseEmployeesTempPath, '鎵归噺瀵煎叆妯℃澘');
 }
 
-function handleBatchUnSign() {
+const {
+  dialogProps: dialogSignProps,
+  handleAdd: handleSignAdd,
+  handleEdit: handleSignEdit,
+  editForm: signEditForm,
+} = useFormDialog({
+  onConfirm: signContract,
+  defaultFormParams: {
+    ids: [] as string[],
+    contractTemplateId: '',
+  },
+});
+
+function handleInviteSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
+  if (row) {
+    handleSignEdit({
+      ids: [row.id],
+      contractTemplateId: '',
+    });
+  }
+}
+function handleBatchSign() {
+  const selectionRows = getSelectionRows();
+  if (selectionRows) {
+    const hasSigned = selectionRows?.some(
+      (x) =>
+        x.userSignContractStatus === EnumTaskUserSignContractStatus.Pass ||
+        x.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Pass ||
+        x.hireStatus === EnumTaskUserHireStatus.Wait
+    );
+    if (hasSigned) {
+      Message.warnMessage('鍕鹃�変汉鍛樹腑鍖呭惈宸茬绾﹀畬鎴愭垨鏈綍鐢ㄤ汉鍛�');
+      return;
+    }
+    handleSignAdd({
+      ids: selectionRows.map((x) => x.id),
+      contractTemplateId: '',
+    });
+  }
+}
+
+async function signContract() {
   try {
-    Message.warnMessage('鍔熻兘寮�鍙戜腑');
+    let params: API.InviteElectronSignCommand = {
+      ids: signEditForm.ids,
+      contractTemplateId: signEditForm.contractTemplateId,
+    };
+    let res = await enterpriseEmployeeServices.inviteElectronSign(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+    }
   } catch (error) {}
 }
 
-function handleSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
-  Message.warnMessage('鍔熻兘寮�鍙戜腑');
-}
-function handleBatchSign() {
-  Message.warnMessage('鍔熻兘寮�鍙戜腑');
-}
-async function handleUnSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
+async function handleEnterpriseSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
   try {
-    Message.warnMessage('鍔熻兘寮�鍙戜腑');
-    // await Message.tipMessage('纭畾瑙g害鐢ㄦ埛锛�');
+    let res = await enterpriseEmployeeServices.enterpriseUserElectronSign({ id: row.id });
+    if (res) {
+      window.open(res?.signContractLongUrl, '_blank');
+    }
+  } catch (error) {}
+}
+
+function handleUnSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
+  stopElectronSign([row.id]);
+}
+
+function handleBatchUnSign() {
+  try {
+    const selectionRows = getSelectionRows();
+    if (selectionRows) {
+      stopElectronSign(selectionRows.map((x) => x.id));
+    }
+  } catch (error) {}
+}
+
+async function stopElectronSign(ids: string[]) {
+  try {
+    await Message.tipMessage('纭畾瑙g害鐢ㄦ埛锛�');
+    let res = await enterpriseEmployeeServices.stopElectronSign({ ids: ids });
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+    }
   } catch (error) {}
 }
 
diff --git a/src/views/FlexJobManage/components/SignDialog.vue b/src/views/FlexJobManage/components/SignDialog.vue
new file mode 100644
index 0000000..90ebbe1
--- /dev/null
+++ b/src/views/FlexJobManage/components/SignDialog.vue
@@ -0,0 +1,72 @@
+<template>
+  <ProDialog title="绛剧害" v-model="visible" @close="onDialogClose" destroy-on-close draggable>
+    <ProForm :model="form" ref="dialogForm" label-width="100px">
+      <ProFormItemV2
+        label="璇烽�夋嫨妯℃澘:"
+        prop="contractTemplateId"
+        :check-rules="[{ message: '璇烽�夋嫨妯℃澘' }]"
+      >
+        <ProFormSelect
+          v-model="form.contractTemplateId"
+          :valueEnum="enterpriseContractTemplateSelect"
+        >
+        </ProFormSelect>
+      </ProFormItemV2>
+    </ProForm>
+    <template #footer>
+      <span class="dialog-footer">
+        <el-button type="primary" @click="handleConfirm">鎻愪氦</el-button>
+        <el-button type="default" @click="emit('onCancel')">鍙栨秷</el-button>
+      </span>
+    </template>
+  </ProDialog>
+</template>
+
+<script setup lang="ts">
+import {
+  ProDialog,
+  ProForm,
+  ProFormItemV2,
+  ProFormSelect,
+  UploadUserFile,
+} from '@bole-core/components';
+import { FormInstance } from 'element-plus';
+
+defineOptions({
+  name: 'BatchImportDialog',
+});
+
+const { enterpriseContractTemplateSelect } = useEnterpriseContractTemplateSelect();
+
+type Form = {
+  title?: string;
+  ids?: string[];
+  contractTemplateId?: string;
+};
+
+const visible = defineModel({ type: Boolean });
+const form = defineModel<Form>('form');
+
+const emit = defineEmits<{
+  (e: 'onConfirm'): void;
+  (e: 'onCancel'): void;
+}>();
+
+const dialogForm = ref<FormInstance>();
+
+function onDialogClose() {
+  if (!dialogForm.value) return;
+  dialogForm.value.resetFields();
+}
+
+function handleConfirm() {
+  if (!dialogForm.value) return;
+  dialogForm.value.validate((valid) => {
+    if (valid) {
+      emit('onConfirm');
+    } else {
+      return;
+    }
+  });
+}
+</script>

--
Gitblit v1.9.1