From ecaa5e0af0a087f256d497f7b7656f2900342226 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 22 八月 2025 15:10:53 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobAdmin

---
 src/services/api/enterpriseEmployee.ts                          |   38 +++++++++
 .eslintrc-auto-import.json                                      |    1 
 src/services/api/electronSign.ts                                |   18 ++++
 src/services/api/typings.d.ts                                   |  102 +++++++++++++++++++++++++
 src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue |    9 ++
 src/views/ProtocolManage/EditTemplate.vue                       |    2 
 auto-imports.d.ts                                               |    3 
 src/constants/apiEnum.ts                                        |    4 +
 src/hooks/electronSign.ts                                       |   43 ++++++++++
 src/hooks/index.ts                                              |    1 
 src/views/EnterpriseManage/EnterpriseManageList.vue             |    7 +
 types/api.d.ts                                                  |    4 +
 12 files changed, 230 insertions(+), 2 deletions(-)

diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json
index 4dc8632..4646e5b 100644
--- a/.eslintrc-auto-import.json
+++ b/.eslintrc-auto-import.json
@@ -221,6 +221,7 @@
     "useCssModule": true,
     "useCssVars": true,
     "useDictionaryDataSelect": true,
+    "useEnabledElectronSignSettings": true,
     "useGetDictionaryCategorySelect": true,
     "useGlobalEventContext": true,
     "useGlobalEventProvide": true,
diff --git a/auto-imports.d.ts b/auto-imports.d.ts
index 17e4ef2..b902105 100644
--- a/auto-imports.d.ts
+++ b/auto-imports.d.ts
@@ -222,6 +222,7 @@
   const toValue: typeof import('vue')['toValue']
   const triggerRef: typeof import('vue')['triggerRef']
   const unref: typeof import('vue')['unref']
+  const useAA: typeof import('./src/hooks/electronSign')['useAA']
   const useAccess: typeof import('./src/hooks/useAccess')['useAccess']
   const useAllAreaList: typeof import('./src/hooks/dic')['useAllAreaList']
   const useAllRoleList: typeof import('./src/hooks/useUser')['useAllRoleList']
@@ -233,6 +234,7 @@
   const useCssModule: typeof import('vue')['useCssModule']
   const useCssVars: typeof import('vue')['useCssVars']
   const useDictionaryDataSelect: typeof import('./src/hooks/dic')['useDictionaryDataSelect']
+  const useEnabledElectronSignSettings: typeof import('./src/hooks/electronSign')['useEnabledElectronSignSettings']
   const useGetDictionaryCategorySelect: typeof import('./src/hooks/dic')['useGetDictionaryCategorySelect']
   const useGlobalEventContext: typeof import('./src/hooks/useEvent')['useGlobalEventContext']
   const useGlobalEventProvide: typeof import('./src/hooks/useEvent')['useGlobalEventProvide']
@@ -511,6 +513,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 useEnabledElectronSignSettings: UnwrapRef<typeof import('./src/hooks/electronSign')['useEnabledElectronSignSettings']>
     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/electronSign.ts b/src/hooks/electronSign.ts
new file mode 100644
index 0000000..8c737b3
--- /dev/null
+++ b/src/hooks/electronSign.ts
@@ -0,0 +1,43 @@
+import { useQuery, useQueryClient } from '@tanstack/vue-query';
+import * as electronSignServices from '@/services/api/electronSign';
+
+type UseEnabledElectronSignSettingsOptions = {
+  enterpriseId?: MaybeRef<string>;
+};
+
+export function useEnabledElectronSignSettings(
+  options: UseEnabledElectronSignSettingsOptions = {}
+) {
+  const { enterpriseId } = options;
+
+  const queryClient = useQueryClient();
+
+  const { data } = useQuery({
+    queryKey: ['electronSignServices/getEnabledElectronSignSettings', enterpriseId],
+    queryFn: async () => {
+      let res = await electronSignServices.getEnabledElectronSignSettings(
+        { enterpriseId: unref(enterpriseId) },
+        { showLoading: false }
+      );
+      return res;
+    },
+    select(data) {
+      return data.map((x) => ({
+        ...x,
+        accessName: EnumElectronSignAccessText[x.access],
+      }));
+    },
+    placeholderData: () => [] as API.GetEnabledElectronSignSettingsQueryResultItem[],
+  });
+
+  function invalidateQueries() {
+    return queryClient.invalidateQueries({
+      queryKey: ['electronSignServices/getEnabledElectronSignSettings', enterpriseId],
+    });
+  }
+
+  return {
+    enabledElectronSignSettings: data,
+    invalidateQueries,
+  };
+}
diff --git a/src/hooks/index.ts b/src/hooks/index.ts
index b4cd58c..90173c1 100644
--- a/src/hooks/index.ts
+++ b/src/hooks/index.ts
@@ -9,3 +9,4 @@
 export * from './dic';
 export * from './menu';
 export * from './portraitTable';
+export * from './electronSign';
diff --git a/src/services/api/electronSign.ts b/src/services/api/electronSign.ts
index cfc6b4c..acd5124 100644
--- a/src/services/api/electronSign.ts
+++ b/src/services/api/electronSign.ts
@@ -65,6 +65,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,
diff --git a/src/services/api/enterpriseEmployee.ts b/src/services/api/enterpriseEmployee.ts
index dfe7822..b54b7c3 100644
--- a/src/services/api/enterpriseEmployee.ts
+++ b/src/services/api/enterpriseEmployee.ts
@@ -35,6 +35,44 @@
   );
 }
 
+/** 鏌ヨ涓汉鐢ㄦ埛绛剧害璇︽儏 GET /api/user/enterpriseEmployee/getEnterpriseEmployeeElectronSign */
+export async function getEnterpriseEmployeeElectronSign(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetEnterpriseEmployeeElectronSignParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetEnterpriseEmployeeElectronSignQueryResult>(
+    '/api/user/enterpriseEmployee/getEnterpriseEmployeeElectronSign',
+    {
+      method: 'GET',
+      params: {
+        ...params,
+        request: undefined,
+        ...params['request'],
+      },
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏌ヨ涓汉鐢ㄦ埛绛剧害鍒楄〃 POST /api/user/enterpriseEmployee/getEnterpriseEmployeeElectronSigns */
+export async function getEnterpriseEmployeeElectronSigns(
+  body: API.GetEnterpriseEmployeeElectronSignsQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetEnterpriseEmployeeElectronSignsQueryResult>(
+    '/api/user/enterpriseEmployee/getEnterpriseEmployeeElectronSigns',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
 /** 鏌ヨ鐏靛伐鍒嗛〉鍒楄〃鏁版嵁 POST /api/user/enterpriseEmployee/getEnterpriseEmployees */
 export async function getEnterpriseEmployees(
   body: API.GetEnterpriseEmployeesQuery,
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 68dbba3..e629fd1 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -66,9 +66,19 @@
     withChildren?: boolean;
   }
 
+  interface APIgetEnabledElectronSignSettingsParams {
+    /** 浼佷笟Id */
+    enterpriseId?: string;
+  }
+
   interface APIgetEnterpriseElectronSignSettingParams {
     /** Id */
     id?: string;
+  }
+
+  interface APIgetEnterpriseEmployeeElectronSignParams {
+    /** 鏌ヨ涓汉鐢ㄦ埛绛剧害璇︽儏 */
+    request?: GetEnterpriseEmployeeElectronSignQuery;
   }
 
   interface APIgetEnterpriseEmployeeParams {
@@ -665,6 +675,10 @@
     Pass = 20,
     /**宸叉嫆绛� */
     Refuse = 30,
+    /**鐢熸晥涓� */
+    Effect = 40,
+    /**宸茬粓姝� */
+    Stop = 50,
   }
 
   enum EnumTaskUserSubmitCheckReceiveStatus {
@@ -940,6 +954,42 @@
     /** 閿欒鐮� */
     errorCode?: string;
     data?: GetEnterpriseElectronSignSettingQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetEnterpriseEmployeeElectronSignQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetEnterpriseEmployeeElectronSignQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetEnterpriseEmployeeElectronSignsQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetEnterpriseEmployeeElectronSignsQueryResult;
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -1591,6 +1641,25 @@
     errorCode?: string;
     /** 鏁版嵁 */
     data?: GetAreaSelectQueryResultOption[];
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultListGetEnabledElectronSignSettingsQueryResultItem {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    /** 鏁版嵁 */
+    data?: GetEnabledElectronSignSettingsQueryResultItem[];
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -2367,6 +2436,16 @@
     isDisabled?: boolean;
   }
 
+  interface GetEnabledElectronSignSettingsQueryResultItem {
+    access?: EnumElectronSignAccess;
+    /** 瀹炲悕璐圭敤 */
+    realVerifyCost?: number;
+    /** 绛剧害璐圭敤 */
+    signCost?: number;
+    /** 涓�鍙d环 */
+    mergeSignCost?: number;
+  }
+
   interface GetEnterpriseContractTemplateLogsQuery {
     /** 妯℃澘Id */
     id?: string;
@@ -2444,6 +2523,29 @@
     electronSignAccesses?: EnumElectronSignAccess[];
   }
 
+  type GetEnterpriseEmployeeElectronSignQuery = Record<string, any>;
+
+  type GetEnterpriseEmployeeElectronSignQueryResult = Record<string, any>;
+
+  interface GetEnterpriseEmployeeElectronSignsQuery {
+    userSignContractStatus?: EnumTaskUserSignContractStatus;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetEnterpriseEmployeeElectronSignsQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetEnterpriseEmployeeElectronSignsQueryResultItem[];
+  }
+
+  interface GetEnterpriseEmployeeElectronSignsQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 浼佷笟鍏ㄧО */
+    enterpriseName?: string;
+    userSignContractStatus?: EnumTaskUserSignContractStatus;
+  }
+
   interface GetEnterpriseEmployeeQueryResult {
     /** 鐏靛伐Id */
     id?: string;
diff --git a/src/views/EnterpriseManage/EnterpriseManageList.vue b/src/views/EnterpriseManage/EnterpriseManageList.vue
index dc5a167..4bbf424 100644
--- a/src/views/EnterpriseManage/EnterpriseManageList.vue
+++ b/src/views/EnterpriseManage/EnterpriseManageList.vue
@@ -91,6 +91,8 @@
 
 const state = reactive({ ...BaseState });
 
+const { invalidateQueries } = useEnabledElectronSignSettings();
+
 onMounted(async () => {
   await getList();
   state.loading = false;
@@ -219,13 +221,16 @@
 //     return await flexEnterpriseServices.createOrEditFlexEnterpriseBankSetting(params);
 //   } catch (error) {}
 // }
+
 async function createOrEditFlexEnterpriseSignSetting() {
   try {
     let params: API.SetEnterpriseElectronSignSettingCommand = {
       id: editForm.id,
       electronSignAccesses: editForm.electronSignAccesses.filter(Boolean),
     };
-    return await enterpriseServices.setEnterpriseElectronSignSetting(params);
+    let res = await enterpriseServices.setEnterpriseElectronSignSetting(params);
+    invalidateQueries();
+    return res;
   } catch (error) {}
 }
 async function createOrEditFlexEnterpriseMessageSetting() {
diff --git a/src/views/ProtocolManage/EditTemplate.vue b/src/views/ProtocolManage/EditTemplate.vue
index c0c486a..833779c 100644
--- a/src/views/ProtocolManage/EditTemplate.vue
+++ b/src/views/ProtocolManage/EditTemplate.vue
@@ -197,6 +197,7 @@
     title: '鏂板妯℃澘',
     isEnterpriseUserCreated: false,
     templateEditData: '',
+    enterpriseId: '',
   },
 });
 
@@ -213,6 +214,7 @@
         access: row.access,
         isEnterpriseUserCreated: detail.isEnterpriseUserCreated,
         templateEditData: detail.templateEditData,
+        enterpriseId: enterpriseId,
       });
     } else {
       handleAdd();
diff --git a/src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue b/src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue
index 98db559..e4aa05c 100644
--- a/src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue
+++ b/src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue
@@ -22,7 +22,9 @@
         <ProFormSelect
           placeholder="璇烽�夋嫨鐢靛瓙绛鹃�氶亾"
           v-model="form.access"
-          :value-enum="EnumElectronSignAccessText"
+          :value-enum="enabledElectronSignSettings"
+          enum-value-key="access"
+          enum-label-key="accessName"
         ></ProFormSelect>
       </ProFormItemV2>
       <ProFormItemV2 label="涓氬姟缂栫爜锛�" prop="code" :check-rules="[{ message: '璇疯緭鍏ヤ笟鍔$紪鐮�' }]">
@@ -91,6 +93,7 @@
   file: UploadUserFile[];
   access: EnumElectronSignAccess;
   isEnterpriseUserCreated: boolean;
+  enterpriseId: string;
 };
 
 const form = defineModel<Form>('form');
@@ -100,6 +103,10 @@
   (e: 'onCancel'): void;
 }>();
 
+const { enabledElectronSignSettings } = useEnabledElectronSignSettings({
+  enterpriseId: computed(() => form.value.enterpriseId),
+});
+
 const dialogForm = ref<FormInstance>();
 
 function onDialogClose() {
diff --git a/types/api.d.ts b/types/api.d.ts
index c70a034..6f5bc26 100644
--- a/types/api.d.ts
+++ b/types/api.d.ts
@@ -43,4 +43,8 @@
     quickQuery?: string
   }
 
+  interface GetEnabledElectronSignSettingsQueryResultItem{
+    accessName?: string;
+  }
+
 }

--
Gitblit v1.9.1