| | |
| | | <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="identity"> |
| | | <ProFormText v-model.trim="form.identity" /> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 label="手机号:" prop="contactPhoneNumber"> |
| | | <ProFormText v-model.trim="form.contactPhoneNumber" /> |
| | | </ProFormItemV2> |
| | | <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="identityImg"> |
| | | <ProFormImageUpload v-model:file-url="form.identityImg" /> |
| | | </ProFormItemV2> |
| | | <ProFormItemV2 label="身份证反面:" prop="identityBackImg"> |
| | | <ProFormImageUpload v-model:file-url="form.identityBackImg" /> |
| | | </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 { ProDialog, ProTabs, ProTabPane } from '@bole-core/components'; |
| | | import _ from 'lodash'; |
| | | import * as userServices from '@/services/api/user'; |
| | | import { |
| | | EnumUserGender, |
| | | EnumUserGenderTextForPerson, |
| | | EnumTaskUserHireStatusText, |
| | | EnumTaskUserSignContractStatusText, |
| | | } from '@/constants'; |
| | | import StaffDetailInfoView from './StaffDetailInfoView.vue'; |
| | | import StaffResumeView from './StaffResumeView.vue'; |
| | | import SignDetailView from './SignDetailView.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'CPersonDetailDialog', |
| | |
| | | type Form = { |
| | | tabType: string; |
| | | id: string; |
| | | name: string; |
| | | identity: string; |
| | | contactPhoneNumber: string; |
| | | age: number; |
| | | gender: EnumUserGender; |
| | | identityImg: UploadUserFile[]; |
| | | identityBackImg: UploadUserFile[]; |
| | | }; |
| | | |
| | | const form = defineModel<Form>('form'); |
| | |
| | | const emit = defineEmits<{ |
| | | (e: 'onCancel'): void; |
| | | }>(); |
| | | |
| | | const column = defineColumns([ |
| | | { |
| | | id: '1', |
| | | enCode: 'enterpriseName', |
| | | name: '所属客户', |
| | | }, |
| | | { |
| | | id: '2', |
| | | enCode: 'applyTime', |
| | | name: '报名时间', |
| | | }, |
| | | { |
| | | id: '3', |
| | | enCode: 'hireStatus', |
| | | name: '录用状态', |
| | | }, |
| | | { |
| | | id: '4', |
| | | enCode: 'hireTime', |
| | | name: '录用时间', |
| | | }, |
| | | { |
| | | id: '5', |
| | | enCode: 'userSignContractStatus', |
| | | name: '签约状态', |
| | | }, |
| | | { |
| | | id: '6', |
| | | enCode: 'enterpriseSignContractStatus', |
| | | name: '企业签约状态', |
| | | }, |
| | | { |
| | | id: '7', |
| | | enCode: 'enterpriseSignContractTime', |
| | | name: '企业签约时间', |
| | | }, |
| | | { |
| | | id: '8', |
| | | enCode: 'contractUrl', |
| | | name: '电子合同', |
| | | }, |
| | | ]); |
| | | |
| | | watch( |
| | | visible, |
| | | (val) => { |
| | | console.log('val: ', val); |
| | | if (val) { |
| | | getList(); |
| | | } |
| | | }, |
| | | { |
| | | immediate: true, |
| | | } |
| | | ); |
| | | |
| | | const { |
| | | getDataSource: getList, |
| | | proTableProps, |
| | | paginationState, |
| | | extraParamState, |
| | | } = useTable( |
| | | async ({ pageIndex, pageSize }, extraParamState) => { |
| | | try { |
| | | let params: API.GetPersonalUserInfoSignContractsQuery = { |
| | | pageModel: { |
| | | rows: pageSize, |
| | | page: pageIndex, |
| | | orderInput: extraParamState.orderInput, |
| | | }, |
| | | id: form.value.id, |
| | | }; |
| | | let res = await userServices.getPersonalUserInfoSignContracts(params); |
| | | return res; |
| | | } catch (error) {} |
| | | }, |
| | | { |
| | | defaultExtraParams: { |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | columnsRenderProps: { |
| | | applyTime: { type: 'date' }, |
| | | hireTime: { type: 'date' }, |
| | | enterpriseSignContractTime: { type: 'date' }, |
| | | hireStatus: { type: 'enum', valueEnum: EnumTaskUserHireStatusText }, |
| | | userSignContractStatus: { type: 'enum', valueEnum: EnumTaskUserSignContractStatusText }, |
| | | enterpriseSignContractStatus: { type: 'enum', valueEnum: EnumTaskUserSignContractStatusText }, |
| | | contractUrl: { type: 'url' }, |
| | | }, |
| | | } |
| | | ); |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |