You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

112 lines
3.2 KiB

  1. import { defineMixin } from '../../libs/vue'
  2. import SliderDefaultProps from './slider'
  3. import { registerComponentProps } from '../../libs/config/props.js'
  4. const defProps = registerComponentProps(SliderDefaultProps)
  5. export const props = defineMixin({
  6. props: {
  7. // 最小可选值
  8. min: {
  9. type: [Number, String],
  10. default: () => defProps.slider.min
  11. },
  12. // 最大可选值
  13. max: {
  14. type: [Number, String],
  15. default: () => defProps.slider.max
  16. },
  17. // 步长,取值必须大于 0,并且可被(max - min)整除
  18. step: {
  19. type: [Number, String],
  20. default: () => defProps.slider.step
  21. },
  22. // #ifdef VUE3
  23. // 当前取值
  24. modelValue: {
  25. type: [String, Number],
  26. default: () => defProps.slider.value
  27. },
  28. // #endif
  29. // #ifdef VUE2
  30. // 当前取值
  31. value: {
  32. type: [String, Number],
  33. default: () => defProps.slider.value
  34. },
  35. // #endif
  36. // 是否区间模式
  37. isRange: {
  38. type: Boolean,
  39. default: false
  40. },
  41. // 双滑块时值
  42. rangeValue: {
  43. type: [Array],
  44. default: [0, 0]
  45. },
  46. // 滑块右侧已选择部分的背景色
  47. activeColor: {
  48. type: String,
  49. default: () => defProps.slider.activeColor
  50. },
  51. // 滑块左侧未选择部分的背景色
  52. inactiveColor: {
  53. type: String,
  54. default: () => defProps.slider.inactiveColor
  55. },
  56. // 滑块的大小,取值范围为 12 - 28
  57. blockSize: {
  58. type: [Number, String],
  59. default: () => defProps.slider.blockSize
  60. },
  61. // 滑块的颜色
  62. blockColor: {
  63. type: String,
  64. default: () => defProps.slider.blockColor
  65. },
  66. // 用户对滑块的自定义颜色
  67. blockStyle: {
  68. type: Object,
  69. default: () => defProps.slider.blockStyle
  70. },
  71. // 禁用状态
  72. disabled: {
  73. type: Boolean,
  74. default: () => defProps.slider.disabled
  75. },
  76. // 是否显示当前的选择值
  77. showValue: {
  78. type: Boolean,
  79. default: () => defProps.slider.showValue
  80. },
  81. // 是否渲染uni-app框架内置组件
  82. useNative: {
  83. type: Boolean,
  84. default: () => defProps.slider.useNative
  85. },
  86. // 滑块厚度
  87. height: {
  88. type: String,
  89. default: () => defProps.slider.height
  90. },
  91. innerStyle: {
  92. type: Object,
  93. default: () => defProps.slider.innerStyle
  94. },
  95. // 是否垂直方向
  96. vertical: {
  97. type: Boolean,
  98. default: defProps.slider.vertical
  99. },
  100. // 滑块粗细,为了支持垂直模式下统一粗细参数,用size代替height。
  101. size: {
  102. type: [Number, String],
  103. default: () => defProps.slider.size
  104. },
  105. // 滑块长度,水平和垂直模式的长度。
  106. length: {
  107. type: [Number, String],
  108. default: 'auto'
  109. }
  110. }
  111. })