From d3d8fde64c4df263fd696f1599cb79fe9efb7623 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期五, 29 八月 2025 15:22:20 +0800 Subject: [PATCH] feat: 签约 --- src/views/FlexJobManage/FlexJobManage.vue | 60 +++++++++--- src/services/api/enterpriseEmployee.ts | 51 ++++++++++ src/views/EmploymentManage/components/CheckManageDialog.vue | 3 .eslintrc-auto-import.json | 3 src/services/api/typings.d.ts | 99 +++++++++++++++++++ src/views/FlexJobManage/components/SignDialog.vue | 14 ++ auto-imports.d.ts | 8 + src/constants/enterpriseEmployee.ts | 8 + src/constants/apiEnum.ts | 18 +++ src/services/api/enterprise.ts | 15 +++ 10 files changed, 254 insertions(+), 25 deletions(-) diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json index 56c5c68..649d418 100644 --- a/.eslintrc-auto-import.json +++ b/.eslintrc-auto-import.json @@ -26,6 +26,8 @@ "EnumDataSource": true, "EnumDbAuditOperate": true, "EnumElectronSignAccess": true, + "EnumEnterpriseCostStatus": true, + "EnumEnterpriseCostType": true, "EnumEnterpriseRealMethod": true, "EnumMenuType": true, "EnumMenuVisitLevel": true, @@ -61,6 +63,7 @@ "EnumTaskUserHireStatusText": true, "EnumTaskUserSignContractStatus": true, "EnumTaskUserSignContractStatusText": true, + "EnumTaskUserSignContractStatusTextForFilter": true, "EnumTaskUserSubmitCheckReceiveStatus": true, "EnumTaskUserSubmitCheckReceiveStatusText": true, "EnumUserGender": true, diff --git a/auto-imports.d.ts b/auto-imports.d.ts index 2e68bff..50dfe20 100644 --- a/auto-imports.d.ts +++ b/auto-imports.d.ts @@ -30,6 +30,8 @@ const EnumDataSource: typeof import('./src/constants/apiEnum')['EnumDataSource'] const EnumDbAuditOperate: typeof import('./src/constants/apiEnum')['EnumDbAuditOperate'] const EnumElectronSignAccess: typeof import('./src/constants/apiEnum')['EnumElectronSignAccess'] + const EnumEnterpriseCostStatus: typeof import('./src/constants/apiEnum')['EnumEnterpriseCostStatus'] + const EnumEnterpriseCostType: typeof import('./src/constants/apiEnum')['EnumEnterpriseCostType'] const EnumEnterpriseRealMethod: typeof import('./src/constants/apiEnum')['EnumEnterpriseRealMethod'] const EnumMenuType: typeof import('./src/constants/apiEnum')['EnumMenuType'] const EnumMenuVisitLevel: typeof import('./src/constants/apiEnum')['EnumMenuVisitLevel'] @@ -66,6 +68,7 @@ const EnumTaskUserHireStatusText: typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserHireStatusText'] const EnumTaskUserSignContractStatus: typeof import('./src/constants/apiEnum')['EnumTaskUserSignContractStatus'] const EnumTaskUserSignContractStatusText: typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserSignContractStatusText'] + const EnumTaskUserSignContractStatusTextForFilter: typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserSignContractStatusTextForFilter'] const EnumTaskUserSubmitCheckReceiveStatus: typeof import('./src/constants/apiEnum')['EnumTaskUserSubmitCheckReceiveStatus'] const EnumTaskUserSubmitCheckReceiveStatusText: typeof import('./src/constants/task')['EnumTaskUserSubmitCheckReceiveStatusText'] const EnumUserGender: typeof import('./src/constants/apiEnum')['EnumUserGender'] @@ -223,7 +226,7 @@ export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue' import('vue') // @ts-ignore - export type { EnumBillingMethod, EnumClientType, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseRealMethod, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, EnumBillingMethod, EnumClientType, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseRealMethod, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton } from './src/constants/apiEnum' + export type { EnumBillingMethod, EnumClientType, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, EnumBillingMethod, EnumClientType, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton } from './src/constants/apiEnum' import('./src/constants/apiEnum') // @ts-ignore export type { CategoryCode, IdentityCodeEnum, EducationCodeEnum, CertificateTypeCodeEnum, WelfareCodeEnum } from './src/constants/dic' @@ -278,6 +281,8 @@ readonly EnumDataSource: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumDataSource']> readonly EnumDbAuditOperate: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumDbAuditOperate']> readonly EnumElectronSignAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumElectronSignAccess']> + readonly EnumEnterpriseCostStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCostStatus']> + readonly EnumEnterpriseCostType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCostType']> readonly EnumEnterpriseRealMethod: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseRealMethod']> readonly EnumMenuType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumMenuType']> readonly EnumMenuVisitLevel: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumMenuVisitLevel']> @@ -313,6 +318,7 @@ readonly EnumTaskUserHireStatusText: UnwrapRef<typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserHireStatusText']> readonly EnumTaskUserSignContractStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskUserSignContractStatus']> readonly EnumTaskUserSignContractStatusText: UnwrapRef<typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserSignContractStatusText']> + readonly EnumTaskUserSignContractStatusTextForFilter: UnwrapRef<typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserSignContractStatusTextForFilter']> readonly EnumTaskUserSubmitCheckReceiveStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskUserSubmitCheckReceiveStatus']> readonly EnumTaskUserSubmitCheckReceiveStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskUserSubmitCheckReceiveStatusText']> readonly EnumUserGender: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserGender']> diff --git a/src/constants/apiEnum.ts b/src/constants/apiEnum.ts index bd799b6..e4382ec 100644 --- a/src/constants/apiEnum.ts +++ b/src/constants/apiEnum.ts @@ -71,6 +71,22 @@ AlipaySign = 20, } +/** 浼佷笟鐢ㄩ噺鎵h垂鐘舵�� */ +export enum EnumEnterpriseCostStatus { + /**鎵h垂鎴愬姛 */ + Success = 10, + /**鎵h垂澶辫触 */ + Fail = 20, +} + +/** 浼佷笟鐢ㄩ噺绫诲瀷 */ +export enum EnumEnterpriseCostType { + /**鐭俊 */ + SMS = 10, + /**鐢靛瓙绛� */ + ElectronSign = 20, +} + /** 浼佷笟瀹炲悕鏂瑰紡 */ export enum EnumEnterpriseRealMethod { /**浼佷笟涓夎绱� */ @@ -331,8 +347,6 @@ Pass = 20, /**宸叉嫆绛� */ Refuse = 30, - /**鐢熸晥涓� */ - Effect = 40, /**宸茬粓姝� */ Stop = 50, } diff --git a/src/constants/enterpriseEmployee.ts b/src/constants/enterpriseEmployee.ts index 5b07048..351ddd4 100644 --- a/src/constants/enterpriseEmployee.ts +++ b/src/constants/enterpriseEmployee.ts @@ -6,10 +6,16 @@ [EnumTaskUserHireStatus.Refuse]: '宸茶阿缁�', }; +export const EnumTaskUserSignContractStatusTextForFilter = { + [EnumTaskUserSignContractStatus.Wait]: '寰呯绾�', + [EnumTaskUserSignContractStatus.Pass]: '宸茬绾�', + [EnumTaskUserSignContractStatus.Stop]: '宸茶В绾�', +}; export const EnumTaskUserSignContractStatusText = { [EnumTaskUserSignContractStatus.Wait]: '寰呯绾�', [EnumTaskUserSignContractStatus.Pass]: '宸茬绾�', - [EnumTaskUserSignContractStatus.Refuse]: '宸茶阿缁�', + [EnumTaskUserSignContractStatus.Refuse]: '宸叉嫆绛�', + [EnumTaskUserSignContractStatus.Stop]: '宸茶В绾�', }; export const ImportEnterpriseEmployeesTempPath = `${TempFolderPath}/%E7%81%B5%E5%B7%A5%E5%AF%BC%E5%85%A5%E6%A8%A1%E6%9D%BF.xlsx`; diff --git a/src/services/api/enterprise.ts b/src/services/api/enterprise.ts index 084e76e..868563d 100644 --- a/src/services/api/enterprise.ts +++ b/src/services/api/enterprise.ts @@ -80,6 +80,21 @@ }); } +/** 淇濆瓨浼佷笟璐圭敤 POST /api/user/enterprise/saveEnterpriseCost */ +export async function saveEnterpriseCost( + body: API.SaveEnterpriseCostCommand, + options?: API.RequestConfig +) { + return request<string>('/api/user/enterprise/saveEnterpriseCost', { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + }); +} + /** 璁剧疆浼佷笟鐢靛瓙绛鹃厤缃� PUT /api/user/enterprise/setEnterpriseElectronSignSetting */ export async function setEnterpriseElectronSignSetting( body: API.SetEnterpriseElectronSignSettingCommand, diff --git a/src/services/api/enterpriseEmployee.ts b/src/services/api/enterpriseEmployee.ts index 41ba82d..dbf7f68 100644 --- a/src/services/api/enterpriseEmployee.ts +++ b/src/services/api/enterpriseEmployee.ts @@ -17,6 +17,24 @@ }); } +/** 浼佷笟鐢ㄦ埛绛剧害 POST /api/user/enterpriseEmployee/enterpriseUserElectronSign */ +export async function enterpriseUserElectronSign( + body: API.EnterpriseUserElectronSignCommand, + options?: API.RequestConfig +) { + return request<API.EnterpriseUserElectronSignCommandResult>( + '/api/user/enterpriseEmployee/enterpriseUserElectronSign', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + } + ); +} + /** 鏌ヨ鐏靛伐璇︽儏 GET /api/user/enterpriseEmployee/getEnterpriseEmployee */ export async function getEnterpriseEmployee( // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) @@ -121,3 +139,36 @@ ...(options || {}), }); } + +/** 涓汉鐢ㄦ埛绛剧害 POST /api/user/enterpriseEmployee/personalUserElectronSign */ +export async function personalUserElectronSign( + body: API.PersonalUserElectronSignCommand, + options?: API.RequestConfig +) { + return request<API.PersonalUserElectronSignCommandResult>( + '/api/user/enterpriseEmployee/personalUserElectronSign', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 鐏靛伐瑙g害 POST /api/user/enterpriseEmployee/stopElectronSign */ +export async function stopElectronSign( + body: API.StopElectronSignCommand, + options?: API.RequestConfig +) { + return request<string>('/api/user/enterpriseEmployee/stopElectronSign', { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts index 2884491..c677790 100644 --- a/src/services/api/typings.d.ts +++ b/src/services/api/typings.d.ts @@ -389,6 +389,18 @@ data?: any; } + interface EnterpriseUserElectronSignCommand { + /** 鐏靛伐Id */ + id?: string; + } + + interface EnterpriseUserElectronSignCommandResult { + /** 绛剧讲鍚堝悓鐭摼鎺� */ + signContractShortUrl?: string; + /** 绛剧讲鍚堝悓闀块摼鎺� */ + signContractLongUrl?: string; + } + enum EnumBillingMethod { /**鎸夋湀 */ Month = 10, @@ -449,6 +461,20 @@ BestSign = 10, /**鏀粯瀹濅俊浠荤 */ AlipaySign = 20, + } + + enum EnumEnterpriseCostStatus { + /**鎵h垂鎴愬姛 */ + Success = 10, + /**鎵h垂澶辫触 */ + Fail = 20, + } + + enum EnumEnterpriseCostType { + /**鐭俊 */ + SMS = 10, + /**鐢靛瓙绛� */ + ElectronSign = 20, } enum EnumEnterpriseRealMethod { @@ -687,8 +713,6 @@ Pass = 20, /**宸叉嫆绛� */ Refuse = 30, - /**鐢熸晥涓� */ - Effect = 40, /**宸茬粓姝� */ Stop = 50, } @@ -750,6 +774,24 @@ errorCode?: string; /** 鏁版嵁 */ data?: boolean; + /** 鎵ц鎴愬姛 */ + success?: boolean; + /** 閿欒淇℃伅 */ + msg?: any; + /** 闄勫姞鏁版嵁 */ + extras?: any; + /** 鏃堕棿鎴� */ + timestamp?: number; + } + + interface FriendlyResultEnterpriseUserElectronSignCommandResult { + /** 璺熻釜Id */ + traceId?: string; + /** 鐘舵�佺爜 */ + code?: number; + /** 閿欒鐮� */ + errorCode?: string; + data?: EnterpriseUserElectronSignCommandResult; /** 鎵ц鎴愬姛 */ success?: boolean; /** 閿欒淇℃伅 */ @@ -1961,6 +2003,24 @@ timestamp?: number; } + interface FriendlyResultPersonalUserElectronSignCommandResult { + /** 璺熻釜Id */ + traceId?: string; + /** 鐘舵�佺爜 */ + code?: number; + /** 閿欒鐮� */ + errorCode?: string; + data?: PersonalUserElectronSignCommandResult; + /** 鎵ц鎴愬姛 */ + success?: boolean; + /** 閿欒淇℃伅 */ + msg?: any; + /** 闄勫姞鏁版嵁 */ + extras?: any; + /** 鏃堕棿鎴� */ + timestamp?: number; + } + interface FriendlyResultString { /** 璺熻釜Id */ traceId?: string; @@ -2182,6 +2242,8 @@ /** 鎻愪氦Id */ id?: string; enterpriseEmployeeUser?: GetCheckReceiveTaskUserSubmitsQueryResultObjectDataEnterpriseEmployeeUser; + /** 楠屾敹鏃堕棿 */ + date?: string; /** 鎻愪氦鏃堕棿 */ createdTime?: string; /** 楠屾敹鐓х墖 */ @@ -2206,6 +2268,8 @@ interface GetCheckReceiveTaskUserSubmitsQueryResultItem { /** 鎻愪氦Id */ id?: string; + /** 楠屾敹鏃堕棿 */ + date?: string; /** 鎻愪氦鏃堕棿 */ createdTime?: string; /** 楠屾敹鐓х墖 */ @@ -2593,6 +2657,7 @@ enterpriseSignContractTime?: string; /** 鐢靛瓙鍚堝悓 */ contractUrl?: string; + userSignContractStatus?: EnumTaskUserSignContractStatus; } interface GetEnterpriseEmployeesQuery { @@ -3563,6 +3628,8 @@ status?: EnumTaskStatus; releaseStatus?: EnumTaskReleaseStatus; hireStatus?: EnumTaskUserHireStatus; + /** 鐏靛伐Id */ + enterpriseEmployeeId?: string; applyButton?: GetTaskInfoQueryResultApplyButton; hireButton?: GetTaskInfoQueryResultHireButton; } @@ -4146,6 +4213,18 @@ clientType?: EnumClientType; } + interface PersonalUserElectronSignCommand { + /** 鐏靛伐Id */ + id?: string; + } + + interface PersonalUserElectronSignCommandResult { + /** 绛剧讲鍚堝悓鐭摼鎺� */ + signContractShortUrl?: string; + /** 绛剧讲鍚堝悓闀块摼鎺� */ + signContractLongUrl?: string; + } + interface PersonalUserFaceRealCommand { /** 濮撳悕 */ name: string; @@ -4298,6 +4377,17 @@ password?: string; /** Id */ id?: string; + } + + interface SaveEnterpriseCostCommand { + /** 浼佷笟Id */ + enterpriseId?: string; + type?: EnumEnterpriseCostType; + /** 鍚堝悓妯℃澘Id */ + contractTemplateId?: string; + /** 鐏靛伐鍚堝悓Id */ + enterpriseEmployeeContractId?: string; + status?: EnumEnterpriseCostStatus; } interface SaveMenuButtonCommand { @@ -4672,6 +4762,11 @@ clientType?: EnumClientType; } + interface StopElectronSignCommand { + /** 鐏靛伐Id */ + id?: string; + } + interface SubmitCheckReceiveTaskCommand { /** 浠诲姟Id */ taskInfoId?: string; diff --git a/src/views/EmploymentManage/components/CheckManageDialog.vue b/src/views/EmploymentManage/components/CheckManageDialog.vue index 7955957..592ff5c 100644 --- a/src/views/EmploymentManage/components/CheckManageDialog.vue +++ b/src/views/EmploymentManage/components/CheckManageDialog.vue @@ -47,7 +47,7 @@ const columns = defineColumns([ { id: '1', - enCode: 'taskTime', + enCode: 'date', name: '浠诲姟鏃ユ湡', }, { @@ -161,6 +161,7 @@ columnsRenderProps: { createdTime: { type: 'date' }, checkReceiveTime: { type: 'date' }, + date: { type: 'date' }, checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskUserSubmitCheckReceiveStatusText }, files: { type: 'url', diff --git a/src/views/FlexJobManage/FlexJobManage.vue b/src/views/FlexJobManage/FlexJobManage.vue index 13aff9e..e2d1b49 100644 --- a/src/views/FlexJobManage/FlexJobManage.vue +++ b/src/views/FlexJobManage/FlexJobManage.vue @@ -129,7 +129,7 @@ import { FlexJobManageColumns } from './constants'; import { EnumTaskUserHireStatusText, EnumTaskUserSignContractStatusText } from '@/constants'; import { Message } from '@bole-core/core'; -import { convertApi2FormUrlOnlyOne, downloadFileByUrl, format } from '@/utils'; +import { convertApi2FormUrlOnlyOne, downloadFileByUrl, format, omitByFalse } from '@/utils'; import StaffInfoDialog from './components/StaffInfoDialog.vue'; import BatchImportDialog from './components/BatchImportDialog.vue'; import SendShotMessageDialog from './components/SendShotMessageDialog.vue'; @@ -138,7 +138,7 @@ import { ModelValueType } from 'element-plus'; defineOptions({ - name: 'EnterpriseManageList', + name: 'FlexJobManageList', }); const operationBtns = defineOperationBtns([ @@ -162,11 +162,11 @@ }, { data: { - enCode: 'signBtn', + enCode: 'enterpriseSignBtn', name: '浼佷笟绛剧害', }, emits: { - onClick: (role) => handleSign(role), + onClick: (role) => handleEnterpriseSign(role), }, extraProps: { hide: (row: API.GetEnterpriseEmployeesQueryResultItem) => @@ -178,17 +178,17 @@ }, { data: { - enCode: 'signBtn', + enCode: 'inviteSignBtn', name: '閭�璇风绾�', }, emits: { - onClick: (role) => handleSign(role), + onClick: (role) => handleInviteSign(role), }, extraProps: { hide: (row: API.GetEnterpriseEmployeesQueryResultItem) => !( row.userSignContractStatus === EnumTaskUserSignContractStatus.Wait || - row.userSignContractStatus === EnumTaskUserSignContractStatus.Refuse + row.userSignContractStatus === EnumTaskUserSignContractStatus.Stop ), }, }, @@ -265,7 +265,7 @@ enterpriseSignContractStatus: extraParamState.enterpriseSignContractStatus, }; - let res = await enterpriseEmployeeServices.getEnterpriseEmployees(params, { + let res = await enterpriseEmployeeServices.getEnterpriseEmployees(omitByFalse(params), { showLoading: !state.loading, }); return res; @@ -462,26 +462,33 @@ const { dialogProps: dialogSignProps, handleAdd: handleSignAdd, + handleEdit: handleSignEdit, editForm: signEditForm, } = useFormDialog({ onConfirm: signContract, defaultFormParams: { - url: [] as UploadUserFile[], + id: '', + contractTemplateId: '', }, }); -function handleSign(row: API.GetEnterpriseEmployeesQueryResultItem) { - handleSignAdd(); +function handleInviteSign(row: API.GetEnterpriseEmployeesQueryResultItem) { + if (row) { + handleSignEdit({ + id: row.id, + contractTemplateId: '', + }); + } } function handleBatchSign() { const selectionRows = getSelectionRows(); + console.log('selectionRows: ', selectionRows); if (selectionRows) { const hasSigned = selectionRows?.some( (x) => - !( - x.userSignContractStatus === EnumTaskUserSignContractStatus.Pass && - x.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Wait - ) + x.userSignContractStatus === EnumTaskUserSignContractStatus.Pass || + x.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Pass || + x.hireStatus === EnumTaskUserHireStatus.Wait ); if (hasSigned) { Message.warnMessage('鍕鹃�変汉鍛樹腑鍖呭惈宸茬绾﹀畬鎴愭垨鏈綍鐢ㄤ汉鍛�'); @@ -493,12 +500,35 @@ async function signContract() { try { + let params: API.InviteElectronSignCommand = { + id: signEditForm.id, + contractTemplateId: signEditForm.contractTemplateId, + }; + let res = await enterpriseEmployeeServices.inviteElectronSign(params); + if (res) { + Message.successMessage('鎿嶄綔鎴愬姛'); + getList(paginationState.pageIndex); + } + } catch (error) {} +} + +async function handleEnterpriseSign(row: API.GetEnterpriseEmployeesQueryResultItem) { + try { + let res = await enterpriseEmployeeServices.enterpriseUserElectronSign({ id: row.id }); + if (res) { + window.open(res?.signContractLongUrl, '_blank'); + } } catch (error) {} } async function handleUnSign(row: API.GetEnterpriseEmployeesQueryResultItem) { try { await Message.tipMessage('纭畾瑙g害鐢ㄦ埛锛�'); + let res = await enterpriseEmployeeServices.stopElectronSign({ id: row.id }); + if (res) { + Message.successMessage('鎿嶄綔鎴愬姛'); + getList(paginationState.pageIndex); + } } catch (error) {} } diff --git a/src/views/FlexJobManage/components/SignDialog.vue b/src/views/FlexJobManage/components/SignDialog.vue index ea29863..5391d67 100644 --- a/src/views/FlexJobManage/components/SignDialog.vue +++ b/src/views/FlexJobManage/components/SignDialog.vue @@ -1,8 +1,15 @@ <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"> + <ProFormItemV2 + label="璇烽�夋嫨妯℃澘:" + prop="contractTemplateId" + :check-rules="[{ message: '璇烽�夋嫨妯℃澘' }]" + > + <ProFormSelect + v-model="form.contractTemplateId" + :valueEnum="enterpriseContractTemplateSelect" + > </ProFormSelect> </ProFormItemV2> </ProForm> @@ -33,7 +40,8 @@ type Form = { title?: string; - url: UploadUserFile[]; + id?: string; + contractTemplateId?: string; }; const visible = defineModel({ type: Boolean }); -- Gitblit v1.9.1