对质量管理检查组件进行重构,将“检测结果”替换为“合格率”,并实施通过率计算及显示逻辑。更新表单字段,以反映数据处理方式及通过率视觉呈现方面的变化。
已修改6个文件
201 ■■■■ 文件已修改
src/views/qualityManagement/finalInspection/components/formDia.vue 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/qualityManagement/finalInspection/index.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/qualityManagement/processInspection/components/formDia.vue 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/qualityManagement/processInspection/index.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/qualityManagement/rawMaterialInspection/components/formDia.vue 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/qualityManagement/rawMaterialInspection/index.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/qualityManagement/finalInspection/components/formDia.vue
@@ -102,12 +102,8 @@
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="检测结果:" prop="checkResult">
              <el-select v-model="form.checkResult" :disabled="isViewMode">
                <el-option label="合格" value="合格" />
                <el-option label="不合格" value="不合格" />
                <el-option label="部分合格" value="部分合格" />
              </el-select>
            <el-form-item label="合格率:">
              <el-tag :type="passRateTagType">{{ passRateDisplayText }}</el-tag>
            </el-form-item>
          </el-col>
        </el-row>
@@ -188,7 +184,6 @@
    qualifiedQuantity: "",
    unqualifiedQuantity: "",
    checkCompany: "",
    checkResult: "",
  },
  rules: {
    checkTime: [{ required: true, message: "请输入", trigger: "blur" }],
@@ -202,12 +197,42 @@
    qualifiedQuantity: [{ required: true, message: "请输入", trigger: "blur" }],
    unqualifiedQuantity: [{ required: true, message: "请输入", trigger: "blur" }],
    checkCompany: [{ required: false, message: "请输入", trigger: "blur" }],
    checkResult: [{ required: true, message: "请输入", trigger: "change" }],
  },
});
const { form, rules } = toRefs(data);
// 是否为查看模式
const isViewMode = computed(() => operationType.value === 'view');
const passRateValue = computed(() => {
  const fromApi = form.value.passRate;
  if (fromApi != null && fromApi !== '') {
    const n = Number(fromApi);
    if (!Number.isNaN(n)) return n;
  }
  const quantity = Number(form.value.quantity);
  const qualified = Number(form.value.qualifiedQuantity);
  if (!quantity || Number.isNaN(quantity)) return null;
  const qualifiedNum = Number.isNaN(qualified) ? 0 : qualified;
  return (qualifiedNum / quantity) * 100;
});
const passRateDisplayText = computed(() => {
  const params = passRateValue.value;
  if (params == null || params === '') return '—';
  const n = Number(params);
  if (Number.isNaN(n)) return '—';
  return `${n.toFixed(2)}%`;
});
const passRateTagType = computed(() => {
  const params = passRateValue.value;
  if (params == null || params === '') return 'info';
  const n = Number(params);
  if (Number.isNaN(n)) return 'info';
  if (n >= 100) return 'success';
  if (n >= 90) return 'warning';
  return 'danger';
});
// 编辑时:productMainId 或 purchaseLedgerId 任一有值则工序、数量置灰
const processQuantityDisabled = computed(() => {
  const v = form.value || {};
src/views/qualityManagement/finalInspection/index.vue
@@ -143,17 +143,23 @@
    width: 120
  },
  {
    label: "检测结果",
    prop: "checkResult",
    label: "合格率",
    prop: "passRate",
    width: 100,
    dataType: "tag",
    formatData: (params) => {
      if (params == null || params === '') return '—';
      const n = Number(params);
      if (Number.isNaN(n)) return '—';
      return `${n.toFixed(2)}%`;
    },
    formatType: (params) => {
      if (params == '不合格') {
        return "danger";
      } else if (params == '合格') {
        return "success";
      } else {
        return 'danger';
      }
      if (params == null || params === '') return 'info';
      const n = Number(params);
      if (Number.isNaN(n)) return 'info';
      if (n >= 100) return 'success';
      if (n >= 90) return 'warning';
      return 'danger';
    },
  },
  {
src/views/qualityManagement/processInspection/components/formDia.vue
@@ -139,16 +139,8 @@
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="检测结果:"
                          prop="checkResult">
              <el-select v-model="form.checkResult" :disabled="isViewMode">
                <el-option label="合格"
                           value="合格" />
                <el-option label="不合格"
                           value="不合格" />
                <el-option label="部分合格"
                           value="部分合格" />
              </el-select>
            <el-form-item label="合格率:">
              <el-tag :type="passRateTagType">{{ passRateDisplayText }}</el-tag>
            </el-form-item>
          </el-col>
        </el-row>
@@ -250,7 +242,6 @@
      qualifiedQuantity: "",
      unqualifiedQuantity: "",
      checkCompany: "",
      checkResult: "",
    },
    rules: {
      checkTime: [{ required: true, message: "请输入", trigger: "blur" }],
@@ -264,13 +255,43 @@
      qualifiedQuantity: [{ required: true, message: "请输入", trigger: "blur" }],
      unqualifiedQuantity: [{ required: true, message: "请输入", trigger: "blur" }],
      checkCompany: [{ required: false, message: "请输入", trigger: "blur" }],
      checkResult: [{ required: true, message: "请输入", trigger: "change" }],
    },
  });
  const userList = ref([]);
  const { form, rules } = toRefs(data);
  // 是否为查看模式
  const isViewMode = computed(() => operationType.value === 'view');
  const passRateValue = computed(() => {
    const fromApi = form.value.passRate;
    if (fromApi != null && fromApi !== '') {
      const n = Number(fromApi);
      if (!Number.isNaN(n)) return n;
    }
    const quantity = Number(form.value.quantity);
    const qualified = Number(form.value.qualifiedQuantity);
    if (!quantity || Number.isNaN(quantity)) return null;
    const qualifiedNum = Number.isNaN(qualified) ? 0 : qualified;
    return (qualifiedNum / quantity) * 100;
  });
  const passRateDisplayText = computed(() => {
    const params = passRateValue.value;
    if (params == null || params === '') return '—';
    const n = Number(params);
    if (Number.isNaN(n)) return '—';
    return `${n.toFixed(2)}%`;
  });
  const passRateTagType = computed(() => {
    const params = passRateValue.value;
    if (params == null || params === '') return 'info';
    const n = Number(params);
    if (Number.isNaN(n)) return 'info';
    if (n >= 100) return 'success';
    if (n >= 90) return 'warning';
    return 'danger';
  });
  // 编辑时:productMainId 或 purchaseLedgerId 任一有值则工序、数量置灰
  const processQuantityDisabled = computed(() => {
    const v = form.value || {};
@@ -338,7 +359,6 @@
      unit: "",
      quantity: "",
      checkCompany: "",
      checkResult: "",
    };
    testStandardOptions.value = [];
    tableData.value = [];
src/views/qualityManagement/processInspection/index.vue
@@ -142,17 +142,23 @@
    width: 120
  },
  {
    label: "检测结果",
    prop: "checkResult",
    label: "合格率",
    prop: "passRate",
    width: 100,
    dataType: "tag",
    formatData: (params) => {
      if (params == null || params === '') return '—';
      const n = Number(params);
      if (Number.isNaN(n)) return '—';
      return `${n.toFixed(2)}%`;
    },
    formatType: (params) => {
      if (params == '不合格') {
        return "danger";
      } else if (params == '合格') {
        return "success";
      } else {
        return 'danger';
      }
      if (params == null || params === '') return 'info';
      const n = Number(params);
      if (Number.isNaN(n)) return 'info';
      if (n >= 100) return 'success';
      if (n >= 90) return 'warning';
      return 'danger';
    },
  },
    {
src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
@@ -107,12 +107,8 @@
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="检测结果:" prop="checkResult">
              <el-select v-model="form.checkResult" :disabled="isViewMode">
                <el-option label="合格" value="合格"/>
                <el-option label="不合格" value="不合格"/>
                <el-option label="部分合格" value="部分合格"/>
              </el-select>
            <el-form-item label="合格率:">
              <el-tag :type="passRateTagType">{{ passRateDisplayText }}</el-tag>
            </el-form-item>
          </el-col>
        </el-row>
@@ -194,7 +190,6 @@
    unit: "",
    quantity: "",
    checkCompany: "",
    checkResult: "",
  },
  rules: {
    checkTime: [{required: true, message: "请输入", trigger: "blur"},],
@@ -208,7 +203,6 @@
    qualifiedQuantity: [{required: true, message: "请输入", trigger: "blur"}],
    unqualifiedQuantity: [{required: true, message: "请输入", trigger: "blur"}],
    checkCompany: [{required: false, message: "请输入", trigger: "blur"}],
    checkResult: [{required: true, message: "请选择检测结果", trigger: "change"}],
  },
});
const tableColumn = ref([
@@ -249,6 +243,37 @@
// 是否为查看模式
const isViewMode = computed(() => operationType.value === 'view');
const passRateValue = computed(() => {
  const fromApi = form.value.passRate;
  if (fromApi != null && fromApi !== '') {
    const n = Number(fromApi);
    if (!Number.isNaN(n)) return n;
  }
  const quantity = Number(form.value.quantity);
  const qualified = Number(form.value.qualifiedQuantity);
  if (!quantity || Number.isNaN(quantity)) return null;
  const qualifiedNum = Number.isNaN(qualified) ? 0 : qualified;
  return (qualifiedNum / quantity) * 100;
});
const passRateDisplayText = computed(() => {
  const params = passRateValue.value;
  if (params == null || params === '') return '—';
  const n = Number(params);
  if (Number.isNaN(n)) return '—';
  return `${n.toFixed(2)}%`;
});
const passRateTagType = computed(() => {
  const params = passRateValue.value;
  if (params == null || params === '') return 'info';
  const n = Number(params);
  if (Number.isNaN(n)) return 'info';
  if (n >= 100) return 'success';
  if (n >= 90) return 'warning';
  return 'danger';
});
// 编辑时:productMainId 或 purchaseLedgerId 任一有值则供应商、数量置灰
const supplierQuantityDisabled = computed(() => {
  const v = form.value || {};
@@ -282,7 +307,6 @@
    unit: "",
    quantity: "",
    checkCompany: "",
    checkResult: "",
  }
  testStandardOptions.value = [];
  tableData.value = [];
src/views/qualityManagement/rawMaterialInspection/index.vue
@@ -149,17 +149,23 @@
    width: 120
  },
  {
    label: "检测结果",
    prop: "checkResult",
    label: "合格率",
    prop: "passRate",
    width: 100,
    dataType: "tag",
    formatData: (params) => {
      if (params == null || params === '') return '—';
      const n = Number(params);
      if (Number.isNaN(n)) return '—';
      return `${n.toFixed(2)}%`;
    },
    formatType: (params) => {
      if (params === '不合格') {
        return "danger";
      } else if (params === '合格') {
        return "success";
      } else {
        return 'danger';
      }
      if (params == null || params === '') return 'info';
      const n = Number(params);
      if (Number.isNaN(n)) return 'info';
      if (n >= 100) return 'success';
      if (n >= 90) return 'warning';
      return 'danger';
    },
  },
  {