NumberBox组件内容:

<template>
<div class="number-box" :class="{'box-disable': isDisabled}">
<!-- 此处为“减号”标志的图片 -->
<img class="btn-number" src="./reduce.png" @click="onReduce" />
<div class="number-container">
<Input v-model="strVal" @on-enter="onEnter" :disabled="isDisabled" @on-blur="onBlur" placeholeder="请输入范围" />
<div class="unit" v-text="米" />
</div>
<img class="btn-number" src="./recrease.png" @click="onIncrease" />
</div>
</template> <script>
export default {
props: {
isDisabled: {
type: Boolean,
default: false
},
curVal: {
type: Number,
default: 50
},
minVal: {
type: Number,
default: 50
},
maxVal: {
type: Number,
default: 1000
}
},
data() {
return {
numVal: this.curVal,
strVal: this.curVal.toString()
}
},
methods: {
onEnter() {
if(Number(this.strVal) <= this.minVal) {
this.strVal = this.minVal.toString();
this.numVal = this.minVal;
}
if(Number(this.strVal) >= this.maxVal) {
this.strVal = this.maxVal.toString();
this.numVal = this.maxVal;
} this.numVal = Number(this.strVal);
this.$emit("getNumber", this.numVal);
},
onBlur() {
this.nextTick(() => {
this.onEnter();
});
},
onReduce() {
if(Number(this.strVal) > this.minVal) {
this.strVal = Number(this.strVal);
this.numVal -= 1;
this.strVal = this.numVal.toString();
this.$emit("getNumber", this.numVal);
}
},
onIncrease() {
if(Number(this.strVal) < this.maxVal) {
this.strVal = Number(this.strVal);
this.numVal += 1;
this.strVal = this.numVal.toString();
this.$emit("getNumber", this.numVal);
}
},
resetCurVal(val) {
this.strVal = val.toString();
this.numVal = val;
this.$emit("getNumber", this.numVal);
}
}
}
</script> <style lang="less" scoped>
/*数字输入框*/
.box-disable {
pointer-events: none;
color: #686868 !important;
}
.number-box {
color: #FFF;
dispaly: felx;
flex-flow: row nowrap;
justify-content: space-between;
.btn-number {
cursor: pointer;
margin-top: 7px;
width: 15px;
height: 15px;
}
.number-container {
display: flex;
flex-flow: row nowrap;
justify-content: space-between;
flex-grow: 1;
margin: 0 10px;
background: #1F2124;
.unit {
position: absolute;
right: 35px;
}
}
}
</style>

以下为引用number-box.vue组件的index.vue内容:

<template>
<div class="main-container">
<div class="" @click="onBackOff">
</div>
<number-box ref="numRange" :curVal="currentVal" :minVal="50" :maxVal=“1000” @getNumber="getNumber" />
</div>
</template>
<script>
export default {
data() {
return {
currentVal: 30
}
},
methods: {
onBackOff() { //重置子组件输入框中的内容
this.$refs.numRange.resetCurVal(50);
},
getNumber(val) {
console.log("This is value of input ", val);
}
}
}
</script>

Vue Input输入框两侧加减框内数字组件的更多相关文章

  1. js实现输入框数量加减【转】

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. Android 自定义控件 EditText输入框两边加减按钮Button

    自己封装的一个控件:EditText两边放加减按钮Button来控制输入框的数值 Demo 下载地址: 第一版:http://download.csdn.net/detail/zjjne/674086 ...

  3. 微信小程序优化:实现picker组件中input输入框禁止输入,而只能通过picker组件选择日期

    原来的代码如下: <view class="right">     <picker mode="date" value="{{mat ...

  4. vue input输入框长度限制

    今天在开发登录页时,需要设置登录输入框的长度,输入类型为number <input type="number" maxlength="11" placeh ...

  5. vue input输入框联想

    以下是示例,样式可以自己修改.最后是效果图,其实也挺简单的,主要是用了watch监控input输入值的变化,如果数据是请后端请求可以,先请求数据. <template> <div c ...

  6. input标签获取焦点时文本框内提示信息清空背景颜色发生变化

    <input type="text" id="username" onfocus="myFocus(this,'#f4eaf1')" ...

  7. VUE -input输入框字母转大写

    示例: 输入自动转--->大写 <input type="text" placeholder="请输入证件号码" maxlength="1 ...

  8. vue 如何实现 Input 输入框模糊查询方法

    原理:原生js的indexOf() 方法,该方法将从头到尾地检索数组,看它是否含有对应的元素.开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时).如果找到一个 item, ...

  9. 购物车数字加减按钮HTML+CSS+JS(有需要嫌麻烦的小伙伴拿走不谢)

    之前在写详情页的时候,如下图 因为自己嫌麻烦,就去看其他网站是怎么写的,想直接拿来用,后来看来看去觉得写得很麻烦,于是最后还是决定自己写,附上HTML+CSS+JS代码,一条龙一站式贴心服务2333 ...

随机推荐

  1. 如何使用python在保留原excel格式的前提下插入/修改数据

    一.需求分析: 统计的报表中需要每日查询当天数据并追加到原有的excel后面. 因为原始excel格式已经设定好,如果使用xlwt,仅仅指定设定我们要插入的单元格的格式,原始数据的格式会被初始化. 所 ...

  2. visual stutio 20017

    Visual Studio 2017入門: https://www.atmarkit.co.jp/ait/articles/1704/10/news026.html vb 手册: http://vb. ...

  3. 在Javascript中闭包(Closure)

    在Javascript中闭包(Closure) 什么是闭包 “官方”的解释是:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. ...

  4. 【转】Cookie/Session机制详解

    Cookie/Session机制详解   会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息 ...

  5. 窗函数法设计FIR滤波器参数特征表

  6. 移动端web页面列表类上拉加载,查看详情,iframe嵌套第三方页面遇到的问题以及解决办法

    1.移动端上拉加载 网上有很多成熟的插件,比如iscroll.在这里介绍一下用jquery和js写的上拉加载方法.使用原生的去写上拉加载更多需要三个高度去做对比,以新闻类列表举例,首先需要整个dom的 ...

  7. html基础学习笔记1

    <!DOCTYPE html> 声明为 HTML5 文档  <html> 元素是 HTML 页面的根元素 <head> 元素包含了文档的元(meta)数据,如 &l ...

  8. 使用Visual Studio 2017开发Linux程序

    环境: win7_x64旗舰版.VS2017企业版.VMware10.0.2.CentOS7 在CentOS7上首先需要安装gcc.g++和gdbserver,这里就不多说 一.安装VS2017 1. ...

  9. 计算机图形学----基于3D图形开发技术 (韩正贤 著)

    第1章 游戏模型 第2章 顶点处理机制 第3章 光栅化操作 第4章 片元处理和输出合并 第5章 光照和着色 第6章 参数曲线和表面 第7章 着色器模型 第8章 图像纹理 第9章 凹凸贴图 第10章 高 ...

  10. Jmeter 传 PUT 请求方式

    最近用 Jmeter 发送 PUT 请求,踩了个坑,现记录如下: 难点在在于 body 内有一大串 json 形式的内容 1.PUT 请求的 body 内,直接将 json串传 form-data 形 ...