<div class="extreme-value">
<el-input v-model="tableParams.taskName1" placeholder="最小值" @blur="handleBlur('taskName1',tableParams.taskName1)" @input="handleInput('taskName1',tableParams.taskName1)"></el-input>
~
<el-input v-model="tableParams.taskName2" placeholder="最大值" @blur="handleBlur('taskName2',tableParams.taskName2)" @input="handleInput('taskName2',tableParams.taskName2)"></el-input>
</div>
tableParams: {
taskName1: "",
taskName2: "",
},
handleInput(nameVal, value) {
const num = Number(value);
let decimals = containsDecimalPoint(this.tableParams[nameVal]);
if (isNaN(num)) {
this.$message({
showClose: true,
message: "仅允许输入数字",
iconClass: "warning-icon-class",
customClass: "el-message--warning",
});
this.tableParams[nameVal] = "";
} else {
if (num > 9999) {
this.$message({
showClose: true,
message: "仅允许输入最大值为9999",
iconClass: "warning-icon-class",
customClass: "el-message--warning",
});
this.tableParams[nameVal] = value.slice(0, 4);
} else {
if (decimals) {
let digit = getDecimalPlaces(value);
if (digit > 3) {
this.$message({
showClose: true,
message: "仅允许输入小数点后3位",
iconClass: "warning-icon-class",
customClass: "el-message--warning",
});
this.tableParams[nameVal] = value.slice(0, -1);
}
}
}
}
},
handleBlur(nameVal, val) {
let decimals = containsDecimalPoint(val);
if (decimals) {
let digit = getDecimalPlaces(val);
if (digit == 0) {
this.tableParams[nameVal] = val.slice(0, -1);
}
}
this.getCompare(this.tableParams.taskName1, this.tableParams.taskName2);
},
getCompare(minVal, maxVal) {
if (minVal && maxVal) {
if (maxVal < minVal) {
this.$message({
showClose: true,
message: "最大值必须大于等于最小值",
iconClass: "warning-icon-class",
customClass: "el-message--warning",
});
}
}
},
::v-deep .extreme-value {
width: 220px;
height: 32px;
border-radius: 4px;
border: 1px solid #e1e6f0;
display: flex;
align-items: center;
justify-content: space-between;
.el-input {
width: 100px;
height: 30px !important;
display: flex;
align-items: center;
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type="number"] {
-moz-appearance: textfield;
line-height: 1;
}
inpit {
border: none;
}
.el-input__inner {
width: 100px;
height: 30px !important;
line-height: 30px;
text-align: center;
border: none;
}
}
}
.extreme-value:hover {
border: 1px solid #3886ff;
}