u-slider.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <template>
  2. <view
  3. class="u-slider"
  4. :style="[$u.addStyle(customStyle)]"
  5. >
  6. <slider
  7. :min="min"
  8. :max="max"
  9. :step="step"
  10. :value="value"
  11. :activeColor="activeColor"
  12. :inactiveColor="inactiveColor"
  13. :blockSize="$u.getPx(blockSize)"
  14. :blockColor="blockColor"
  15. :showValue="showValue"
  16. :disabled="disabled"
  17. @changing="changingHandler"
  18. @change="changeHandler"
  19. ></slider>
  20. </view>
  21. </template>
  22. <script>
  23. import props from './props.js';
  24. import mpMixin from '../../libs/mixin/mpMixin.js';
  25. import mixin from '../../libs/mixin/mixin.js';
  26. export default {
  27. name: 'u--slider',
  28. mixins: [mpMixin, mixin, props],
  29. methods: {
  30. // 拖动过程中触发
  31. changingHandler(e) {
  32. const {
  33. value
  34. } = e.detail
  35. // 更新v-model的值
  36. this.$emit('input', value)
  37. // 触发事件
  38. this.$emit('changing', value)
  39. },
  40. // 滑动结束时触发
  41. changeHandler(e) {
  42. const {
  43. value
  44. } = e.detail
  45. // 更新v-model的值
  46. this.$emit('input', value)
  47. // 触发事件
  48. this.$emit('change', value)
  49. }
  50. },
  51. }
  52. </script>
  53. <style lang="scss" scoped>
  54. @import "../../libs/css/components.scss";
  55. </style>