Files
hejiu/components/CommentItem.vue
T
cg 019262289c feat(api): 升级 HaveADrink 依赖并实现用户头像上传功能
- 将 HaveADrink 依赖从 1.0.15 升级至 1.0.16 版本
- 新增 UpdateUserAvatar API 接口用于更新用户头像
- 添加 isValidAvatar 工具函数验证头像 URL 有效性
- 在登录流程中集成头像上传逻辑,支持微信头像选择
- 更新多个组件中的头像显示逻辑,过滤无效头像地址
- 优化 tabBar 主题应用逻辑,修复异步错误处理问题
- 修复微信新规范下头像选择的临时路径处理机制
2026-08-16 22:19:10 +08:00

96 lines
1.8 KiB
Vue

<template>
<view class="comment-item">
<view class="comment-avatar-wrap">
<image v-if="isValidAvatar(comment.avatar)" class="comment-avatar" :src="comment.avatar" mode="aspectFill"></image>
<view v-else class="comment-avatar comment-avatar-ph">
<text class="comment-avatar-text">{{ comment.nickname ? comment.nickname[0] : '酒' }}</text>
</view>
</view>
<view class="comment-body">
<view class="comment-top">
<text class="comment-name">{{ comment.nickname }}</text>
<text class="comment-time">{{ comment.time }}</text>
</view>
<text class="comment-content">{{ comment.content }}</text>
</view>
</view>
</template>
<script>
import { isValidAvatar } from '../common/utils'
export default {
name: 'CommentItem',
props: {
comment: { type: Object, default: () => ({}) }
},
methods: {
isValidAvatar
}
}
</script>
<style lang="scss" scoped>
.comment-item {
display: flex;
gap: $sp-md;
padding: $sp-lg 0;
&:not(:last-child) {
border-bottom: 1rpx solid var(--divider-color, rgba(255,255,255,0.08));
}
}
.comment-avatar-wrap {
flex-shrink: 0;
}
.comment-avatar {
width: 64rpx;
height: 64rpx;
border-radius: 50%;
}
.comment-avatar-ph {
background: $bg-elevated;
display: flex;
align-items: center;
justify-content: center;
}
.comment-avatar-text {
font-size: $fs-sm;
font-weight: $fw-bold;
color: $lavender;
}
.comment-body {
flex: 1;
min-width: 0;
}
.comment-top {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 8rpx;
}
.comment-name {
font-size: $fs-sm;
font-weight: $fw-bold;
color: $text-secondary;
}
.comment-time {
font-size: $fs-xs;
color: $text-tertiary;
}
.comment-content {
font-size: $fs-base;
color: $text-primary;
line-height: $lh-normal;
}
</style>