|  |  |  | 
|---|
|  |  |  | <ProFormItemV2 label="姓名:" prop="name"> | 
|---|
|  |  |  | <ProFormText v-model.trim="form.name" /> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | <ProFormItemV2 label="身份证号:" prop="idNumber"> | 
|---|
|  |  |  | <ProFormText v-model.trim="form.idNumber" /> | 
|---|
|  |  |  | <ProFormItemV2 label="身份证号:" prop="identity"> | 
|---|
|  |  |  | <ProFormText v-model.trim="form.identity" /> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | <ProFormItemV2 label="手机号:" prop="contactPhone"> | 
|---|
|  |  |  | <ProFormText v-model.trim="form.contactPhone" /> | 
|---|
|  |  |  | <ProFormItemV2 label="手机号:" prop="contactPhoneNumber"> | 
|---|
|  |  |  | <ProFormText v-model.trim="form.contactPhoneNumber" /> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | <ProFormItemV2 label="性别:" prop="age"> | 
|---|
|  |  |  | <ProFormRadio v-model="form.genderType" :value-enum="GenderText"></ProFormRadio> | 
|---|
|  |  |  | <ProFormItemV2 label="性别:" prop="gender"> | 
|---|
|  |  |  | <ProFormRadio | 
|---|
|  |  |  | v-model="form.gender" | 
|---|
|  |  |  | :value-enum="EnumUserGenderTextForPerson" | 
|---|
|  |  |  | ></ProFormRadio> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | <ProFormItemV2 label="年龄:" prop="age"> | 
|---|
|  |  |  | <ProFormInputNumber v-model="form.age" unit="岁"></ProFormInputNumber> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | <ProFormItemV2 label="身份证正面:" prop="certificateFrontImgUrl"> | 
|---|
|  |  |  | <ProFormImageUpload v-model:file-url="form.certificateFrontImgUrl" /> | 
|---|
|  |  |  | <ProFormItemV2 label="身份证正面:" prop="identityImg"> | 
|---|
|  |  |  | <ProFormImageUpload v-model:file-url="form.identityImg" /> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | <ProFormItemV2 label="身份证反面:" prop="certificateBackImgUrl"> | 
|---|
|  |  |  | <ProFormImageUpload v-model:file-url="form.certificateBackImgUrl" /> | 
|---|
|  |  |  | <ProFormItemV2 label="身份证反面:" prop="identityBackImg"> | 
|---|
|  |  |  | <ProFormImageUpload v-model:file-url="form.identityBackImg" /> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | </ProForm> | 
|---|
|  |  |  | </ProTabPane> | 
|---|
|  |  |  | <ProTabPane lazy label="签约详情" name="sign"> | 
|---|
|  |  |  | <ProDialogTableWrapper :height="400"> | 
|---|
|  |  |  | <ProTableV2 v-bind="proTableProps" :columns="column" :show-operation-column="false"> | 
|---|
|  |  |  | <template #contractUrl="{ row }"> | 
|---|
|  |  |  | <PreviewBtn | 
|---|
|  |  |  | v-if=" | 
|---|
|  |  |  | row.userSignContractStatus === EnumTaskUserSignContractStatus.Pass && | 
|---|
|  |  |  | row.contractUrl | 
|---|
|  |  |  | " | 
|---|
|  |  |  | :show-download-btn="false" | 
|---|
|  |  |  | :url="setOSSLink(row.contractUrl)" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </PreviewBtn> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </ProTableV2> | 
|---|
|  |  |  | </ProDialogTableWrapper> | 
|---|
|  |  |  | </ProTabPane> | 
|---|
|  |  |  | 
|---|
|  |  |  | ProFormRadio, | 
|---|
|  |  |  | ProFormInputNumber, | 
|---|
|  |  |  | defineColumns, | 
|---|
|  |  |  | PreviewBtn, | 
|---|
|  |  |  | } from '@bole-core/components'; | 
|---|
|  |  |  | import _ from 'lodash'; | 
|---|
|  |  |  | import { setOSSLink } from '@/utils'; | 
|---|
|  |  |  | import * as userServices from '@/services/api/user'; | 
|---|
|  |  |  | import { | 
|---|
|  |  |  | FlexTaskWorkerHireEnumText, | 
|---|
|  |  |  | FlexWorkerEleSignEnumText, | 
|---|
|  |  |  | Gender, | 
|---|
|  |  |  | GenderText, | 
|---|
|  |  |  | EnumUserGender, | 
|---|
|  |  |  | EnumUserGenderTextForPerson, | 
|---|
|  |  |  | EnumTaskUserHireStatusText, | 
|---|
|  |  |  | EnumTaskUserSignContractStatusText, | 
|---|
|  |  |  | EnumTaskUserSignContractStatus, | 
|---|
|  |  |  | } from '@/constants'; | 
|---|
|  |  |  | import { setOSSLink } from '@/utils'; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | defineOptions({ | 
|---|
|  |  |  | name: 'CPersonDetailDialog', | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | type Form = { | 
|---|
|  |  |  | tabType: string; | 
|---|
|  |  |  | userId: string; | 
|---|
|  |  |  | id: string; | 
|---|
|  |  |  | name: string; | 
|---|
|  |  |  | idNumber: string; | 
|---|
|  |  |  | contactPhone: string; | 
|---|
|  |  |  | identity: string; | 
|---|
|  |  |  | contactPhoneNumber: string; | 
|---|
|  |  |  | age: number; | 
|---|
|  |  |  | genderType: Gender; | 
|---|
|  |  |  | certificateFrontImgUrl: UploadUserFile[]; | 
|---|
|  |  |  | certificateBackImgUrl: UploadUserFile[]; | 
|---|
|  |  |  | gender: EnumUserGender; | 
|---|
|  |  |  | identityImg: UploadUserFile[]; | 
|---|
|  |  |  | identityBackImg: UploadUserFile[]; | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const form = defineModel<Form>('form'); | 
|---|
|  |  |  | const visible = defineModel<boolean>('visible'); | 
|---|
|  |  |  | const visible = defineModel<boolean>('modelValue'); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const emit = defineEmits<{ | 
|---|
|  |  |  | (e: 'onCancel'): void; | 
|---|
|  |  |  | 
|---|
|  |  |  | const column = defineColumns([ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | id: '1', | 
|---|
|  |  |  | enCode: 'enterpirseName', | 
|---|
|  |  |  | enCode: 'enterpriseName', | 
|---|
|  |  |  | name: '所属客户', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | id: '4', | 
|---|
|  |  |  | enCode: 'hireDateTime', | 
|---|
|  |  |  | enCode: 'hireTime', | 
|---|
|  |  |  | name: '录用时间', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | id: '5', | 
|---|
|  |  |  | enCode: 'userSignStatus', | 
|---|
|  |  |  | enCode: 'userSignContractStatus', | 
|---|
|  |  |  | name: '签约状态', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | id: '6', | 
|---|
|  |  |  | enCode: 'enterSignStatus', | 
|---|
|  |  |  | enCode: 'enterpriseSignContractStatus', | 
|---|
|  |  |  | name: '企业签约状态', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | id: '7', | 
|---|
|  |  |  | enCode: 'enterSignTime', | 
|---|
|  |  |  | enCode: 'enterpriseSignContractTime', | 
|---|
|  |  |  | name: '企业签约时间', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 
|---|
|  |  |  | ]); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | watch( | 
|---|
|  |  |  | () => visible.value, | 
|---|
|  |  |  | visible, | 
|---|
|  |  |  | (val) => { | 
|---|
|  |  |  | console.log('val: ', val); | 
|---|
|  |  |  | if (val) { | 
|---|
|  |  |  | getList(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | immediate: true, | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } = useTable( | 
|---|
|  |  |  | async ({ pageIndex, pageSize }, extraParamState) => { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | let params: API.GetUserClientSignListInput = { | 
|---|
|  |  |  | let params: API.GetPersonalUserInfoSignContractsQuery = { | 
|---|
|  |  |  | pageModel: { | 
|---|
|  |  |  | rows: pageSize, | 
|---|
|  |  |  | page: pageIndex, | 
|---|
|  |  |  | orderInput: extraParamState.orderInput, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | userId: form.value.userId, | 
|---|
|  |  |  | id: form.value.id, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | let res = await flexEnterpriseWokerServices.getUserClientSignList(params); | 
|---|
|  |  |  | let res = await userServices.getPersonalUserInfoSignContracts(params); | 
|---|
|  |  |  | return res; | 
|---|
|  |  |  | } catch (error) {} | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | defaultExtraParams: { | 
|---|
|  |  |  | orderInput: [{ property: 'applyTime', order: EnumPagedListOrder.Desc }], | 
|---|
|  |  |  | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | columnsRenderProps: { | 
|---|
|  |  |  | applyTime: { type: 'date' }, | 
|---|
|  |  |  | hireDateTime: { type: 'date' }, | 
|---|
|  |  |  | userSignTime: { type: 'date' }, | 
|---|
|  |  |  | hireStatus: { type: 'enum', valueEnum: FlexTaskWorkerHireEnumText }, | 
|---|
|  |  |  | userSignStatus: { type: 'enum', valueEnum: FlexWorkerEleSignEnumText }, | 
|---|
|  |  |  | enterSignStatus: { type: 'enum', valueEnum: FlexWorkerEleSignEnumText }, | 
|---|
|  |  |  | hireTime: { type: 'date' }, | 
|---|
|  |  |  | enterpriseSignContractTime: { type: 'date' }, | 
|---|
|  |  |  | hireStatus: { type: 'enum', valueEnum: EnumTaskUserHireStatusText }, | 
|---|
|  |  |  | userSignContractStatus: { type: 'enum', valueEnum: EnumTaskUserSignContractStatusText }, | 
|---|
|  |  |  | enterpriseSignContractStatus: { type: 'enum', valueEnum: EnumTaskUserSignContractStatusText }, | 
|---|
|  |  |  | // contractUrl: { | 
|---|
|  |  |  | //   type: 'url', | 
|---|
|  |  |  | //   showDownloadBtn: false, | 
|---|
|  |  |  | //   formatter: (row: API.GetPersonalUserInfoSignContractsQueryResultItem) => | 
|---|
|  |  |  | //     setOSSLink(row.contractUrl), | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|