index.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <template>
  2. <view v-if="list.length > 0">
  3. <view v-for="(item, index) in list" @click="toDetail(item)" :key="index">
  4. <view class="list-shape">
  5. <!-- 职位+热度 -->
  6. <view class="mar">
  7. <span style="font-size: 16px;font-weight: 700;color: black;">{{item.job?.name}}</span>
  8. <span class="mar" v-if="item.job?.hire">
  9. <uni-icons type="fire-filled" size="25" color="#ff770d"></uni-icons>
  10. </span>
  11. <span class="salary-text">{{ item.job?.payFrom }}-{{ item.job?.payTo }}/{{ item.job?.payName }}</span>
  12. </view>
  13. <!-- 工作地+频次+周期 -->
  14. <view style="font-size: 13px;" class="mt">
  15. <span class="tag-gap">
  16. <span>{{item.job?.areaName }}</span>
  17. <span class="viewider">|</span>
  18. <span>{{item.job?.eduName }}</span>
  19. <span class="viewider">|</span>
  20. <span>{{item.job?.expName }}</span>
  21. </span>
  22. <!-- <span class="date-time">
  23. <span>2024-07-14</span>
  24. </span> -->
  25. </view>
  26. <!-- 岗位tag -->
  27. <view class="mt" v-if="showWelfareTag">
  28. <uni-tag
  29. v-for="(tag,i) in item.enterprise?.welfareList || []"
  30. :key="i"
  31. class="tag-gap"
  32. :text="tag"
  33. inverted="false"
  34. size="mini"
  35. custom-style="background-color: #eef1f7;color:#7f828b;border-color:#eef1f7;"
  36. />
  37. </view>
  38. </view>
  39. <!-- 企业信息 -->
  40. <view class=sub-li-bottom>
  41. <view>
  42. <span style="font-weight: bold;" class="mr">{{ item.enterprise?.anotherName || ' -- ' }}</span>
  43. <span>{{ item.enterprise?.industryName || '行业未知' }}</span>
  44. <span class="divider tag-gap1"> | </span>
  45. <span class="mr">{{ item.enterprise?.scaleName || '规模未知' }}</span>
  46. </view>
  47. <view class="avatarBox">
  48. <image class="enterAvatar ml" :src="item.enterprise?.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'"></image>
  49. </view>
  50. </view>
  51. </view>
  52. <view v-if="props.noMore" class="noMore">暂无更多数据</view>
  53. </view>
  54. </template>
  55. <script setup>
  56. // import { ref } from 'vue'
  57. const props = defineProps({
  58. list: { type: Array, default: () => [] },
  59. noMore: { type: Boolean, default: false },
  60. showWelfareTag: { type: Boolean, default: true }
  61. })
  62. //岗位详情
  63. const toDetail = (item) =>{
  64. uni.navigateTo({
  65. url:`/pagesB/companyDetail/index?jobId=${item.job?.id}`
  66. })
  67. }
  68. </script>
  69. <style scoped lang="scss">
  70. .noMore{
  71. margin: 20px 0;
  72. }
  73. .mar{
  74. margin: 5px 0;
  75. }
  76. .date-time{
  77. color:#d9d0d2;
  78. float: right;
  79. }
  80. .divided-line {
  81. width: 100%;
  82. height: 1px;
  83. background-color: #f0f2f7;
  84. margin: 20px 0;
  85. }
  86. .enterAvatar{
  87. width: 40px;
  88. height: 40px;
  89. border-radius: 50%;
  90. margin: auto;
  91. }
  92. .sub-li-bottom {
  93. display: flex;
  94. justify-content:space-between;
  95. align-items: center;
  96. background: linear-gradient(90deg, #f5fcfc 0, #fcfbfa 100%);
  97. font-size: 13px;
  98. padding: 5px 30rpx;
  99. .avatarBox {
  100. max-width: 40px;
  101. max-height: 40px;
  102. }
  103. }
  104. </style>