| | |
| | | <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> |
| | |
| | | |
| | | 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' ? '编辑标准参数' : '新增标准参数')) |
| | | |