src/pages/qualityManagement/finalInspection/detail.vue
@@ -15,10 +15,10 @@
          </view>
          <text class="header-title">{{ detailData.productName || '-' }}</text>
          <view class="status-tags">
            <u-tag :type="getTagType(detailData.checkResult)"
            <u-tag :type="getPassRateTagType(detailData.passRate)"
                   size="small"
                   class="status-tag">
              {{ detailData.checkResult || '-' }}
              合格率 {{ formatPassRate(detailData.passRate) }}
            </u-tag>
            <u-tag :type="getStateTagType(detailData.inspectState)"
                   size="small"
@@ -58,8 +58,20 @@
            <text class="detail-value">{{ detailData.unit || '-' }}</text>
          </view>
          <view class="detail-row">
            <text class="detail-label">数量</text>
            <text class="detail-value">{{ detailData.quantity || 0 }}</text>
            <text class="detail-label">总数量</text>
            <text class="detail-value">{{ detailData.quantity ?? '-' }}</text>
          </view>
          <view class="detail-row">
            <text class="detail-label">合格数量</text>
            <text class="detail-value">{{ detailData.qualifiedQuantity ?? '-' }}</text>
          </view>
          <view class="detail-row">
            <text class="detail-label">不合格数量</text>
            <text class="detail-value">{{ detailData.unqualifiedQuantity ?? '-' }}</text>
          </view>
          <view class="detail-row">
            <text class="detail-label">合格率</text>
            <text class="detail-value">{{ formatPassRate(detailData.passRate) }}</text>
          </view>
          <view class="detail-row">
            <text class="detail-label">检测单位</text>
@@ -131,7 +143,7 @@
<script setup>
  import { ref, onMounted } from "vue";
  import { onShow } from "@dcloudio/uni-app";
  import { onShow, onLoad } from "@dcloudio/uni-app";
  import PageHeader from "@/components/PageHeader.vue";
  import dayjs from "dayjs";
  import { qualityInspectParamInfo } from "@/api/qualityManagement/materialInspection.js";
@@ -160,16 +172,22 @@
    return dayjs(date).format("YYYY-MM-DD");
  };
  // 获取标签类型
  const getTagType = result => {
    switch (result) {
      case "合格":
        return "success";
      case "不合格":
        return "error";
      default:
        return "info";
    }
  const formatPassRate = val => {
    if (val === null || val === undefined || val === "") return "-";
    const n = Number(val);
    if (Number.isNaN(n)) return String(val);
    if (n > 0 && n <= 1) return `${(n * 100).toFixed(1)}%`;
    return `${Number.isInteger(n) ? n : Number(n.toFixed(1))}%`;
  };
  const getPassRateTagType = val => {
    if (val === null || val === undefined || val === "") return "info";
    let n = Number(val);
    if (Number.isNaN(n)) return "info";
    if (n > 0 && n <= 1) n *= 100;
    if (n >= 100) return "success";
    if (n >= 60) return "warning";
    return "error";
  };
  // 获取状态标签类型
@@ -204,16 +222,9 @@
    }, 1500);
  };
  // 获取页面ID
  const getPageId = () => {
    const pages = getCurrentPages();
    const currentPage = pages[pages.length - 1];
    return currentPage.options.id;
  };
  // 获取详情数据
  const getDetail = () => {
    const id = getPageId();
    const id = optionsId.value;
    if (!id) {
      showToast("参数错误");
      return;
@@ -262,6 +273,14 @@
  onMounted(() => {
    getDetail();
  });
  onShow(() => {
    getDetail();
  });
  const optionsId = ref("");
  onLoad(options => {
    optionsId.value = options.id || "";
    getDetail();
  });
</script>
<style scoped lang="scss">