diff --git a/web/src/views/valuation/audit/components/AuditDetail.vue b/web/src/views/valuation/audit/components/AuditDetail.vue index f8fd2e4..2bd6d5b 100644 --- a/web/src/views/valuation/audit/components/AuditDetail.vue +++ b/web/src/views/valuation/audit/components/AuditDetail.vue @@ -13,6 +13,7 @@ import { import { formatDate } from '@/utils' import TheIcon from '@/components/icon/TheIcon.vue' +import CertificateModal from './CertificateModal.vue' import { getStatusConfig } from '../constants' import { @@ -36,6 +37,11 @@ const emit = defineEmits(['back', 'approve', 'reject']) const activeDetailTab = ref('audit') +// 证书弹窗相关状态 +const certificateModalVisible = ref(false) +const certificateModalMode = ref('upload') // 'upload' 或 'view' +const certificateData = ref({}) + watch( () => props.detailData?.id, () => { @@ -55,6 +61,8 @@ const detailSections = computed(() => { { label: '资产名称', type: 'text', value: detail.asset_name || '-' }, { label: '所属机构', type: 'text', value: detail.institution || '-' }, { label: '所属行业', type: 'text', value: detail.industry || '-' }, + { label: '企业简介', type: 'text', value: detail.company_profile || '-' }, + { label: '业务简介', type: 'text', value: detail.business_profile || '-' }, ], }, { @@ -178,6 +186,31 @@ const detailSections = computed(() => { }) const calcFlow = computed(() => props.detailData?.calculation_result?.flow || []) + +// 证书相关功能 +const handleUploadCertificate = () => { + certificateModalMode.value = 'upload' + certificateData.value = {} + certificateModalVisible.value = true +} + +const handleViewCertificate = () => { + certificateModalMode.value = 'view' + // 这里可以从 props.detailData 中获取已上传的证书数据 + certificateData.value = { + title: '非遗传承人等级证书', + description: '非遗传承人等级证书相关文件', + files: props.detailData?.certificates || [] + } + certificateModalVisible.value = true +} + +const handleCertificateConfirm = (data) => { + console.log('证书数据:', data) + // 这里可以调用 API 保存证书数据 + $message?.success('证书上传成功') + certificateModalVisible.value = false +} @@ -277,13 +328,20 @@ const calcFlow = computed(() => props.detailData?.calculation_result?.flow || [] background: #fff; border-radius: 12px; padding: 24px; + .certificate-actions { + margin-top: 20px; + width: 100%; + display: flex; + justify-content: flex-end; + z-index: 100; + } } .detail-header { display: flex; justify-content: space-between; gap: 16px; - margin-bottom: 16px; + margin: -16px 0px 10px ; } .back-btn { @@ -446,4 +504,6 @@ const calcFlow = computed(() => props.detailData?.calculation_result?.flow || [] color: #999; padding: 40px 0; } + + diff --git a/web/src/views/valuation/audit/components/CertificateModal.vue b/web/src/views/valuation/audit/components/CertificateModal.vue new file mode 100644 index 0000000..fa61132 --- /dev/null +++ b/web/src/views/valuation/audit/components/CertificateModal.vue @@ -0,0 +1,485 @@ + + + + +