From a50d68e2f407789cde52e87f5d5285456b0f5f46 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 01 九月 2025 15:16:30 +0800
Subject: [PATCH] feat: 签约
---
src/views/FlexJobManage/FlexJobManage.vue | 63 ++++++++++++---------
src/services/api/enterpriseEmployee.ts | 4
src/services/api/index.ts | 2
src/services/api/typings.d.ts | 44 +++++++++++++-
src/views/FlexJobManage/components/SignDialog.vue | 2
src/constants/apiEnum.ts | 6 +
src/services/api/enterpriseWallet.ts | 18 ++++++
7 files changed, 103 insertions(+), 36 deletions(-)
diff --git a/src/constants/apiEnum.ts b/src/constants/apiEnum.ts
index e4382ec..0181980 100644
--- a/src/constants/apiEnum.ts
+++ b/src/constants/apiEnum.ts
@@ -227,10 +227,12 @@
UserServerUserResume = 13,
/**浼佷笟淇℃伅 */
UserServerEnterprise = 14,
+ /**浼佷笟閽卞寘 */
+ UserServerEnterpriseWallet = 15,
/**鐏靛伐淇℃伅 */
- UserServerEnterpriseEmployee = 15,
+ UserServerEnterpriseEmployee = 16,
/**鐢靛瓙绛� */
- ElectronSignServerElectronSign = 16,
+ ElectronSignServerElectronSign = 17,
}
/** 璧勬簮璇锋眰鏂瑰紡 */
diff --git a/src/services/api/enterpriseEmployee.ts b/src/services/api/enterpriseEmployee.ts
index dbf7f68..874d511 100644
--- a/src/services/api/enterpriseEmployee.ts
+++ b/src/services/api/enterpriseEmployee.ts
@@ -130,7 +130,7 @@
body: API.InviteElectronSignCommand,
options?: API.RequestConfig
) {
- return request<string>('/api/user/enterpriseEmployee/inviteElectronSign', {
+ return request<number>('/api/user/enterpriseEmployee/inviteElectronSign', {
method: 'POST',
headers: {
'Content-Type': 'application/json-patch+json',
@@ -163,7 +163,7 @@
body: API.StopElectronSignCommand,
options?: API.RequestConfig
) {
- return request<string>('/api/user/enterpriseEmployee/stopElectronSign', {
+ return request<number>('/api/user/enterpriseEmployee/stopElectronSign', {
method: 'POST',
headers: {
'Content-Type': 'application/json-patch+json',
diff --git a/src/services/api/enterpriseWallet.ts b/src/services/api/enterpriseWallet.ts
new file mode 100644
index 0000000..343ba99
--- /dev/null
+++ b/src/services/api/enterpriseWallet.ts
@@ -0,0 +1,18 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 鏀粯瀹濈敤鎴锋巿鏉冨崗璁绾﹂�氱煡 POST /api/user/enterpriseWallet/alipayUserAgreementPageSignNotify */
+export async function alipayUserAgreementPageSignNotify(
+ body: API.AlipayUserAgreementPageSignNotifyQuery,
+ options?: API.RequestConfig
+) {
+ return request<boolean>('/api/user/enterpriseWallet/alipayUserAgreementPageSignNotify', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
diff --git a/src/services/api/index.ts b/src/services/api/index.ts
index 7c7dd5e..e230365 100644
--- a/src/services/api/index.ts
+++ b/src/services/api/index.ts
@@ -17,6 +17,7 @@
import * as taskUser from './taskUser';
import * as menu from './menu';
import * as logRecords from './logRecords';
+import * as enterpriseWallet from './enterpriseWallet';
import * as fileUtils from './fileUtils';
export default {
enterpriseEmployee,
@@ -34,5 +35,6 @@
taskUser,
menu,
logRecords,
+ enterpriseWallet,
fileUtils,
};
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index c677790..6f6f2fa 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -3,6 +3,35 @@
[key: string]: any;
}
+ interface AlipayUserAgreementPageSignNotifyQuery {
+ /** 鍗忚浜у搧鐮侊紝鍟嗘埛鍜屾敮浠樺疂绛剧害鏃剁‘瀹氾紝涓嶅悓涓氬姟鍦烘櫙瀵瑰簲涓嶅悓鐨勭绾︿骇鍝佺爜銆� */
+ personal_product_code?: string;
+ /** 褰撳墠绛剧害鐨勫崗璁満鏅�� */
+ sign_scene?: string;
+ /** NORMAL 鍗忚褰撳墠鐘舵�� 1. TEMP锛氭殏瀛橈紝鍗忚鏈敓鏁堣繃锛� 2. NORMAL锛氭甯革紱 3. STOP锛氭殏鍋� */
+ status?: string;
+ /** 鐢ㄦ埛绛剧害鐨勬敮浠樺疂璐﹀彿瀵瑰簲鐨勬敮浠樺疂鍞竴鐢ㄦ埛鍙枫�� 浠�2088寮�澶寸殑16浣嶇函鏁板瓧缁勬垚銆� */
+ alipay_user_id?: string;
+ /** 鏀粯瀹濈郴缁熶腑鐢ㄤ互鍞竴鏍囪瘑鐢ㄦ埛绛剧害璁板綍鐨勭紪鍙枫�� */
+ agreement_no?: string;
+ /** 鏀粯瀹濅唬鎵e崗璁殑瀹為檯绛剧害鏃堕棿锛屾牸寮忎负yyyy-MM-dd HH:mm:ss銆� */
+ sign_time?: string;
+ /** 鐢ㄦ埛鍦ㄥ晢鎴风綉绔欑殑鐧诲綍璐﹀彿锛屽鏋滃晢鎴锋帴鍙d腑鏈紶锛屽垯涓嶄細杩斿洖 */
+ external_logon_id?: string;
+ /** 鏀粯瀹濆垎閰嶇粰寮�鍙戣�呯殑搴旂敤Id */
+ app_id?: string;
+ /** 鏀粯瀹濆垎閰嶇粰鍟嗘埛鐨勫簲鐢↖d */
+ auth_app_id?: string;
+ /** 浠f墸鍗忚涓爣绀虹敤鎴风殑鍞竴绛剧害鍙凤紙纭繚鍦ㄥ晢鎴风郴缁熶腑鍞竴锛夈�� */
+ external_agreement_no?: string;
+ /** 鐢ㄦ埛浠f墸鍗忚鐨勫疄闄呯敓鏁堟椂闂达紝鏍煎紡涓簓yyy-MM-dd HH:mm:ss銆� */
+ valid_time?: string;
+ /** 杩斿洖鑴辨晱鐨勬敮浠樺疂璐﹀彿銆� */
+ alipay_logon_id?: string;
+ /** 鐢ㄦ埛绛剧害鎴愬姛閫氱煡绫诲瀷 */
+ notify_type?: string;
+ }
+
interface APIcheckHealthParams {
/** 鍋ュ悍鏍¢獙 */
request?: CheckHealthQuery;
@@ -605,10 +634,12 @@
UserServerUserResume = 13,
/**浼佷笟淇℃伅 */
UserServerEnterprise = 14,
+ /**浼佷笟閽卞寘 */
+ UserServerEnterpriseWallet = 15,
/**鐏靛伐淇℃伅 */
- UserServerEnterpriseEmployee = 15,
+ UserServerEnterpriseEmployee = 16,
/**鐢靛瓙绛� */
- ElectronSignServerElectronSign = 16,
+ ElectronSignServerElectronSign = 17,
}
enum EnumResourceMethod {
@@ -2727,6 +2758,8 @@
enterpriseSignContractStatus?: EnumTaskUserSignContractStatus;
/** 浼佷笟绛剧害鏃堕棿 */
enterpriseSignContractTime?: string;
+ /** 鐢靛瓙鍚堝悓 */
+ contractUrl?: string;
}
type GetEnterpriseLoginInfoQuery = Record<string, any>;
@@ -3229,6 +3262,7 @@
interface GetPersonalUserElectronSignQueryResult {
/** 鍚堝悓缂栧彿 */
contractCode?: string;
+ contractTemplateAccess?: EnumElectronSignAccess;
userSignContractStatus?: EnumTaskUserSignContractStatus;
/** 绛剧害鏂逛俊鎭�-鍛樺伐-濮撳悕 */
name?: string;
@@ -3236,6 +3270,8 @@
identityType?: string;
/** 绛剧害鏂逛俊鎭�-鍛樺伐-璇佷欢鍙风爜 */
identity?: string;
+ /** 绛剧害鏂逛俊鎭�-鍛樺伐-鎵嬫満鍙� */
+ contactPhoneNumber?: string;
/** 绛剧害鏂逛俊鎭�-鍛樺伐-绛剧害鏃堕棿 */
userSignContractTime?: string;
/** 绛剧害鏂逛俊鎭�-鍏徃涓讳綋-涓讳綋绫诲瀷 */
@@ -4128,7 +4164,7 @@
interface InviteElectronSignCommand {
/** 鐏靛伐Id */
- id?: string;
+ ids?: string[];
/** 鍚堝悓妯℃澘Id */
contractTemplateId?: string;
}
@@ -4764,7 +4800,7 @@
interface StopElectronSignCommand {
/** 鐏靛伐Id */
- id?: string;
+ ids?: string[];
}
interface SubmitCheckReceiveTaskCommand {
diff --git a/src/views/FlexJobManage/FlexJobManage.vue b/src/views/FlexJobManage/FlexJobManage.vue
index dca1aa8..55741d4 100644
--- a/src/views/FlexJobManage/FlexJobManage.vue
+++ b/src/views/FlexJobManage/FlexJobManage.vue
@@ -187,8 +187,8 @@
extraProps: {
hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
!(
- row.userSignContractStatus === EnumTaskUserSignContractStatus.Wait ||
- row.userSignContractStatus === EnumTaskUserSignContractStatus.Stop
+ row.userSignContractStatus !== EnumTaskUserSignContractStatus.Pass &&
+ row.hireStatus === EnumTaskUserHireStatus.Pass
),
},
},
@@ -208,16 +208,16 @@
),
},
},
- {
- data: {
- enCode: 'delBtn',
- name: '鍒犻櫎',
- },
- props: { type: 'danger' },
- emits: {
- onClick: (role) => handleDelete(role),
- },
- },
+ // {
+ // data: {
+ // enCode: 'delBtn',
+ // name: '鍒犻櫎',
+ // },
+ // props: { type: 'danger' },
+ // emits: {
+ // onClick: (role) => handleDelete(role),
+ // },
+ // },
]);
const router = useRouter();
@@ -467,7 +467,7 @@
} = useFormDialog({
onConfirm: signContract,
defaultFormParams: {
- id: '',
+ ids: [] as string[],
contractTemplateId: '',
},
});
@@ -475,14 +475,13 @@
function handleInviteSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
if (row) {
handleSignEdit({
- id: row.id,
+ ids: [row.id],
contractTemplateId: '',
});
}
}
function handleBatchSign() {
const selectionRows = getSelectionRows();
- console.log('selectionRows: ', selectionRows);
if (selectionRows) {
const hasSigned = selectionRows?.some(
(x) =>
@@ -494,14 +493,17 @@
Message.warnMessage('鍕鹃�変汉鍛樹腑鍖呭惈宸茬绾﹀畬鎴愭垨鏈綍鐢ㄤ汉鍛�');
return;
}
- handleSignAdd();
+ handleSignAdd({
+ ids: selectionRows.map((x) => x.id),
+ contractTemplateId: '',
+ });
}
}
async function signContract() {
try {
let params: API.InviteElectronSignCommand = {
- id: signEditForm.id,
+ ids: signEditForm.ids,
contractTemplateId: signEditForm.contractTemplateId,
};
let res = await enterpriseEmployeeServices.inviteElectronSign(params);
@@ -521,20 +523,27 @@
} 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) {}
+function handleUnSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
+ stopElectronSign([row.id]);
}
function handleBatchUnSign() {
try {
- Message.warnMessage('鍔熻兘寮�鍙戜腑');
+ const selectionRows = getSelectionRows();
+ if (selectionRows) {
+ stopElectronSign(selectionRows.map((x) => x.id));
+ }
+ } catch (error) {}
+}
+
+async function stopElectronSign(ids: string[]) {
+ try {
+ await Message.tipMessage('纭畾瑙g害鐢ㄦ埛锛�');
+ let res = await enterpriseEmployeeServices.stopElectronSign({ ids: ids });
+ 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 5391d67..90ebbe1 100644
--- a/src/views/FlexJobManage/components/SignDialog.vue
+++ b/src/views/FlexJobManage/components/SignDialog.vue
@@ -40,7 +40,7 @@
type Form = {
title?: string;
- id?: string;
+ ids?: string[];
contractTemplateId?: string;
};
--
Gitblit v1.9.1