浏览代码

数字输入框组件更改

zhaoxw 4 年之前
父节点
当前提交
e61ce0d460
共有 1 个文件被更改,包括 23 次插入0 次删除
  1. 23 0
      components/CnumberBox.vue

+ 23 - 0
components/CnumberBox.vue

@@ -11,6 +11,7 @@
 		  :disabled="isDisabled"
 		  input-align="center"
 		  :custom-style="{width:'45px'}"/>
+		<input class="uni-input" v-model="number" :type="isInt?'number' : 'digit'" :disabled="isDisabled" :placeholder="placeholder" @input="onKeyInput" >
 		<uni-icons type="plus-filled" size="20" color="#A67A54" @click="numPlus"></uni-icons>
 	</view>
 </template>
@@ -21,6 +22,9 @@
 			isDisabled: {
 				default: false
 			},
+			isInt: {
+				default: true
+			},
 			placeholder: {
 				default: ''
 			},
@@ -37,6 +41,20 @@
 			}
 		},
 		methods: {
+			onKeyInput(event) {
+				// uniapp的input用这个
+				let i = event.target.value
+				// u-view的input用这个
+				// let i = event
+				let num = i.charAt(i.length-1)
+				var reg=new RegExp("^[0-9]*$")
+				if(!reg.test(num)) {
+					this.number =  i.slice(0,-1)
+				} else {
+					this.number = i
+				}
+				this.$emit('getNum',this.number);
+			},
 			numPlus() {
 			    this.number = Number(this.number) + Number(this.step)
 				this.$emit('getNum',this.number);
@@ -58,5 +76,10 @@
 		display: flex;
 		align-items: center;
 		justify-content: flex-end;
+		.uni-input {
+			height: 40px;
+			width: 45px;
+			text-align: center;
+		}
 	}
 </style>