From 336441bd3d811427f957654f12936c4cab9b4c1a Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 28 十一月 2025 16:42:00 +0800
Subject: [PATCH] fix: bug

---
 src/views/FlexJobManage/FlexJobManage.vue |   67 +++++++++++++++++++++++++++++----
 1 files changed, 58 insertions(+), 9 deletions(-)

diff --git a/src/views/FlexJobManage/FlexJobManage.vue b/src/views/FlexJobManage/FlexJobManage.vue
index b723cbc..98bdc03 100644
--- a/src/views/FlexJobManage/FlexJobManage.vue
+++ b/src/views/FlexJobManage/FlexJobManage.vue
@@ -27,11 +27,10 @@
           </QueryFilterItem>
           <QueryFilterItem tip-content="鐏靛伐鏉ユ簮">
             <FieldRadio
-              v-model="extraParamState.isReal"
-              :value-enum="[]"
+              v-model="extraParamState.source"
+              :value-enum="EnumEnterpriseEmployeeSourceText"
               buttonStyle
               showAllBtn
-              :all-btn-value="null"
               @change="getList()"
             />
           </QueryFilterItem>
@@ -79,7 +78,7 @@
           </QueryFilterItem> -->
           <QueryFilterItem>
             <FieldDatePicker
-              v-model="extraParamState.createdTime"
+              v-model="extraParamState.userRealTime"
               type="daterange"
               range-separator="~"
               start-placeholder="璧峰鏃ユ湡"
@@ -196,9 +195,18 @@
   XLSXUtils,
   BlFileUpload,
 } from '@bole-core/components';
-import { EnumTaskUserHireStatusText, EnumTaskUserSignContractStatusText } from '@/constants';
+import {
+  EnumTaskUserHireStatusText,
+  EnumTaskUserSignContractStatusText,
+  EnumEnterpriseEmployeeSourceText,
+} from '@/constants';
 import { Message } from '@bole-core/core';
-import { convertApi2FormUrlOnlyOne, downloadFileByUrl, format } from '@/utils';
+import {
+  convertApi2FormUrlOnlyOne,
+  downloadFileByUrl,
+  format,
+  hiddenIDNumberForEnd4,
+} from '@/utils';
 import StaffInfoDialog from './components/StaffInfoDialog.vue';
 import BatchImportDialog from './components/BatchImportDialog.vue';
 import SendShotMessageDialog from './components/SendShotMessageDialog.vue';
@@ -217,7 +225,11 @@
 const operationBtnMap: Record<string, OperationBtnType> = {
   editBtn: {
     emits: {
-      onClick: (role) => openDialog(role),
+      onClick: (role) => openInternalDialog(role),
+    },
+    extraProps: {
+      hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
+        row.source === EnumEnterpriseEmployeeSource.External,
     },
   },
   detailBtn: {
@@ -657,10 +669,13 @@
 const {
   dialogProps: dialogAddInternalStaffProps,
   handleAdd: handleInternalStaffAdd,
+  handleEdit: handleInternalStaffEdit,
   editForm: internalStaffEditForm,
+  dialogState: internalDialogState,
 } = useFormDialog({
   onConfirm: addEnterpriseEmployee,
   defaultFormParams: {
+    id: '',
     name: '',
     identity: '',
     contactPhoneNumber: '',
@@ -674,10 +689,35 @@
     userSignContractTime: '',
     contractTime: [] as unknown as ModelValueType,
   },
+  closeAfterConfirm: false,
 });
+
+async function openInternalDialog(row: API.GetEnterpriseEmployeesQueryResultItem) {
+  try {
+    let detail = await enterpriseEmployeeServices.getEnterpriseEmployee({ id: row.id });
+    handleInternalStaffEdit({
+      id: row.id,
+      name: row.name,
+      identity: row.identity,
+      contactPhoneNumber: row.contactPhoneNumber,
+      gender: detail.gender,
+      age: detail.age ?? null,
+      identityImg: convertApi2FormUrlOnlyOne(detail.identityImg),
+      identityBackImg: convertApi2FormUrlOnlyOne(detail.identityBackImg),
+      contractUrl: convertApi2FormUrlOnlyOne(detail.contractUrl, {
+        fileName: detail.contractUrl ? detail.contractUrl.split('/').pop() : '鍚堝悓',
+      }),
+      regiterTime: detail.applyTime ?? '',
+      userRealTime: row.userRealTime ?? '',
+      userSignContractTime: row.userSignContractTime ?? '',
+      contractTime: [row.contractBegin, row.contractEnd],
+    });
+  } catch (error) {}
+}
 
 async function addEnterpriseEmployee() {
   try {
+    const isEdit = !!internalStaffEditForm.id;
     let params: API.AddEnterpriseEmployeeCommand = {
       name: internalStaffEditForm.name,
       identity: internalStaffEditForm.identity,
@@ -690,11 +730,20 @@
       contractBegin: format(internalStaffEditForm.contractTime[0], 'YYYY-MM-DD 00:00:00'),
       contractEnd: format(internalStaffEditForm.contractTime[1], 'YYYY-MM-DD 23:59:59'),
     };
-    let res = await enterpriseEmployeeServices.addEnterpriseEmployee(params);
+    let res;
+    if (isEdit) {
+      (params as API.EditEnterpriseEmployeeCommand).id = internalStaffEditForm.id;
+      res = await enterpriseEmployeeServices.editEnterpriseEmployee(params);
+    } else {
+      res = await enterpriseEmployeeServices.addEnterpriseEmployee(params);
+    }
     if (res) {
       Message.successMessage('鎿嶄綔鎴愬姛');
       getList(paginationState.pageIndex);
+      internalDialogState.dialogVisible = false;
     }
-  } catch (error) {}
+  } catch (error) {
+    internalDialogState.dialogVisible = true;
+  }
 }
 </script>

--
Gitblit v1.9.1