left.vue 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <template>
  2. <div>
  3. <div class="left-top">
  4. <v-badge
  5. bordered
  6. offset-x="10"
  7. offset-y="50"
  8. :color="baseInfo?.sex ? (baseInfo?.sex === '0' ? '#1867c0' : 'error') : 'error'"
  9. :icon="baseInfo?.sex ? (baseInfo?.sex === '0' ? 'mdi-gender-male' : 'mdi-gender-female') : 'mdi-gender-female'">
  10. <v-avatar size="x-large" :image="baseInfo.avatar || 'https://minio.citupro.com/dev/menduner/7.png'"></v-avatar>
  11. </v-badge>
  12. <div class="ml-5 content">
  13. <div class="username">
  14. <span class="mr-2">{{ baseInfo?.name ?? $t('sys.tourist') }}</span>
  15. <v-icon class="cursor-pointer" style="width: 80px; height: 22px;">
  16. <v-img width="80" height="22" src="https://minio.citupro.com/dev/menduner/upgrade.png"></v-img>
  17. </v-icon>
  18. </div>
  19. <div class="userInfo">
  20. {{ baseInfo?.expTypeText || '暂无' }}<span class="vline"></span>{{ baseInfo?.eduTypeText || '暂无' }}
  21. </div>
  22. <div class="mt-3">
  23. <v-select v-model="selectVal" :items="items" density="compact" variant="outlined" item-title="label" item-value="value" hide-details color="primary"></v-select>
  24. </div>
  25. </div>
  26. <div class="otherInfo">
  27. <div>
  28. <span>手机号:{{ baseInfo?.phone || '暂无' }}</span>
  29. </div>
  30. <div class="my-3">
  31. <span>用户邮箱:{{ baseInfo?.email || '暂无' }}</span>
  32. </div>
  33. <div>
  34. <span>出生日期:{{ baseInfo?.birthdayText || '暂无' }}</span>
  35. </div>
  36. <div class="mt-3">现居地址: {{ baseInfo?.areaText || '暂无' }}</div>
  37. </div>
  38. <div class="slider-btn">
  39. <v-btn class="slider-btn-item" rounded variant="outlined" color="primary" append-icon="mdi-menu-right" to="/resume">在线简历</v-btn>
  40. </div>
  41. </div>
  42. <div class="left-tabs my-3">
  43. <v-tabs v-model="tab" align-tabs="start" color="primary" bg-color="#fff" @update:model-value="getPositionList">
  44. <v-tab :value="1">{{ $t('position.throughCommunication') }}</v-tab>
  45. <v-tab :value="2">{{ $t('position.delivered') }}</v-tab>
  46. <v-tab :value="3">{{ $t('position.interview') }}</v-tab>
  47. <v-tab :value="4">{{ $t('position.interested') }}</v-tab>
  48. <v-tab :value="5">{{ $t('position.interestedInMe') }}</v-tab>
  49. <v-tab :value="6">{{ $t('position.haveSeenMe') }}</v-tab>
  50. </v-tabs>
  51. <v-divider></v-divider>
  52. <v-tabs v-if="tab === 4" v-model="secondTab" align-tabs="start" color="primary" bg-color="#fff">
  53. <v-tab :value="7">职位收藏</v-tab>
  54. <v-tab :value="8">公司收藏</v-tab>
  55. </v-tabs>
  56. </div>
  57. <div class="left-bottom">
  58. <PositionItem :tab="tab"></PositionItem>
  59. </div>
  60. </div>
  61. </template>
  62. <script setup>
  63. defineOptions({ name: 'personal-center-left'})
  64. import { ref } from 'vue'
  65. import PositionItem from '../components/posiitonItem.vue'
  66. const tab = ref(1)
  67. const secondTab = ref(7)
  68. const selectVal = ref('0')
  69. const items = [
  70. { label: '离职-随时到岗', value: '0' },
  71. { label: '在职-暂不考虑', value: '1' },
  72. { label: '在职-考虑机会', value: '2' },
  73. { label: '在职-月内到岗', value: '3' }
  74. ]
  75. let baseInfo = ref({})
  76. const getBasicInfo = () => {
  77. baseInfo.value = JSON.parse(localStorage.getItem('baseInfo')) // 人才信息
  78. }
  79. getBasicInfo()
  80. const getPositionList = () => {}
  81. </script>
  82. <style scoped lang="scss">
  83. .left-top {
  84. display: flex;
  85. align-items: center;
  86. padding: 12px 0 12px 12px;
  87. height: 144px;
  88. border-radius: 12px;
  89. background-color: #fff;
  90. .content {
  91. height: 100%;
  92. .username {
  93. font-weight: 500;
  94. font-size: 20px;
  95. color: #222;
  96. height: 24px;
  97. line-height: 24px;
  98. }
  99. .userInfo {
  100. height: 21px;
  101. margin-top: 8px;
  102. color: #666;
  103. font-size: 14px;
  104. }
  105. }
  106. .otherInfo {
  107. flex: 1;
  108. height: 100%;
  109. margin-left: 50px;
  110. font-size: 14px;
  111. font-weight: 500;
  112. color: #333;
  113. text-align: left;
  114. .salary {
  115. font-size: 16px;
  116. font-family: 'kanzhun-Regular';
  117. font-weight: 500;
  118. color: var(--v-error-base);
  119. margin: -1px 0 0 16px;
  120. }
  121. .edu-time {
  122. color: #999;
  123. font-weight: 400;
  124. margin-left: 20px;
  125. }
  126. .edu {
  127. margin: 12px 0;
  128. }
  129. }
  130. .slider-btn {
  131. position: relative;
  132. width: 146px;
  133. height: 100%;
  134. overflow: hidden;
  135. .slider-btn-item {
  136. position: absolute;
  137. top: 4px;
  138. right: -15px;
  139. }
  140. }
  141. }
  142. </style>