index.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <template>
  2. <demo-section>
  3. <demo-block :title="$t('basicUsage')">
  4. <van-switch v-model="checked" />
  5. </demo-block>
  6. <demo-block :title="$t('disabled')">
  7. <van-switch
  8. v-model="checked"
  9. disabled
  10. />
  11. </demo-block>
  12. <demo-block :title="$t('loadingStatus')">
  13. <van-switch
  14. v-model="checked"
  15. loading
  16. />
  17. </demo-block>
  18. <demo-block :title="$t('customSize')">
  19. <van-switch
  20. v-model="checked2"
  21. size="24px"
  22. />
  23. </demo-block>
  24. <demo-block :title="$t('customColor')">
  25. <van-switch
  26. v-model="checked3"
  27. active-color="#07c160"
  28. inactive-color="#f44"
  29. />
  30. </demo-block>
  31. <demo-block :title="$t('asyncControl')">
  32. <van-switch
  33. :value="checked4"
  34. @input="onInput"
  35. />
  36. </demo-block>
  37. </demo-section>
  38. </template>
  39. <script>
  40. export default {
  41. i18n: {
  42. 'zh-CN': {
  43. title: '提醒',
  44. message: '是否切换开关?',
  45. customSize: '自定义大小',
  46. customColor: '自定义颜色',
  47. asyncControl: '异步控制'
  48. },
  49. 'en-US': {
  50. title: 'Confirm',
  51. message: 'Are you sure to toggle switch?',
  52. customSize: 'Custom Size',
  53. customColor: 'Custom Color',
  54. asyncControl: 'Async Control'
  55. }
  56. },
  57. data() {
  58. return {
  59. checked: true,
  60. checked2: true,
  61. checked3: true,
  62. checked4: true
  63. };
  64. },
  65. methods: {
  66. onInput(checked) {
  67. this.$dialog.confirm({
  68. title: this.$t('title'),
  69. message: this.$t('message')
  70. }).then(() => {
  71. this.checked4 = checked;
  72. });
  73. }
  74. }
  75. };
  76. </script>
  77. <style lang="less">
  78. .demo-switch {
  79. .van-switch {
  80. margin: 0 15px;
  81. }
  82. }
  83. </style>