tab.vue 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <template>
  2. <view class="tab-box">
  3. <view class="tab">
  4. <view v-for="(item , index) in marketTab"
  5. :key="`marketTab_${index}`"
  6. :class="['tab-item' , index === marketTabIndex ? 'active-tab-item' : '' ]"
  7. @click.stop="changTab(index)">
  8. {{ item }}
  9. </view>
  10. </view>
  11. <!-- <component :is="phoneLogin"/> -->
  12. </view>
  13. </template>
  14. <script>
  15. export default {
  16. props: {
  17. tabIndex: Number,
  18. default: 0
  19. },
  20. data() {
  21. return {
  22. marketTabIndex: 0,
  23. marketTab: [
  24. '手机号',
  25. '邮箱'
  26. ]
  27. };
  28. },
  29. watch: {
  30. tabIndex: {
  31. handler(newVal) {
  32. this.marketTabIndex = newVal || 0
  33. },
  34. immediate: true,
  35. deep: true
  36. },
  37. marketTabIndex: {
  38. handler(newVal, oldVal) {
  39. if (newVal !== oldVal) {
  40. this.$emit("update:tabIndex", newVal);
  41. }
  42. },
  43. immediate: true,
  44. deep: true
  45. }
  46. },
  47. methods: {
  48. // marketTabIndex = index
  49. changTab(index) {
  50. this.marketTabIndex = index
  51. // this.$emit('updata:tabIndex', index)
  52. }
  53. }
  54. }
  55. </script>
  56. <style lang="scss" scoped>
  57. @import "~./../common.scss"
  58. </style>