<template>
<el-form-item :label="data.controlname">
<el-form :model="model[data.id]" :ref="data.id">
<el-form-item
class="Nrowtd w85 blank_formItem"
prop="rangemin"
:rules="[
{
validator: childFormValidate,
trigger: 'blur'
}]"
>
<el-input v-model="model[data.id]['rangemin']" placeholder="最小值"></el-input>
</el-form-item>
<span class="w10">-</span>
<el-form-item
class="Nrowtd w85 blank_formItem"
prop="rangemax"
:rules="[
{
validator: childFormValidate,
trigger: 'blur'
}]"
>
<el-input v-model="model[data.id.toString()]['rangemax']" placeholder="最大值"></el-input>
<span class="gray9 ml10">{{ data.dataunit }}</span>
</el-form-item>
</el-form>
</el-form-item>
</template>
<script>
export default {
name: 'ReDoubleInput',
props: {
data: {
type: Object,
required: true
},
model: {
type: Object,
required: true
}
},
methods: {
childFormValidate(rule, value, callback){
let validateMsg = '';
let objValue = '';
let selfValue = parseFloat(value);
let reg = /(^[0-9]*$)|(^[0-9]*\.[0-9]*$)/;
switch (rule.field) {
case 'rangemax':
validateMsg = '错误的最大值';
objValue = parseFloat(this.model[this.data.id.toString()]['rangemin']);
if(value != null && value != ''){
if(Number.isNaN(selfValue) || !reg.test(selfValue) || selfValue < 0 || (!Number.isNaN(objValue) && selfValue < objValue)){
callback(new Error(validateMsg));
break;
}
}
callback();
break;
case 'rangemin':
validateMsg = '错误的最小值';
objValue = parseFloat(this.model[this.data.id.toString()]['rangemax']);
if(value != null && value != ''){
if(Number.isNaN(selfValue) || !reg.test(selfValue) || selfValue < 0 || (!Number.isNaN(objValue) && selfValue > objValue)){
callback(new Error(validateMsg));
break;
}
}
callback();
break;
}
}
},
}
</script>