From 3a6f47aae0ca4566a7f39c98c30bcc5545dd1216 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 21 八月 2025 09:58:32 +0800
Subject: [PATCH] feat: 实名

---
 packages/services/apiV2/ocrUtils.ts                                               |   43 +++
 apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue |   26 +
 packages/services/apiV2/index.ts                                                  |    4 
 packages/services/apiV2/electronSign.ts                                           |   99 +++++++++
 packages/services/apiV2/typings.d.ts                                              |  384 +++++++++++++++++++++++++++++++++-
 packages/constants/apiEnum.ts                                                     |   34 +++
 packages/hooks/identify.ts                                                        |   41 ++-
 7 files changed, 586 insertions(+), 45 deletions(-)

diff --git a/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue b/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue
index f1c3fe3..277373a 100644
--- a/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/authentication/authenticationRealName/InnerPage.vue
@@ -10,6 +10,7 @@
               :limitFileSize="10"
               class="bole-uploader nopaddingtop"
               @my-success="handleFrontImgUrlChange"
+              @delete="handleFrontImgUrlDelete"
             >
               <template #upload-icon>
                 <div class="photograph-wrapper">
@@ -99,6 +100,8 @@
 import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
 import { FormValidator } from '@12333/utils';
 import Taro from '@tarojs/taro';
+import { userCredentialVerifyOcrIDCard } from '@12333/hooks';
+import { EnumOcrAccess } from '@12333/constants';
 
 defineOptions({
   name: 'InnerPage',
@@ -150,16 +153,18 @@
 }
 
 function handleFrontImgUrlChange(response: FileItem) {
-  // userCredentialVerifyOcrIDCard(response, {
-  //   onSuccess(res) {
-  //     if (res.realName) form.legalPersonName = res.realName;
-  //     if (res.idcardNum) form.legalPersonIdNumber = res.idcardNum;
-  //   },
-  // });
+  userCredentialVerifyOcrIDCard({
+    response: response,
+    access: EnumOcrAccess.Baidu,
+    isOssUrl: true,
+    onSuccess(res) {
+      if (res.model?.name) form.name = res.model?.name;
+      if (res.model?.identity) form.identity = res.model?.identity;
+    },
+  });
 }
 
 function handleSubmit() {
-  console.log('type: ', type);
   if (!formRef.value) return;
   formRef.value.validate().then(({ valid, errors }: any) => {
     if (valid) {
@@ -209,6 +214,13 @@
     }
   } catch (error) {}
 }
+
+function handleFrontImgUrlDelete({ files, fileList, index }) {
+  if (fileList?.length === 0) {
+    form.name = '';
+    form.identity = '';
+  }
+}
 </script>
 
 <style lang="scss">
diff --git a/packages/constants/apiEnum.ts b/packages/constants/apiEnum.ts
index bd24f08..b91d90e 100644
--- a/packages/constants/apiEnum.ts
+++ b/packages/constants/apiEnum.ts
@@ -21,6 +21,32 @@
   Wxmp = 20,
 }
 
+/** 鍚堝悓鍒剁増鐘舵�� */
+export enum EnumContractTemplateStatus {
+  /**寰呭埗鐗� */
+  Wait = 10,
+  /**宸插畬鎴� */
+  Completed = 20,
+}
+
+/** 鍚堝悓妯℃澘鍙橀噺 */
+export enum EnumContractTemplateValueRecorder {
+  /**鍙戜欢浜� */
+  Creator = 10,
+  /**绛剧讲浜� */
+  Signer = 20,
+}
+
+/** 鍚堝悓妯℃澘鍙橀噺绫诲瀷 */
+export enum EnumContractTemplateValueType {
+  /**鏂囨湰 */
+  Text = 10,
+  /**绛剧讲 */
+  Sign = 20,
+  /**鏃ユ湡 */
+  Date = 30,
+}
+
 /** 鏁版嵁鏉ユ簮 */
 export enum EnumDataSource {
   /**818 */
@@ -37,6 +63,14 @@
   Deleted = 30,
 }
 
+/** 鐢靛瓙绛� */
+export enum EnumElectronSignAccess {
+  /**涓婁笂绛� */
+  BestSign = 10,
+  /**鏀粯瀹濅俊浠荤 */
+  AlipaySign = 20,
+}
+
 /** 浼佷笟瀹炲悕鏂瑰紡 */
 export enum EnumEnterpriseRealMethod {
   /**浼佷笟涓夎绱� */
diff --git a/packages/hooks/identify.ts b/packages/hooks/identify.ts
index a96f9d4..230cb63 100644
--- a/packages/hooks/identify.ts
+++ b/packages/hooks/identify.ts
@@ -1,4 +1,6 @@
+import { EnumOcrAccess } from '@12333/constants';
 import * as accountServices from '@12333/services/api/Account';
+import * as ocrUtilsServices from '@12333/services/apiV2/ocrUtils';
 import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type';
 import _ from 'lodash';
 
@@ -23,21 +25,26 @@
   } catch (error) {}
 }
 
-// type UserCredentialVerifyOcrIDCardOptions = {
-//   onSuccess?: (res: API.UserCredentialVerifyOcrIDCardResponse) => any;
-// };
+type UserCredentialVerifyOcrIDCardOptions = {
+  access?: EnumOcrAccess;
+  scene?: string;
+  isOssUrl?: boolean;
+  response?: FileItem;
+  onSuccess?: (res: API.GetIdentityFrontOcrCommandResult) => any;
+};
 
-// export async function userCredentialVerifyOcrIDCard(
-//   response: FileItem,
-//   options: UserCredentialVerifyOcrIDCardOptions = {}
-// ) {
-//   try {
-//     if (response?.url) {
-//       const { onSuccess } = options;
-//       let res = await commonServices.userCredentialVerifyOcrIDCard({
-//         identityImageUrl: response.url,
-//       });
-//       onSuccess?.(res);
-//     }
-//   } catch (error) {}
-// }
+export async function userCredentialVerifyOcrIDCard(
+  options: UserCredentialVerifyOcrIDCardOptions = {}
+) {
+  try {
+    const { onSuccess, access, isOssUrl, response, scene } = options;
+    if (response?.path) {
+      let res = await ocrUtilsServices.getIdentityFrontOcr({
+        access: access,
+        url: response.path,
+        isOssUrl: isOssUrl,
+      });
+      onSuccess?.(res);
+    }
+  } catch (error) {}
+}
diff --git a/packages/services/apiV2/electronSign.ts b/packages/services/apiV2/electronSign.ts
index 77c1101..b649bcb 100644
--- a/packages/services/apiV2/electronSign.ts
+++ b/packages/services/apiV2/electronSign.ts
@@ -17,6 +17,75 @@
   });
 }
 
+/** 鏌ヨ鍚堝悓妯℃澘璇︽儏 GET /api/user/electronSign/getContractTemplate */
+export async function getContractTemplate(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetContractTemplateParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetContractTemplateQueryResult>('/api/user/electronSign/getContractTemplate', {
+    method: 'GET',
+    params: {
+      ...params,
+    },
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ杩愯惀绔崗璁鐞嗗垎椤靛垪琛ㄦ暟鎹� POST /api/user/electronSign/getContractTemplateEnterprises */
+export async function getContractTemplateEnterprises(
+  body: API.GetContractTemplateEnterprisesQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetContractTemplateEnterprisesQueryResult>(
+    '/api/user/electronSign/getContractTemplateEnterprises',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏌ヨ浼佷笟鍚堝悓妯℃澘鏃ュ織鍒嗛〉鍒楄〃鏁版嵁 POST /api/user/electronSign/getEnterpriseContractTemplateLogs */
+export async function getEnterpriseContractTemplateLogs(
+  body: API.GetEnterpriseContractTemplateLogsQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetEnterpriseContractTemplateLogsQueryResult>(
+    '/api/user/electronSign/getEnterpriseContractTemplateLogs',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏌ヨ浼佷笟鍚堝悓妯℃澘鍒嗛〉鍒楄〃鏁版嵁 POST /api/user/electronSign/getEnterpriseContractTemplates */
+export async function getEnterpriseContractTemplates(
+  body: API.GetEnterpriseContractTemplatesQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetEnterpriseContractTemplatesQueryResult>(
+    '/api/user/electronSign/getEnterpriseContractTemplates',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
 /** 涓汉浜鸿劯瀹炲悕璁よ瘉 POST /api/user/electronSign/personalUserFaceReal */
 export async function personalUserFaceReal(
   body: API.PersonalUserFaceRealCommand,
@@ -47,6 +116,21 @@
   });
 }
 
+/** 淇濆瓨鍚堝悓妯℃澘 POST /api/user/electronSign/saveContractTemplate */
+export async function saveContractTemplate(
+  body: API.SaveContractTemplateCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/user/electronSign/saveContractTemplate', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 鍙戦�佷釜浜轰笁瑕佺礌瀹炲悕鐭俊 POST /api/user/electronSign/sendPersonalUserIdentity3RealSms */
 export async function sendPersonalUserIdentity3RealSms(
   body: API.SendPersonalUserIdentity3RealSmsCommand,
@@ -61,3 +145,18 @@
     ...(options || {}),
   });
 }
+
+/** 绂佺敤鍚堝悓妯℃澘 PUT /api/user/electronSign/setIsDisabledContractTemplate */
+export async function setIsDisabledContractTemplate(
+  body: API.SetIsDisabledContractTemplateCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/user/electronSign/setIsDisabledContractTemplate', {
+    method: 'PUT',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
diff --git a/packages/services/apiV2/index.ts b/packages/services/apiV2/index.ts
index 39390a8..2145001 100644
--- a/packages/services/apiV2/index.ts
+++ b/packages/services/apiV2/index.ts
@@ -8,13 +8,13 @@
 import * as enterprise from './enterprise';
 import * as resource from './resource';
 import * as task from './task';
-import * as ocrUtils from './ocrUtils';
 import * as dictionary from './dictionary';
 import * as userResume from './userResume';
 import * as auth from './auth';
 import * as taskCheckReceive from './taskCheckReceive';
 import * as electronSign from './electronSign';
 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';
@@ -25,13 +25,13 @@
   enterprise,
   resource,
   task,
-  ocrUtils,
   dictionary,
   userResume,
   auth,
   taskCheckReceive,
   electronSign,
   taskUser,
+  ocrUtils,
   menu,
   logRecords,
   fileUtils,
diff --git a/packages/services/apiV2/ocrUtils.ts b/packages/services/apiV2/ocrUtils.ts
index 4601bae..75d1669 100644
--- a/packages/services/apiV2/ocrUtils.ts
+++ b/packages/services/apiV2/ocrUtils.ts
@@ -2,17 +2,44 @@
 // @ts-ignore
 import { request } from '@/utils/request';
 
-/** 鏂囧瓧璇嗗埆钀ヤ笟鎵х収 GET /api/common/ocrUtils/getLicenseOcr */
-export async function getLicenseOcr(
-  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
-  params: API.APIgetLicenseOcrParams,
+/** 鏂囧瓧璇嗗埆韬唤璇佽儗闈� POST /api/common/ocrUtils/getIdentityBackOcr */
+export async function getIdentityBackOcr(
+  body: API.GetIdentityBackOcrCommand,
   options?: API.RequestConfig
 ) {
-  return request<API.GetLicenseOcrCommandResult>('/api/common/ocrUtils/getLicenseOcr', {
-    method: 'GET',
-    params: {
-      ...params,
+  return request<API.GetIdentityBackOcrCommandResult>('/api/common/ocrUtils/getIdentityBackOcr', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
     },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏂囧瓧璇嗗埆韬唤璇佹闈� POST /api/common/ocrUtils/getIdentityFrontOcr */
+export async function getIdentityFrontOcr(
+  body: API.GetIdentityFrontOcrCommand,
+  options?: API.RequestConfig
+) {
+  return request<API.GetIdentityFrontOcrCommandResult>('/api/common/ocrUtils/getIdentityFrontOcr', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏂囧瓧璇嗗埆钀ヤ笟鎵х収 POST /api/common/ocrUtils/getLicenseOcr */
+export async function getLicenseOcr(body: API.GetLicenseOcrCommand, options?: API.RequestConfig) {
+  return request<API.GetLicenseOcrCommandResult>('/api/common/ocrUtils/getLicenseOcr', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
     ...(options || {}),
   });
 }
diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts
index 584f731..31ee0fb 100644
--- a/packages/services/apiV2/typings.d.ts
+++ b/packages/services/apiV2/typings.d.ts
@@ -29,6 +29,11 @@
     date?: string;
   }
 
+  interface APIgetContractTemplateParams {
+    /** 妯℃澘Id */
+    id?: string;
+  }
+
   interface APIgetCurrentLogierMenuParams {
     /** Id */
     id?: string;
@@ -91,17 +96,6 @@
   interface APIgetFileUrlParams {
     /** 鍦板潃 */
     url?: string;
-  }
-
-  interface APIgetLicenseOcrParams {
-    /** 閫氶亾 */
-    access?: EnumOcrAccess;
-    /** 鍦烘櫙 */
-    scene?: string;
-    /** 閾炬帴鍦板潃 */
-    url?: string;
-    /** 鏄惁涓轰簯瀛樺偍鐩稿鍦板潃 */
-    isOssUrl?: boolean;
   }
 
   interface APIgetMenuParams {
@@ -239,6 +233,28 @@
     mainBusiness?: string;
   }
 
+  interface BaiduOcrIdentityBackResultModel {
+    /** 澶辨晥鏃ユ湡 */
+    expiryDate?: string;
+    /** 绛惧彂鏈哄叧 */
+    issueAuthority?: string;
+    /** 绛惧彂鏃ユ湡 */
+    issueDate?: string;
+  }
+
+  interface BaiduOcrIdentityFrontResultModel {
+    name?: string;
+    /** 韬唤璇佸彿 */
+    identity?: string;
+    gender?: EnumUserGender;
+    /** 鐢熸棩 */
+    birthday?: string;
+    /** 姘戞棌 */
+    nation?: string;
+    /** 浣忓潃 */
+    address?: string;
+  }
+
   interface BindWxmpUserInfoCommand {
     /** 璁块棶浠ょ墝 */
     accessToken: string;
@@ -359,6 +375,29 @@
     Wxmp = 20,
   }
 
+  enum EnumContractTemplateStatus {
+    /**寰呭埗鐗� */
+    Wait = 10,
+    /**宸插畬鎴� */
+    Completed = 20,
+  }
+
+  enum EnumContractTemplateValueRecorder {
+    /**鍙戜欢浜� */
+    Creator = 10,
+    /**绛剧讲浜� */
+    Signer = 20,
+  }
+
+  enum EnumContractTemplateValueType {
+    /**鏂囨湰 */
+    Text = 10,
+    /**绛剧讲 */
+    Sign = 20,
+    /**鏃ユ湡 */
+    Date = 30,
+  }
+
   enum EnumDataSource {
     /**818 */
     HumanResources = 10,
@@ -371,6 +410,13 @@
     Modified = 20,
     /**鍒犻櫎 */
     Deleted = 30,
+  }
+
+  enum EnumElectronSignAccess {
+    /**涓婁笂绛� */
+    BestSign = 10,
+    /**鏀粯瀹濅俊浠荤 */
+    AlipaySign = 20,
   }
 
   enum EnumEnterpriseRealMethod {
@@ -775,6 +821,42 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultGetContractTemplateEnterprisesQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetContractTemplateEnterprisesQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetContractTemplateQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetContractTemplateQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultGetDbAuditLogsQueryResult {
     /** 璺熻釜Id */
     traceId?: string;
@@ -783,6 +865,42 @@
     /** 閿欒鐮� */
     errorCode?: string;
     data?: GetDbAuditLogsQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetEnterpriseContractTemplateLogsQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetEnterpriseContractTemplateLogsQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetEnterpriseContractTemplatesQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetEnterpriseContractTemplatesQueryResult;
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -909,6 +1027,42 @@
     /** 閿欒鐮� */
     errorCode?: string;
     data?: GetExceptionLogsQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetIdentityBackOcrCommandResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetIdentityBackOcrCommandResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetIdentityFrontOcrCommandResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetIdentityFrontOcrCommandResult;
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -1959,6 +2113,66 @@
     addressName?: string;
   }
 
+  interface GetContractTemplateEnterprisesQuery {
+    /** 鍏抽敭瀛� */
+    keywords?: string;
+    status?: EnumContractTemplateStatus;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetContractTemplateEnterprisesQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetContractTemplateEnterprisesQueryResultItem[];
+  }
+
+  interface GetContractTemplateEnterprisesQueryResultItem {
+    /** 浼佷笟Id */
+    id?: string;
+    /** 浼佷笟鍏ㄧО */
+    enterpriseName?: string;
+    /** 鑱旂郴浜� */
+    contacts?: string;
+    /** 鑱旂郴鐢佃瘽 */
+    contactPhoneNumber?: string;
+    /** 鍚堝悓鏁� */
+    total?: number;
+    /** 寰呭埗鐗� */
+    waitCount?: number;
+  }
+
+  interface GetContractTemplateQueryResult {
+    /** 妯℃澘Id */
+    id?: string;
+    /** 浼佷笟Id */
+    enterpriseId?: string;
+    /** 妯℃澘鍚嶇О */
+    name?: string;
+    /** 妯℃澘 */
+    file?: string;
+    /** 涓氬姟缂栫爜 */
+    code?: string;
+    access?: EnumElectronSignAccess;
+    /** 妯℃澘Id */
+    templateId?: string;
+    /** 鍙橀噺 */
+    values?: GetContractTemplateQueryResultValue[];
+  }
+
+  interface GetContractTemplateQueryResultValue {
+    /** 鍙橀噺Id */
+    id?: string;
+    type?: EnumContractTemplateValueType;
+    recorder?: EnumContractTemplateValueRecorder;
+    userType?: EnumUserType;
+    /** 鍙橀噺鍚嶇О */
+    label?: string;
+    /** 鍙橀噺浠g爜 */
+    name?: string;
+    /** 鏄惁蹇呭~ */
+    required?: boolean;
+  }
+
   type GetCurrentLogierMenusQuery = Record<string, any>;
 
   interface GetDbAuditLogsQuery {
@@ -2102,6 +2316,74 @@
     sort?: number;
     /** 鏄惁绂佺敤 */
     isDisabled?: boolean;
+  }
+
+  interface GetEnterpriseContractTemplateLogsQuery {
+    /** 妯℃澘Id */
+    id?: string;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetEnterpriseContractTemplateLogsQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetEnterpriseContractTemplateLogsQueryResultItem[];
+  }
+
+  interface GetEnterpriseContractTemplateLogsQueryResultItem {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鎿嶄綔浜� */
+    createdUser?: string;
+    /** 鎿嶄綔鏃堕棿 */
+    createdTime?: string;
+    operate?: EnumDbAuditOperate;
+    /** 鎿嶄綔鍐呭 */
+    content?: string[];
+  }
+
+  interface GetEnterpriseContractTemplatesQuery {
+    /** 浼佷笟Id */
+    enterpriseId?: string;
+    /** 鍏抽敭瀛� */
+    keywords?: string;
+    status?: EnumContractTemplateStatus;
+    /** 瀹㈡埛涓婁紶鏃堕棿-璧峰 */
+    createdTimeBegin?: string;
+    /** 瀹㈡埛涓婁紶鏃堕棿-鎴 */
+    createdTimeEnd?: string;
+    /** 鍒剁増鏃堕棿-璧峰 */
+    completedTimeBegin?: string;
+    /** 鍒剁増鏃堕棿-鎴 */
+    completedTimeEnd?: string;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetEnterpriseContractTemplatesQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetEnterpriseContractTemplatesQueryResultItem[];
+  }
+
+  interface GetEnterpriseContractTemplatesQueryResultItem {
+    /** 妯℃澘Id */
+    id?: string;
+    /** 妯℃澘鍚嶇О */
+    name?: string;
+    /** 瀹㈡埛涓婁紶鏃堕棿 */
+    createdTime?: string;
+    /** 妯℃澘Id */
+    templateId?: string;
+    access?: EnumElectronSignAccess;
+    /** 涓氬姟缂栫爜 */
+    code?: string;
+    /** 妯℃澘 */
+    file?: string;
+    status?: EnumContractTemplateStatus;
+    /** 鍒剁増鏃堕棿 */
+    completedTime?: string;
+    /** 鎿嶄綔浜� */
+    operator?: string;
   }
 
   interface GetEnterpriseElectronSignSettingQueryResult {
@@ -2345,6 +2627,48 @@
     createdUser?: GetResourceLogsQueryResultItemCreatedUser;
     /** 鍒涘缓鏃堕棿 */
     createdTime?: string;
+  }
+
+  interface GetIdentityBackOcrCommand {
+    access?: EnumOcrAccess;
+    /** 鍦烘櫙 */
+    scene?: string;
+    /** 閾炬帴鍦板潃 */
+    url?: string;
+    /** 鏄惁涓轰簯瀛樺偍鐩稿鍦板潃 */
+    isOssUrl?: boolean;
+  }
+
+  interface GetIdentityBackOcrCommandResult {
+    /** 鍦板潃 */
+    url?: string;
+    model?: BaiduOcrIdentityBackResultModel;
+  }
+
+  interface GetIdentityFrontOcrCommand {
+    access?: EnumOcrAccess;
+    /** 鍦烘櫙 */
+    scene?: string;
+    /** 閾炬帴鍦板潃 */
+    url?: string;
+    /** 鏄惁涓轰簯瀛樺偍鐩稿鍦板潃 */
+    isOssUrl?: boolean;
+  }
+
+  interface GetIdentityFrontOcrCommandResult {
+    /** 鍦板潃 */
+    url?: string;
+    model?: BaiduOcrIdentityFrontResultModel;
+  }
+
+  interface GetLicenseOcrCommand {
+    access?: EnumOcrAccess;
+    /** 鍦烘櫙 */
+    scene?: string;
+    /** 閾炬帴鍦板潃 */
+    url?: string;
+    /** 鏄惁涓轰簯瀛樺偍鐩稿鍦板潃 */
+    isOssUrl?: boolean;
   }
 
   interface GetLicenseOcrCommandResult {
@@ -3608,6 +3932,38 @@
     id?: string;
   }
 
+  interface SaveContractTemplateCommand {
+    /** 浼佷笟Id锛堣繍钀ョ淇濆瓨鏃讹級 */
+    enterpriseId?: string;
+    /** 妯℃澘鍚嶇О */
+    name: string;
+    /** 妯℃澘 */
+    file: string;
+    /** 涓氬姟缂栫爜 */
+    code?: string;
+    access?: EnumElectronSignAccess;
+    /** 妯℃澘Id */
+    templateId?: string;
+    /** 鍙橀噺 */
+    values?: SaveContractTemplateCommandValue[];
+    /** Id */
+    id?: string;
+  }
+
+  interface SaveContractTemplateCommandValue {
+    /** Id */
+    id?: string;
+    type?: EnumContractTemplateValueType;
+    recorder?: EnumContractTemplateValueRecorder;
+    userType?: EnumUserType;
+    /** 鍙橀噺鍚嶇О */
+    label?: string;
+    /** 鍙橀噺浠g爜 */
+    name?: string;
+    /** 鏄惁蹇呭~ */
+    required?: boolean;
+  }
+
   interface SaveDictionaryCategoryCommand {
     /** 缂栧彿 */
     code: string;
@@ -3975,6 +4331,12 @@
     smsCost?: number;
   }
 
+  interface SetIsDisabledContractTemplateCommand {
+    ids?: string[];
+    /** 鏄惁宸茬鐢� */
+    isDisabled?: boolean;
+  }
+
   interface SetMenuSwitchCommand {
     /** Id */
     ids?: string[];

--
Gitblit v1.9.1