Commit 0f8699bb authored by yaya's avatar yaya

feat:修改输入小数点

parent c9f84579
...@@ -157,13 +157,9 @@ export default { ...@@ -157,13 +157,9 @@ export default {
methods: { methods: {
limitInput(value) { limitInput(value) {
this.goods.price = ('' + value) // 第一步:转成字符串 this.goods.price = ('' + value) // 第一步:转成字符串
.replace(/[^\d^\.]+/g, '') // 第二步:把不是数字,不是小数点的过滤掉 .replace(/[^\d^\.]+/g, '') // 第二步:把不是数字,不是小数点的过滤掉
.replace(/^0+(\d)/, '$1') // 第三步:第一位0开头,0后面为数字,则过滤掉,取后面的数字 .replace(/^0+(\d)/, '$1') // 第三步:第一位0开头,0后面为数字,则过滤掉,取后面的数字
.replace(/^\./, '0.') // 第四步:如果输入的第一位为小数点,则替换成 0. 实现自动补全 .replace(/^\./, '0.') // 第四步:如果输入的第一位为小数点,则替换成 0. 实现自动补全
.match(/^\d*(\.?\d{0,2})/g)[0] || '' // 第五步:最终匹配得到结果 以数字开头,只有一个小数点, 而且小数点后面只能有0到2位小数 .match(/^\d*(\.?\d{0,2})/g)[0] || '' // 第五步:最终匹配得到结果 以数字开头,只有一个小数点, 而且小数点后面只能有0到2位小数
}, },
init: function() { init: function() {
......
...@@ -171,13 +171,13 @@ ...@@ -171,13 +171,13 @@
@change="handleCategoryChange"/> @change="handleCategoryChange"/>
</el-form-item> </el-form-item>
<el-form-item label="直径(mm):" prop="name"> <el-form-item label="直径(mm):" prop="name">
<el-input v-model="goodsParams.diameter" :style="{ 'width':'300px' }" placeholder="请输入直径(mm)" /> <el-input v-model="goodsParams.diameter" :style="{ 'width':'300px' }" placeholder="请输入直径(mm)" type="number" @input="limitInput($event, 1)"/>
</el-form-item> </el-form-item>
<el-form-item label="厚度(mm):" prop="name"> <el-form-item label="厚度(mm):" prop="name">
<el-input v-model="goodsParams.thickness" :style="{ 'width':'300px' }" placeholder="请输入厚度(mm)" /> <el-input v-model="goodsParams.thickness" :style="{ 'width':'300px' }" placeholder="请输入厚度(mm)" type="number" @input="limitInput($event, 2)"/>
</el-form-item> </el-form-item>
<el-form-item label="质量(g):" prop="name"> <el-form-item label="质量(g):" prop="name">
<el-input v-model="goodsParams.weight" :style="{ 'width':'300px' }" placeholder="请输入质量(g)" /> <el-input v-model="goodsParams.weight" :style="{ 'width':'300px' }" placeholder="请输入质量(g)" type="number" @input="limitInput($event, 3)"/>
</el-form-item> </el-form-item>
<el-form-item label="是否作为标准货币:" prop="isOnSale"> <el-form-item label="是否作为标准货币:" prop="isOnSale">
<el-radio-group v-model="goodsParams.isStd"> <el-radio-group v-model="goodsParams.isStd">
...@@ -302,6 +302,20 @@ export default { ...@@ -302,6 +302,20 @@ export default {
window.addEventListener('scroll', this.handleScroll) window.addEventListener('scroll', this.handleScroll)
}, },
methods: { methods: {
limitInput(value, type) {
const newValue = ('' + value) // 第一步:转成字符串
.replace(/[^\d^\.]+/g, '') // 第二步:把不是数字,不是小数点的过滤掉
.replace(/^0+(\d)/, '$1') // 第三步:第一位0开头,0后面为数字,则过滤掉,取后面的数字
.replace(/^\./, '0.') // 第四步:如果输入的第一位为小数点,则替换成 0. 实现自动补全
.match(/^\d*(\.?\d{0,2})/g)[0] || '' // 第五步:最终匹配得到结果 以数字开头,只有一个小数点, 而且小数点后面只能有0到2位小数
if (type === 1) {
this.goodsParams.diameter = newValue
} else if (type === 2) {
this.goodsParams.thickness = newValue
} else if (type === 3) {
this.goodsParams.weight = newValue
}
},
handleScroll() { handleScroll() {
const scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop const scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
const testEle = this.$refs.top const testEle = this.$refs.top
......
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