From 1f1f50843ec542326f0f1d9cf67a382565bd7a98 Mon Sep 17 00:00:00 2001 From: wushumin Date: Wed, 27 May 2026 16:24:23 +0800 Subject: [PATCH] feat: update report detail presentation --- user-app/src/pages/report/detail.vue | 418 +++++++++++++++++++-------- work-app/src/pages/report/detail.vue | 373 +++++++++++++++++++----- 2 files changed, 599 insertions(+), 192 deletions(-) diff --git a/user-app/src/pages/report/detail.vue b/user-app/src/pages/report/detail.vue index c83edc4..8038c2d 100644 --- a/user-app/src/pages/report/detail.vue +++ b/user-app/src/pages/report/detail.vue @@ -5,9 +5,23 @@ import { appApi, type EvidenceAttachmentAsset, type ReportDetailData } from "../ import { reportDetailFallback } from "../../mocks/app"; import { resolveErrorMessage } from "../../utils/feedback"; -type ReportTab = "product" | "trace"; +type ReportTab = "product" | "center" | "trace"; type ProductDisplayItem = ReportDetailData["product_display"]["items"][number]; +const centerIntroParagraphs = [ + "安心验(深圳)商品检验鉴定有限责任公司立足深港核心产业服务区,是一家专业从事商品检验、鉴定、测试及技术咨询的第三方服务机构。", + "公司依托粤港澳大湾区雄厚的产业基础与国际贸易枢纽优势,致力于为 C 端消费者及 B 端电商平台、商家提供网购商品真伪鉴定、成色评估、价值评估及争议仲裁等一站式解决方案。", +]; +const institutionBannerTitle = "安心验(深圳)商品检验鉴定有限责任公司"; +const institutionBannerSubtitle = "ANXINYAN (SHENZHEN) COMMODITY INSPECTION AND APPRAISAL CO., LTD."; +const anxinyanStatementItems = [ + "本电子意见书鉴定结果仅对送检样品负责,整体任一部分损毁或丢失则意见书失效。", + "若对意见书的内容和结论持有异议,需在意见书出具后15日内提出,逾期不予受理,本电子意见书不得用于司法用途。", + "品牌方为商品的设计及制造方,如品牌方确认该鉴定样品为品牌方制造及销售商品,以品牌方的结论为准。", + "如因我司鉴定结果失误给申请人造成损失且无法挽回的,我司予以赔偿。赔偿范围仅限于申请人的直接损失,且赔偿金额总计不超过该检验项目鉴定费用的三倍。", + "企业信息和产品信息均由委托单位提供,鉴定结论不涉及样品品质检测等信息。", +]; + const detail = ref(reportDetailFallback); const downloading = ref(false); const loading = ref(false); @@ -92,6 +106,11 @@ const productSpecItems = computed(() => { ].filter((item) => item.value && item.value !== "-"); }); const traceInfoVisible = computed(() => Boolean(detail.value.trace_info?.visible || detail.value.report_header.trace_info_visible)); +const centerTabVisible = computed(() => { + const serviceProvider = textValue(detail.value.report_header.service_provider).toLowerCase(); + const serviceProviderTextValue = textValue(detail.value.report_header.service_provider_text); + return serviceProvider !== "zhongjian" && serviceProviderTextValue !== "中检鉴定"; +}); const traceNodes = computed(() => (traceInfoVisible.value ? detail.value.trace_info?.nodes || [] : [])); const zhongjianReportFiles = computed(() => detail.value.zhongjian_report_files || []); const zhongjianImageFiles = computed(() => zhongjianReportFiles.value.filter((item) => item.file_type === "image")); @@ -206,12 +225,6 @@ function openAsset(item: EvidenceAttachmentAsset, files: EvidenceAttachmentAsset uni.showToast({ title: "当前附件类型暂不支持预览", icon: "none" }); } -function contactService() { - uni.navigateTo({ - url: `/pages/support/create?ticket_type=report_issue&prefill_title=${encodeURIComponent("报告咨询")}`, - }); -} - function openAntiModal() { antiCode.value = ""; antiResult.value = null; @@ -306,8 +319,8 @@ function downloadPdf() { }); } -watch(traceInfoVisible, (visible) => { - if (!visible && activeTab.value === "trace") { +watch([traceInfoVisible, centerTabVisible], ([traceVisible, centerVisible]) => { + if ((!traceVisible && activeTab.value === "trace") || (!centerVisible && activeTab.value === "center")) { activeTab.value = "product"; } }); @@ -364,6 +377,13 @@ onLoad(async (options) => {