info.vue 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <template>
  2. <div class="info-box">
  3. <h4 class="mb-3">公司信息</h4>
  4. <div style="height: 50px;">
  5. <v-img class="float-left" :src="props.info.enterprise.logoUrl" :width="45" height="45"></v-img>
  6. <div class="ml-3 float-left">
  7. <p class="enterprise-name cursor-pointer" @click="handleEnterprise">{{ props.info.enterprise.anotherName }}</p>
  8. <v-icon color="primary" size="20">mdi-shield-check</v-icon> <!-- mdi-shield-remove -->
  9. <span style="color: var(--v-primary-base);font-size: 14px;">已认证</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="#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-left">共<span style="color: var(--v-primary-base)">9</span>个在招职位</span>
  20. <span class="float-right more-position">查看全部职位<v-icon>mdi-chevron-right</v-icon></span>
  21. </div>
  22. </div>
  23. </template>
  24. <script setup>
  25. defineOptions({ name: 'enterprise-info' })
  26. import { ref } from 'vue'
  27. import { dealDictData } from '@/views/recruit/position/components/dict'
  28. const props = defineProps({
  29. info: {
  30. type: Object,
  31. default: () => {}
  32. }
  33. })
  34. const list = [
  35. { icon: 'mdi-domain', label: 'financingName' },
  36. { icon: 'mdi-account-multiple', label: 'scaleName' },
  37. { icon: 'mdi-family-tree', label: 'industryName' }
  38. ]
  39. const obj = ref({})
  40. const getData = async () => {
  41. const prise = props.info.enterprise
  42. obj.value = dealDictData(obj.value, prise)
  43. }
  44. getData()
  45. const handleEnterprise = () => {
  46. window.open(`/enterprise/details/${props.info.enterprise.id}?key=briefIntroduction`)
  47. }
  48. </script>
  49. <style lang="scss" scoped>
  50. .info-box {
  51. height: 260px;
  52. background-color: #f3f3f3;
  53. border-radius: 8px;
  54. padding: 20px 15px;
  55. }
  56. .enterprise-name {
  57. width: 165px;
  58. font-weight: 500;
  59. max-width: 165px;
  60. vertical-align: middle;
  61. white-space: nowrap;
  62. text-overflow: ellipsis;
  63. overflow: hidden;
  64. &:hover {
  65. color: var(--v-primary-base);
  66. }
  67. }
  68. .info-address {
  69. width: 185px;
  70. font-weight: 500;
  71. max-width: 185px;
  72. vertical-align: middle;
  73. white-space: nowrap;
  74. text-overflow: ellipsis;
  75. overflow: hidden;
  76. &:hover {
  77. color: var(--v-primary-base);
  78. }
  79. }
  80. .more-position {
  81. color: var(--v-primary-base);
  82. cursor: pointer;
  83. }
  84. </style>