info.vue 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <div>
  3. <el-descriptions class="margin-top" :column="2" border>
  4. <el-descriptions-item label="用户头像">
  5. <el-image v-if="info.avatar" class="h-100px w-100px" :src="info.avatar" fit="contain" hide-on-click-modal :preview-src-list="[info.avatar]"/>
  6. </el-descriptions-item>
  7. <el-descriptions-item label="性别">
  8. <dict-tag v-if="info?.sex && info.sex !== '0'" :type="DICT_TYPE.MENDUNER_SEX" :value="info.sex" />
  9. </el-descriptions-item>
  10. <el-descriptions-item label="用户名">{{ info.name }}</el-descriptions-item>
  11. <el-descriptions-item label="英文名">{{ info.foreignName }}</el-descriptions-item>
  12. <el-descriptions-item label="联系电话">{{ info.phone || user.phone }}</el-descriptions-item>
  13. <el-descriptions-item label="邮箱">{{ info.email }}</el-descriptions-item>
  14. <el-descriptions-item label="出生日期">{{ formatDate(info.birthday, 'YYYY-MM-DD') }}</el-descriptions-item>
  15. <el-descriptions-item label="首次工作时间">{{ formatDate(info.firstWorkTime, 'YYYY-MM-DD') }}</el-descriptions-item>
  16. <el-descriptions-item label="婚姻状况">
  17. <dict-tag v-if="info?.maritalStatus" :type="DICT_TYPE.MENDUNER_MARITAL_STATUS" :value="info.maritalStatus" />
  18. </el-descriptions-item>
  19. <el-descriptions-item label="学历">
  20. <dict-tag v-if="info?.eduType" :type="DICT_TYPE.MENDUNER_EDUCATION_TYPE" :value="info.eduType" />
  21. </el-descriptions-item>
  22. <el-descriptions-item label=" 工作经验">
  23. <dict-tag v-if="info?.expType" :type="DICT_TYPE.MENDUNER_EXP_TYPE" :value="info.expType" />
  24. </el-descriptions-item>
  25. <el-descriptions-item label="求职类型">
  26. <dict-tag v-if="info?.jobType" :type="DICT_TYPE.MENDUNER_JOB_TYPE" :value="info.jobType" />
  27. </el-descriptions-item>
  28. <el-descriptions-item label="求职状态">
  29. <dict-tag v-if="info?.jobStatus" :type="DICT_TYPE.MENDUNER_JOB_SEEK_STATUS" :value="info.jobStatus" />
  30. </el-descriptions-item>
  31. <el-descriptions-item label="账号状态">
  32. <dict-tag v-if="info?.status" :type="DICT_TYPE.MENDUNER_STATUS" :value="user.status" />
  33. </el-descriptions-item>
  34. <el-descriptions-item label="会员套餐">
  35. {{ user.vipFlag ? packageList.find(e => e.id === Number(user.vipFlag))?.name : '' }}
  36. </el-descriptions-item>
  37. <el-descriptions-item label="会员到期时间">
  38. {{ formatDate(user.vipExpireDate, 'YYYY-MM-DD HH:mm:ss') }}
  39. </el-descriptions-item>
  40. </el-descriptions>
  41. </div>
  42. </template>
  43. <script setup>
  44. defineOptions({ name: 'EnterpriseDetailsInfo'})
  45. import { DICT_TYPE } from '@/utils/dict'
  46. import { formatDate } from '@/utils/formatTime'
  47. import { PersonInfoApi } from '@/api/menduner/system/person'
  48. const emit = defineEmits(['echo'])
  49. const props = defineProps({
  50. id: String,
  51. userId: [String, Number]
  52. })
  53. // 获取人才详情
  54. const info = ref({})
  55. const getInfo = async () => {
  56. if (!props.id) return
  57. const data = await PersonInfoApi.getPersonDetails(props.id)
  58. info.value = data
  59. emit('echo', JSON.stringify(data))
  60. }
  61. // 获取用户详情
  62. const user = ref({})
  63. const getUserDetails = async () => {
  64. if (!props.userId) return
  65. const data = await PersonInfoApi.getUserDetails(props.userId)
  66. user.value = data
  67. }
  68. watch(() => props.userId, (newVal) => {
  69. if (newVal) {
  70. getInfo()
  71. getUserDetails()
  72. }
  73. }, { immediate: true }, { deep: true })
  74. // 会员套餐列表
  75. const packageList = ref([])
  76. const getPackageList = async () => {
  77. const data = await PersonInfoApi.getPersonPackageList()
  78. packageList.value = data
  79. }
  80. getPackageList()
  81. </script>