| | |
| | | <ProDialog title="申请详情" v-model="visible" width="1200px" destroy-on-close> |
| | | <ProTabs v-model="form.tabType" hasBorder> |
| | | <ProTabPane lazy label="人员详情" name="user"> |
| | | <ProForm :model="form" ref="dialogForm" label-width="120px" is-read> |
| | | <ProFormItemV2 label="姓名:" prop="name"> |
| | | <ProFormText v-model.trim="form.name" /> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 label="身份证号:" prop="idNumber"> |
| | | <ProFormText v-model.trim="form.idNumber" /> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 label="手机号:" prop="contactPhone"> |
| | | <ProFormText v-model.trim="form.contactPhone" /> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 label="性别:" prop="age"> |
| | | <ProFormRadio v-model="form.genderType" :value-enum="GenderText"></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> |
| | | <ProFormItemV2 label="身份证反面:" prop="certificateBackImgUrl"> |
| | | <ProFormImageUpload v-model:file-url="form.certificateBackImgUrl" /> |
| | | </ProFormItemV2> |
| | | </ProForm> |
| | | <!-- <StaffDetailInfoView :form="form" /> --> |
| | | </ProTabPane> |
| | | <ProTabPane lazy label="人员简历" name="resume"> |
| | | <!-- <StaffResumeView :form="form" /> --> |
| | | </ProTabPane> |
| | | <ProTabPane lazy label="签约详情" name="sign"> |
| | | <ProDialogTableWrapper :height="400"> |
| | | <ProTableV2 v-bind="proTableProps" :columns="column" :show-operation-column="false"> |
| | | </ProTableV2> |
| | | </ProDialogTableWrapper> |
| | | <SignDetailView :form="form" /> |
| | | </ProTabPane> |
| | | </ProTabs> |
| | | <template #footer> |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { |
| | | ProDialog, |
| | | ProTableV2, |
| | | ProDialogTableWrapper, |
| | | ProTabs, |
| | | ProTabPane, |
| | | useTable, |
| | | ProForm, |
| | | ProFormItemV2, |
| | | ProFormText, |
| | | UploadUserFile, |
| | | ProFormImageUpload, |
| | | ProFormRadio, |
| | | ProFormInputNumber, |
| | | defineColumns, |
| | | } from '@bole-core/components'; |
| | | import { OrderInputType } from '@bole-core/core'; |
| | | import { ProDialog, ProTabs, ProTabPane } from '@bole-core/components'; |
| | | import _ from 'lodash'; |
| | | import { setOSSLink } from '@/utils'; |
| | | import { |
| | | FlexTaskWorkerHireEnumText, |
| | | FlexWorkerEleSignEnumText, |
| | | Gender, |
| | | GenderText, |
| | | } from '@/constants'; |
| | | import StaffDetailInfoView from './StaffDetailInfoView.vue'; |
| | | import StaffResumeView from './StaffResumeView.vue'; |
| | | import SignDetailView from './SignDetailView.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'CPersonDetailDialog', |
| | |
| | | |
| | | type Form = { |
| | | tabType: string; |
| | | userId: string; |
| | | name: string; |
| | | idNumber: string; |
| | | contactPhone: string; |
| | | age: number; |
| | | genderType: Gender; |
| | | certificateFrontImgUrl: UploadUserFile[]; |
| | | certificateBackImgUrl: UploadUserFile[]; |
| | | id: string; |
| | | }; |
| | | |
| | | 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', |
| | | name: '所属客户', |
| | | }, |
| | | { |
| | | id: '2', |
| | | enCode: 'applyTime', |
| | | name: '报名时间', |
| | | }, |
| | | { |
| | | id: '3', |
| | | enCode: 'hireStatus', |
| | | name: '录用状态', |
| | | }, |
| | | { |
| | | id: '4', |
| | | enCode: 'hireDateTime', |
| | | name: '录用时间', |
| | | }, |
| | | { |
| | | id: '5', |
| | | enCode: 'userSignStatus', |
| | | name: '签约状态', |
| | | }, |
| | | { |
| | | id: '6', |
| | | enCode: 'enterSignStatus', |
| | | name: '企业签约状态', |
| | | }, |
| | | { |
| | | id: '7', |
| | | enCode: 'enterSignTime', |
| | | name: '企业签约时间', |
| | | }, |
| | | { |
| | | id: '8', |
| | | enCode: 'contractUrl', |
| | | name: '电子合同', |
| | | }, |
| | | ]); |
| | | |
| | | watch( |
| | | () => visible.value, |
| | | (val) => { |
| | | if (val) { |
| | | getList(); |
| | | } |
| | | } |
| | | ); |
| | | |
| | | const { |
| | | getDataSource: getList, |
| | | proTableProps, |
| | | paginationState, |
| | | extraParamState, |
| | | } = useTable( |
| | | async ({ pageIndex, pageSize }, extraParamState) => { |
| | | try { |
| | | let params: API.GetUserClientSignListInput = { |
| | | pageModel: { |
| | | rows: pageSize, |
| | | page: pageIndex, |
| | | orderInput: extraParamState.orderInput, |
| | | }, |
| | | userId: form.value.userId, |
| | | }; |
| | | let res = await flexEnterpriseWokerServices.getUserClientSignList(params); |
| | | return res; |
| | | } catch (error) {} |
| | | }, |
| | | { |
| | | defaultExtraParams: { |
| | | orderInput: [{ property: 'applyTime', order: OrderInputType.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 }, |
| | | }, |
| | | } |
| | | ); |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |