From 2a564dd0ddf2edee1a243cab256e7fcaa0ca0920 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 25 八月 2025 09:39:30 +0800
Subject: [PATCH] feat: 签约

---
 src/services/api/enterpriseEmployee.ts            |   51 ++++++
 src/services/api/index.ts                         |    8 
 .eslintrc-auto-import.json                        |    1 
 src/services/api/electronSign.ts                  |   83 ++++++++++
 src/services/api/typings.d.ts                     |  239 +++++++++++++++++++++++++++--
 src/hooks/sign.ts                                 |   22 ++
 src/views/FlexJobManage/components/SignDialog.vue |   65 ++++++++
 auto-imports.d.ts                                 |    3 
 src/constants/apiEnum.ts                          |    4 
 src/hooks/index.ts                                |    1 
 10 files changed, 453 insertions(+), 24 deletions(-)

diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json
index af838e5..56c5c68 100644
--- a/.eslintrc-auto-import.json
+++ b/.eslintrc-auto-import.json
@@ -195,6 +195,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..2e68bff 100644
--- a/auto-imports.d.ts
+++ b/auto-imports.d.ts
@@ -185,6 +185,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 +206,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']
@@ -425,6 +427,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..bd799b6 100644
--- a/src/constants/apiEnum.ts
+++ b/src/constants/apiEnum.ts
@@ -331,6 +331,10 @@
   Pass = 20,
   /**宸叉嫆绛� */
   Refuse = 30,
+  /**鐢熸晥涓� */
+  Effect = 40,
+  /**宸茬粓姝� */
+  Stop = 50,
 }
 
 /** 浠诲姟楠屾敹鐘舵�� */
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/enterpriseEmployee.ts b/src/services/api/enterpriseEmployee.ts
index dfe7822..41ba82d 100644
--- a/src/services/api/enterpriseEmployee.ts
+++ b/src/services/api/enterpriseEmployee.ts
@@ -53,6 +53,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 +106,18 @@
     }
   );
 }
+
+/** 閭�璇风伒宸ョ绾� POST /api/user/enterpriseEmployee/inviteElectronSign */
+export async function inviteElectronSign(
+  body: API.InviteElectronSignCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/user/enterpriseEmployee/inviteElectronSign', {
+    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..7c7dd5e 100644
--- a/src/services/api/index.ts
+++ b/src/services/api/index.ts
@@ -5,16 +5,16 @@
 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 fileUtils from './fileUtils';
@@ -22,16 +22,16 @@
   enterpriseEmployee,
   user,
   role,
+  ocrUtils,
   enterprise,
-  electronSign,
   resource,
   task,
   dictionary,
+  electronSign,
   userResume,
   auth,
   taskCheckReceive,
   taskUser,
-  ocrUtils,
   menu,
   logRecords,
   fileUtils,
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 2327163..2884491 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -66,6 +66,16 @@
     withChildren?: boolean;
   }
 
+  interface APIgetEnabledElectronSignSettingsParams {
+    /** 浼佷笟Id */
+    enterpriseId?: string;
+  }
+
+  interface APIgetEnterpriseContractTemplateSelectParams {
+    /** 鏌ヨ浼佷笟鍚堝悓妯℃澘閫夋嫨鍣ㄦ暟鎹� */
+    request?: GetEnterpriseContractTemplateSelectQuery;
+  }
+
   interface APIgetEnterpriseElectronSignSettingParams {
     /** Id */
     id?: string;
@@ -117,6 +127,13 @@
   interface APIgetPersonalLoginInfoParams {
     /** 鏌ヨ涓汉鐢ㄦ埛鐧诲綍淇℃伅 */
     request?: GetPersonalLoginInfoQuery;
+  }
+
+  interface APIgetPersonalUserElectronSignParams {
+    /** 鐏靛伐Id */
+    id?: string;
+    /** 鍚堝悓妯℃澘涓氬姟缂栫爜 */
+    code?: string;
   }
 
   interface APIgetPersonalUserRealResultParams {
@@ -276,6 +293,16 @@
     phoneNumber: string;
     /** 楠岃瘉鐮� */
     verifyCode: string;
+  }
+
+  interface CheckContractTemplateCommand {
+    /** 鍚堝悓妯℃澘Id */
+    id?: string;
+  }
+
+  interface CheckElectronSignAccessEnabledsCommand {
+    /** 閫氶亾 */
+    accesses?: EnumElectronSignAccess[];
   }
 
   type CheckHealthQuery = Record<string, any>;
@@ -660,6 +687,10 @@
     Pass = 20,
     /**宸叉嫆绛� */
     Refuse = 30,
+    /**鐢熸晥涓� */
+    Effect = 40,
+    /**宸茬粓姝� */
+    Stop = 50,
   }
 
   enum EnumTaskUserSubmitCheckReceiveStatus {
@@ -1197,6 +1228,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 +1663,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;
@@ -1719,6 +1805,25 @@
     errorCode?: string;
     /** 鏁版嵁 */
     data?: SelectOptionGuidGetDictionaryCategorySelectQueryOption[];
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultListSelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    /** 鏁版嵁 */
+    data?: SelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption[];
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -2197,6 +2302,10 @@
     templateId?: string;
     /** 鍙橀噺 */
     values?: GetContractTemplateQueryResultValue[];
+    /** 鍒涘缓鎿嶄綔浜� */
+    createdUserId?: string;
+    /** 鏄惁浼佷笟鐢ㄦ埛鍒涘缓 */
+    isEnterpriseUserCreated?: boolean;
   }
 
   interface GetContractTemplateQueryResultValue {
@@ -2209,6 +2318,8 @@
     label?: string;
     /** 鍙橀噺浠g爜 */
     name?: string;
+    /** 缁戝畾瀛楁 */
+    bindProperty?: string;
     /** 鏄惁蹇呭~ */
     required?: boolean;
   }
@@ -2358,6 +2469,16 @@
     isDisabled?: boolean;
   }
 
+  interface GetEnabledElectronSignSettingsQueryResultItem {
+    access?: EnumElectronSignAccess;
+    /** 瀹炲悕璐圭敤 */
+    realVerifyCost?: number;
+    /** 绛剧害璐圭敤 */
+    signCost?: number;
+    /** 涓�鍙d环 */
+    mergeSignCost?: number;
+  }
+
   interface GetEnterpriseContractTemplateLogsQuery {
     /** 妯℃澘Id */
     id?: string;
@@ -2380,6 +2501,17 @@
     operate?: EnumDbAuditOperate;
     /** 鎿嶄綔鍐呭 */
     content?: string[];
+  }
+
+  type GetEnterpriseContractTemplateSelectQuery = Record<string, any>;
+
+  interface GetEnterpriseContractTemplateSelectQueryOption {
+    /** Id */
+    id?: string;
+    /** 妯℃澘鍚嶇О */
+    name?: string;
+    /** 妯℃澘Id */
+    templateId?: string;
   }
 
   interface GetEnterpriseContractTemplatesQuery {
@@ -2431,13 +2563,8 @@
   interface GetEnterpriseElectronSignSettingQueryResult {
     /** Id */
     id?: string;
-    realAccess?: EnumRealAccess;
-    /** 瀹炲悕璐圭敤 */
-    realVerifyCost?: number;
-    /** 绛剧害璐圭敤 */
-    signCost?: number;
-    /** 涓�鍙d环 */
-    mergeSignCost?: number;
+    /** 鐢靛瓙绛鹃�氶亾 */
+    electronSignAccesses?: EnumElectronSignAccess[];
   }
 
   interface GetEnterpriseEmployeeQueryResult {
@@ -3032,6 +3159,47 @@
     hirePassTaskCount?: number;
     /** 宸插彇娑� */
     hireRefuseTaskCount?: number;
+  }
+
+  interface GetPersonalUserElectronSignQueryResult {
+    /** 鍚堝悓缂栧彿 */
+    contractCode?: string;
+    userSignContractStatus?: EnumTaskUserSignContractStatus;
+    /** 绛剧害鏂逛俊鎭�-鍛樺伐-濮撳悕 */
+    name?: string;
+    /** 绛剧害鏂逛俊鎭�-鍛樺伐-璇佷欢绫诲瀷 */
+    identityType?: string;
+    /** 绛剧害鏂逛俊鎭�-鍛樺伐-璇佷欢鍙风爜 */
+    identity?: 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 {
@@ -3891,6 +4059,13 @@
     identity?: string;
   }
 
+  interface InviteElectronSignCommand {
+    /** 鐏靛伐Id */
+    id?: string;
+    /** 鍚堝悓妯℃澘Id */
+    contractTemplateId?: string;
+  }
+
   interface LoginCommandCallback {
     /** 鐢ㄦ埛Id */
     id?: string;
@@ -4046,6 +4221,8 @@
     label?: string;
     /** 鍙橀噺浠g爜 */
     name?: string;
+    /** 缁戝畾瀛楁 */
+    bindProperty?: string;
     /** 鏄惁蹇呭~ */
     required?: boolean;
   }
@@ -4369,6 +4546,14 @@
     data?: GetDictionaryCategorySelectQueryOption;
   }
 
+  interface SelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption {
+    /** 鍊� */
+    value?: string;
+    /** 鏍囩 */
+    label?: string;
+    data?: GetEnterpriseContractTemplateSelectQueryOption;
+  }
+
   interface SelectOptionStringGetDictionaryDataSelectQueryResultOption {
     /** 鍊� */
     value?: string;
@@ -4400,13 +4585,8 @@
   interface SetEnterpriseElectronSignSettingCommand {
     /** Id */
     id?: string;
-    realAccess?: EnumRealAccess;
-    /** 瀹炲悕璐圭敤 */
-    realVerifyCost?: number;
-    /** 绛剧害璐圭敤 */
-    signCost?: number;
-    /** 涓�鍙d环 */
-    mergeSignCost?: number;
+    /** 鐢靛瓙绛鹃�氶亾 */
+    electronSignAccesses?: EnumElectronSignAccess[];
   }
 
   interface SetEnterpriseSmsSettingCommand {
@@ -4501,6 +4681,23 @@
     files?: string[];
   }
 
+  interface SyncElectronSignSettingsCommand {
+    /** 椤� */
+    items?: SyncElectronSignSettingsCommandItem[];
+  }
+
+  interface SyncElectronSignSettingsCommandItem {
+    access?: EnumElectronSignAccess;
+    /** 鏄惁绂佺敤 */
+    isDisabled?: boolean;
+    /** 瀹炲悕璐圭敤 */
+    realVerifyCost?: number;
+    /** 绛剧害璐圭敤 */
+    signCost?: number;
+    /** 涓�鍙d环 */
+    mergeSignCost?: number;
+  }
+
   interface SyncEnterpriseUserCommand {
     dataSource?: EnumDataSource;
     /** 鏁版嵁鏉ユ簮Id */
@@ -4549,13 +4746,9 @@
     bankCard?: string;
     /** 鏄惁宸叉牎楠岄摱琛岃处鎴� */
     isCheckedBankCard?: boolean;
+    /** 鐢靛瓙绛鹃�氶亾 */
+    electronSignAccesses?: EnumElectronSignAccess[];
     realAccess?: EnumRealAccess;
-    /** 瀹炲悕璐圭敤 */
-    realVerifyCost?: number;
-    /** 绛剧害璐圭敤 */
-    signCost?: number;
-    /** 涓�鍙d环 */
-    mergeSignCost?: number;
     /** 鏄惁瀹炲悕 */
     isReal?: boolean;
     enterpriseAuth?: SyncEnterpriseUserCommandEnterpriseAuth;
@@ -4564,6 +4757,10 @@
   interface SyncEnterpriseUserCommandEnterpriseAuth {
     enterpriseRealMethod?: EnumEnterpriseRealMethod;
     personalRealMethod?: EnumPersonalRealMethod;
+    /** 娉曚汉濮撳悕 */
+    legalPerson?: string;
+    /** 娉曚汉韬唤璇佸彿 */
+    legalIdentity?: string;
     /** 娉曚汉鎴栫粡鍔炰汉濮撳悕 */
     name?: string;
     /** 娉曚汉鎴栫粡鍔炰汉韬唤璇佸彿 */
@@ -4582,6 +4779,8 @@
     proxy?: boolean;
     /** 浼佷笟鎺堟潈涔� */
     proxyPowerAttorneyUrl?: string;
+    /** 绗笁鏂瑰疄鍚嶉�氶亾璐﹀彿 */
+    certAccount?: string;
   }
 
   type SyncHumanResourcesAreaDictionaryDataCommand = Record<string, any>;
diff --git a/src/views/FlexJobManage/components/SignDialog.vue b/src/views/FlexJobManage/components/SignDialog.vue
new file mode 100644
index 0000000..3e64ced
--- /dev/null
+++ b/src/views/FlexJobManage/components/SignDialog.vue
@@ -0,0 +1,65 @@
+<template>
+  <ProDialog title="绛剧害" v-model="visible" @close="onDialogClose" destroy-on-close draggable>
+    <ProForm :model="form" ref="dialogForm" label-width="100px">
+      <ProFormItemV2 label="璇烽�夋嫨妯℃澘:" prop="url" :check-rules="[{ message: '璇烽�夋嫨妯℃澘' }]">
+        <ProFormSelect v-model="form.url" :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;
+  url: UploadUserFile[];
+};
+
+const visible = defineModel({ type: Boolean });
+const form = defineModel<Form>('form');
+
+const emit = defineEmits<{
+  (e: 'onDownloadTemplate'): void;
+  (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