index.vue 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <template>
  2. <div class="white-bgc pa-3">
  3. <v-tabs v-model="tab" align-tabs="start" color="primary" bg-color="#f7f8fa" @update:modelValue="handleUpdate">
  4. <v-tab v-for="k in items" :key="k.value" :value="k.value">{{ k.label }}</v-tab>
  5. </v-tabs>
  6. <component :is="items[tab].path" />
  7. </div>
  8. </template>
  9. <script setup>
  10. defineOptions({name: 'tradingOrder'})
  11. import { ref, shallowRef } from 'vue'
  12. import RechargeVipOrder from './dynamic/rechargeVip.vue'
  13. import MallOrder from './dynamic/mallOrder.vue'
  14. import PointExchangeRecord from './dynamic/pointExchangeRecord.vue'
  15. import MyPrize from './dynamic/myPrize.vue'
  16. import { useRoute, useRouter } from 'vue-router'
  17. const mode = import.meta.env.VITE_NODE_ENV
  18. const tab = ref(0)
  19. const items = shallowRef(mode === 'production' ? [
  20. { label: '余额充值、购买会员订单', value: 0, path: RechargeVipOrder }
  21. ] : [
  22. { label: '余额充值、购买会员订单', value: 0, path: RechargeVipOrder },
  23. { label: '商城交易订单', value: 1, path: MallOrder },
  24. { label: '积分兑换记录', value: 2, path: PointExchangeRecord },
  25. { label: '我的奖品', value: 3, path: MyPrize }
  26. ])
  27. const route = useRoute()
  28. const router = useRouter()
  29. const { key } = route.query
  30. if (key) tab.value = Number(key)
  31. const handleUpdate = (e) => {
  32. router.push({ path: '/recruit/personal/personalCenter/tradeOrder', query: { key: e } })
  33. }
  34. </script>
  35. <style lang="scss" scoped>
  36. </style>