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