|  |  | 
 |  |  |           <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> | 
 |  |  | 
 |  |  |   ProFormImageUpload, | 
 |  |  |   ProFormRadio, | 
 |  |  |   ProFormInputNumber, | 
 |  |  |   defineColumns, | 
 |  |  |   PreviewBtn, | 
 |  |  | } from '@bole-core/components'; | 
 |  |  | import { OrderInputType } from '@bole-core/core'; | 
 |  |  | 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: API.CustomModuleColumnDto[] = [ | 
 |  |  | 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: '企业签约时间', | 
 |  |  |   }, | 
 |  |  |   { | 
 |  |  | 
 |  |  |     enCode: 'contractUrl', | 
 |  |  |     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: OrderInputType.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), | 
 |  |  |       // }, | 
 |  |  |     }, | 
 |  |  |   } | 
 |  |  | ); |