index.vue 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <template>
  2. <demo-section>
  3. <demo-block :title="$t('basicUsage')">
  4. <van-stepper v-model="stepper1" />
  5. </demo-block>
  6. <demo-block :title="$t('disabled')">
  7. <van-stepper
  8. v-model="stepper1"
  9. disabled
  10. />
  11. </demo-block>
  12. <demo-block :title="$t('asyncChange')">
  13. <van-stepper
  14. :value="stepper2"
  15. integer
  16. async-change
  17. @change="onChange"
  18. />
  19. </demo-block>
  20. <demo-block :title="$t('advancedUsage')">
  21. <van-stepper
  22. v-model="stepper3"
  23. integer
  24. :min="5"
  25. :max="40"
  26. :step="2"
  27. :default-value="9"
  28. />
  29. </demo-block>
  30. </demo-section>
  31. </template>
  32. <script>
  33. export default {
  34. i18n: {
  35. 'zh-CN': {
  36. asyncChange: '异步变更'
  37. },
  38. 'en-US': {
  39. asyncChange: 'Async Change',
  40. }
  41. },
  42. data() {
  43. return {
  44. stepper1: 1,
  45. stepper2: 10,
  46. stepper3: null
  47. };
  48. },
  49. methods: {
  50. onChange(value) {
  51. if (this.changing) {
  52. return;
  53. }
  54. this.changing = true;
  55. setTimeout(() => {
  56. this.changing = false;
  57. this.stepper2 = value;
  58. }, 500);
  59. }
  60. }
  61. };
  62. </script>
  63. <style lang="less">
  64. .demo-stepper {
  65. background-color: #fff;
  66. .van-stepper {
  67. margin-left: 15px;
  68. }
  69. }
  70. </style>