- 将 HaveADrink 依赖从 1.0.15 升级至 1.0.16 版本 - 新增 UpdateUserAvatar API 接口用于更新用户头像 - 添加 isValidAvatar 工具函数验证头像 URL 有效性 - 在登录流程中集成头像上传逻辑,支持微信头像选择 - 更新多个组件中的头像显示逻辑,过滤无效头像地址 - 优化 tabBar 主题应用逻辑,修复异步错误处理问题 - 修复微信新规范下头像选择的临时路径处理机制
96 lines
1.8 KiB
Vue
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>
|