|  |  |  | 
|---|
|  |  |  | <template #query> | 
|---|
|  |  |  | <QueryFilterItem tip-content="实名状态"> | 
|---|
|  |  |  | <FieldRadio | 
|---|
|  |  |  | v-model="extraParamState.realVerifyStatus" | 
|---|
|  |  |  | v-model="extraParamState.isReal" | 
|---|
|  |  |  | :value-enum="[ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: false, | 
|---|
|  |  |  | label: '未实名', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: true, | 
|---|
|  |  |  | label: '已实名', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { label: '已实名', value: true }, | 
|---|
|  |  |  | { label: '未实名', value: false }, | 
|---|
|  |  |  | ]" | 
|---|
|  |  |  | buttonStyle | 
|---|
|  |  |  | showAllBtn | 
|---|
|  |  |  | :all-btn-value="null" | 
|---|
|  |  |  | @change="getList()" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </QueryFilterItem> | 
|---|
|  |  |  | <QueryFilterItem tip-content="最近录用时间"> | 
|---|
|  |  |  | <FieldDatePicker | 
|---|
|  |  |  | v-model="extraParamState.nearlyHireDateTime" | 
|---|
|  |  |  | v-model="extraParamState.hireTime" | 
|---|
|  |  |  | type="daterange" | 
|---|
|  |  |  | range-separator="~" | 
|---|
|  |  |  | start-placeholder="开始时间" | 
|---|
|  |  |  | 
|---|
|  |  |  | </QueryFilterItem> | 
|---|
|  |  |  | <QueryFilterItem tip-content="最近签约时间"> | 
|---|
|  |  |  | <FieldDatePicker | 
|---|
|  |  |  | v-model="extraParamState.nearlySignDateTime" | 
|---|
|  |  |  | v-model="extraParamState.signContractTime" | 
|---|
|  |  |  | 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 { OrderInputType } from '@bole-core/core'; | 
|---|
|  |  |  | import { convertApi2FormUrlOnlyOne, format } from '@/utils'; | 
|---|
|  |  |  | import { ModelValueType } from 'element-plus'; | 
|---|
|  |  |  | import * as userServices from '@/services/api/user'; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | defineOptions({ | 
|---|
|  |  |  | name: 'CPersonManageList', | 
|---|
|  |  |  | 
|---|
|  |  |  | } = useTable( | 
|---|
|  |  |  | async ({ pageIndex, pageSize }, extraParamState) => { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | let params: API.GetUserClientForBackInput = { | 
|---|
|  |  |  | let params: API.GetPersonalUserInfosQuery = { | 
|---|
|  |  |  | pageModel: { | 
|---|
|  |  |  | rows: pageSize, | 
|---|
|  |  |  | page: pageIndex, | 
|---|
|  |  |  | orderInput: extraParamState.orderInput, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | searchKeys: extraParamState.searchKeys, | 
|---|
|  |  |  | nearlyHireDateTimeBegin: format( | 
|---|
|  |  |  | extraParamState.nearlyHireDateTime?.[0] ?? '', | 
|---|
|  |  |  | 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' | 
|---|
|  |  |  | ), | 
|---|
|  |  |  | nearlyHireDateTimeEnd: format( | 
|---|
|  |  |  | extraParamState.nearlyHireDateTime?.[1] ?? '', | 
|---|
|  |  |  | 'YYYY-MM-DD 23:59:59' | 
|---|
|  |  |  | ), | 
|---|
|  |  |  | nearlySignDateTimeBegin: format( | 
|---|
|  |  |  | extraParamState.nearlySignDateTime?.[0] ?? '', | 
|---|
|  |  |  | 'YYYY-MM-DD 00:00:00' | 
|---|
|  |  |  | ), | 
|---|
|  |  |  | nearlySignDateTimeEnd: format( | 
|---|
|  |  |  | extraParamState.nearlySignDateTime?.[1] ?? '', | 
|---|
|  |  |  | 'YYYY-MM-DD 23:59:59' | 
|---|
|  |  |  | ), | 
|---|
|  |  |  | realVerifyStatus: extraParamState.realVerifyStatus, | 
|---|
|  |  |  | signContractEnd: format(extraParamState.signContractTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), | 
|---|
|  |  |  | isReal: extraParamState.isReal, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | let res = await flexEnterpriseWokerServices.getUserClientList(params, { | 
|---|
|  |  |  | let res = await userServices.getPersonalUserInfos(params, { | 
|---|
|  |  |  | showLoading: !state.loading, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | return res; | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | defaultExtraParams: { | 
|---|
|  |  |  | searchKeys: '', | 
|---|
|  |  |  | realVerifyStatus: '' as any as boolean, | 
|---|
|  |  |  | nearlyHireDateTime: [] as unknown as ModelValueType, | 
|---|
|  |  |  | nearlySignDateTime: [] as unknown as ModelValueType, | 
|---|
|  |  |  | orderInput: [{ property: 'userId', order: OrderInputType.Desc }], | 
|---|
|  |  |  | keywords: '', | 
|---|
|  |  |  | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], | 
|---|
|  |  |  | hireTime: [] as unknown as ModelValueType, | 
|---|
|  |  |  | signContractTime: [] as unknown as ModelValueType, | 
|---|
|  |  |  | isReal: null as any as boolean, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | queryKey: ['flexEnterpriseWokerServices/getUserClientList'], | 
|---|
|  |  |  | queryKey: ['userServices/getPersonalUserInfos'], | 
|---|
|  |  |  | columnsRenderProps: { | 
|---|
|  |  |  | realVerifyStatus: { | 
|---|
|  |  |  | type: 'enum', | 
|---|
|  |  |  | valueEnum: [ | 
|---|
|  |  |  | { label: '已实名', value: true }, | 
|---|
|  |  |  | { label: '未实名', value: false }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson }, | 
|---|
|  |  |  | isReal: { | 
|---|
|  |  |  | formatter: (row: API.GetPersonalUserInfosQueryResultItem) => { | 
|---|
|  |  |  | return row.isReal ? '已实名' : '未实名'; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | realVerifyTime: { type: 'date' }, | 
|---|
|  |  |  | hireTime: { 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.GetUserClientForBackOutput) { | 
|---|
|  |  |  | 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> | 
|---|