info.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <template>
  2. <div class="info-box">
  3. <h4 class="mb-3">{{ $t('enterprise.companyInfo') }}</h4>
  4. <div style="height: 50px; line-height: 50px;">
  5. <v-img class="float-left" :src="props.info.enterprise.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'" :width="45" height="45"></v-img>
  6. <div class="ml-3 float-left">
  7. <p class="enterprise-name cursor-pointer" @click="handleEnterprise(0)">{{ formatName(props.info.enterprise.anotherName || props.info.enterprise.name) }}</p>
  8. <!-- <v-icon :color="statusInfo.color" size="20">{{ statusInfo.mdi }}</v-icon>
  9. <span :style="{'color': statusInfo.color,'font-size': '14px'}">{{ statusInfo.label }}</span> -->
  10. </div>
  11. </div>
  12. <div class="mt-3 border-bottom-dashed" style="font-size: 14px;">
  13. <div v-for="val in list" :key="val.icon" class="d-flex my-2">
  14. <v-icon size="20" color="var(--color-666)">{{ val.icon }}</v-icon>
  15. <div class="info-address ml-4">{{ obj[val.label] || '暂无' }}</div>
  16. </div>
  17. </div>
  18. <div style="font-size: 12px;height: 50px; line-height: 50px">
  19. <span class="float-right more-position" @click="handleEnterprise(1)">{{ $t('position.allBtn') }}<v-icon>mdi-chevron-right</v-icon></span>
  20. </div>
  21. </div>
  22. </template>
  23. <script setup>
  24. defineOptions({ name: 'enterprise-info' })
  25. import { ref } from 'vue'
  26. import { dealDictObjData } from '@/utils/position'
  27. import { formatName } from '@/utils/getText'
  28. // import { getEnterpriseAuthDetails } from '@/api/position'
  29. const props = defineProps({
  30. info: {
  31. type: Object,
  32. default: () => {}
  33. }
  34. })
  35. const list = [
  36. { icon: 'mdi-account-multiple', label: 'scaleName' },
  37. { icon: 'mdi-family-tree', label: 'industryName' }
  38. ]
  39. // const statusList = [
  40. // { label: '未认证', color: '#fb8c00', value: null, mdi: 'mdi-shield-remove' },
  41. // { label: '审核中', color: '#fb8c00', value: '0', mdi: 'mdi-shield-half-full' },
  42. // { label: '已认证', color: 'var(--v-primary-base)', value: '1', mdi: 'mdi-shield-check' },
  43. // { label: '已驳回', color: '#fe574a', value: '2', mdi: 'mdi-shield-off' }
  44. // ]
  45. const obj = ref({})
  46. // const authInfo = ref({})
  47. const getData = async () => {
  48. const prise = props.info.enterprise
  49. obj.value = dealDictObjData({}, prise)
  50. // 企业实名认证信息
  51. // authInfo.value = await getEnterpriseAuthDetails(props.info.enterprise.id)
  52. }
  53. getData()
  54. // const statusInfo = computed(() => {
  55. // const obj = (authInfo.value && Object.keys(authInfo.value).length) ? statusList.find(e => e.value === authInfo.value.status) : statusList[0]
  56. // return obj
  57. // })
  58. const handleEnterprise = (val) => {
  59. const key = val ? 'recruitmentPositions' : 'briefIntroduction'
  60. window.open(`/recruit/personal/company/details/${props.info.enterprise.id}?key=${key}`)
  61. }
  62. </script>
  63. <style lang="scss" scoped>
  64. .info-box {
  65. height: 230px;
  66. background-color: var(--color-f3);
  67. border-radius: 8px;
  68. padding: 20px 15px;
  69. }
  70. .enterprise-name {
  71. width: 165px;
  72. font-weight: 500;
  73. max-width: 165px;
  74. vertical-align: middle;
  75. white-space: nowrap;
  76. text-overflow: ellipsis;
  77. overflow: hidden;
  78. &:hover {
  79. color: var(--v-primary-base);
  80. }
  81. }
  82. .info-address {
  83. width: 185px;
  84. font-weight: 500;
  85. max-width: 185px;
  86. vertical-align: middle;
  87. white-space: nowrap;
  88. text-overflow: ellipsis;
  89. overflow: hidden;
  90. &:hover {
  91. color: var(--v-primary-base);
  92. }
  93. }
  94. .more-position {
  95. color: var(--v-primary-base);
  96. cursor: pointer;
  97. }
  98. </style>