From a48be50fb38f21c6dd7ac8545c80d511783449ab Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 22 八月 2025 15:07:39 +0800
Subject: [PATCH] fix: 签约

---
 src/services/api/enterpriseEmployee.ts                          |   20 ++++++++++
 src/services/api/electronSign.ts                                |    2 -
 src/services/api/typings.d.ts                                   |   33 ++++++++++++++--
 src/views/ProtocolManage/components/AddOrEditTemplateDialog.vue |    9 ++++
 src/views/ProtocolManage/EditTemplate.vue                       |    2 +
 src/hooks/electronSign.ts                                       |   30 +++++++++++++-
 src/views/EnterpriseManage/EnterpriseManageList.vue             |    7 +++
 types/api.d.ts                                                  |    4 ++
 8 files changed, 96 insertions(+), 11 deletions(-)

diff --git a/src/hooks/electronSign.ts b/src/hooks/electronSign.ts
index e988868..8c737b3 100644
--- a/src/hooks/electronSign.ts
+++ b/src/hooks/electronSign.ts
@@ -1,19 +1,43 @@
 import { useQuery, useQueryClient } from '@tanstack/vue-query';
 import * as electronSignServices from '@/services/api/electronSign';
 
-export function useEnabledElectronSignSettings() {
+type UseEnabledElectronSignSettingsOptions = {
+  enterpriseId?: MaybeRef<string>;
+};
+
+export function useEnabledElectronSignSettings(
+  options: UseEnabledElectronSignSettingsOptions = {}
+) {
+  const { enterpriseId } = options;
+
+  const queryClient = useQueryClient();
+
   const { data } = useQuery({
-    queryKey: ['electronSignServices/getEnabledElectronSignSettings'],
+    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/services/api/electronSign.ts b/src/services/api/electronSign.ts
index 85afa6b..acd5124 100644
--- a/src/services/api/electronSign.ts
+++ b/src/services/api/electronSign.ts
@@ -77,8 +77,6 @@
       method: 'GET',
       params: {
         ...params,
-        request: undefined,
-        ...params['request'],
       },
       ...(options || {}),
     }
diff --git a/src/services/api/enterpriseEmployee.ts b/src/services/api/enterpriseEmployee.ts
index 9127494..b54b7c3 100644
--- a/src/services/api/enterpriseEmployee.ts
+++ b/src/services/api/enterpriseEmployee.ts
@@ -35,6 +35,26 @@
   );
 }
 
+/** 鏌ヨ涓汉鐢ㄦ埛绛剧害璇︽儏 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,
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 4e3e2ad..e629fd1 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -67,13 +67,18 @@
   }
 
   interface APIgetEnabledElectronSignSettingsParams {
-    /** 鏌ヨ宸插惎鐢ㄧ殑鐢靛瓙绛鹃厤缃� */
-    request?: GetEnabledElectronSignSettingsQuery;
+    /** 浼佷笟Id */
+    enterpriseId?: string;
   }
 
   interface APIgetEnterpriseElectronSignSettingParams {
     /** Id */
     id?: string;
+  }
+
+  interface APIgetEnterpriseEmployeeElectronSignParams {
+    /** 鏌ヨ涓汉鐢ㄦ埛绛剧害璇︽儏 */
+    request?: GetEnterpriseEmployeeElectronSignQuery;
   }
 
   interface APIgetEnterpriseEmployeeParams {
@@ -949,6 +954,24 @@
     /** 閿欒鐮� */
     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;
     /** 閿欒淇℃伅 */
@@ -2413,8 +2436,6 @@
     isDisabled?: boolean;
   }
 
-  type GetEnabledElectronSignSettingsQuery = Record<string, any>;
-
   interface GetEnabledElectronSignSettingsQueryResultItem {
     access?: EnumElectronSignAccess;
     /** 瀹炲悕璐圭敤 */
@@ -2502,6 +2523,10 @@
     electronSignAccesses?: EnumElectronSignAccess[];
   }
 
+  type GetEnterpriseEmployeeElectronSignQuery = Record<string, any>;
+
+  type GetEnterpriseEmployeeElectronSignQueryResult = Record<string, any>;
+
   interface GetEnterpriseEmployeeElectronSignsQuery {
     userSignContractStatus?: EnumTaskUserSignContractStatus;
     pageModel?: PagedListQueryPageModel;
diff --git a/src/views/EnterpriseManage/EnterpriseManageList.vue b/src/views/EnterpriseManage/EnterpriseManageList.vue
index e27c0cd..c708c86 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;
@@ -211,13 +213,16 @@
 //     return await flexEnterpriseServices.createOrEditFlexEnterpriseBankSetting(params);
 //   } catch (error) {}
 // }
+
 async function createOrEditFlexEnterpriseSignSetting() {
   try {
     let params: API.SetEnterpriseElectronSignSettingCommand = {
       id: editForm.id,
       electronSignAccesses: editForm.electronSignAccesses,
     };
-    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