release-item-card.vue 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <template>
  2. <view class="release_item-card">
  3. <view class="align-center relative">
  4. <view class="relative" v-if="data.user">
  5. <u-avatar :src="data.user.head_img" size="85rpx"></u-avatar>
  6. <view :class="data.user.sex==0?'gender':'gender gender-woman'">
  7. <u-icon :name="data.user.sex==0?'man':'woman'" color="#fff"></u-icon>
  8. </view>
  9. </view>
  10. <view class="flex-1 ml20 column justify-between" style="height: 80rpx;">
  11. <text class="bold fs26">{{data.contacts}}</text>
  12. <text>{{data.create_time}}</text>
  13. </view>
  14. <view class="right_tag centerV">已报名{{data.enroll_num}}人</view>
  15. </view>
  16. <text class="mt40 ellipsis lines-2">{{data.content}}</text>
  17. <view class="mt20 images" v-if="data.images">
  18. <u-image v-for="(item,index) in data.images.split(',')" :key="index" :src="item" showLoading lazyLoad width="100%"
  19. height="200rpx" radius="20rpx" @click.passive.stop="previewImage(0,data.images.split(','))" />
  20. </view>
  21. <view class="mt20 justify-between">
  22. <view class="align-center flex-1 mr30 base-bg-2 p10 radius16">
  23. <u-icon name="clock" color="#EB6446"></u-icon>
  24. <text class="ml20">{{data.set_of_time}}</text>
  25. </view>
  26. <view class="align-center base-bg-2 ptb10 plr30 radius16" style="width: 20%;">
  27. <u-icon name="account" color="#EB6446"></u-icon>
  28. <text class="ml20">{{data.num}}人</text>
  29. </view>
  30. </view>
  31. </view>
  32. </template>
  33. <script setup>
  34. import {
  35. previewImage
  36. } from '@/core/app';
  37. import config from '@/core/config/index.js';
  38. name: "release-item-card"
  39. const props = defineProps({
  40. data: {
  41. type: Object,
  42. default: () => {
  43. return {}
  44. }
  45. }
  46. })
  47. </script>
  48. <style lang="scss">
  49. .release_item-card {
  50. padding: 20rpx;
  51. border-radius: 20rpx;
  52. background: #fff;
  53. display: flex;
  54. flex-direction: column;
  55. font-size: 22rpx;
  56. .gender {
  57. position: absolute;
  58. bottom: 0;
  59. right: 0;
  60. width: 30rpx;
  61. height: 30rpx;
  62. background: #67b4d5;
  63. border-radius: 50%;
  64. display: flex;
  65. align-items: center;
  66. justify-content: center;
  67. flex-direction: column;
  68. &-woman {
  69. background: #f9719a;
  70. }
  71. }
  72. .right_tag {
  73. position: absolute;
  74. right: 0;
  75. top: 0;
  76. padding: 10rpx 20rpx;
  77. height: calc(61rpx - 20rpx);
  78. background: linear-gradient(102deg, #F1AE73 0%, #EC5232 100%);
  79. border-radius: 16rpx;
  80. color: #fff;
  81. }
  82. .images {
  83. display: grid;
  84. grid-template-columns: 1fr 1fr 1fr;
  85. grid-gap: 30rpx;
  86. }
  87. }
  88. </style>