From a686faf1c2132f55e40119df28ce9f6e46206b74 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 11 九月 2025 17:40:38 +0800
Subject: [PATCH] feat: 页面

---
 src/views/FlexJobManage/FlexJobManage.vue |   89 ++++++++++++++++++++++++++++++++------------
 1 files changed, 64 insertions(+), 25 deletions(-)

diff --git a/src/views/FlexJobManage/FlexJobManage.vue b/src/views/FlexJobManage/FlexJobManage.vue
index dca1aa8..ca81eac 100644
--- a/src/views/FlexJobManage/FlexJobManage.vue
+++ b/src/views/FlexJobManage/FlexJobManage.vue
@@ -99,6 +99,7 @@
       </ProTableV2>
     </AppContainer>
     <StaffInfoDialog v-bind="dialogStaffInfoProps" />
+    <StaffDetailInfoDialog v-bind="dialogStaffDetailProps" />
     <BatchImportDialog
       v-bind="dialogBatchImportProps"
       @onDownloadTemplate="handleDownloadTemplate"
@@ -133,6 +134,7 @@
 import StaffInfoDialog from './components/StaffInfoDialog.vue';
 import BatchImportDialog from './components/BatchImportDialog.vue';
 import SendShotMessageDialog from './components/SendShotMessageDialog.vue';
+import StaffDetailInfoDialog from './components/StaffDetailInfoDialog.vue';
 import SignDialog from './components/SignDialog.vue';
 import * as enterpriseEmployeeServices from '@/services/api/enterpriseEmployee';
 import { ModelValueType } from 'element-plus';
@@ -157,7 +159,8 @@
       name: '璇︽儏',
     },
     emits: {
-      onClick: (role) => openDialog(role, true),
+      onClick: (role: API.GetEnterpriseEmployeesQueryResultItem) =>
+        handleStaffDetailEdit({ id: role.id, tabType: 'info' }),
     },
   },
   {
@@ -187,8 +190,8 @@
     extraProps: {
       hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
         !(
-          row.userSignContractStatus === EnumTaskUserSignContractStatus.Wait ||
-          row.userSignContractStatus === EnumTaskUserSignContractStatus.Stop
+          row.userSignContractStatus !== EnumTaskUserSignContractStatus.Pass &&
+          row.hireStatus === EnumTaskUserHireStatus.Pass
         ),
     },
   },
@@ -208,16 +211,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();
@@ -430,6 +433,7 @@
     ids: [] as string[],
     customerId: '',
     name: '',
+    contractTemplateId: '',
   },
 });
 
@@ -452,6 +456,14 @@
 
 async function sendMessageForSign() {
   try {
+    let params: API.SendInviteElectronSignSmsCommand = {
+      ids: editShotMessageForm.ids,
+      contractTemplateId: editShotMessageForm.contractTemplateId,
+    };
+    let res = await enterpriseEmployeeServices.sendInviteElectronSignSms(params);
+    if (res) {
+      Message.successMessage('鐭俊宸插彂閫�');
+    }
   } catch (error) {}
 }
 
@@ -467,7 +479,7 @@
 } = useFormDialog({
   onConfirm: signContract,
   defaultFormParams: {
-    id: '',
+    ids: [] as string[],
     contractTemplateId: '',
   },
 });
@@ -475,14 +487,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 +505,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,10 +535,30 @@
   } catch (error) {}
 }
 
-async function handleUnSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
+function handleUnSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
+  stopElectronSign([row.id]);
+}
+
+function handleBatchUnSign() {
+  try {
+    const selectionRows = getSelectionRows();
+    if (selectionRows) {
+      const hasUnSigned = selectionRows?.some(
+        (x) => x.enterpriseSignContractStatus !== EnumTaskUserSignContractStatus.Pass
+      );
+      if (hasUnSigned) {
+        Message.warnMessage('鍕鹃�夋暟鎹腑鍖呭惈浼佷笟鏈绾︽垨宸茶В绾︽暟鎹�');
+        return;
+      }
+      stopElectronSign(selectionRows.map((x) => x.id));
+    }
+  } catch (error) {}
+}
+
+async function stopElectronSign(ids: string[]) {
   try {
     await Message.tipMessage('纭畾瑙g害鐢ㄦ埛锛�');
-    let res = await enterpriseEmployeeServices.stopElectronSign({ id: row.id });
+    let res = await enterpriseEmployeeServices.stopElectronSign({ ids: ids });
     if (res) {
       Message.successMessage('鎿嶄綔鎴愬姛');
       getList(paginationState.pageIndex);
@@ -532,11 +566,16 @@
   } catch (error) {}
 }
 
-function handleBatchUnSign() {
-  try {
-    Message.warnMessage('鍔熻兘寮�鍙戜腑');
-  } catch (error) {}
-}
+const {
+  dialogProps: dialogStaffDetailProps,
+  handleEdit: handleStaffDetailEdit,
+  editForm: staffDetailEditForm,
+} = useFormDialog({
+  defaultFormParams: {
+    id: '',
+    tabType: 'info',
+  },
+});
 
 async function handleDelete(row: API.GetEnterpriseEmployeesQueryResultItem) {
   try {

--
Gitblit v1.9.1