|
@@ -86,8 +86,7 @@
|
|
style="width:320px;"
|
|
style="width:320px;"
|
|
v-model="form.subArea"
|
|
v-model="form.subArea"
|
|
placeholder="请输入面积"
|
|
placeholder="请输入面积"
|
|
- oninput="value=value.replace(/[^0-9.]/g,'')"
|
|
|
|
- maxlength="4"
|
|
|
|
|
|
+ @input="handleAreaInput"
|
|
size="small">
|
|
size="small">
|
|
<template slot="append">M²</template>
|
|
<template slot="append">M²</template>
|
|
</el-input>
|
|
</el-input>
|
|
@@ -488,6 +487,28 @@ import { chemicalMsdsEdit } from '@/api/chemicalManage'
|
|
}
|
|
}
|
|
},
|
|
},
|
|
methods:{
|
|
methods:{
|
|
|
|
+ handleAreaInput(value) {
|
|
|
|
+ // 1. 过滤非法字符并处理多个小数点
|
|
|
|
+ let filteredValue = value
|
|
|
|
+ .replace(/[^\d.]/g, '') // 只保留数字和小数点
|
|
|
|
+ .replace(/(\..*)\./g, '$1') // 禁止输入多个小数点
|
|
|
|
+ .replace(/^\./g, '0.') // 小数点开头自动补零
|
|
|
|
+ .replace(/(-\d+\.\d{2})\d+/, '$1') // 禁止输入超过两位小数
|
|
|
|
+ .replace(/^(\d{4})\d+/, '$1') // 限制整数部分最多4位
|
|
|
|
+
|
|
|
|
+ // 2. 分离整数和小数部分处理
|
|
|
|
+ const parts = filteredValue.split('.')
|
|
|
|
+ if (parts.length > 1) {
|
|
|
|
+ // 截断小数部分到两位
|
|
|
|
+ parts[1] = parts[1].slice(0, 2)
|
|
|
|
+ filteredValue = parts.join('.')
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 3. 更新模型数据(需要 nextTick 保持光标位置)
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
+ this.form.subArea = filteredValue
|
|
|
|
+ })
|
|
|
|
+ },
|
|
LevelClick(){
|
|
LevelClick(){
|
|
if(!this.form.dynamicLeveling){
|
|
if(!this.form.dynamicLeveling){
|
|
this.$set(this,'dialogLevelVisible',true);
|
|
this.$set(this,'dialogLevelVisible',true);
|