From e3c8ba4028047cdc56aaaa7edd2690e2d3043d43 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 12 八月 2025 17:42:54 +0800
Subject: [PATCH] fix: 灵工管理

---
 src/views/FlexJobManage/FlexJobManage.vue |  142 ++++++++++++++++++++++++++++------------------
 1 files changed, 86 insertions(+), 56 deletions(-)

diff --git a/src/views/FlexJobManage/FlexJobManage.vue b/src/views/FlexJobManage/FlexJobManage.vue
index d89e356..d6e64e2 100644
--- a/src/views/FlexJobManage/FlexJobManage.vue
+++ b/src/views/FlexJobManage/FlexJobManage.vue
@@ -5,11 +5,8 @@
         <template #query>
           <QueryFilterItem tip-content="褰曠敤鐘舵��">
             <FieldRadio
-              v-model="extraParamState.flexEnterpriseSettingStatus"
-              :value-enum="[
-                { label: '宸插綍鐢�', value: 1 },
-                { label: '鏈綍鐢�', value: 0 },
-              ]"
+              v-model="extraParamState.hireStatus"
+              :value-enum="EnumTaskUserHireStatusText"
               buttonStyle
               showAllBtn
               @change="getList()"
@@ -17,43 +14,38 @@
           </QueryFilterItem>
           <QueryFilterItem tip-content="瀹炲悕鐘舵��">
             <FieldRadio
-              v-model="extraParamState.flexEnterpriseSettingStatus"
+              v-model="extraParamState.isReal"
               :value-enum="[
-                { label: '宸插疄鍚�', value: 1 },
-                { label: '鏈疄鍚�', value: 0 },
+                { label: '宸插疄鍚�', value: true },
+                { label: '鏈疄鍚�', value: false },
               ]"
               buttonStyle
               showAllBtn
+              :all-btn-value="null"
               @change="getList()"
             />
           </QueryFilterItem>
           <QueryFilterItem tip-content="鐏靛伐绛剧害鐘舵��">
             <FieldSelect
-              v-model="extraParamState.flexEnterpriseSettingStatus"
-              :value-enum="[
-                { label: '宸插疄鍚�', value: 1 },
-                { label: '鏈疄鍚�', value: 0 },
-              ]"
-              buttonStyle
-              showAllBtn
+              v-model="extraParamState.userSignContractStatus"
+              :value-enum="EnumTaskUserSignContractStatusText"
+              placeholder="璇烽�夋嫨鐏靛伐绛剧害鐘舵��"
+              clearable
               @change="getList()"
             />
           </QueryFilterItem>
           <QueryFilterItem tip-content="浼佷笟绛剧害鐘舵��">
             <FieldSelect
-              v-model="extraParamState.flexEnterpriseSettingStatus"
-              :value-enum="[
-                { label: '宸插疄鍚�', value: 1 },
-                { label: '鏈疄鍚�', value: 0 },
-              ]"
-              buttonStyle
-              showAllBtn
+              v-model="extraParamState.enterpriseSignContractStatus"
+              :value-enum="EnumTaskUserSignContractStatusText"
+              placeholder="璇烽�夋嫨浼佷笟绛剧害鐘舵��"
+              clearable
               @change="getList()"
             />
           </QueryFilterItem>
           <QueryFilterItem>
             <FieldDatePicker
-              v-model="extraParamState.flexEnterpriseSettingStatus"
+              v-model="extraParamState.createdTime"
               type="daterange"
               range-separator="~"
               start-placeholder="璧峰鏃ユ湡"
@@ -65,7 +57,7 @@
           </QueryFilterItem>
           <QueryFilterItem>
             <FieldDatePicker
-              v-model="extraParamState.flexEnterpriseSettingStatus"
+              v-model="extraParamState.signContractTime"
               type="daterange"
               range-separator="~"
               start-placeholder="璧峰鏃ユ湡"
@@ -133,12 +125,14 @@
   UploadUserFile,
 } from '@bole-core/components';
 import { FlexJobManageColumns } from './constants';
-import { FlexEnterpriseSettingStatus, Gender } from '@/constants';
+import { EnumTaskUserHireStatusText, EnumTaskUserSignContractStatusText } from '@/constants';
 import { Message } from '@bole-core/core';
-import { convertApi2FormUrlOnlyOne, downloadFileByUrl } from '@/utils';
+import { convertApi2FormUrlOnlyOne, downloadFileByUrl, format } from '@/utils';
 import StaffInfoDialog from './components/StaffInfoDialog.vue';
 import BatchImportDialog from './components/BatchImportDialog.vue';
 import SendShotMessageDialog from './components/SendShotMessageDialog.vue';
+import * as enterpriseEmployeeServices from '@/services/api/enterpriseEmployee';
+import { ModelValueType } from 'element-plus';
 
 defineOptions({
   name: 'EnterpriseManageList',
@@ -172,7 +166,11 @@
       onClick: (role) => handleSign(role),
     },
     extraProps: {
-      hide: (row) => false,
+      hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
+        !(
+          row.userSignContractStatus === EnumTaskUserSignContractStatus.Pass &&
+          row.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Wait
+        ),
     },
   },
   {
@@ -184,7 +182,11 @@
       onClick: (role) => handleUnSign(role),
     },
     extraProps: {
-      hide: (row) => false,
+      hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
+        !(
+          row.userSignContractStatus === EnumTaskUserSignContractStatus.Pass &&
+          row.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Pass
+        ),
     },
   },
   {
@@ -221,17 +223,30 @@
 } = useTable(
   async ({ pageIndex, pageSize }, extraParamState) => {
     try {
-      let params: API.GetFlexEnterpriseInput = {
+      let params: API.GetEnterpriseEmployeesQuery = {
         pageModel: {
           rows: pageSize,
           page: pageIndex,
           orderInput: extraParamState.orderInput,
         },
-        flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus,
-        searchWord: extraParamState.searchWord,
+        keywords: extraParamState.searchWord,
+        createdTimeStart: format(extraParamState.createdTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
+        createdTimeEnd: format(extraParamState.createdTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
+        signContractTimeStart: format(
+          extraParamState.signContractTime?.[0] ?? '',
+          'YYYY-MM-DD 00:00:00'
+        ),
+        signContractTimeEnd: format(
+          extraParamState.signContractTime?.[1] ?? '',
+          'YYYY-MM-DD 23:59:59'
+        ),
+        hireStatus: extraParamState.hireStatus,
+        isReal: extraParamState.isReal,
+        userSignContractStatus: extraParamState.userSignContractStatus,
+        enterpriseSignContractStatus: extraParamState.enterpriseSignContractStatus,
       };
 
-      let res = await flexEnterpriseServices.getFlexEnterpriseList(params, {
+      let res = await enterpriseEmployeeServices.getEnterpriseEmployees(params, {
         showLoading: !state.loading,
       });
       return res;
@@ -243,10 +258,29 @@
     defaultExtraParams: {
       searchWord: '',
       orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
-      flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus,
+      createdTime: [] as unknown as ModelValueType,
+      signContractTime: [] as unknown as ModelValueType,
+      hireStatus: '' as any as EnumTaskUserHireStatus,
+      isReal: null as any as boolean,
+      userSignContractStatus: '' as any as EnumTaskUserSignContractStatus,
+      enterpriseSignContractStatus: '' as any as EnumTaskUserSignContractStatus,
     },
-    queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'],
-    columnsRenderProps: {},
+    queryKey: ['enterpriseEmployeeServices/getEnterpriseEmployees'],
+    columnsRenderProps: {
+      gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson },
+      hireStatus: { type: 'enum', valueEnum: EnumTaskUserHireStatusText },
+      userIsReal: {
+        formatter: (row: API.GetEnterpriseEmployeesQueryResultItem) => {
+          return row.userIsReal ? '宸插疄鍚�' : '鏈疄鍚�';
+        },
+      },
+      userSignContractStatus: { type: 'enum', valueEnum: EnumTaskUserSignContractStatusText },
+      hireTime: { type: 'date' },
+      userRealTime: { type: 'date' },
+      userSignContractTime: { type: 'date' },
+      enterpriseSignContractStatus: { type: 'enum', valueEnum: EnumTaskUserSignContractStatusText },
+      enterpriseSignContractTime: { type: 'date' },
+    },
   }
 );
 
@@ -274,40 +308,36 @@
   defaultFormParams: {
     id: '',
     name: '',
-    idNumber: '',
-    phoneNumber: '',
-    genderType: Gender.Male,
-    age: 0,
-    companyId: '',
-    customerId: '',
+    identity: '',
+    contactPhoneNumber: '',
+    gender: EnumUserGender.Male,
+    age: null as any as number,
     idFrontUrl: [] as UploadUserFile[],
     idBackUrl: [] as UploadUserFile[],
     contractUrl: [] as UploadUserFile[],
     regiterTime: '',
-    realVerifyTime: '',
-    signTime: '',
+    userRealTime: '',
+    userSignContractTime: '',
     isDetail: false,
   },
 });
 
-function openDialog(row, isDetail = false) {
+function openDialog(row: API.GetEnterpriseEmployeesQueryResultItem, isDetail = false) {
   handleStaffInfoEdit({
     id: row.id,
     name: row.name,
-    idNumber: row.idNumber,
-    phoneNumber: row.phoneNumber,
-    genderType: Gender.Male,
-    age: row.age ?? 0,
-    companyId: row.companyId,
-    customerId: row.customerId,
+    identity: row.identity,
+    contactPhoneNumber: row.contactPhoneNumber,
+    gender: row.gender,
+    age: row.age ?? null,
     idFrontUrl: convertApi2FormUrlOnlyOne(row.idFrontUrl),
     idBackUrl: convertApi2FormUrlOnlyOne(row.idBackUrl),
     contractUrl: convertApi2FormUrlOnlyOne(row.contractUrl, {
       fileName: row.contractUrl ? row.contractUrl.split('/').pop() : '鍚堝悓',
     }),
-    regiterTime: row.regiterTime,
-    realVerifyTime: row.realVerifyTime,
-    signTime: row.signTime,
+    regiterTime: row.regiterTime ?? '',
+    userRealTime: row.userRealTime,
+    userSignContractTime: row.userSignContractTime,
     isDetail: isDetail,
   });
 }
@@ -370,15 +400,15 @@
 
 function handleBatchUnSign() {}
 
-function handleSign(row) {}
+function handleSign(row: API.GetEnterpriseEmployeesQueryResultItem) {}
 function handleBatchSign() {}
-async function handleUnSign(row) {
+async function handleUnSign(row: API.GetEnterpriseEmployeesQueryResultItem) {
   try {
     await Message.tipMessage('纭畾瑙g害鐢ㄦ埛锛�');
   } catch (error) {}
 }
 
-async function handleDelete(row) {
+async function handleDelete(row: API.GetEnterpriseEmployeesQueryResultItem) {
   try {
     await Message.deleteMessage();
   } catch (error) {}

--
Gitblit v1.9.1