Commit a4ef0ef6 by caoyanzhi

fix: 修复输入框限制bug

parent a488c084
......@@ -20,9 +20,9 @@
<!-- 2.数字范围 -->
<template v-if="parent.templateCode == 'tag003'">
<div class="m-b-20" :key="'tag2' + pindex">
<el-input :value="parent.numRange[0]" @input="v => parent.numRange[0] = onInputNum(v)" class="select-wrap-input" style="width: 100px;margin-right: 0;" placeholder="请输入数字" @blur="blurFrom($event, parent)"></el-input>
<el-input :value="parent.numRange[0]" @input="v => $set(parent.numRange, 0, onInputNum(v))" class="select-wrap-input" style="width: 100px;margin-right: 0;" placeholder="请输入数字" @blur="e => $set(parent.numRange, 0, onInputBlur(e))"></el-input>
<label> - </label>
<el-input v-model.trim="parent.numRange[1]" @input="v => $set(parent.numRange, 1, onInputNum(v))" class="select-wrap-input" style="width: 100px;margin-right: 0;" placeholder="请输入数字" @blur="blurTo($event, parent)"></el-input>
<el-input :value="parent.numRange[1]" @input="v => $set(parent.numRange, 1, onInputNum(v))" class="select-wrap-input" style="width: 100px;margin-right: 0;" placeholder="请输入数字" @blur="e => $set(parent.numRange, 1, onInputBlur(e))"></el-input>
</div>
</template>
......@@ -39,12 +39,12 @@
</el-select>
<div style="display: inline-block" v-if="parent.symbol == '区间'">
<el-input :value="parent.numRange[0]" @input="v => $set(parent.numRange, 0, onInputNum(v))" @keyup.native="handleNumRangeEnd($event)" class="select-wrap-input" style="width: 100px;margin-right: 0;" placeholder="请输入数字"></el-input>
<el-input :value="parent.numRange[0]" @input="v => $set(parent.numRange, 0, onInputNum(v))" @keyup.native="handleNumRangeEnd($event)" @blur="e => $set(parent.numRange, 0, onInputBlur(e))" class="select-wrap-input" style="width: 100px;margin-right: 0;" placeholder="请输入数字"></el-input>
<label>-</label>
<el-input :value="parent.numRange[1]" @input="v => $set(parent.numRange, 1, onInputNum(v))" @keyup.native="handleNumRangeEnd($event)" class="select-wrap-input" style="width: 100px;margin-right: 0;" placeholder="请输入数字"></el-input>
<el-input :value="parent.numRange[1]" @input="v => $set(parent.numRange, 1, onInputNum(v))" @keyup.native="handleNumRangeEnd($event)" @blur="e => $set(parent.numRange, 1, onInputBlur(e))" class="select-wrap-input" style="width: 100px;margin-right: 0;" placeholder="请输入数字"></el-input>
</div>
<div style="display: inline-block" v-if="parent.symbol != '区间'">
<el-input :value="parent.num" @input="v => $set(parent, 'num', onInputNum(v))" @keyup.native="handleNumRangeEnd($event)" class="select-wrap-input" style="width: 100px;margin-right: 0;" placeholder="请输入数字"></el-input>
<el-input :value="parent.num" @input="v => $set(parent, 'num', onInputNum(v))" @keyup.native="handleNumRangeEnd($event)" @blur="e => $set(parent, 'num', onInputBlur(e))" class="select-wrap-input" style="width: 100px;margin-right: 0;" placeholder="请输入数字"></el-input>
</div>
<!-- <label class="label-tip">注:如果起始值为空则视为小于等于最大输入值;如果最大值为空则视为大于等于最小输入值!</label> -->
......@@ -708,12 +708,12 @@
</el-select>
<div style="display: inline-block" v-if="parent.symbol == '区间'">
<el-input :value="parent.numRange[0]" @input="v => $set(parent.numRange, 0, onInputNum(v))" @keyup.native="handleNumRangeEnd($event)" class="select-wrap-input" style="width: 100px;margin-right: 0;" placeholder="请输入数字"></el-input>
<el-input :value="parent.numRange[0]" @input="v => $set(parent.numRange, 0, onInputNum(v))" @keyup.native="handleNumRangeEnd($event)" @blur="e => $set(parent.numRange, 0, onInputBlur(e))" class="select-wrap-input" style="width: 100px;margin-right: 0;" placeholder="请输入数字"></el-input>
<label>-</label>
<el-input :value="parent.numRange[1]" @input="v => $set(parent.numRange, 1, onInputNum(v))" @keyup.native="handleNumRangeEnd($event)" class="select-wrap-input" style="width: 100px;margin-right: 10px;" placeholder="请输入数字"></el-input>
<el-input :value="parent.numRange[1]" @input="v => $set(parent.numRange, 1, onInputNum(v))" @keyup.native="handleNumRangeEnd($event)" @blur="e => $set(parent.numRange, 1, onInputBlur(e))" class="select-wrap-input" style="width: 100px;margin-right: 10px;" placeholder="请输入数字"></el-input>
</div>
<div style="display: inline-block" v-if="parent.symbol != '区间'">
<el-input :value="parent.num" @input="v => $set(parent, 'num', onInputNum(v))" @keyup.native="handleNumRangeEnd($event)" class="select-wrap-input" style="width: 100px;margin-right: 10px;" placeholder="请输入数字"></el-input>
<el-input :value="parent.num" @input="v => $set(parent, 'num', onInputNum(v))" @keyup.native="handleNumRangeEnd($event)" @blur="e => $set(parent, 'num', onInputBlur(e))" class="select-wrap-input" style="width: 100px;margin-right: 10px;" placeholder="请输入数字"></el-input>
</div>
</div>
......@@ -1932,8 +1932,32 @@ export default {
}
},
onInputNum(v) {
console.log('saddssdsd', `${v}`.replace(/\s/g, ''))
return `${v}`.replace(/\s/g, '');
v = v + '';
// flag true:是负数,最后结果需要加上负号
const flag = v.indexOf('-') == 0;
// 将输入内容转换为正数,并以小数点分割成数组
v = v.replace('-', '').split('.');
// 整数部分过滤掉非数字
v[0] = v[0].replace(/\D/g, '');
// 小数部分过滤掉非数字
if (typeof v[1] == 'string') {
v[1] = v[1].replace(/\D/g, '');
// 如果小数部分超过2位,只取前2位,即精确到2位销售
if (v[1].length > 2) {
this.$message.warning('只支持小数位精确到两位的数字!');
v[1] = v[1].slice(0, 2);
}
}
// 将处理后的输入内容重新组合
v = typeof v[1] == 'string' ? `${v[0]}.${v[1]}` : v[0];
return flag ? `-${v}` : v;
},
onInputBlur(e) {
// 输入框失焦后,校验用户是否只输入了一个负号或者小数点
let v = e.target.value;
v = v.indexOf('-') == v.length - 1 ? '' : v;
v = v.indexOf('.') == v.length - 1 ? v.replace('.', '') : v;
return v;
},
onChangeTime(val) {
if(isNaN(val)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment