demo.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <template>
  2. <div class="demo">
  3. <h2>基础用法</h2>
  4. <nut-cell class="cell">
  5. <nut-range v-model="value1" @change="onChange"></nut-range>
  6. </nut-cell>
  7. <h2>双滑块</h2>
  8. <nut-cell class="cell">
  9. <nut-range range v-model="value2" @change="onChange"></nut-range>
  10. </nut-cell>
  11. <h2>指定范围</h2>
  12. <nut-cell class="cell">
  13. <nut-range
  14. v-model="value3"
  15. :max="10"
  16. :min="-10"
  17. @change="onChange"
  18. ></nut-range>
  19. </nut-cell>
  20. <h2>设置步长</h2>
  21. <nut-cell class="cell">
  22. <nut-range v-model="value4" :step="5" @change="onChange"></nut-range>
  23. </nut-cell>
  24. <h2>隐藏范围</h2>
  25. <nut-cell class="cell">
  26. <nut-range hidden-range v-model="value5" @change="onChange"></nut-range>
  27. </nut-cell>
  28. <h2>隐藏标签</h2>
  29. <nut-cell class="cell">
  30. <nut-range hidden-tag v-model="value6" @change="onChange"></nut-range>
  31. </nut-cell>
  32. <h2>禁用</h2>
  33. <nut-cell class="cell">
  34. <nut-range disabled v-model="value7"></nut-range>
  35. </nut-cell>
  36. <h2>自定义样式</h2>
  37. <nut-cell class="cell">
  38. <nut-range
  39. v-model="value8"
  40. @change="onChange"
  41. inactive-color="rgba(163,184,255,1)"
  42. button-color="rgba(52,96,250,1)"
  43. active-color="linear-gradient(315deg, rgba(73,143,242,1) 0%,rgba(73,101,242,1) 100%)"
  44. ></nut-range>
  45. </nut-cell>
  46. <h2>自定义按钮</h2>
  47. <nut-cell class="cell">
  48. <nut-range v-model="value9" @change="onChange">
  49. <template #button>
  50. <div class="custom-button">{{ value10 }}</div>
  51. </template>
  52. </nut-range>
  53. </nut-cell>
  54. </div>
  55. </template>
  56. <script lang="ts">
  57. import { toRefs, reactive } from 'vue';
  58. import { createComponent } from '@/utils/create';
  59. import { Toast } from '../toast';
  60. const { createDemo } = createComponent('range');
  61. export default createDemo({
  62. props: {},
  63. setup() {
  64. const state = reactive({
  65. value1: 40,
  66. value2: [20, 80],
  67. value3: 0,
  68. value4: 20,
  69. value5: 30,
  70. value6: 40,
  71. value7: 50,
  72. value8: 40,
  73. value9: 60,
  74. value10: 50
  75. });
  76. const onChange = value => Toast.text('当前值:' + value);
  77. return {
  78. ...toRefs(state),
  79. onChange
  80. };
  81. }
  82. });
  83. </script>
  84. <style lang="scss" scoped>
  85. .cell {
  86. padding: 40px 18px;
  87. }
  88. .custom-button {
  89. width: 26px;
  90. color: #fff;
  91. font-size: 10px;
  92. line-height: 18px;
  93. text-align: center;
  94. background-color: #ee0a24;
  95. border-radius: 100px;
  96. }
  97. </style>