yuan
9 天以前 09db8120e0c7f266b880a440d1b45f2ad4defa1d
feat: 添加合格率计算及显示功能
已修改1个文件
28 ■■■■ 文件已修改
src/views/productionManagement/productionTraceability/index.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/productionTraceability/index.vue
@@ -240,9 +240,9 @@
              <el-descriptions-item label="规格型号">{{ record.model || '-' }}</el-descriptions-item>
              <el-descriptions-item label="数量">{{ record.quantity || 0 }} {{ record.unit || '-' }}</el-descriptions-item>
              <el-descriptions-item label="检测单位">{{ record.checkCompany || '-' }}</el-descriptions-item>
              <el-descriptions-item label="检测结果">
                <el-tag :type="record.checkResult === '合格' ? 'success' : 'danger'">
                  {{ record.checkResult || '待检测' }}
              <el-descriptions-item label="合格率">
                <el-tag :type="getPassRateTagType(record)">
                  {{ getPassRateDisplay(record) }}
                </el-tag>
              </el-descriptions-item>
            </el-descriptions>
@@ -360,6 +360,28 @@
    return "#67c23a";
  };
  const getPassRate = (record) => {
    const qualified = Number(record.qualifiedQuantity) || 0;
    const unqualified = Number(record.unqualifiedQuantity) || 0;
    const total = qualified + unqualified;
    if (total === 0) return null;
    return Number(((qualified / total) * 100).toFixed(2));
  };
  const getPassRateDisplay = (record) => {
    const rate = getPassRate(record);
    if (rate === null) return '—';
    return `${rate}%`;
  };
  const getPassRateTagType = (record) => {
    const rate = getPassRate(record);
    if (rate === null) return 'info';
    if (rate >= 100) return 'success';
    if (rate >= 75) return 'primary';
    return 'danger';
  };
  // 模拟搜索方法
  const handleNpsNoSearch = async query => {
    npsNoLoading.value = true;