cwg-tabs.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <view class="tabs-box">
  3. <u-tabs class="tabs" :list="list" lineWidth="30" lineColor="#f56c6c" :activeStyle="{
  4. color: '#303133',
  5. fontWeight: 'bold',
  6. transform: 'scale(1.05)'
  7. }" :inactiveStyle="{
  8. color: '#606266',
  9. transform: 'scale(1)'
  10. }" itemStyle="padding-left: 10px; padding-right: 10px; height: 34px;" @click="handleTabClick">
  11. </u-tabs>
  12. </view>
  13. </template>
  14. <script setup lang="ts">
  15. interface TabItem {
  16. name: string;
  17. badge?: {
  18. isDot?: boolean;
  19. value?: number | string;
  20. };
  21. [key: string]: any;
  22. }
  23. interface Props {
  24. list: TabItem[];
  25. }
  26. const props = defineProps<Props>();
  27. const emit = defineEmits<{
  28. (e: 'click', item: TabItem, index: number): void;
  29. }>();
  30. const handleTabClick = (item: TabItem, index: number) => {
  31. emit('click', item, index);
  32. };
  33. </script>
  34. <style lang="scss" scoped>
  35. @import "@/uni.scss";
  36. .tabs-box {
  37. width: 100%;
  38. height: px2rpx(34);
  39. position: relative;
  40. .tabs {
  41. width: 100%;
  42. position: absolute;
  43. left: -px2rpx(10);
  44. }
  45. }
  46. </style>