| | |
| | | v-model="sliderAmount" |
| | | :format-tooltip="(v) => `${v}%`" |
| | | :marks="marks" |
| | | :step="25" |
| | | > |
| | | </el-slider> |
| | | </div> |
| | |
| | | 0: "0", |
| | | 25: "25%", |
| | | 50: "50%", |
| | | 75: "70%", |
| | | 75: "75%", |
| | | 100: "100%", |
| | | }, |
| | | allowedSteps: [0, 25, 50, 75, 100], |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapState(useUserStore, ["existToken"]), |
| | | }, |
| | | methods: { |
| | | onSliderInput(val) { |
| | | // 只允许滑到指定点 |
| | | const allowed = this.allowedSteps; |
| | | let closest = allowed[0]; |
| | | let minDiff = Math.abs(val - allowed[0]); |
| | | for (let i = 1; i < allowed.length; i++) { |
| | | const diff = Math.abs(val - allowed[i]); |
| | | if (diff < minDiff) { |
| | | minDiff = diff; |
| | | closest = allowed[i]; |
| | | } |
| | | } |
| | | if (this.sliderAmount !== closest) { |
| | | this.sliderAmount = closest; |
| | | } |
| | | }, |
| | | //输入框事件 |
| | | inputChange(val) { |
| | | this.$emit("getAmount", val); |
| | |
| | | } |
| | | }, |
| | | emptyValue() { |
| | | this.sliderAmount = undefined; |
| | | this.sliderAmount = 0; |
| | | }, |
| | | }, |
| | | }; |