index.vue 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <!-- 门墩儿商城 -->
  2. <template>
  3. <div style="background-color: var(--default-bgc); height: 100vh; overflow-y: auto;">
  4. <div class="default-width white-bgc px-3 pt-5 pb-10" style="min-height: 100vh;">
  5. <div class="statisticsBox">
  6. <div class="mt-2">
  7. <span style="font-size: 20px; color: var(--color-333); line-height: 28px; font-weight: bold;" class="ml-10">您当前可用积分</span>
  8. <span @click="toPointsDetails" style="cursor: pointer;">
  9. <span style="font-size: 14px; color: var(--color-666); line-height: 24px;" class="ml-2">积分明细</span>
  10. <v-icon style="font-size: 16px; color: var(--color-666); line-height: 16px; margin-left: 2px;">mdi-help-circle-outline</v-icon>
  11. </span>
  12. </div>
  13. <div class="d-flex justify-space-between align-end my-1">
  14. <span style="font-size: 42px; color: #10897bba; line-height: 50px;" class="ml-10 cursor-pointer" @click="toPointsDetails">{{ accountData.point }}</span>
  15. </div>
  16. </div>
  17. <!-- <v-tabs v-model="tab" class="mt-1" align-tabs="start" color="primary" bg-color="#fff" @update:model-value="getPositionList()"> -->
  18. <v-tabs v-model="tab" class="mt-1" align-tabs="start" color="primary" bg-color="#fff" @update:model-value="getPositionList">
  19. <v-tab :value="1">{{ $t('points.exchange') }}</v-tab>
  20. <v-tab :value="2">{{ $t('points.exchangeRecords') }}</v-tab>
  21. </v-tabs>
  22. <div class="mt-5">
  23. <!-- 积分兑换 -->
  24. <div v-if="tab === 1">
  25. <exchange></exchange>
  26. </div>
  27. <!-- 积分兑换记录 -->
  28. <div v-if="tab === 2">
  29. <exchangeRecords></exchangeRecords>
  30. </div>
  31. </div>
  32. </div>
  33. </div>
  34. </template>
  35. <script setup>
  36. import exchange from './exchange.vue'
  37. import exchangeRecords from './exchangeRecords.vue'
  38. import { ref } from 'vue'
  39. import { useUserStore } from '@/store/user'
  40. import { useRoute } from 'vue-router'; const route = useRoute()
  41. import { useRouter } from 'vue-router'; const router = useRouter()
  42. defineOptions({name: 'personal-pointsMall'})
  43. const toPointsDetails = () => {
  44. router.push({ path: '/recruit/personal/personalCenter/wallet' })
  45. }
  46. const getPositionList = () => {
  47. if (route.query) router.replace({ path: route.path }) // 不留记录的清除跳转带过来的参数
  48. }
  49. const tab = ref(+route.query?.tab || 1)
  50. const userStore = useUserStore()
  51. // 'userAccount' : 'enterpriseUserAccount'
  52. const key = 'userAccount'
  53. let accountData = ref(JSON.parse(localStorage.getItem(key)) || {})
  54. userStore.$subscribe((mutation, state) => {
  55. if (Object.keys(state[key]).length) accountData.value = state[key]
  56. })
  57. </script>
  58. <style lang="scss" scoped>
  59. .statisticsBox {
  60. padding: 10px 0;
  61. border-radius: 10px;
  62. background-color: var(--default-bgc);
  63. // background-color: var(--color-f3);
  64. // font-family: 宋体, SimSun;
  65. }
  66. </style>