company.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <template>
  2. <view class="defaultBgc">
  3. <scroll-view class="scrollBox" scroll-y="true" @scrolltolower="loadingMore" style="height: 100vh;">
  4. <view v-if="items.length">
  5. <view v-for="(item, index) in items" :key="index" class="ss-m-t-20" @click="toDetail(item)">
  6. <view style="background-color: #fff;" class="ss-p-30">
  7. <view class="d-flex align-center">
  8. <image :src="item.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'" class="avatar" style="width: 60px; height: 60px;"></image>
  9. <view style="flex: 1;" class="ss-m-l-30">
  10. <view class="enterprise-name ellipsis">{{ item.name }}</view>
  11. <view class="ss-m-y-15 font-size-12">
  12. <span class="tag-gap color-666">
  13. <span>{{ item.financingName }}</span>
  14. <span class="ss-m-x-10" v-if="item.financingName && item.industryName">|</span>
  15. <span>{{item.industryName }}</span>
  16. <span class="ss-m-x-10" v-if="item.scaleName">|</span>
  17. <span>{{item.scaleName }}</span>
  18. </span>
  19. </view>
  20. <view>
  21. <uni-tag
  22. v-for="(tag, i) in item.tagList || []"
  23. :key="i"
  24. class="ss-m-r-10"
  25. :text="tag"
  26. inverted="false"
  27. size="mini"
  28. custom-style="background-color: #eef1f7;color:#7f828b;border-color:#eef1f7;"
  29. />
  30. </view>
  31. </view>
  32. </view>
  33. </view>
  34. </view>
  35. <uni-load-more :status="status" />
  36. </view>
  37. <view v-else class="nodata-img-parent">
  38. <image src="https://minio.citupro.com/dev/static/nodata.png" mode="widthFix" style="width: 100vw;height: 100vh;"></image>
  39. </view>
  40. </scroll-view>
  41. </view>
  42. </template>
  43. <script setup>
  44. import { ref } from 'vue'
  45. import { getSubscribeEnterprise } from '@/api/user'
  46. import { dealDictArrayData } from '@/utils/position'
  47. const items = ref([])
  48. const status = ref('more')
  49. const queryParams = ref({
  50. pageSize: 10,
  51. pageNo: 1
  52. })
  53. const getList = async () => {
  54. const { data } = await getSubscribeEnterprise(queryParams.value)
  55. let list = data?.list || []
  56. if (list?.length) {
  57. list = dealDictArrayData([], list)
  58. items.value = items.value.concat(list)
  59. }
  60. status.value = list?.length < queryParams.value.pageSize ? 'noMore' : 'more'
  61. }
  62. getList()
  63. // 加载更多
  64. const loadingMore = () => {
  65. status.value = 'loading'
  66. queryParams.value.pageNo++
  67. getList()
  68. }
  69. // 企业详情
  70. const toDetail = (item) => {
  71. uni.navigateTo({
  72. url: `/pagesB/companyDetail/index?id=${item.id}`
  73. })
  74. }
  75. </script>
  76. <style scoped lang="scss">
  77. .enterprise-name {
  78. color: #333;
  79. font-weight: bold;
  80. font-size: 16px;
  81. width: 70vw;
  82. max-width: 70vw;
  83. }
  84. </style>