baseInfo.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <!-- 基本信息 -->
  2. <template>
  3. <div class="d-flex">
  4. <!-- 头像 -->
  5. <div class="avatarsBox">
  6. <v-badge
  7. bordered
  8. offset-x="-25"
  9. offset-y="33"
  10. :color="info?.sex ? (info?.sex === '1' ? '#1867c0' : 'error') : 'error'"
  11. :icon="info?.sex ? (info?.sex === '1' ? 'mdi-gender-male' : 'mdi-gender-female') : 'mdi-gender-female'">
  12. <v-avatar size=80 :image="info?.avatar || 'https://minio.citupro.com/dev/menduner/7.png'"></v-avatar>
  13. </v-badge>
  14. </div>
  15. <!-- 信息 -->
  16. <div style="flex: 1;">
  17. <span style="font-size: 20px; font-weight: 600;color: var(--color-666);">{{ info?.name }}</span>
  18. <div class="mt-3 d-flex">
  19. <div class="listBox" style="height: 68px">
  20. <div>
  21. <span class="mdi mdi-map-marker-outline"></span>
  22. <span>{{ info?.areaName || '暂无' }}</span>
  23. </div>
  24. <div>
  25. <span class="mdi mdi-phone-outline"></span>
  26. <span>{{ info?.phone }}</span>
  27. </div>
  28. <div>
  29. <span class="mdi mdi-email-outline"></span>
  30. <span>{{ info?.email }}</span>
  31. </div>
  32. <div>
  33. <span class="mdi mdi-calendar-blank-outline"></span>
  34. <span>{{ info?.expName }}</span>
  35. </div>
  36. <div>
  37. <span class="mdi mdi-school-outline"></span>
  38. <span>{{ info?.eduName }}</span>
  39. </div>
  40. <div>
  41. <span class="mdi mdi-tag-outline"></span>
  42. <span>{{ info?.jobStatusName }}</span>
  43. </div>
  44. <div>
  45. <span class="mdi mdi-cake-variant-outline"></span>
  46. <span>{{ timesTampChange(info?.birthday, 'Y-M-D') }}</span>
  47. </div>
  48. <div>
  49. <span class="mdi mdi-account-heart"></span>
  50. <span>{{ info?.maritalStatusName }}</span>
  51. </div>
  52. <div>
  53. <span>{{ $t('resume.firstWorkTime') }}:</span>
  54. <span>{{ timesTampChange(info?.firstWorkTime, 'Y-M-D') }}</span>
  55. </div>
  56. </div>
  57. </div>
  58. <div class="mt-4">
  59. <span style="font-size: 15px;">个人画像:</span>
  60. <v-chip size="small" label v-for="(k, i) in ['响应', '改变', '诚信', '进取精神', '信任', '卓越']" :key="i" class="mr-2" color="primary">{{ k }}</v-chip>
  61. </div>
  62. </div>
  63. </div>
  64. </template>
  65. <script setup>
  66. defineOptions({name: 'enterprise-talentPool-details-baseInfo'})
  67. import { ref } from 'vue'
  68. import { timesTampChange } from '@/utils/date'
  69. import { dealDictObjData } from '@/utils/position'
  70. const props = defineProps({
  71. data: Object
  72. })
  73. const info = ref({})
  74. if (props.data && Object.keys(props.data).length) {
  75. info.value = dealDictObjData({}, props.data)
  76. }
  77. </script>
  78. <style lang="scss" scoped>
  79. .avatarsBox {
  80. height: 80px;
  81. width: 80px;
  82. position: relative;
  83. // margin: 32px;
  84. margin-right: 40px;
  85. .img {
  86. width: 100%;
  87. height: 100%;
  88. }
  89. .mdi {
  90. font-size: 42px;
  91. color: #fff;
  92. }
  93. div {
  94. position: absolute;
  95. top: 50%;
  96. left: 50%;
  97. transform: translate(-50%, -50%);
  98. border-radius: 50%;
  99. }
  100. }
  101. .listBox {
  102. display: flex;
  103. flex-wrap: wrap; /* 允许换行 */
  104. width: 100%; /* 设置容器宽度 */
  105. // height: 68px;
  106. overflow: hidden;
  107. color: var(--color-666);
  108. div {
  109. margin-right: 50px;
  110. span {
  111. height: 32px;
  112. line-height: 32px;
  113. }
  114. .mdi {
  115. font-size: 22px;
  116. margin-right: 8px;
  117. }
  118. }
  119. }
  120. </style>