demo.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. <template>
  2. <div>
  3. <div>
  4. <wuc-tab
  5. :tab-list="tabList"
  6. :tabCur.sync="TabCur"
  7. tab-class="text-center bg-white nav fixed"
  8. select-class="text-blue"
  9. @change="tabChange"
  10. ></wuc-tab>
  11. <div class="cu-bar bg-white solid-bottom" style="margin-top:100upx">
  12. <div class="action">
  13. <text class="icon-titles text-orange"></text>基本使用(tab固定,只支持点击标签切换)
  14. </div>
  15. </div>
  16. <div
  17. class="bg-white padding margin text-center text-black"
  18. >{{tabList[TabCur].name}}</div>
  19. </div>
  20. <div>
  21. <div class="cu-bar bg-white margin-top solid-bottom">
  22. <div class="action">
  23. <text class="icon-titles text-orange"></text>居中选中放大(外部触发切换)
  24. </div>
  25. </div>
  26. <wuc-tab
  27. :tab-list="tabList2"
  28. :tabCur="TabCur2"
  29. @change="tabChange2"
  30. tab-class="text-center text-black bg-white"
  31. select-class="text-blue text-xl"
  32. ></wuc-tab>
  33. <swiper
  34. :current="TabCur2"
  35. class="swiper row"
  36. duration="300"
  37. :circular="true"
  38. indicator-color="rgba(255,255,255,0)"
  39. indicator-active-color="rgba(255,255,255,0)"
  40. @change="swiperChange2"
  41. >
  42. <swiper-item v-for="(item,index) in tabList2" :key="index">
  43. <div
  44. class="bg-white padding margin text-center text-black"
  45. >{{item.name}}</div>
  46. </swiper-item>
  47. </swiper>
  48. </div>
  49. <div>
  50. <div class="cu-bar bg-white margin-top solid-bottom">
  51. <div class="action">
  52. <text class="icon-titles text-orange"></text>平分
  53. </div>
  54. </div>
  55. <wuc-tab
  56. :tab-list="tabList3"
  57. textFlex
  58. :tabCur.sync="TabCur3"
  59. tab-class="text-center text-black bg-white"
  60. select-class="text-orange"
  61. ></wuc-tab>
  62. <swiper
  63. :current="TabCur3"
  64. class="swiper row"
  65. duration="300"
  66. :circular="true"
  67. indicator-color="rgba(255,255,255,0)"
  68. indicator-active-color="rgba(255,255,255,0)"
  69. @change="swiperChange3"
  70. >
  71. <swiper-item v-for="(item,index) in tabList3" :key="index">
  72. <div
  73. class="bg-white padding margin text-center text-black"
  74. >{{item.name}}</div>
  75. </swiper-item>
  76. </swiper>
  77. </div>
  78. <div>
  79. <div class="cu-bar bg-white margin-top solid-bottom">
  80. <div class="action">
  81. <text class="icon-titles text-orange"></text>背景
  82. </div>
  83. </div>
  84. <wuc-tab
  85. :tab-list="tabList4"
  86. :tabCur.sync="TabCur4"
  87. tab-class="text-center text-white bg-blue"
  88. select-class="text-white"
  89. ></wuc-tab>
  90. <swiper
  91. :current="TabCur4"
  92. class="swiper row"
  93. duration="300"
  94. :circular="true"
  95. indicator-color="rgba(255,255,255,0)"
  96. indicator-active-color="rgba(255,255,255,0)"
  97. @change="swiperChange4"
  98. >
  99. <swiper-item v-for="(item,index) in tabList4" :key="index">
  100. <div
  101. class="bg-white padding margin text-center text-black"
  102. >{{item.name}}</div>
  103. </swiper-item>
  104. </swiper>
  105. </div>
  106. <div>
  107. <div class="cu-bar bg-white margin-top solid-bottom">
  108. <div class="action">
  109. <text class="icon-titles text-orange"></text>图标
  110. </div>
  111. </div>
  112. <wuc-tab
  113. :tab-list="tabList5"
  114. :tabCur.sync="TabCur5"
  115. tab-class="text-center text-black bg-white"
  116. select-class="text-blue"
  117. />
  118. <swiper
  119. :current="TabCur5"
  120. class="swiper row"
  121. duration="300"
  122. :circular="true"
  123. indicator-color="rgba(255,255,255,0)"
  124. indicator-active-color="rgba(255,255,255,0)"
  125. @change="swiperChange5"
  126. >
  127. <swiper-item v-for="(item,index) in tabList5" :key="index">
  128. <div
  129. class="bg-white padding margin text-center text-black"
  130. >{{item.name}}</div>
  131. </swiper-item>
  132. </swiper>
  133. </div>
  134. </div>
  135. </template>
  136. <script>
  137. import WucTab from "@/components/wuc-tab/wuc-tab.vue";
  138. export default {
  139. data() {
  140. return {
  141. tabList: [
  142. { name: "选项卡一" },
  143. { name: "选项卡二" },
  144. { name: "选项卡三" },
  145. { name: "选项卡四" },
  146. { name: "选项卡五" },
  147. { name: "选项卡六" },
  148. { name: "选项卡七" },
  149. { name: "选项卡八" }
  150. ],
  151. tabList2: [{ name: "精选" }, { name: "订阅" }],
  152. tabList3: [{ name: "精选" }, { name: "订阅" }],
  153. tabList4: [
  154. { name: "推荐" },
  155. { name: "热点" },
  156. { name: "视频" },
  157. { name: "问答" },
  158. { name: "社会" },
  159. { name: "娱乐" },
  160. { name: "科技" },
  161. { name: "汽车" }
  162. ],
  163. tabList5: [
  164. { name: "短信", icon: "icon-comment" },
  165. { name: "电话", icon: "icon-dianhua" },
  166. { name: "wifi", icon: "icon-wifi" }
  167. ],
  168. TabCur: 0,
  169. TabCur2: 0,
  170. TabCur3: 0,
  171. TabCur4: 0,
  172. TabCur5: 0
  173. };
  174. },
  175. components: { WucTab },
  176. computed: {},
  177. methods: {
  178. tabChange(index) {
  179. this.TabCur = index;
  180. },
  181. tabChange2(index) {
  182. this.TabCur2 = index;
  183. },
  184. swiperChange2(e) {
  185. let { current } = e.target;
  186. this.TabCur2 = current;
  187. },
  188. swiperChange3(e) {
  189. let { current } = e.target;
  190. this.TabCur3 = current;
  191. },
  192. swiperChange4(e) {
  193. let { current } = e.target;
  194. this.TabCur4 = current;
  195. },
  196. swiperChange5(e) {
  197. this.TabCur5 = e.target.current;
  198. }
  199. },
  200. onReady() {}
  201. };
  202. </script>
  203. <style>
  204. @import "./styles/main.scss";
  205. @import "./styles/base.scss";
  206. @import "./styles/icon.scss";
  207. @import "./styles/animation.scss";
  208. </style>