companyItem.vue 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <template>
  2. <div class="company-box">
  3. <div class="sub-li" v-for="item in list" :key="item.enterprise.id">
  4. <div class="company-info-top" @click="handleClickEnterprise(item)" @mouseenter="item.active = true" @mouseleave="item.active = false">
  5. <div class="float-left">
  6. <v-img :src="item.enterprise.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'" :alt="item.enterprise.anotherName" :width="40" style="height: 40px;border-radius: 4px;"/>
  7. </div>
  8. <div class="company-info">
  9. <h3 :class="{'default-active': item.active }" style="width: 200px;">{{ item.enterprise.anotherName }}</h3>
  10. <p>{{ item.enterprise.industryName }}</p>
  11. </div>
  12. </div>
  13. <v-divider class="mx-4"></v-divider>
  14. <div class="company-info-bottom">
  15. <div v-if="item?.job && Object.keys(item.job).length" class="job-hover" @click="handleClickPosition(item.job)">
  16. <div class="mb-1 d-flex">
  17. <p :class="['mr-3', 'cursor-pointer', 'name']" :style="{'max-width': !item.job.payFrom && !item.job.payTo ? '200px' : '120px'}">{{ item.job.name }}</p>
  18. <span v-if="!item.job.payFrom && !item.job.payTo" class="salary">面议</span>
  19. <span v-else class="salary">{{ item.job.payFrom ? item.job.payFrom + '-' : '' }}{{ item.job.payTo }}{{ item.job.payName ? '/' + item.job.payName : '' }}</span>
  20. </div>
  21. <div style="height: 24px; overflow: hidden; color: #808080;">
  22. <span v-for="(j, index) in desc" :key="index">
  23. <span v-if="item.job[j]" class="mr-1 font-size-13">{{ item.job[j] }}</span>
  24. <span v-if="item.job[j] && index !== desc.length - 1 && item.job[desc[index + 1]]" class="septal-line ml-1"></span>
  25. </span>
  26. </div>
  27. </div>
  28. </div>
  29. </div>
  30. </div>
  31. </template>
  32. <script setup>
  33. defineOptions({ name: 'company-item'})
  34. defineProps({
  35. list: Array
  36. })
  37. const desc = ['areaName', 'eduName', 'expName']
  38. const handleClickEnterprise = (item) => {
  39. window.open(`/recruit/personal/company/details/${item.enterprise.id}?key=briefIntroduction`)
  40. }
  41. // 职位详情
  42. const handleClickPosition = (job) => {
  43. window.open(`/recruit/personal/position/details/${job.id}`)
  44. }
  45. </script>
  46. <style scoped lang="scss">
  47. @import url('@/styles/recruit/company.scss');
  48. </style>