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