my-shoucang.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <template>
  2. <view class="page">
  3. <view class="list" v-for="(item,index) in list" :key="item.id" @click="todetails(item.id)">
  4. <view class="top u-flex u-row-between">
  5. <text class="left">{{item.job_name}}</text>
  6. <text class="right">{{item.salary_min}}-{{item.salary_max}}K·{{item.salary_structure}}</text>
  7. </view>
  8. <view class="content">
  9. <text class="item">{{item.companys.category_industry.name}}</text>
  10. <text class="item">{{item.companys.company_stage.name}}</text>
  11. <text class="item">{{item.companys.company_scale.name}}</text>
  12. </view>
  13. <view class="">
  14. <text class="item-text">{{item.work_province.slice(0,-1)}}-{{item.work_city}}</text>
  15. <text class="item-text">{{item.education_name}}</text>
  16. <text class="item-text">{{item.experience_name}}</text>
  17. </view>
  18. <view class="bottom u-flex">
  19. <image style="width: 50rpx;height: 50rpx; border-radius: 50%;margin-right: 16rpx;"
  20. :src="item.usermanager.avatar" mode=""></image>
  21. <text>{{item.usermanager.name}}·</text>
  22. <text>{{item.usermanager.job_text}}</text>
  23. </view>
  24. </view>
  25. <view style="height: 70vh;display: flex;justify-content: center;align-items: center;" v-if="list.length == 0">
  26. <u-empty text="暂无数据" mode="list"></u-empty>
  27. </view>
  28. </view>
  29. </template>
  30. <script>
  31. import {
  32. collect_get_list
  33. } from "@/units/inquire.js"
  34. export default {
  35. data() {
  36. return {
  37. page: 1,
  38. list: [],
  39. total: 0
  40. }
  41. },
  42. onLoad() {
  43. this.slist()
  44. },
  45. onReachBottom() {
  46. if (this.list.length != this.total) {
  47. this.page++
  48. this.slist()
  49. }
  50. },
  51. methods: {
  52. slist() {
  53. collect_get_list({
  54. page: this.page
  55. }).then(res => {
  56. this.total = res.data.total
  57. if (this.page == 1) {
  58. this.list = res.data.data
  59. } else {
  60. this.list = this.list.concat(res.data.data)
  61. }
  62. })
  63. },
  64. todetails(id) {
  65. uni.navigateTo({
  66. url: "/pagesB/details?id=" + id
  67. })
  68. }
  69. }
  70. }
  71. </script>
  72. <style lang="scss" scoped>
  73. .page {
  74. background-color: #f3f3f3;
  75. padding: 0 24rpx;
  76. // height: calc(100vh - 48rpx);
  77. height: 100vh;
  78. box-sizing: border-box;
  79. border-top: 2rpx solid rgba(0, 0, 0, 0);
  80. .top {
  81. .left {
  82. font-size: 32rpx;
  83. font-family: PingFangSC-Medium, PingFang SC;
  84. font-weight: 500;
  85. color: #222222;
  86. }
  87. .right {
  88. font-size: 32rpx;
  89. font-family: SFPro-Medium, SFPro;
  90. font-weight: 500;
  91. color: #0C66C2;
  92. }
  93. }
  94. .content {
  95. margin-top: 16rpx;
  96. box-sizing: border-box;
  97. font-size: 28rpx;
  98. font-family: PingFangSC-Regular, PingFang SC;
  99. font-weight: 400;
  100. color: #555555;
  101. margin-bottom: 20rpx;
  102. .item {
  103. margin-right: 16rpx;
  104. }
  105. }
  106. .list {
  107. background: #FFFFFF;
  108. border-radius: 16rpx;
  109. padding: 24rpx 24rpx 32rpx;
  110. height: 282rpx;
  111. box-sizing: border-box;
  112. margin-top: 20rpx;
  113. }
  114. .item-text {
  115. height: 46rpx;
  116. background: #F3F3F3;
  117. border-radius: 4rpx;
  118. line-height: 46rpx;
  119. text-align: center;
  120. margin-right: 16rpx;
  121. padding: 6rpx 14rpx;
  122. font-size: 24rpx;
  123. font-family: PingFangSC-Regular, PingFang SC;
  124. font-weight: 400;
  125. color: #5F5F5F;
  126. }
  127. .bottom {
  128. margin-top: 24rpx;
  129. box-sizing: border-box;
  130. }
  131. }
  132. </style>