|
|
- <template>
- <uni-row :span="12">
- <uni-card :is-shadow="false" padding=0 margin="6rpx 20rpx" @click="handleClick">
- <view class="personal-list-item">
- <view class="personal-info">
- <view>
- <image class="people-img" slot='cover' :src="item.userImage"></image>
- </view>
- <view class="personal-info-1">
- <view class="personal-info-2">
- <view class="personal-info-title">
- <view class="personal-name">
- {{ item.userName || '匿名' }}
- </view>
- <view class="personal-sex">
- <img :src="item.appletUsersTeacher.sex == 0?'https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/personal/pet/sex_m.png':
- 'https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/personal/pet/sex_f.png'" alt="sex"
- style="width: 20px;height: 20px;" />
- </view>
- </view>
- <view class="personal-star" @click.stop="handleLikeClick">
- <text style="color: #FFB13F;">点赞数{{ item.appletUsersTeacher.thumbsUp || 0 }}</text>
- <uni-icons v-if="isLike" type="hand-up-filled" size="20" color="#FFB13F"></uni-icons>
- <uni-icons v-else type="hand-up" size="20" color="#FFB13F"></uni-icons>
- </view>
- </view>
- <view class="personal-info-3" style="width: 100%;">
- <view class="ellipsis" v-if="item.distanceText">
- 距离{{ item.distanceText }}km
- </view>
- <view class="ellipsis" v-else>
- {{ '<' }}1km
- </view>
- </view>
- <view class="personal-info-4" style="width: 100%;">
- <view class="ellipsis" style="max-width: 225px;">
- 简介:{{ item.appletUsersTeacher.userBrief || '暂无' }}
- </view>
- </view>
- </view>
- </view>
- </view>
- <view>
- <view class="personal-item-bottom" v-if="showNumerBtn">
- <text class="personal-item-bottom-text">养宠{{ item.experience || 0 }}年 | 评价{{ item.commentNum || 0 }}条 | 服务小结{{ item.serviceSummaryNum || 0 }}份</text>
- </view>
- <view class="personal-item-bottom" v-else-if="showDetailBtn">
- <text class="personal-item-bottom-text">点击查看详情</text>
- </view>
- </view>
- </uni-card>
- </uni-row>
- </template>
-
- <script>
- export default {
- name: 'CompanionItem',
- props: {
- item: {
- type: Object,
- required: true
- },
- showDetailBtn: {
- type: Boolean,
- default: false
- },
- showNumerBtn: {
- type: Boolean,
- default: true
- },
- },
- data() {
- return {
- isLike: false
- }
- },
- methods: {
- // 处理点击事件
- handleClick() {
- this.$emit('click', this.item)
- },
- // 处理点赞点击事件
- handleLikeClick() {
- this.isLike = !this.isLike
- this.$emit('like', this.item)
- }
- }
- }
- </script>
-
- <style lang="scss" scoped>
- .personal-list-item {
- padding: 10px 0px 0px 0;
-
- .personal-info {
- display: flex;
- align-items: center;
- justify-content: flex-start;
-
- .people-img {
- width: 168rpx;
- height: 168rpx;
- border: #FEA714 5rpx solid;
- border-radius: 20rpx;
- }
-
- .personal-info-1 {
- margin-left: 10px;
- width: 100%;
-
- .personal-info-2 {
- display: flex;
-
- .personal-info-title {
- display: flex;
- flex-wrap: wrap;
- width: 60%;
- }
-
- .personal-name {
- color: #333;
- font-size: 28rpx;
- margin-right: 10rpx;
- font-weight: 900;
- font-style: normal;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- max-width: 200rpx;
- }
-
- .personal-star {
- color: #FFAA48;
- font-size: 24rpx;
- font-weight: 400;
- line-height: 32rpx;
- flex-shrink: 0;
- margin-left: auto;
- }
- }
-
- .personal-info-3 {
- display: flex;
- align-items: baseline;
- font-size: 28rpx;
- line-height: 32rpx;
- margin-top: 5px;
- color: #FFAA48;
- font-weight: 900;
- }
-
- .personal-info-4 {
- display: flex;
- align-items: baseline;
- font-size: 24rpx;
- margin-top: 10px;
- color: #7D8196;
- font-weight: 400;
- line-height: 32rpx;
- }
- }
- }
- }
-
- .personal-item-bottom {
- height: 60rpx;
- background-color: #FFF4E5;
- margin: 20rpx 0 20rpx 0;
- display: flex;
- align-items: center;
- justify-content: center;
- border-radius: 8rpx;
-
- .personal-item-bottom-text {
- color: #A94F20;
- margin: 14rpx;
- font-size: 24rpx;
- font-weight: 400;
- }
- }
-
- .ellipsis {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
- </style>
|