<template>
|
<ProForm :model="detail" ref="dialogForm" label-width="120px" is-read>
|
<ProFormCol>
|
<ProFormColItem :span="12">
|
<ProFormItemV2 label="姓名:" prop="name">
|
<ProFormText v-model.trim="detail.name"></ProFormText>
|
</ProFormItemV2>
|
</ProFormColItem>
|
<ProFormColItem :span="12">
|
<ProFormItemV2 label="实名时间:" prop="userRealTime">
|
<div>{{ format(detail.userRealTime, 'YYYY-MM-DD HH:mm') }}</div>
|
</ProFormItemV2>
|
</ProFormColItem>
|
</ProFormCol>
|
<ProFormCol>
|
<ProFormColItem :span="12">
|
<ProFormItemV2 label="身份证号:" prop="identity">
|
<ProFormText v-model.trim="detail.identity"></ProFormText>
|
</ProFormItemV2>
|
</ProFormColItem>
|
</ProFormCol>
|
<ProFormCol>
|
<ProFormColItem :span="12">
|
<ProFormItemV2 label="手机号:" prop="contactPhoneNumber">
|
<ProFormText v-model.trim="detail.contactPhoneNumber"></ProFormText>
|
</ProFormItemV2>
|
</ProFormColItem>
|
</ProFormCol>
|
<ProFormCol>
|
<ProFormColItem :span="12">
|
<ProFormItemV2 label="性别:" prop="gender">
|
<ProFormRadio
|
v-model="detail.gender"
|
:value-enum="EnumUserGenderTextForPerson"
|
></ProFormRadio>
|
</ProFormItemV2>
|
</ProFormColItem>
|
</ProFormCol>
|
<ProFormCol>
|
<ProFormColItem :span="12">
|
<ProFormItemV2 label="年龄:" prop="age">
|
<ProFormInputNumber v-model="detail.age"> </ProFormInputNumber>
|
</ProFormItemV2>
|
</ProFormColItem>
|
</ProFormCol>
|
<ProFormItemV2 label="身份证正面:" prop="identityImg">
|
<ProFormImageUpload v-model:file-url="detail.identityImg"> </ProFormImageUpload>
|
</ProFormItemV2>
|
<ProFormItemV2 label="身份证反面:" prop="identityBackImg">
|
<ProFormImageUpload v-model:file-url="detail.identityBackImg"> </ProFormImageUpload>
|
</ProFormItemV2>
|
</ProForm>
|
</template>
|
|
<script setup lang="ts">
|
import {
|
ProForm,
|
ProFormCol,
|
ProFormColItem,
|
ProFormItemV2,
|
ProFormText,
|
ProFormInputNumber,
|
ProFormImageUpload,
|
ProFormRadio,
|
UploadUserFile,
|
} from '@bole-core/components';
|
import { convertApi2FormUrlOnlyOne, format } from '@/utils';
|
import { useQuery } from '@tanstack/vue-query';
|
import { EnumUserGender, EnumUserGenderTextForPerson } from '@/constants';
|
import * as enterpriseEmployeeServices from '@/services/api/enterpriseEmployee';
|
|
defineOptions({
|
name: 'StaffDetailInfoView',
|
});
|
|
type Form = {
|
id: string;
|
};
|
|
const form = defineModel<Form>('form');
|
|
const detail = reactive({
|
name: '',
|
identity: '',
|
contactPhoneNumber: '',
|
gender: EnumUserGender.Male,
|
age: 0,
|
identityImg: [] as UploadUserFile[],
|
identityBackImg: [] as UploadUserFile[],
|
userRealTime: '',
|
});
|
|
const { isLoading } = useQuery({
|
queryKey: ['enterpriseEmployeeServices/getEnterpriseEmployee', form.value.id],
|
queryFn: async () => {
|
return await enterpriseEmployeeServices.getEnterpriseEmployee({ id: form.value.id });
|
},
|
onSuccess(data) {
|
detail.name = data.name;
|
detail.identity = data.identity;
|
detail.contactPhoneNumber = data.contactPhoneNumber;
|
detail.gender = data.gender;
|
detail.age = data.age ?? 0;
|
detail.identityImg = data.identityImg ? convertApi2FormUrlOnlyOne(data.identityImg) : [];
|
detail.identityBackImg = data.identityBackImg
|
? convertApi2FormUrlOnlyOne(data.identityBackImg)
|
: [];
|
detail.userRealTime = data.userRealTime ?? '';
|
},
|
enabled: computed(() => !!form.value.id),
|
});
|
</script>
|