<template> <a-drawer v-model:visible="visible" title="${businessName}详情" :width="width >= 580 ? 580 : '100%'" :footer="false"> <a-descriptions :column="2" size="large" class="general-description"> <#list fieldConfigs as fieldConfig> <a-descriptions-item label="${fieldConfig.comment}">{{ dataDetail?.${fieldConfig.fieldName} }}</a-descriptions-item> <#if fieldConfig.fieldName = 'createUser'> <a-descriptions-item label="创建人">{{ dataDetail?.createUserString }}</a-descriptions-item> <#elseif fieldConfig.fieldName = 'updateUser'> <a-descriptions-item label="修改人">{{ dataDetail?.updateUserString }}</a-descriptions-item> </#if> </#list> </a-descriptions> </a-drawer> </template> <script lang="ts" setup> import { get${classNamePrefix}, type ${classNamePrefix}DetailResp } from '@/apis' import { useWindowSize } from '@vueuse/core' const { width } = useWindowSize() const visible = ref(false) const dataId = ref('') const dataDetail = ref<${classNamePrefix}DetailResp>() // 查询详情 const getDataDetail = async () => { const res = await get${classNamePrefix}(dataId.value) dataDetail.value = res.data } // 打开详情 const onDetail = async (id: string) => { dataId.value = id await getDataDetail() visible.value = true } defineExpose({ onDetail }) </script> <style lang="scss" scoped></style>