<template>
|
<ProDialog
|
title="人员详情"
|
v-model="visible"
|
@close="onDialogClose"
|
destroy-on-close
|
draggable
|
:width="900"
|
>
|
<ProTabs v-model="form.tabType" hasBorder>
|
<ProTabPane lazy label="人员信息" name="info">
|
<StaffDetailInfoView :form="form" />
|
</ProTabPane>
|
<ProTabPane lazy label="人员简历" name="resume">
|
<StaffResumeView :form="form" />
|
</ProTabPane>
|
<ProTabPane lazy label="签约详情" name="sign">
|
<SignDetailView :form="form" />
|
</ProTabPane>
|
</ProTabs>
|
|
<template #footer>
|
<span class="dialog-footer">
|
<el-button @click="emit('onCancel')">关闭</el-button>
|
</span>
|
</template>
|
</ProDialog>
|
</template>
|
|
<script setup lang="ts">
|
import { FormInstance } from 'element-plus';
|
import { ProDialog, ProTabs, ProTabPane } from '@bole-core/components';
|
import StaffDetailInfoView from './StaffDetailInfoView.vue';
|
import StaffResumeView from './StaffResumeView.vue';
|
import SignDetailView from './SignDetailView.vue';
|
|
defineOptions({
|
name: 'StaffDetailInfoDialog',
|
});
|
|
type Form = {
|
title?: string;
|
tabType: string;
|
id: string;
|
};
|
|
const visible = defineModel<boolean>('modelValue');
|
const form = defineModel<Form>('form');
|
|
const emit = defineEmits<{
|
(e: 'onConfirm'): void;
|
(e: 'onCancel'): void;
|
}>();
|
|
const dialogForm = ref<FormInstance>();
|
|
function onDialogClose() {
|
if (!dialogForm.value) return;
|
dialogForm.value.resetFields();
|
}
|
</script>
|