1.首先先创建一个Stepper.vue
<template> <div> <div @click="mins" :class="{ active: muber==min }">-</div> <input type="text" v-model="muber" @keyup="keyUpnumberVal" /> <div @click="adds" :class="{ active: muber==max }">+</div> </div> </template> <script> export default { name: "Stepper", data() { return { muber: 1 }; }, props: { min: { type: Number, default: 1 }, max: { type: Number, default: 5 }, disabled, }, methods: { mins() { if (this.muber <= this.min) { return; } this.muber--; this.$emit("countNumber", this.muber); }, adds() { if (this.muber >= this.max) { return; } this.muber++; this.$emit("countNumber", this.muber); }, keyUpnumberVal() { let numValue; if (typeof this.muber === "string") { } this.$emit("countNumber", this.muber); } } }; </script> <style lang="less" scoped> .counter-component { position: relative; display: inline-table; overflow: hidden; vertical-align: middle; } .counter-show { float: left; } input { display: inline-block; border: none; border-top: 1px solid #e3e3e3; border-bottom: 1px solid #e3e3e3; height: 25px; line-height: 25px; width: 30px; text-align: center; outline: none; text-align: center; background: #fff; } .counter-btn { border: 1px solid #e3e3e3; display: inline-block; height: 25px; line-height: 25px; width: 25px; text-align: center; cursor: pointer; } .counter-btn:hover { border-color: #4fc08d; background: #4fc08d; color: #fff; } .active { background: rgb(182, 181, 181); } </style>
2.然后页面加载
import Stepper from "./Stepper/Stepper"; <Stepper :min="Numbers" :max="maxNumbers" @countNumber="getFeslaves('countNumber',$event)"></Stepper> data(){ return { Numbers: 1, maxNumbers: 5 } }