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