demo.vue 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <template>
  2. <div class="demo full">
  3. <h2>{{ translate('basic') }}</h2>
  4. <nut-tabbar @tab-switch="tabSwitch">
  5. <nut-tabbar-item :tab-title="translate('title')" icon="home"></nut-tabbar-item>
  6. <nut-tabbar-item :tab-title="translate('title')" icon="category"></nut-tabbar-item>
  7. <nut-tabbar-item :tab-title="translate('title')" icon="find"></nut-tabbar-item>
  8. <nut-tabbar-item :tab-title="translate('title')" icon="cart"></nut-tabbar-item>
  9. <nut-tabbar-item :tab-title="translate('title')" icon="my"></nut-tabbar-item>
  10. </nut-tabbar>
  11. <h2>{{ translate('byName') }}</h2>
  12. <nut-tabbar @tab-switch="tabSwitch" v-model:visible="activeName">
  13. <nut-tabbar-item name="home" :tab-title="translate('title')" icon="home"></nut-tabbar-item>
  14. <nut-tabbar-item name="category" :tab-title="translate('title')" icon="category"></nut-tabbar-item>
  15. <nut-tabbar-item name="find" :tab-title="translate('title')" icon="find"></nut-tabbar-item>
  16. <nut-tabbar-item name="cart" :tab-title="translate('title')" icon="cart"></nut-tabbar-item>
  17. <nut-tabbar-item name="my" :tab-title="translate('title')" icon="my"></nut-tabbar-item>
  18. </nut-tabbar>
  19. <h2>{{ translate('customImg') }}</h2>
  20. <nut-tabbar @tab-switch="tabSwitch">
  21. <nut-tabbar-item
  22. :tab-title="translate('title')"
  23. img="http://img13.360buyimg.com/uba/jfs/t1/29316/38/1115/3203/5c0f3d61E35d0c7da/9e557f2cb5c9dab6.jpg"
  24. activeImg="http://img20.360buyimg.com/uba/jfs/t1/9996/36/8646/4833/5c0f3d61E7c1b7e0f/c98ad61124172e93.jpg"
  25. ></nut-tabbar-item>
  26. <nut-tabbar-item
  27. :tab-title="translate('title')"
  28. img="http://img12.360buyimg.com/uba/jfs/t1/25443/23/1062/4600/5c0f3d61E2e9f1360/c9b3421fe18614e2.jpg"
  29. activeImg="http://img20.360buyimg.com/uba/jfs/t1/19241/12/1048/8309/5c0f3d61E17ed5a56/c3af0964cade47f8.jpg"
  30. ></nut-tabbar-item>
  31. <nut-tabbar-item
  32. :tab-title="translate('title')"
  33. img="http://img13.360buyimg.com/uba/jfs/t1/10361/35/4713/4643/5c0f3d62E437a3c94/273fd0fb90798f03.jpg"
  34. activeImg="http://img14.360buyimg.com/uba/jfs/t1/26604/35/1073/7896/5c0f3d61Eb9f5f184/5f01c938abe4216d.jpg"
  35. ></nut-tabbar-item>
  36. <nut-tabbar-item
  37. :tab-title="translate('title')"
  38. img="http://img11.360buyimg.com/uba/jfs/t1/14848/18/1066/3723/5c0f41bdE9f2a38fe/e6ed6768717297fb.jpg"
  39. activeImg="http://img30.360buyimg.com/uba/jfs/t1/17538/16/1070/6214/5c0f41bdE4bc9a1db/74cf978e5015454b.jpg"
  40. ></nut-tabbar-item>
  41. <nut-tabbar-item
  42. :tab-title="translate('title')"
  43. img="http://img20.360buyimg.com/uba/jfs/t1/20004/20/1045/3620/5c0f3d61Eaaec1670/9e59db63983b7b9f.jpg"
  44. activeImg="http://img14.360buyimg.com/uba/jfs/t1/23967/14/1072/6714/5c0f3d61E0ad8991e/8f741953f6e38f15.jpg"
  45. ></nut-tabbar-item>
  46. </nut-tabbar>
  47. <h2>{{ translate('customCheck') }}</h2>
  48. <nut-tabbar v-model:visible="active" size="18px">
  49. <nut-tabbar-item :tab-title="translate('title')" icon="home"></nut-tabbar-item>
  50. <nut-tabbar-item :tab-title="translate('title')" icon="category"></nut-tabbar-item>
  51. <nut-tabbar-item :tab-title="translate('title')" icon="find"></nut-tabbar-item>
  52. <nut-tabbar-item :tab-title="translate('title')" icon="cart"></nut-tabbar-item>
  53. <nut-tabbar-item :tab-title="translate('title')" icon="my"></nut-tabbar-item>
  54. </nut-tabbar>
  55. <h2>{{ translate('showBadge') }}</h2>
  56. <nut-tabbar>
  57. <nut-tabbar-item :tab-title="translate('title')" icon="home" num="11"></nut-tabbar-item>
  58. <nut-tabbar-item :tab-title="translate('title')" icon="category" :dot="true"></nut-tabbar-item>
  59. <nut-tabbar-item :tab-title="translate('title')" icon="find"></nut-tabbar-item>
  60. <nut-tabbar-item :tab-title="translate('title')" icon="cart" num="110"></nut-tabbar-item>
  61. <nut-tabbar-item :tab-title="translate('title')" icon="my"></nut-tabbar-item>
  62. </nut-tabbar>
  63. <h2>{{ translate('customColor') }}</h2>
  64. <nut-tabbar unactive-color="#7d7e80" active-color="#1989fa">
  65. <nut-tabbar-item :tab-title="translate('title')" icon="home"></nut-tabbar-item>
  66. <nut-tabbar-item :tab-title="translate('title')" icon="category"></nut-tabbar-item>
  67. <nut-tabbar-item :tab-title="translate('title')" icon="find"></nut-tabbar-item>
  68. <nut-tabbar-item :tab-title="translate('title')" icon="cart"></nut-tabbar-item>
  69. <nut-tabbar-item :tab-title="translate('title')" icon="my"></nut-tabbar-item>
  70. </nut-tabbar>
  71. <h2>{{ translate('customQuantity') }}</h2>
  72. <nut-tabbar unactive-color="#7d7e80" active-color="#1989fa">
  73. <nut-tabbar-item :tab-title="translate('title')" icon="home"></nut-tabbar-item>
  74. <nut-tabbar-item :tab-title="translate('title')" icon="category"></nut-tabbar-item>
  75. <nut-tabbar-item :tab-title="translate('title')" icon="find"></nut-tabbar-item>
  76. </nut-tabbar>
  77. <h2>{{ translate('fixedBottom') }}</h2>
  78. <nut-tabbar :bottom="true" :safeAreaInsetBottom="true">
  79. <nut-tabbar-item :tab-title="translate('title')" href="" icon="home"></nut-tabbar-item>
  80. <nut-tabbar-item :tab-title="translate('title')" icon="category"></nut-tabbar-item>
  81. <nut-tabbar-item :tab-title="translate('title')" icon="find"></nut-tabbar-item>
  82. <nut-tabbar-item :tab-title="translate('title')" href="https://m.jd.com" icon="cart"></nut-tabbar-item>
  83. <nut-tabbar-item :tab-title="translate('title')" href="######" icon="my"></nut-tabbar-item>
  84. </nut-tabbar>
  85. </div>
  86. </template>
  87. <script lang="ts">
  88. import { ref } from 'vue';
  89. import { createComponent } from '@/packages/utils/create';
  90. const { createDemo, translate } = createComponent('tabbar');
  91. import { useTranslate } from '@/sites/assets/util/useTranslate';
  92. useTranslate({
  93. 'zh-CN': {
  94. basic: '基本用法',
  95. byName: '通过名称匹配',
  96. customImg: '自定义图片',
  97. customCheck: '自定义选中',
  98. showBadge: '徽标提示',
  99. customColor: '自定义颜色',
  100. customQuantity: '自定义数量',
  101. fixedBottom: '固定底部',
  102. title: '标签'
  103. },
  104. 'en-US': {
  105. basic: 'Basic Usage',
  106. byName: 'Match by name',
  107. customImg: 'Custom Img',
  108. customCheck: 'Custom Check',
  109. showBadge: 'Show Badge',
  110. customColor: 'Custom Color',
  111. customQuantity: 'Custom Quantity',
  112. fixedBottom: 'Fixed Bottom',
  113. title: 'tab'
  114. }
  115. });
  116. export default createDemo({
  117. props: {},
  118. setup() {
  119. const active = ref(2);
  120. const activeName = ref('category');
  121. function tabSwitch(item: Record<string, unknown>, index: number) {
  122. console.log(item, index);
  123. }
  124. return {
  125. active,
  126. activeName,
  127. tabSwitch,
  128. translate
  129. };
  130. }
  131. });
  132. </script>
  133. <style lang="scss" scoped></style>