tabs.nvue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. <template>
  2. <view class="u-page">
  3. <view class="u-demo-block">
  4. <text class="u-demo-block__title">基础演示</text>
  5. <view class="u-demo-block__content">
  6. <u-tabs :list="list1" @click="click" :current="3">
  7. </u-tabs>
  8. </view>
  9. </view>
  10. <view
  11. class="u-demo-block"
  12. style="margin-bottom: 0;"
  13. >
  14. <text class="u-demo-block__title">粘性布局</text>
  15. </view>
  16. <u-sticky bgColor="#fff">
  17. <u-tabs
  18. :list="list1"
  19. >
  20. </u-tabs>
  21. </u-sticky>
  22. <u-gap
  23. height="23"
  24. bgColor="#fff"
  25. ></u-gap>
  26. <view class="u-demo-block">
  27. <text class="u-demo-block__title">显示徽标</text>
  28. <view class="u-demo-block__content">
  29. <u-tabs :list="list2">
  30. </u-tabs>
  31. </view>
  32. </view>
  33. <view class="u-demo-block">
  34. <text class="u-demo-block__title">禁止滚动</text>
  35. <view class="u-demo-block__content">
  36. <u-tabs :list="list6" :scrollable="false">
  37. </u-tabs>
  38. </view>
  39. </view>
  40. <view class="u-demo-block">
  41. <text class="u-demo-block__title">禁用菜单</text>
  42. <view class="u-demo-block__content">
  43. <u-tabs :list="list3">
  44. </u-tabs>
  45. </view>
  46. </view>
  47. <view class="u-demo-block">
  48. <text class="u-demo-block__title">自定义样式</text>
  49. <view class="u-demo-block__content">
  50. <u-tabs
  51. :list="list4"
  52. lineWidth="30"
  53. lineColor="#f56c6c"
  54. :activeStyle="{
  55. color: '#303133',
  56. fontWeight: 'bold',
  57. transform: 'scale(1.05)'
  58. }"
  59. :inactiveStyle="{
  60. color: '#606266',
  61. transform: 'scale(1)'
  62. }"
  63. itemStyle="padding-left: 15px; padding-right: 15px; height: 34px;"
  64. >
  65. </u-tabs>
  66. </view>
  67. </view>
  68. <view class="u-demo-block">
  69. <text class="u-demo-block__title">滑块设置背景图</text>
  70. <view class="u-demo-block__content">
  71. <u-tabs
  72. :list="list4"
  73. lineWidth="20"
  74. lineHeight="7"
  75. :lineColor="`url(${lineBg}) 100% 100%`"
  76. :activeStyle="{
  77. color: '#303133',
  78. fontWeight: 'bold',
  79. transform: 'scale(1.05)'
  80. }"
  81. :inactiveStyle="{
  82. color: '#606266',
  83. transform: 'scale(1)'
  84. }"
  85. itemStyle="padding-left: 15px; padding-right: 15px; height: 34px;"
  86. >
  87. </u-tabs>
  88. </view>
  89. </view>
  90. <view class="u-demo-block">
  91. <text class="u-demo-block__title">右侧自定义插槽</text>
  92. <view class="u-demo-block__content">
  93. <u-tabs :list="list1">
  94. <view
  95. slot="right"
  96. style="padding-left: 4px;"
  97. @tap="$u.toast('插槽被点击')"
  98. >
  99. <u-icon
  100. name="list"
  101. size="21"
  102. bold
  103. ></u-icon>
  104. </view>
  105. </u-tabs>
  106. </view>
  107. </view>
  108. </view>
  109. </template>
  110. <script>
  111. const lineBg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAOCAYAAABdC15GAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFxSURBVHgBzZNRTsJAEIb/WTW+lpiY+FZPIDew3ABP4GJ8hxsI9zBpOYHeQDwBPQI+mRiRvpLojtPdYhCorQqF/6GdbGd2vvwzBXZcNAt4oj1ANeUoAT5iqkUjbEFLHNmhD1YPEvpZ3ghkGlVDCkc94/BmHMq998I5ONiY1ZBfpKAyuOtgAc5yOEDmYEWNh32BHF91sGHZHmwW4azciN9aQwnz3SJEgOmte+R2tdLprTYoa50mvuomlLpD4Y3oQZnov6D2RzCqI93bWOHaEmAGqQUyRBlZR1WfarcD/EJ2z8DtzDGvsMCwpm8XOCfDUsVOCYhiqRxI/CTQo4UOvjzO7Pow18vfywneuUHHUUxLn55lLw5JFpZ8bEUcY8oXdOLWiHLTxvoGpLqoUmy6dBT15o/ox3znpoycAmxUsiJTbs1cmxeVKp+0zmFIS7bGWiVghC7Vwse8jFKAX9eljh4ggKLLv7uaQvG9/F59Oo2SouxPu7OTCxN/s8wAAAAASUVORK5CYII=";
  112. export default {
  113. mixins: [uni.$u.mixin],
  114. data() {
  115. return {
  116. lineBg,
  117. list1: [{
  118. name: '关注',
  119. }, {
  120. name: '推荐',
  121. }, {
  122. name: '电影'
  123. }, {
  124. name: '科技'
  125. }, {
  126. name: '音乐'
  127. }, {
  128. name: '美食'
  129. }, {
  130. name: '文化'
  131. }, {
  132. name: '财经'
  133. }, {
  134. name: '手工'
  135. }],
  136. list2: [{
  137. name: '关注'
  138. }, {
  139. name: '推荐',
  140. badge: {
  141. isDot: true
  142. }
  143. }, {
  144. name: '电影',
  145. badge: {
  146. value: 5,
  147. }
  148. }, {
  149. name: '科技'
  150. }, {
  151. name: '音乐'
  152. }, {
  153. name: '美食'
  154. }, {
  155. name: '文化'
  156. }, {
  157. name: '财经'
  158. }, {
  159. name: '手工'
  160. }],
  161. list3: [{
  162. name: '关注'
  163. }, {
  164. name: '推荐',
  165. }, {
  166. name: '电影',
  167. disabled: true
  168. }, {
  169. name: '科技'
  170. }, {
  171. name: '音乐'
  172. }, {
  173. name: '美食'
  174. }, {
  175. name: '文化'
  176. }, {
  177. name: '财经'
  178. }, {
  179. name: '手工'
  180. }],
  181. list4: [{
  182. name: '关注'
  183. }, {
  184. name: '推荐',
  185. badge: {
  186. isDot: true
  187. }
  188. }, {
  189. name: '电影',
  190. }, {
  191. name: '科技'
  192. }, {
  193. name: '音乐'
  194. }, {
  195. name: '美食'
  196. }, {
  197. name: '文化'
  198. }, {
  199. name: '财经'
  200. }, {
  201. name: '手工'
  202. }],
  203. list6: [
  204. {
  205. name: '关注'
  206. }, {
  207. name: '推荐',
  208. }, {
  209. name: '电影',
  210. }, {
  211. name: '科技'
  212. }
  213. ]
  214. }
  215. },
  216. onLoad() {
  217. },
  218. methods: {
  219. click(item) {
  220. console.log('item', item);
  221. }
  222. }
  223. }
  224. </script>
  225. <style lang="scss">
  226. .u-page {
  227. padding-bottom: 500px;
  228. }
  229. </style>