|  |  |  | 
|---|
|  |  |  | <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()" | 
|---|
|  |  |  | 
|---|
|  |  |  | useFormDialog, | 
|---|
|  |  |  | UploadUserFile, | 
|---|
|  |  |  | } from '@bole-core/components'; | 
|---|
|  |  |  | import * as flexEnterpriseServices from '@/services/api/FlexEnterprise'; | 
|---|
|  |  |  | import { EmploymentSignColumns } from './constants/columns'; | 
|---|
|  |  |  | import { OrderInputType, Message } from '@bole-core/core'; | 
|---|
|  |  |  | import { FlexEnterpriseSettingStatus, Gender } from '@/constants'; | 
|---|
|  |  |  | import { Message } from '@bole-core/core'; | 
|---|
|  |  |  | import { EnumUserGender, EnumTaskUserHireStatusText } from '@/constants'; | 
|---|
|  |  |  | import StaffInfoDialog from '@/views/FlexJobManage/components/StaffInfoDialog.vue'; | 
|---|
|  |  |  | import { convertApi2FormUrlOnlyOne } from '@/utils'; | 
|---|
|  |  |  | import * as taskUserServices from '@/services/api/taskUser'; | 
|---|
|  |  |  | import * as enterpriseEmployeeServices from '@/services/api/enterpriseEmployee'; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | defineOptions({ | 
|---|
|  |  |  | name: 'EmploymentSignList', | 
|---|
|  |  |  | 
|---|
|  |  |  | name: '录用', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | emits: { | 
|---|
|  |  |  | onClick: (role) => handleRecruit(role), | 
|---|
|  |  |  | onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Pass), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | extraProps: { | 
|---|
|  |  |  | hide: (row) => false, | 
|---|
|  |  |  | hide: (row: API.GetTaskUsersQueryResultItem) => | 
|---|
|  |  |  | row.hireStatus === EnumTaskUserHireStatus.Pass, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 
|---|
|  |  |  | name: '谢绝', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | emits: { | 
|---|
|  |  |  | onClick: (role) => handleRefuse(role), | 
|---|
|  |  |  | onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Refuse), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | extraProps: { | 
|---|
|  |  |  | hide: (row) => false, | 
|---|
|  |  |  | hide: (row: API.GetTaskUsersQueryResultItem) => | 
|---|
|  |  |  | row.hireStatus !== EnumTaskUserHireStatus.Wait, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ]); | 
|---|
|  |  |  | 
|---|
|  |  |  | } = useTable( | 
|---|
|  |  |  | async ({ pageIndex, pageSize }, extraParamState) => { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | let params: API.GetFlexEnterpriseInput = { | 
|---|
|  |  |  | let params: API.GetTaskUsersQuery = { | 
|---|
|  |  |  | pageModel: { | 
|---|
|  |  |  | rows: pageSize, | 
|---|
|  |  |  | page: pageIndex, | 
|---|
|  |  |  | orderInput: extraParamState.orderInput, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus, | 
|---|
|  |  |  | searchWord: extraParamState.searchWord, | 
|---|
|  |  |  | id: id, | 
|---|
|  |  |  | keywords: extraParamState.searchWord, | 
|---|
|  |  |  | hireStatus: extraParamState.hireStatus, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | let res = await flexEnterpriseServices.getFlexEnterpriseList(params, { | 
|---|
|  |  |  | let res = await taskUserServices.getTaskUsers(params, { | 
|---|
|  |  |  | showLoading: !state.loading, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | return res; | 
|---|
|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | defaultExtraParams: { | 
|---|
|  |  |  | searchWord: '', | 
|---|
|  |  |  | orderInput: [{ property: 'id', order: OrderInputType.Desc }], | 
|---|
|  |  |  | flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, | 
|---|
|  |  |  | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], | 
|---|
|  |  |  | hireStatus: '' as any as EnumTaskUserHireStatus, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], | 
|---|
|  |  |  | columnsRenderProps: {}, | 
|---|
|  |  |  | queryKey: ['taskUserServices/getTaskUsers'], | 
|---|
|  |  |  | columnsRenderProps: { | 
|---|
|  |  |  | gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson }, | 
|---|
|  |  |  | hireStatus: { type: 'enum', valueEnum: EnumTaskUserHireStatusText }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | defaultFormParams: { | 
|---|
|  |  |  | id: '', | 
|---|
|  |  |  | name: '', | 
|---|
|  |  |  | idNumber: '', | 
|---|
|  |  |  | phoneNumber: '', | 
|---|
|  |  |  | genderType: Gender.Male, | 
|---|
|  |  |  | age: 0, | 
|---|
|  |  |  | companyId: '', | 
|---|
|  |  |  | customerId: '', | 
|---|
|  |  |  | idFrontUrl: [] as UploadUserFile[], | 
|---|
|  |  |  | idBackUrl: [] as UploadUserFile[], | 
|---|
|  |  |  | identity: '', | 
|---|
|  |  |  | contactPhoneNumber: '', | 
|---|
|  |  |  | gender: EnumUserGender.Male, | 
|---|
|  |  |  | age: null as any as number, | 
|---|
|  |  |  | identityImg: [] as UploadUserFile[], | 
|---|
|  |  |  | identityBackImg: [] as UploadUserFile[], | 
|---|
|  |  |  | contractUrl: [] as UploadUserFile[], | 
|---|
|  |  |  | regiterTime: '', | 
|---|
|  |  |  | realVerifyTime: '', | 
|---|
|  |  |  | signTime: '', | 
|---|
|  |  |  | userRealTime: '', | 
|---|
|  |  |  | userSignContractTime: '', | 
|---|
|  |  |  | isDetail: false, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function openDialog(row) { | 
|---|
|  |  |  | 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, | 
|---|
|  |  |  | 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, | 
|---|
|  |  |  | isDetail: true, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | async function openDialog(row: API.GetTaskUsersQueryResultItem) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | let detail = await enterpriseEmployeeServices.getEnterpriseEmployee({ | 
|---|
|  |  |  | id: row.enterpriseEmployeeId, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | handleStaffInfoEdit({ | 
|---|
|  |  |  | 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: detail.userRealTime ?? '', | 
|---|
|  |  |  | userSignContractTime: detail.userSignContractTime ?? '', | 
|---|
|  |  |  | isDetail: true, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } catch (error) {} | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function handleRecruit(row) {} | 
|---|
|  |  |  | function handleRefuse(row) {} | 
|---|
|  |  |  | async function setTaskUserHire( | 
|---|
|  |  |  | row: API.GetTaskUsersQueryResultItem, | 
|---|
|  |  |  | hireStatus: EnumTaskUserHireStatus | 
|---|
|  |  |  | ) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | await Message.tipMessage( | 
|---|
|  |  |  | `确认要${hireStatus === EnumTaskUserHireStatus.Pass ? '录用' : '谢绝'}吗?` | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | let params: API.SetTaskUserHireCommand = { | 
|---|
|  |  |  | id: row.id, | 
|---|
|  |  |  | hireStatus: hireStatus, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | let res = await taskUserServices.setTaskUserHire(params); | 
|---|
|  |  |  | if (res) { | 
|---|
|  |  |  | Message.successMessage('操作成功'); | 
|---|
|  |  |  | getList(paginationState.pageIndex); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (error) {} | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </script> | 
|---|