hsy
7 小时以前 2d3530a7c11557a40807ad7c0b9e302ce6ce3a9f
src/views/qualityManagement/metricMaintenance/ParamFormDialog.vue
@@ -20,9 +20,23 @@
      <el-form-item label="单位" prop="unit">
        <el-input v-model="form.unit" placeholder="请输入单位" />
      </el-form-item>
      <el-form-item label="标准值" prop="standardValue">
      <el-form-item label="参数类型" prop="parameterType">
        <el-radio-group v-model="form.parameterType">
          <el-radio :label="0">文字</el-radio>
          <el-radio :label="1">数字</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="标准值" prop="standardValue" v-if="form.parameterType === 0">
        <el-input v-model="form.standardValue" placeholder="请输入标准值" />
      </el-form-item>
      <template v-if="form.parameterType === 1">
        <el-form-item label="最大值" prop="maxValue">
          <el-input-number v-model="form.maxValue" :controls="false" placeholder="请输入最大值" style="width: 100%" />
        </el-form-item>
        <el-form-item label="最小值" prop="minValue">
          <el-input-number v-model="form.minValue" :controls="false" placeholder="请输入最小值" style="width: 100%" />
        </el-form-item>
      </template>
      <el-form-item label="内控值" prop="controlValue">
        <el-input v-model="form.controlValue" placeholder="请输入内控值" />
      </el-form-item>
@@ -52,10 +66,44 @@
const formRef = ref(null)
const rules = {
  parameterItem: [{ required: true, message: '请输入参数项', trigger: 'blur' }],
  unit: [{ required: true, message: '请输入单位', trigger: 'blur' }]
const validateMaxValue = (rule, value, callback) => {
  if (value === undefined || value === null || value === '') {
    callback(new Error('请输入最大值'))
  } else if (props.form.minValue !== undefined && props.form.minValue !== null && props.form.minValue !== '' && Number(value) < Number(props.form.minValue)) {
    callback(new Error('最大值不能小于最小值'))
  } else {
    if (props.form.minValue !== undefined && props.form.minValue !== null && props.form.minValue !== '') {
      formRef.value?.clearValidate('minValue')
}
    callback()
  }
}
const validateMinValue = (rule, value, callback) => {
  if (value === undefined || value === null || value === '') {
    callback(new Error('请输入最小值'))
  } else if (props.form.maxValue !== undefined && props.form.maxValue !== null && props.form.maxValue !== '' && Number(value) > Number(props.form.maxValue)) {
    callback(new Error('最小值不能大于最大值'))
  } else {
    if (props.form.maxValue !== undefined && props.form.maxValue !== null && props.form.maxValue !== '') {
      formRef.value?.clearValidate('maxValue')
    }
    callback()
  }
}
const rules = computed(() => {
  const baseRules = {
    parameterItem: [{ required: true, message: '请输入参数项', trigger: 'blur' }],
    unit: [{ required: true, message: '请输入单位', trigger: 'blur' }],
    parameterType: [{ required: true, message: '请选择参数类型', trigger: 'change' }]
  };
  if (props.form.parameterType === 1) {
    baseRules.maxValue = [{ required: true, validator: validateMaxValue, trigger: 'blur' }];
    baseRules.minValue = [{ required: true, validator: validateMinValue, trigger: 'blur' }];
  }
  return baseRules;
})
const computedTitle = computed(() => (props.operationType === 'edit' ? '编辑标准参数' : '新增标准参数'))