feat(聊天页面): 添加教师信息卡片并增强用户信息获取逻辑
This commit is contained in:
parent
4bbedf0eb5
commit
d670da4f3c
|
|
@ -15,6 +15,30 @@
|
||||||
:scroll-into-view="scrollToView"
|
:scroll-into-view="scrollToView"
|
||||||
scroll-with-animation
|
scroll-with-animation
|
||||||
>
|
>
|
||||||
|
<!-- 教师信息 -->
|
||||||
|
<div class="teacher-info-card">
|
||||||
|
<image class="teacher-avatar" :src="receiverHeadSculptureUrl"></image>
|
||||||
|
<div class="teacher-info">
|
||||||
|
<div class="teacher-name">{{ vuex_msgUser.receiverName }}</div>
|
||||||
|
|
||||||
|
<div class="teacher-school">
|
||||||
|
<image
|
||||||
|
class="school-icon"
|
||||||
|
src="/static/common/images/icon_college.png"
|
||||||
|
></image>
|
||||||
|
<text class="school-text">{{ vuex_msgUser.collegeName }}</text>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="teacher-college">
|
||||||
|
<image
|
||||||
|
class="college-icon"
|
||||||
|
src="/static/common/images/icon_major.png"
|
||||||
|
></image>
|
||||||
|
<text class="college-text">{{ vuex_msgUser.collegeName }}</text>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<view
|
<view
|
||||||
v-for="(message, index) in vuex_msgList"
|
v-for="(message, index) in vuex_msgList"
|
||||||
:key="message.id"
|
:key="message.id"
|
||||||
|
|
@ -49,7 +73,7 @@
|
||||||
>
|
>
|
||||||
<image
|
<image
|
||||||
class="ai-avatar"
|
class="ai-avatar"
|
||||||
src="/static/common/images/avatar_ai.png"
|
:src="receiverHeadSculptureUrl"
|
||||||
mode="scaleToFill"
|
mode="scaleToFill"
|
||||||
/>
|
/>
|
||||||
<view class="message-content">
|
<view class="message-content">
|
||||||
|
|
@ -168,6 +192,14 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
|
receiverHeadSculptureUrl() {
|
||||||
|
if (this.vuex_msgUser.receiverHeadSculptureUrl) {
|
||||||
|
return this.baseUrl + "/" + this.vuex_msgUser.receiverHeadSculptureUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "/static/common/images/avatar_default.jpg";
|
||||||
|
},
|
||||||
|
|
||||||
headSculptureUrl() {
|
headSculptureUrl() {
|
||||||
if (this.vuex_user.HeadSculptureUrl) {
|
if (this.vuex_user.HeadSculptureUrl) {
|
||||||
return this.baseUrl + "/" + this.vuex_user.HeadSculptureUrl;
|
return this.baseUrl + "/" + this.vuex_user.HeadSculptureUrl;
|
||||||
|
|
@ -399,6 +431,62 @@ export default {
|
||||||
// padding: 10rpx 0;
|
// padding: 10rpx 0;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
.teacher-info-card {
|
||||||
|
background-color: #ffffff;
|
||||||
|
padding: 30rpx;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
margin: 30rpx 0;
|
||||||
|
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1);
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 36rpx;
|
||||||
|
|
||||||
|
.teacher-avatar {
|
||||||
|
width: 120rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
margin-right: 30rpx;
|
||||||
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.teacher-info {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
gap: 8rpx;
|
||||||
|
flex: 1;
|
||||||
|
|
||||||
|
.teacher-name {
|
||||||
|
font-family: PingFang SC;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.teacher-school,
|
||||||
|
.teacher-college {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.school-icon,
|
||||||
|
.college-icon {
|
||||||
|
margin-right: 16rpx;
|
||||||
|
width: 24rpx;
|
||||||
|
height: 24rpx;
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.school-text,
|
||||||
|
.college-text {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.message-time {
|
.message-time {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
|
|
|
||||||
|
|
@ -282,7 +282,16 @@ const store = new Vuex.Store({
|
||||||
(i) => i && (i.receiverId === friendId || i.friendId === friendId)
|
(i) => i && (i.receiverId === friendId || i.friendId === friendId)
|
||||||
);
|
);
|
||||||
if (target) {
|
if (target) {
|
||||||
commit("set_MsgUser", target);
|
// 获取消息接收方用户信息
|
||||||
|
Vue.prototype.$u.api
|
||||||
|
.GetReceiverUserInfoApi({ Id: friendId })
|
||||||
|
.then((res) => {
|
||||||
|
if (res.succeed && res.data) {
|
||||||
|
commit("set_MsgUser", { ...target, ...res.data });
|
||||||
|
} else {
|
||||||
|
commit("set_MsgUser", target);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// 跳转到对话页,参数按需调整
|
// 跳转到对话页,参数按需调整
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue