<el-input v-model="tableParams.taskName1" placeholder="最小值" @blur="handleBlur(tableParams.taskName1)" @input="handleInput(tableParams.taskName1)"></el-input>
handleInput(value) {
// 将输入值转换为数字类型
const num = Number(value);
// 是否 是小数
let decimals = containsDecimalPoint(this.tableParams.taskName1);
// 如果输入值不是数字,则设置为空字符串
if (isNaN(num)) {
this.$message({
showClose: true,
message: "仅允许输入数字",
iconClass: "warning-icon-class",
customClass: "el-message--warning",
});
this.tableParams.taskName1 = "";
} else {
// 如果输入值大于9999,则只保留前四位数,多余输入的不保留
if (num > 9999) {
this.$message({
showClose: true,
message: "仅允许输入最大值为9999",
iconClass: "warning-icon-class",
customClass: "el-message--warning",
});
this.tableParams.taskName1 = value.slice(0, 4);
} else {
// 如果不是小数,则按照所输入即可, 如果是小数,则保留小数点后三位
if (decimals) {
// 是小数
// 判断小数点后有几位,如果是小于等于3位,可以保留,如果是大于3位,则截取前三个就行
let digit = getDecimalPlaces(value);
if (digit > 3) {
this.$message({
showClose: true,
message: "仅允许输入小数点后3位",
iconClass: "warning-icon-class",
customClass: "el-message--warning",
});
this.tableParams.taskName1 = value.slice(0, -1);
}
}
}
}
},
// 输入框失去焦点时,如果数字最后是小数点,则给去掉,只显示数字就行
handleBlur(val) {
// 是否 是小数
let decimals = containsDecimalPoint(val);
if (decimals) {
// 是小数
// 判断小数点后有几位,如果是小于等于3位,可以保留,如果是大于3位,则截取前三个就行
let digit = getDecimalPlaces(val);
if (digit == 0) {
this.tableParams.taskName1 = val.slice(0, -1);
}
}
},
el-input仅允许输入数字,最大9999,小数点后三位
于 2024-07-15 11:01:26 首次发布