gaoluyang
8 天以前 bc365ef47ae4e01754aeadbae26170e11c9bb80e
src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
@@ -102,6 +102,33 @@
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="入库比例(%):" prop="stockInRatio">
              <el-input-number :step="0.01" :min="0" :max="100" style="width: 100%" v-model="form.stockInRatio" placeholder="请输入入库比例" clearable :precision="2" :disabled="isViewMode" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="检验规则" prop="inspectRule">
              <el-radio-group v-model="form.inspectRule">
                <el-radio :label="0">全检</el-radio>
                <el-radio :label="1">抽检</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
          <el-col :span="6" v-if="form.inspectRule === 1">
            <el-form-item label="抽检比例(%)" prop="sampleRatio">
              <el-input-number v-model="form.sampleRatio" :min="0.01" :max="100" :precision="2" placeholder="请输入抽检比例" style="width: 100%" @change="calcSampleQuantity" :disabled="isViewMode" />
            </el-form-item>
          </el-col>
          <el-col :span="6" v-if="form.inspectRule === 1">
            <el-form-item label="抽检数量" prop="sampleQuantity">
              <el-input-number v-model="form.sampleQuantity" :min="0" :precision="2" style="width: 100%" disabled />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="检测单位:" prop="checkCompany">
              <el-input v-model="form.checkCompany" placeholder="请输入" clearable :disabled="isViewMode"/>
            </el-form-item>
@@ -193,8 +220,12 @@
    testStandardId: "",
    unit: "",
    quantity: "",
    stockInRatio: 100.00,
    checkCompany: "",
    checkResult: "",
    inspectRule: 0,
    sampleRatio: undefined,
    sampleQuantity: undefined,
  },
  rules: {
    checkTime: [{required: false, message: "请输入", trigger: "blur"},],
@@ -207,6 +238,22 @@
    quantity: [{required: false, message: "请输入", trigger: "blur"}],
    qualifiedQuantity: [{required: false, message: "请输入", trigger: "blur"}],
    unqualifiedQuantity: [{required: false, message: "请输入", trigger: "blur"}],
    stockInRatio: [
      {
        validator: (rule, value, callback) => {
          if (value !== null && value !== undefined && value !== '') {
            if (value < 0 || value > 100) {
              callback(new Error('入库比例范围0~100'));
            } else {
              callback();
            }
          } else {
            callback();
          }
        },
        trigger: 'blur'
      }
    ],
    checkCompany: [{required: false, message: "请输入", trigger: "blur"}],
    checkResult: [{required: false, message: "请选择检测结果", trigger: "change"}],
  },
@@ -221,7 +268,7 @@
    prop: "unit",
  },
  {
    label: "标准值",
    label: "厂家标准值",
    prop: "standardValue",
  },
  {
@@ -281,8 +328,12 @@
    testStandardId: "",
    unit: "",
    quantity: "",
    stockInRatio: 100.00,
    checkCompany: "",
    checkResult: "",
    inspectRule: 0,
    sampleRatio: undefined,
    sampleQuantity: undefined,
  }
  testStandardOptions.value = [];
  tableData.value = [];
@@ -378,6 +429,16 @@
  form.value.unit = modelOptions.value.find(item => item.id == value)?.unit || '';
}
const calcSampleQuantity = () => {
  const q = parseFloat(form.value.quantity) || 0;
  const r = parseFloat(form.value.sampleRatio) || 0;
  if (q > 0 && r > 0) {
    form.value.sampleQuantity = Number((q * r / 100).toFixed(2));
  } else {
    form.value.sampleQuantity = undefined;
  }
};
const findNodeById = (nodes, productId) => {
  for (let i = 0; i < nodes.length; i++) {
    if (nodes[i].value === productId) {