From 268bf6d9cbfc7c534f231991e88bab727c6e0a28 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期四, 14 八月 2025 11:06:08 +0800 Subject: [PATCH] feat: 接口 --- src/views/EmploymentManage/EmploymentSignList.vue | 133 ++++++++++++++++++++++++++++++++------------ 1 files changed, 97 insertions(+), 36 deletions(-) diff --git a/src/views/EmploymentManage/EmploymentSignList.vue b/src/views/EmploymentManage/EmploymentSignList.vue index 79703e5..043951e 100644 --- a/src/views/EmploymentManage/EmploymentSignList.vue +++ b/src/views/EmploymentManage/EmploymentSignList.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()" @@ -19,7 +16,7 @@ <SearchInput v-model="extraParamState.searchWord" style="width: 250px" - placeholder="浠诲姟鍚嶇О" + placeholder="濮撳悕/韬唤璇佸彿/鐢佃瘽" @on-click-search="getList" @keyup.enter="getList()" > @@ -34,6 +31,7 @@ > </ProTableV2> </AppContainer> + <StaffInfoDialog v-bind="dialogStaffInfoProps" /> </LoadingLayout> </template> @@ -46,16 +44,18 @@ AppContainer, QueryFilterItem, useTable, - FieldDatePicker, FieldRadio, defineOperationBtns, + 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 { useGlobalEventContext } from '@/hooks'; -import { FlexEnterpriseSettingStatus } 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', @@ -77,10 +77,11 @@ name: '褰曠敤', }, emits: { - onClick: (role) => handleRecruit(role), + onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Pass), }, extraProps: { - hide: (row) => false, + hide: (row: API.GetTaskUsersQueryResultItem) => + row.hireStatus === EnumTaskUserHireStatus.Pass, }, }, { @@ -89,31 +90,23 @@ name: '璋㈢粷', }, emits: { - onClick: (role) => handleRefuse(role), + onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Refuse), }, extraProps: { - hide: (row) => false, + hide: (row: API.GetTaskUsersQueryResultItem) => + row.hireStatus !== EnumTaskUserHireStatus.Wait, }, }, ]); const router = useRouter(); - +const route = useRoute(); +const id = route.params.id as string; const BaseState = { loading: true, }; const state = reactive({ ...BaseState }); - -const eventContext = useGlobalEventContext(); - -eventContext.addEvent('employment:add', () => { - getList(); -}); - -eventContext.addEvent('employment:edit', () => { - getList(paginationState.pageIndex); -}); onMounted(async () => { await getList(); @@ -129,17 +122,18 @@ } = 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; @@ -150,14 +144,81 @@ { 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 }, + }, } ); -function handleRecruit(row) {} -function handleRefuse(row) {} +const { + dialogProps: dialogStaffInfoProps, + handleEdit: handleStaffInfoEdit, + editForm: staffInfoEditForm, +} = useFormDialog({ + defaultFormParams: { + id: '', + name: '', + identity: '', + contactPhoneNumber: '', + gender: EnumUserGender.Male, + age: null as any as number, + idFrontUrl: [] as UploadUserFile[], + idBackUrl: [] as UploadUserFile[], + contractUrl: [] as UploadUserFile[], + regiterTime: '', + userRealTime: '', + userSignContractTime: '', + isDetail: false, + }, +}); + +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, + idFrontUrl: convertApi2FormUrlOnlyOne(detail.identityImg), + idBackUrl: 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) {} +} + +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> -- Gitblit v1.9.1