|  |  | 
 |  |  |           </QueryFilterItem> | 
 |  |  |           <QueryFilterItem tip-content="最近录用时间"> | 
 |  |  |             <FieldDatePicker | 
 |  |  |               v-model="extraParamState.createdTime" | 
 |  |  |               v-model="extraParamState.hireTime" | 
 |  |  |               type="daterange" | 
 |  |  |               range-separator="~" | 
 |  |  |               start-placeholder="开始时间" | 
 |  |  | 
 |  |  |           </QueryFilterItem> | 
 |  |  |           <QueryFilterItem> | 
 |  |  |             <SearchInput | 
 |  |  |               v-model="extraParamState.searchKeys" | 
 |  |  |               v-model="extraParamState.keywords" | 
 |  |  |               style="width: 300px" | 
 |  |  |               placeholder="姓名/手机/身份证号/客户" | 
 |  |  |               @on-click-search="getList" | 
 |  |  | 
 |  |  |   UploadUserFile, | 
 |  |  | } from '@bole-core/components'; | 
 |  |  | import { useAccess, useGlobalEventContext } from '@/hooks'; | 
 |  |  | import { Gender } from '@/constants'; | 
 |  |  | import CPersonDetailDialog from './components/CPersonDetailDialog.vue'; | 
 |  |  | import { convertApi2FormUrlOnlyOne, format } from '@/utils'; | 
 |  |  | import { ModelValueType } from 'element-plus'; | 
 |  |  | import * as enterpriseEmployeeServices from '@/services/api/enterpriseEmployee'; | 
 |  |  | import * as userServices from '@/services/api/user'; | 
 |  |  |  | 
 |  |  | defineOptions({ | 
 |  |  |   name: 'CPersonManageList', | 
 |  |  | 
 |  |  | } = useTable( | 
 |  |  |   async ({ pageIndex, pageSize }, extraParamState) => { | 
 |  |  |     try { | 
 |  |  |       let params: API.GetEnterpriseEmployeesQuery = { | 
 |  |  |       let params: API.GetPersonalUserInfosQuery = { | 
 |  |  |         pageModel: { | 
 |  |  |           rows: pageSize, | 
 |  |  |           page: pageIndex, | 
 |  |  |           orderInput: extraParamState.orderInput, | 
 |  |  |         }, | 
 |  |  |         keywords: extraParamState.searchKeys, | 
 |  |  |         //TODO 应该是录用时间 还没有 | 
 |  |  |         createdTimeStart: format(extraParamState.createdTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), | 
 |  |  |         createdTimeEnd: format(extraParamState.createdTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), | 
 |  |  |         signContractTimeStart: format( | 
 |  |  |         keywords: extraParamState.keywords, | 
 |  |  |         hireTimeBegin: format(extraParamState.hireTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), | 
 |  |  |         hireTimeEnd: format(extraParamState.hireTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), | 
 |  |  |         signContractBegin: format( | 
 |  |  |           extraParamState.signContractTime?.[0] ?? '', | 
 |  |  |           'YYYY-MM-DD 00:00:00' | 
 |  |  |         ), | 
 |  |  |         signContractTimeEnd: format( | 
 |  |  |           extraParamState.signContractTime?.[1] ?? '', | 
 |  |  |           'YYYY-MM-DD 23:59:59' | 
 |  |  |         ), | 
 |  |  |         signContractEnd: format(extraParamState.signContractTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), | 
 |  |  |         isReal: extraParamState.isReal, | 
 |  |  |       }; | 
 |  |  |  | 
 |  |  |       let res = await enterpriseEmployeeServices.getEnterpriseEmployees(params, { | 
 |  |  |       let res = await userServices.getPersonalUserInfos(params, { | 
 |  |  |         showLoading: !state.loading, | 
 |  |  |       }); | 
 |  |  |       return res; | 
 |  |  | 
 |  |  |   }, | 
 |  |  |   { | 
 |  |  |     defaultExtraParams: { | 
 |  |  |       searchKeys: '', | 
 |  |  |       keywords: '', | 
 |  |  |       orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], | 
 |  |  |       createdTime: [] as unknown as ModelValueType, | 
 |  |  |       hireTime: [] as unknown as ModelValueType, | 
 |  |  |       signContractTime: [] as unknown as ModelValueType, | 
 |  |  |       isReal: null as any as boolean, | 
 |  |  |     }, | 
 |  |  |     queryKey: ['enterpriseEmployeeServices/getEnterpriseEmployees'], | 
 |  |  |     queryKey: ['userServices/getPersonalUserInfos'], | 
 |  |  |     columnsRenderProps: { | 
 |  |  |       gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson }, | 
 |  |  |       hireStatus: { type: 'enum', valueEnum: EnumTaskUserHireStatusText }, | 
 |  |  |       userIsReal: { | 
 |  |  |         formatter: (row: API.GetEnterpriseEmployeesQueryResultItem) => { | 
 |  |  |           return row.userIsReal ? '已实名' : '未实名'; | 
 |  |  |       isReal: { | 
 |  |  |         formatter: (row: API.GetPersonalUserInfosQueryResultItem) => { | 
 |  |  |           return row.isReal ? '已实名' : '未实名'; | 
 |  |  |         }, | 
 |  |  |       }, | 
 |  |  |       userSignContractStatus: { type: 'enum', valueEnum: EnumTaskUserSignContractStatusText }, | 
 |  |  |       hireTime: { type: 'date' }, | 
 |  |  |       userRealTime: { type: 'date' }, | 
 |  |  |       userSignContractTime: { type: 'date' }, | 
 |  |  |       realTime: { type: 'date' }, | 
 |  |  |       signContractTime: { type: 'date' }, | 
 |  |  |       enterprises: { | 
 |  |  |         formatter: (row: API.GetPersonalUserInfosQueryResultItem) => { | 
 |  |  |           return row.enterprises ? row.enterprises.map((x) => x).join(',') : ''; | 
 |  |  |         }, | 
 |  |  |       }, | 
 |  |  |     }, | 
 |  |  |   } | 
 |  |  | ); | 
 |  |  |  | 
 |  |  | async function openDialog(row?: API.GetEnterpriseEmployeesQueryResultItem) { | 
 |  |  |   const res = await getUserDetailForBack('98ac4c01-3598-ebf3-fa7d-3a189bb6b587'); | 
 |  |  | async function openDialog(row?: API.GetPersonalUserInfosQueryResultItem) { | 
 |  |  |   handleEdit({ | 
 |  |  |     userId: row.userId ?? '98ac4c01-3598-ebf3-fa7d-3a189bb6b587', | 
 |  |  |     name: res.name, | 
 |  |  |     idNumber: res.idNumber, | 
 |  |  |     contactPhone: res.contactPhone, | 
 |  |  |     age: res.age, | 
 |  |  |     certificateFrontImgUrl: res.certificateFrontImgUrl | 
 |  |  |       ? convertApi2FormUrlOnlyOne(res.certificateFrontImgUrl) | 
 |  |  |       : [], | 
 |  |  |     certificateBackImgUrl: res.certificateBackImgUrl | 
 |  |  |       ? convertApi2FormUrlOnlyOne(res.certificateBackImgUrl) | 
 |  |  |       : [], | 
 |  |  |     id: row.id ?? '', | 
 |  |  |     name: row.name ?? '', | 
 |  |  |     identity: row.identity ?? '', | 
 |  |  |     contactPhoneNumber: row.contactPhoneNumber, | 
 |  |  |     age: row.age ?? ('' as any as number), | 
 |  |  |     identityImg: row.identityImg ? convertApi2FormUrlOnlyOne(row.identityImg) : [], | 
 |  |  |     identityBackImg: row.identityBackImg ? convertApi2FormUrlOnlyOne(row.identityBackImg) : [], | 
 |  |  |  | 
 |  |  |     genderType: Gender.Female, | 
 |  |  |     gender: row.gender, | 
 |  |  |     tabType: 'user', | 
 |  |  |   }); | 
 |  |  | } | 
 |  |  |  | 
 |  |  | const { dialogProps, handleEdit } = useFormDialog({ | 
 |  |  |   defaultFormParams: { | 
 |  |  |     userId: '', | 
 |  |  |     id: '', | 
 |  |  |     name: '', | 
 |  |  |     idNumber: '', | 
 |  |  |     contactPhone: '', | 
 |  |  |     identity: '', | 
 |  |  |     contactPhoneNumber: '', | 
 |  |  |     age: 0, | 
 |  |  |     genderType: '' as any as Gender, | 
 |  |  |     certificateFrontImgUrl: [] as UploadUserFile[], | 
 |  |  |     certificateBackImgUrl: [] as UploadUserFile[], | 
 |  |  |     gender: '' as any as EnumUserGender, | 
 |  |  |     identityImg: [] as UploadUserFile[], | 
 |  |  |     identityBackImg: [] as UploadUserFile[], | 
 |  |  |  | 
 |  |  |     tabType: '', | 
 |  |  |   }, | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | async function getUserDetailForBack(userId: string) { | 
 |  |  |   try { | 
 |  |  |     // return await flexEnterpriseWokerServices.getUserDetailForBack({ userId: userId }); | 
 |  |  |   } catch (error) {} | 
 |  |  | } | 
 |  |  | </script> |