<!-- 人员登记详情 --> <script name="RegisterDetail" lang="ts" setup> import RegisterBasic from './component/basic.vue' import RegisterEducation from './component/education.vue' import RegisterAuthorize from './component/authorize.vue' import RegisterResume from './component/resume.vue' import RegisterVerifier from './component/verifier.vue' import RegisterTrainning from './component/trainning.vue' // 定义变量 const $route = useRoute() const $router = useRouter() const title = ref('') const radioItems = ref([ { name: '基本信息', value: 'register-basic' }, { name: '教育科研', value: 'register-education' }, { name: '授权信息', value: 'register-authorize' }, { name: '人员履历', value: 'register-resume' }, { name: '检定员信息', value: 'register-verifier' }, { name: '训练情况', value: 'register-trainning' }, ]) const current = ref('register-basic') const operation = ref('') // 逻辑 // 重置各个子组件的表单内容 const resetFormData = () => { // ruleForm.value = { // } } // 关闭 const resetForm = () => { $router.go(-1) resetFormData() } // 弹窗初始化 const initDialog = (row: any) => { operation.value = row.operation if (row.operation === 'create') { title.value = '人员登记(新增)' } else if (row.operation === 'update') { title.value = '人员登记(编辑)' } else if (row.operation === 'detail') { title.value = '人员登记(详情)' } } onMounted(() => { initDialog($route.query) }) </script> <template> <app-container style="overflow: hidden;"> <detail-page :title="`${title}`"> <template #btns> <el-button v-if="operation !== 'detail'" type="primary"> 保存 </el-button> <el-button type="info" @click="resetForm()"> 关闭 </el-button> </template> <el-tabs v-model="current" type="card"> <el-tab-pane v-for="item in radioItems" :key="item.value" :label="item.name" :name="item.value" /> </el-tabs> <register-basic v-show="current === 'register-basic'" ref="register-basic-form" :operation="operation" /> <register-education v-show="current === 'register-education'" ref="register-education-form" :operation="operation" /> <register-authorize v-show="current === 'register-authorize'" ref="register-education-form" :operation="operation" /> <register-resume v-show="current === 'register-resume'" ref="register-education-form" :operation="operation" /> <register-verifier v-show="current === 'register-verifier'" ref="register-education-form" :operation="operation" /> <register-trainning v-show="current === 'register-trainning'" ref="register-education-form" :operation="operation" /> </detail-page> </app-container> </template>