|
@@ -57,7 +57,7 @@ export const createCrudOptions = function ({ crudExpose, context}: CreateCrudOpt
|
|
}
|
|
}
|
|
|
|
|
|
// 创建弹窗内容
|
|
// 创建弹窗内容
|
|
- const { user_info, profile, educations, family_members, trainings, work_experiences } = profileData.data;
|
|
|
|
|
|
+ const { user_info = {}, profile = {}, educations = [], family_members = [], trainings = [], work_experiences = [] } = profileData.data || {};
|
|
|
|
|
|
// 创建一个容器元素
|
|
// 创建一个容器元素
|
|
const container = document.createElement('div');
|
|
const container = document.createElement('div');
|
|
@@ -88,90 +88,84 @@ export const createCrudOptions = function ({ crudExpose, context}: CreateCrudOpt
|
|
createVNode(ElTabPane, { label: '基本信息' }, {
|
|
createVNode(ElTabPane, { label: '基本信息' }, {
|
|
default: () => createVNode(ElDescriptions, { column: 3, border: true }, {
|
|
default: () => createVNode(ElDescriptions, { column: 3, border: true }, {
|
|
default: () => [
|
|
default: () => [
|
|
- createVNode(ElDescriptionsItem, { label: '姓名' }, { default: () => user_info.name }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '电话' }, { default: () => user_info.phone }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '年龄' }, { default: () => user_info.age }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '出生日期' }, { default: () => user_info.birth_date }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '性别' }, { default: () => user_info.gender_name }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '身份证号' }, { default: () => user_info.id_card }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '政治面貌' }, { default: () => profile.political_status }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '民族' }, { default: () => profile.ethnicity }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '身高' }, { default: () => profile.height + 'cm' }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '体重' }, { default: () => profile.weight + 'kg' }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '籍贯' }, { default: () => profile.native_place }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '户口所在地' }, { default: () => profile.household_location }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '现居地址' }, { default: () => profile.current_address }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '婚姻状况' }, { default: () => profile.marital_status_name }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '是否有子女' }, { default: () => profile.has_children ? '是' : '否' }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '期望薪资' }, { default: () => profile.expected_salary }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '紧急联系人' }, { default: () => profile.emergency_contact }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '紧急联系电话' }, { default: () => profile.emergency_phone }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '特长' }, { default: () => profile.specialties }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '人生格言' }, { default: () => profile.life_motto }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '招聘来源' }, { default: () => profile.recruitment_source_name }),
|
|
|
|
- createVNode(ElDescriptionsItem, { label: '招聘来源详情' }, { default: () => profile.recruitment_source_detail }),
|
|
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '姓名' }, { default: () => user_info?.name || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '电话' }, { default: () => user_info?.phone || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '年龄' }, { default: () => user_info?.age || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '出生日期' }, { default: () => user_info?.birth_date || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '性别' }, { default: () => user_info?.gender_name || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '身份证号' }, { default: () => user_info?.id_card || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '政治面貌' }, { default: () => profile?.political_status || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '民族' }, { default: () => profile?.ethnicity || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '身高' }, { default: () => (profile?.height ? profile.height + 'cm' : '-') }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '体重' }, { default: () => (profile?.weight ? profile.weight + 'kg' : '-') }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '籍贯' }, { default: () => profile?.native_place || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '户口所在地' }, { default: () => profile?.household_location || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '现居地址' }, { default: () => profile?.current_address || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '婚姻状况' }, { default: () => profile?.marital_status_name || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '是否有子女' }, { default: () => (profile?.has_children ? '是' : '否') }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '期望薪资' }, { default: () => profile?.expected_salary || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '紧急联系人' }, { default: () => profile?.emergency_contact || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '紧急联系电话' }, { default: () => profile?.emergency_phone || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '特长' }, { default: () => profile?.specialties || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '人生格言' }, { default: () => profile?.life_motto || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '招聘来源' }, { default: () => profile?.recruitment_source_name || '-' }),
|
|
|
|
+ createVNode(ElDescriptionsItem, { label: '招聘来源详情' }, { default: () => profile?.recruitment_source_detail || '-' }),
|
|
]
|
|
]
|
|
})
|
|
})
|
|
}),
|
|
}),
|
|
|
|
|
|
// 教育经历标签页
|
|
// 教育经历标签页
|
|
createVNode(ElTabPane, { label: '教育经历' }, {
|
|
createVNode(ElTabPane, { label: '教育经历' }, {
|
|
- default: () => createVNode(ElTable, { data: educations, border: true, stripe: true }, {
|
|
|
|
- default: () => [
|
|
|
|
- createVNode(ElTableColumn, { prop: 'education_type_name', label: '学历类型' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'degree_name', label: '学位' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'school_name', label: '学校名称' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'major', label: '专业' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'start_date', label: '开始日期' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'end_date', label: '结束日期' }),
|
|
|
|
- ]
|
|
|
|
- })
|
|
|
|
|
|
+ default: () => educations && educations.length > 0
|
|
|
|
+ ? createVNode(ElTable, { data: educations, border: true, stripe: true }, {
|
|
|
|
+ default: () => [
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'education_type_name', label: '学历类型' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'degree_name', label: '学位' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'school_name', label: '学校名称' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'major', label: '专业' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'start_date', label: '开始日期' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'end_date', label: '结束日期' }),
|
|
|
|
+ ]
|
|
|
|
+ })
|
|
|
|
+ : createVNode('div', { style: 'text-align: center; padding: 20px;' }, { default: () => '暂无教育经历数据' })
|
|
}),
|
|
}),
|
|
|
|
|
|
// 家庭成员标签页
|
|
// 家庭成员标签页
|
|
createVNode(ElTabPane, { label: '家庭成员' }, {
|
|
createVNode(ElTabPane, { label: '家庭成员' }, {
|
|
- default: () => createVNode(ElTable, { data: family_members, border: true, stripe: true }, {
|
|
|
|
- default: () => [
|
|
|
|
- createVNode(ElTableColumn, { prop: 'relation', label: '关系' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'name', label: '姓名' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'workplace', label: '工作单位' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'position', label: '职位' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'phone', label: '联系电话' }),
|
|
|
|
- ]
|
|
|
|
- })
|
|
|
|
|
|
+ default: () => family_members && family_members.length > 0
|
|
|
|
+ ? createVNode(ElTable, { data: family_members, border: true, stripe: true }, {
|
|
|
|
+ default: () => [
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'relation', label: '关系' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'name', label: '姓名' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'workplace', label: '工作单位' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'position', label: '职位' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'phone', label: '联系电话' }),
|
|
|
|
+ ]
|
|
|
|
+ })
|
|
|
|
+ : createVNode('div', { style: 'text-align: center; padding: 20px;' }, { default: () => '暂无家庭成员数据' })
|
|
}),
|
|
}),
|
|
|
|
|
|
// 工作经历标签页
|
|
// 工作经历标签页
|
|
createVNode(ElTabPane, { label: '工作经历' }, {
|
|
createVNode(ElTabPane, { label: '工作经历' }, {
|
|
- default: () => createVNode(ElTable, { data: work_experiences, border: true, stripe: true }, {
|
|
|
|
- default: () => [
|
|
|
|
- createVNode(ElTableColumn, { prop: 'company_name', label: '公司名称' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'department', label: '部门' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'position', label: '职位' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'start_date', label: '开始日期' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'end_date', label: '结束日期' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'monthly_salary', label: '月薪' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'company_size', label: '公司规模' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'supervisor_name', label: '主管姓名' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'supervisor_phone', label: '主管电话' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'resignation_reason', label: '离职原因' }),
|
|
|
|
- ]
|
|
|
|
- })
|
|
|
|
|
|
+ default: () => work_experiences && work_experiences.length > 0
|
|
|
|
+ ? createVNode(ElTable, { data: work_experiences, border: true, stripe: true }, {
|
|
|
|
+ default: () => [
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'company_name', label: '公司名称' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'department', label: '部门' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'position', label: '职位' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'start_date', label: '开始日期' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'end_date', label: '结束日期' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'monthly_salary', label: '月薪' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'company_size', label: '公司规模' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'supervisor_name', label: '主管姓名' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'supervisor_phone', label: '主管电话' }),
|
|
|
|
+ createVNode(ElTableColumn, { prop: 'resignation_reason', label: '离职原因' }),
|
|
|
|
+ ]
|
|
|
|
+ })
|
|
|
|
+ : createVNode('div', { style: 'text-align: center; padding: 20px;' }, { default: () => '暂无工作经历数据' })
|
|
}),
|
|
}),
|
|
|
|
|
|
- // 培训经历标签页
|
|
|
|
- /* createVNode(ElTabPane, { label: '培训经历' }, {
|
|
|
|
- default: () => createVNode(ElTable, { data: trainings, border: true, stripe: true }, {
|
|
|
|
- default: () => [
|
|
|
|
- createVNode(ElTableColumn, { prop: 'training_name', label: '培训名称' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'institution', label: '培训机构' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'start_date', label: '开始日期' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'end_date', label: '结束日期' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'description', label: '描述' }),
|
|
|
|
- createVNode(ElTableColumn, { prop: 'certificate', label: '证书' }),
|
|
|
|
- ]
|
|
|
|
- })
|
|
|
|
- }), */
|
|
|
|
|
|
+ // 培训经历标签页已被注释掉,保持原样
|
|
]
|
|
]
|
|
}),
|
|
}),
|
|
footer: () => createVNode(ElButton, {
|
|
footer: () => createVNode(ElButton, {
|