index.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <template>
  2. <demo-section>
  3. <demo-block :title="$t('basicUsage')">
  4. <van-radio-group
  5. v-model="radio1"
  6. class="demo-radio-group"
  7. >
  8. <van-radio name="1">{{ $t('radio') }} 1</van-radio>
  9. <van-radio name="2">{{ $t('radio') }} 2</van-radio>
  10. </van-radio-group>
  11. </demo-block>
  12. <demo-block :title="$t('disabled')">
  13. <van-radio-group
  14. v-model="radio2"
  15. class="demo-radio-group"
  16. disabled
  17. >
  18. <van-radio name="1">{{ $t('radio') }} 1</van-radio>
  19. <van-radio name="2">{{ $t('radio') }} 2</van-radio>
  20. </van-radio-group>
  21. </demo-block>
  22. <demo-block :title="$t('customColor')">
  23. <van-radio
  24. name="1"
  25. value="1"
  26. checked-color="#07c160"
  27. class="demo-radio-group"
  28. >
  29. {{ $t('radio') }}
  30. </van-radio>
  31. </demo-block>
  32. <demo-block :title="$t('customIcon')">
  33. <van-radio
  34. name="1"
  35. value="1"
  36. class="demo-radio-group"
  37. >
  38. {{ $t('customIcon') }}
  39. <img
  40. slot="icon"
  41. slot-scope="props"
  42. :src="props.checked ? icon.active : icon.normal"
  43. >
  44. </van-radio>
  45. </demo-block>
  46. <demo-block :title="$t('withCell')">
  47. <van-radio-group v-model="radio3">
  48. <van-cell-group>
  49. <van-cell
  50. :title="$t('radio') + 1"
  51. clickable
  52. @click="radio3 = '1'"
  53. >
  54. <van-radio name="1" />
  55. </van-cell>
  56. <van-cell
  57. :title="$t('radio') + 2"
  58. clickable
  59. @click="radio3 = '2'"
  60. >
  61. <van-radio name="2" />
  62. </van-cell>
  63. </van-cell-group>
  64. </van-radio-group>
  65. </demo-block>
  66. </demo-section>
  67. </template>
  68. <script>
  69. export default {
  70. i18n: {
  71. 'zh-CN': {
  72. radio: '单选框',
  73. text1: '未选中禁用',
  74. text2: '选中且禁用',
  75. customIcon: '自定义图标',
  76. customColor: '自定义颜色',
  77. withCell: '与 Cell 组件一起使用'
  78. },
  79. 'en-US': {
  80. radio: 'Radio',
  81. text1: 'Disabled',
  82. text2: 'Disabled and checked',
  83. customIcon: 'Custom Icon',
  84. customColor: 'Custom Color',
  85. withCell: 'Inside a Cell'
  86. }
  87. },
  88. data() {
  89. return {
  90. radio1: '1',
  91. radio2: '2',
  92. radio3: '1',
  93. icon: {
  94. normal: 'https://img.yzcdn.cn/public_files/2017/10/13/c547715be149dd3faa817e4a948b40c4.png',
  95. active: 'https://img.yzcdn.cn/public_files/2017/10/13/793c77793db8641c4c325b7f25bf130d.png'
  96. }
  97. };
  98. }
  99. };
  100. </script>
  101. <style lang="less">
  102. .demo-radio {
  103. &-group {
  104. padding: 0 17px;
  105. .van-radio {
  106. margin-bottom: 10px;
  107. }
  108. }
  109. img {
  110. height: 20px;
  111. }
  112. }
  113. </style>